logitude-dashboard-library 1.2.45 → 1.2.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -273,6 +273,7 @@ var DashboardDesigner = function DashboardDesigner(props) {
273
273
  setPlaceholderRows = _useState8[1];
274
274
 
275
275
  React.useEffect(function () {
276
+ console.log('useEffect setLayouts');
276
277
  setLayouts(createLayout());
277
278
  }, [props.dashboardLayouts]);
278
279
 
@@ -583,7 +584,9 @@ var Dashboard = function Dashboard(props) {
583
584
  var EvaluateNewWidgetPosition = function EvaluateNewWidgetPosition() {
584
585
  var widgetYPosition = 0;
585
586
  var widgetXPosition = 0;
586
- var layout = layouts["lg"];
587
+ var layout = layouts["lg"].map(function (e) {
588
+ return e.Layout;
589
+ });
587
590
  var maxY = layout.reduce(function (max, widget) {
588
591
  if (widget.y > max) max = widget.y;
589
592
  return max;
@@ -686,8 +689,13 @@ var Dashboard = function Dashboard(props) {
686
689
  var updateWidgets = function updateWidgets(layouts) {
687
690
  console.log('updateWidgets = (layouts:Layouts', layouts);
688
691
  var layoutsDic = {};
689
- layouts.lg.map(function (e) {
690
- layoutsDic[e.i] = e;
692
+ Object.keys(layouts).forEach(function (sizeType) {
693
+ if (layouts[sizeType].length > 0) {
694
+ layouts[sizeType].map(function (layout) {
695
+ layoutsDic[layout.i] = layout;
696
+ });
697
+ return;
698
+ }
691
699
  });
692
700
  currentDashbord === null || currentDashbord === void 0 ? void 0 : currentDashbord.Widgets.forEach(function (widget) {
693
701
  widget.StartPotistion = layoutsDic[widget.Id].x + "," + layoutsDic[widget.Id].y;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/services/tools.ts","../src/features/Dashboard/ChartsComponents/ApexChart.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":["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 React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM|null\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n\r\n const lineOptoins = () => {\r\n\r\n return {\r\n\r\n series: [{\r\n name: \"Desktops\",\r\n data: [10, 41, 35, 51, 49, 62, 69, 91, 148]\r\n }],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: 'Product Trends by Month',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const barOptoins = () => {\r\n\r\n return {\r\n series: [{\r\n data: [44, 55, 41, 64, 22, 43, 21]\r\n }, {\r\n data: [53, 32, 33, 52, 13, 44, 32]\r\n }],\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],\r\n },\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 43, 22],\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n },\r\n labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],\r\n \r\n },\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 33],\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const getChartOptions = () => {\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins();\r\n break;\r\n case 'line':\r\n return lineOptoins();\r\n break;\r\n case 'pie':\r\n return pieOptoins();\r\n break;\r\n case 'donut':\r\n return donutOptoins();\r\n break;\r\n default:\r\n break;\r\n }\r\n return barOptoins();\r\n };\r\n const args = getChartOptions();\r\n return (\r\n <ReactApexChart\r\n options={args?.options }\r\n series={args?.series}\r\n type={props.widget?.TypeCode}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: any;\r\n series: any;\r\n}\r\n\r\nexport default ApexChart;\r\n\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 { ReactWidgetPM } from \"../../types/widget\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\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: ReactWidgetPM | 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 console.log('WidgetCard',props.el)\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.Title || \"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=\"dl-dashboard-widget\">\r\n <ApexChart widget={props.widget} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = {\r\n dashboardLayouts:{ lg: ReactWidgetPM[] },\r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n onLayoutChange:(layouts: Layouts) => 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 createLayout = ():Layouts => {\r\n var layout = { lg:props.dashboardLayouts.lg.map(w=>w.Layout as Layout)};\r\n return layout;\r\n }\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>( createLayout() || { 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 useEffect(()=>{\r\n setLayouts(createLayout())\r\n },[props.dashboardLayouts]);\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:Layouts) {\r\n console.log(layout, layouts);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n props.onLayoutChange(layouts)\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(id) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === id);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: id }));\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 {props.dashboardLayouts.lg.map((widget) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n el={widget}\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'\r\nimport { Card } from 'primereact/card';\r\nimport { Button } from \"primereact/button\";\r\nimport DashboardDesigner, { layoutGridProps } from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { DashBoardService } from './services/DashBoardService';\r\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\r\nimport { ReactDashboardPM } from './types/Dashboard';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\r\nimport { Session } from './services/session';\r\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\r\nimport { WidgetType } from './types/WidgetType';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { OverlayPanel } from 'primereact/overlaypanel';\r\nimport { Ripple } from 'primereact/ripple';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\r\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const newWidgetWidth = 3;\r\n const newWidgetHeight = 5;\r\n\r\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\r\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [beforEditDashbord, setBeforEditDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [selectedWidget, setSelectedWidget] = useState();\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\r\n const [layouts, setLayouts] = useState<{ lg: any[] }>({ lg: [] });\r\n\r\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\r\n const dashboardService = new DashBoardService();\r\n const widgetTypeListService = new WidgetTypeListService();\r\n useEffect(() => {\r\n getWidgetTypes();\r\n\r\n props.dataBinding.onGetDashboard.subscribe(e => {\r\n console.log('onGetDashboard.subscribe', e)\r\n setCurrentDashbord(e);\r\n applyLayouts(e);\r\n })\r\n props.dataBinding.onGetAllDashboards.subscribe(e => {\r\n console.log('onGetAllDashboard.subscribe', e)\r\n\r\n setDashbords(e);\r\n })\r\n\r\n }, [])\r\n\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n const getWidgetTypes = () => {\r\n widgetTypeListService.getAll().then(data => {\r\n setWidgetTypes(data.data);\r\n });\r\n }\r\n const EditDashBoard = () => {\r\n props.openAddEditDashboard(currentDashbord);\r\n dashboardMoreButtonToggle?.current?.hide();\r\n\r\n }\r\n const addWidget = (widgetCode) => {\r\n var position = EvaluateNewWidgetPosition();\r\n props.openAddEditWidget({ TypeCode: widgetCode, StartPotistion: `${position.x},${position.y}`, EndPosition: `${position.w},${position.h}` } as ReactWidgetPM);\r\n\r\n }\r\n const 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, w: newWidgetWidth, h: newWidgetHeight };\r\n }\r\n const editDesign = () => {\r\n setIsInEditMode(true)\r\n dashboardMoreButtonToggle?.current?.hide();\r\n console.log(WidgetTypes)\r\n setBeforEditDashbord(currentDashbord);\r\n }\r\n const save = () => {\r\n setIsInEditMode(false)\r\n\r\n props.onSaveDashboard(currentDashbord)\r\n }\r\n\r\n const cancelSave = () => {\r\n setIsInEditMode(false)\r\n props.dataBinding.onGetDashboard.next(beforEditDashbord);\r\n }\r\n\r\n const changeDashboard = (event) => {\r\n if (event.value == currentDashbord?.Id)\r\n return;\r\n var dasboard = dashbords.find(e => e.Id == event.value);\r\n\r\n props.onChangeDashboard(dasboard);\r\n props.dataBinding.onGetDashboard.next(dasboard);\r\n\r\n }\r\n\r\n const applyLayouts = (dashbord: ReactDashboardPM | undefined) => {\r\n if ((!dashbord?.Widgets))\r\n return;\r\n var layout: { lg: ReactWidgetPM[] } = { lg: [] };\r\n dashbord?.Widgets.map(widget => {\r\n widget.Layout = {\r\n minH: 5,\r\n minW: 3,\r\n i: widget.Id,\r\n w: +widget.EndPosition.split(',')[0],\r\n h: +widget.EndPosition.split(',')[1],\r\n x: +widget.StartPotistion.split(',')[0],\r\n y: +widget.StartPotistion.split(',')[1],\r\n }\r\n layout.lg.push(widget\r\n\r\n )\r\n });\r\n setLayouts(layout);\r\n\r\n }\r\n const updateWidgets = (layouts:Layouts) => {\r\n console.log('updateWidgets = (layouts:Layouts',layouts )\r\n var layoutsDic:{[key:string]:Layout} = {};\r\n layouts.lg.map(e=>{\r\n layoutsDic[e.i] = e;\r\n })\r\n currentDashbord?.Widgets.forEach(widget => {\r\n widget.StartPotistion = `${layoutsDic[widget.Id].x},${layoutsDic[widget.Id].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.Id].w},${layoutsDic[widget.Id].h}`;\r\n });\r\n }\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n\r\n <div className='dl-dashboard-header dl-card'>\r\n <div className='dl-flex-row'>\r\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n >\r\n <Ripple />\r\n </Button>\r\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => EditDashBoard()}>Edit</div>\r\n <div onClick={editDesign}>Edit Design</div>\r\n\r\n </div>\r\n </OverlayPanel >\r\n </div>\r\n <div className='dl-flex-row'>\r\n {!isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n\r\n <div style={{ width: \"210px\" }}>\r\n <Dropdown\r\n value={[]}\r\n options={dashbords}\r\n optionValue=\"Id\"\r\n optionLabel=\"Name\"\r\n onChange={changeDashboard}\r\n placeholder=\"Choose Dashboard\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\r\n className=\"dl-dashboard-add p-button-rounded p-button-success\" />\r\n </div>\r\n : null}\r\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\r\n\r\n\r\n\r\n {isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n <Button\r\n label=\"Cancel\"\r\n className=\"p-button-text\"\r\n onClick={cancelSave}\r\n />\r\n <Button\r\n label=\"Save\"\r\n form=\"frm\"\r\n // icon=\"pi pi-check\"\r\n onClick={save}\r\n autoFocus\r\n />\r\n\r\n <div style={{ width: '192px', marginLeft: '15px' }}>\r\n <Dropdown\r\n value={selectedWidget}\r\n options={WidgetTypes}\r\n optionValue=\"Code\"\r\n optionLabel=\"Name\"\r\n onChange={(e) => addWidget(e.value)}\r\n placeholder=\"Add Component\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n </div>\r\n : null}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onLayoutChange={updateWidgets} dashboardLayouts={layouts} openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n\r\n )\r\n}\r\nexport default Dashboard;"],"names":["Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","ApexChart","props","lineOptoins","series","name","data","options","chart","height","type","zoom","enabled","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","categories","barOptoins","plotOptions","bar","horizontal","position","offsetX","style","fontSize","show","width","tooltip","shared","intersect","pieOptoins","labels","donutOptoins","responsive","breakpoint","legend","offsetY","getChartOptions","widget","TypeCode","args","React","ReactApexChart","WidgetCard","state","moreBtnToggle","useRef","console","log","el","className","key","i","Title","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","createLayout","layout","lg","dashboardLayouts","map","w","Layout","array12","Array","from","fill","savedWidgets","getFromStorage","minimumPlaceholderRowsCount","useState","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","dateFilter","widgets","setWidgets","placeholderRows","setPlaceholderRows","useEffect","onLayoutChange","UpdatePlaceholderDimensions","deletePanel","id","itemIndex","findIndex","d","splice","_","reject","SaveGrid","saveToStorage","editWidget","openEditWidget","value","setTimeout","window","localStorage","setItem","JSON","stringify","getItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","encodeURIComponent","DashBoardService","_ApiServices","getDataByFilters","tableName","add","WidgetTypeListService","getAll","Dashboard","newWidgetWidth","newWidgetHeight","dashbords","setDashbords","currentDashbord","setCurrentDashbord","beforEditDashbord","setBeforEditDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","createRef","dashboardService","widgetTypeListService","getWidgetTypes","dataBinding","onGetDashboard","subscribe","applyLayouts","onGetAllDashboards","then","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","EvaluateNewWidgetPosition","openAddEditWidget","StartPotistion","x","y","EndPosition","h","widgetYPosition","widgetXPosition","maxY","reduce","max","widgetsRow","filter","lastWidgetStartXPosition","apply","a","lastWidget","find","lastWidgetEndXPosition","availableHorizontalSlots","editDesign","save","onSaveDashboard","cancelSave","next","changeDashboard","event","Id","dasboard","onChangeDashboard","dashbord","Widgets","minH","minW","push","updateWidgets","layoutsDic","forEach","Name","Ripple","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/services/tools.ts","../src/features/Dashboard/ChartsComponents/ApexChart.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":["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 React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM|null\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n\r\n const lineOptoins = () => {\r\n\r\n return {\r\n\r\n series: [{\r\n name: \"Desktops\",\r\n data: [10, 41, 35, 51, 49, 62, 69, 91, 148]\r\n }],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: 'Product Trends by Month',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const barOptoins = () => {\r\n\r\n return {\r\n series: [{\r\n data: [44, 55, 41, 64, 22, 43, 21]\r\n }, {\r\n data: [53, 32, 33, 52, 13, 44, 32]\r\n }],\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],\r\n },\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 43, 22],\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n },\r\n labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],\r\n \r\n },\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 33],\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const getChartOptions = () => {\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins();\r\n break;\r\n case 'line':\r\n return lineOptoins();\r\n break;\r\n case 'pie':\r\n return pieOptoins();\r\n break;\r\n case 'donut':\r\n return donutOptoins();\r\n break;\r\n default:\r\n break;\r\n }\r\n return barOptoins();\r\n };\r\n const args = getChartOptions();\r\n return (\r\n <ReactApexChart\r\n options={args?.options }\r\n series={args?.series}\r\n type={props.widget?.TypeCode}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: any;\r\n series: any;\r\n}\r\n\r\nexport default ApexChart;\r\n\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 { ReactWidgetPM } from \"../../types/widget\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\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: ReactWidgetPM | 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 console.log('WidgetCard',props.el)\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.Title || \"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=\"dl-dashboard-widget\">\r\n <ApexChart widget={props.widget} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = {\r\n dashboardLayouts:{ lg: ReactWidgetPM[] },\r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n onLayoutChange:(layouts: Layouts) => 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 createLayout = ():Layouts => {\r\n var layout = { lg:props.dashboardLayouts.lg.map(w=>w.Layout as Layout)};\r\n return layout;\r\n }\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>( createLayout() || { 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 useEffect(()=>{\r\n\r\n console.log('useEffect setLayouts')\r\n setLayouts(createLayout())\r\n },[props.dashboardLayouts]);\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:Layouts) {\r\n console.log(layout, layouts);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n props.onLayoutChange(layouts)\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(id) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === id);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: id }));\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 {props.dashboardLayouts.lg.map((widget) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n el={widget}\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'\r\nimport { Card } from 'primereact/card';\r\nimport { Button } from \"primereact/button\";\r\nimport DashboardDesigner, { layoutGridProps } from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { DashBoardService } from './services/DashBoardService';\r\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\r\nimport { ReactDashboardPM } from './types/Dashboard';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\r\nimport { Session } from './services/session';\r\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\r\nimport { WidgetType } from './types/WidgetType';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { OverlayPanel } from 'primereact/overlaypanel';\r\nimport { Ripple } from 'primereact/ripple';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\r\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const newWidgetWidth = 3;\r\n const newWidgetHeight = 5;\r\n\r\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\r\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [beforEditDashbord, setBeforEditDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [selectedWidget, setSelectedWidget] = useState();\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\r\n const [layouts, setLayouts] = useState<{ lg: any[] }>({ lg: [] });\r\n\r\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\r\n const dashboardService = new DashBoardService();\r\n const widgetTypeListService = new WidgetTypeListService();\r\n useEffect(() => {\r\n getWidgetTypes();\r\n\r\n props.dataBinding.onGetDashboard.subscribe(e => {\r\n console.log('onGetDashboard.subscribe', e)\r\n setCurrentDashbord(e);\r\n applyLayouts(e);\r\n })\r\n props.dataBinding.onGetAllDashboards.subscribe(e => {\r\n console.log('onGetAllDashboard.subscribe', e)\r\n\r\n setDashbords(e);\r\n })\r\n\r\n }, [])\r\n\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n const getWidgetTypes = () => {\r\n widgetTypeListService.getAll().then(data => {\r\n setWidgetTypes(data.data);\r\n });\r\n }\r\n const EditDashBoard = () => {\r\n props.openAddEditDashboard(currentDashbord);\r\n dashboardMoreButtonToggle?.current?.hide();\r\n\r\n }\r\n const addWidget = (widgetCode) => {\r\n var position = EvaluateNewWidgetPosition();\r\n props.openAddEditWidget({ TypeCode: widgetCode, StartPotistion: `${position.x},${position.y}`, EndPosition: `${position.w},${position.h}` } as ReactWidgetPM);\r\n\r\n }\r\n const EvaluateNewWidgetPosition = () => {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"].map(e=>e.Layout);\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, w: newWidgetWidth, h: newWidgetHeight };\r\n }\r\n const editDesign = () => {\r\n setIsInEditMode(true)\r\n dashboardMoreButtonToggle?.current?.hide();\r\n console.log(WidgetTypes)\r\n setBeforEditDashbord(currentDashbord);\r\n }\r\n const save = () => {\r\n setIsInEditMode(false)\r\n\r\n props.onSaveDashboard(currentDashbord)\r\n }\r\n\r\n const cancelSave = () => {\r\n setIsInEditMode(false)\r\n props.dataBinding.onGetDashboard.next(beforEditDashbord);\r\n }\r\n\r\n const changeDashboard = (event) => {\r\n if (event.value == currentDashbord?.Id)\r\n return;\r\n var dasboard = dashbords.find(e => e.Id == event.value);\r\n\r\n props.onChangeDashboard(dasboard);\r\n props.dataBinding.onGetDashboard.next(dasboard);\r\n\r\n }\r\n\r\n const applyLayouts = (dashbord: ReactDashboardPM | undefined) => {\r\n if ((!dashbord?.Widgets))\r\n return;\r\n var layout: { lg: ReactWidgetPM[] } = { lg: [] };\r\n dashbord?.Widgets.map(widget => {\r\n widget.Layout = {\r\n minH: 5,\r\n minW: 3,\r\n i: widget.Id,\r\n w: +widget.EndPosition.split(',')[0],\r\n h: +widget.EndPosition.split(',')[1],\r\n x: +widget.StartPotistion.split(',')[0],\r\n y: +widget.StartPotistion.split(',')[1],\r\n }\r\n layout.lg.push(widget\r\n\r\n )\r\n });\r\n setLayouts(layout);\r\n\r\n }\r\n const updateWidgets = (layouts: Layouts) => {\r\n console.log('updateWidgets = (layouts:Layouts', layouts)\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n\r\n currentDashbord?.Widgets.forEach(widget => {\r\n widget.StartPotistion = `${layoutsDic[widget.Id].x},${layoutsDic[widget.Id].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.Id].w},${layoutsDic[widget.Id].h}`;\r\n });\r\n }\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n\r\n <div className='dl-dashboard-header dl-card'>\r\n <div className='dl-flex-row'>\r\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n >\r\n <Ripple />\r\n </Button>\r\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => EditDashBoard()}>Edit</div>\r\n <div onClick={editDesign}>Edit Design</div>\r\n\r\n </div>\r\n </OverlayPanel >\r\n </div>\r\n <div className='dl-flex-row'>\r\n {!isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n\r\n <div style={{ width: \"210px\" }}>\r\n <Dropdown\r\n value={[]}\r\n options={dashbords}\r\n optionValue=\"Id\"\r\n optionLabel=\"Name\"\r\n onChange={changeDashboard}\r\n placeholder=\"Choose Dashboard\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\r\n className=\"dl-dashboard-add p-button-rounded p-button-success\" />\r\n </div>\r\n : null}\r\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\r\n\r\n\r\n\r\n {isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n <Button\r\n label=\"Cancel\"\r\n className=\"p-button-text\"\r\n onClick={cancelSave}\r\n />\r\n <Button\r\n label=\"Save\"\r\n form=\"frm\"\r\n // icon=\"pi pi-check\"\r\n onClick={save}\r\n autoFocus\r\n />\r\n\r\n <div style={{ width: '192px', marginLeft: '15px' }}>\r\n <Dropdown\r\n value={selectedWidget}\r\n options={WidgetTypes}\r\n optionValue=\"Code\"\r\n optionLabel=\"Name\"\r\n onChange={(e) => addWidget(e.value)}\r\n placeholder=\"Add Component\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n </div>\r\n : null}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onLayoutChange={updateWidgets} dashboardLayouts={layouts} openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n\r\n )\r\n}\r\nexport default Dashboard;"],"names":["Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","ApexChart","props","lineOptoins","series","name","data","options","chart","height","type","zoom","enabled","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","categories","barOptoins","plotOptions","bar","horizontal","position","offsetX","style","fontSize","show","width","tooltip","shared","intersect","pieOptoins","labels","donutOptoins","responsive","breakpoint","legend","offsetY","getChartOptions","widget","TypeCode","args","React","ReactApexChart","WidgetCard","state","moreBtnToggle","useRef","console","log","el","className","key","i","Title","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","createLayout","layout","lg","dashboardLayouts","map","w","Layout","array12","Array","from","fill","savedWidgets","getFromStorage","minimumPlaceholderRowsCount","useState","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","dateFilter","widgets","setWidgets","placeholderRows","setPlaceholderRows","useEffect","onLayoutChange","UpdatePlaceholderDimensions","deletePanel","id","itemIndex","findIndex","d","splice","_","reject","SaveGrid","saveToStorage","editWidget","openEditWidget","value","setTimeout","window","localStorage","setItem","JSON","stringify","getItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","encodeURIComponent","DashBoardService","_ApiServices","getDataByFilters","tableName","add","WidgetTypeListService","getAll","Dashboard","newWidgetWidth","newWidgetHeight","dashbords","setDashbords","currentDashbord","setCurrentDashbord","beforEditDashbord","setBeforEditDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","createRef","dashboardService","widgetTypeListService","getWidgetTypes","dataBinding","onGetDashboard","subscribe","applyLayouts","onGetAllDashboards","then","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","EvaluateNewWidgetPosition","openAddEditWidget","StartPotistion","x","y","EndPosition","h","widgetYPosition","widgetXPosition","maxY","reduce","max","widgetsRow","filter","lastWidgetStartXPosition","apply","a","lastWidget","find","lastWidgetEndXPosition","availableHorizontalSlots","editDesign","save","onSaveDashboard","cancelSave","next","changeDashboard","event","Id","dasboard","onChangeDashboard","dashbord","Widgets","minH","minW","push","updateWidgets","layoutsDic","forEach","sizeType","Name","Ripple","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
@@ -270,6 +270,7 @@ var DashboardDesigner = function DashboardDesigner(props) {
270
270
  setPlaceholderRows = _useState8[1];
271
271
 
272
272
  useEffect(function () {
273
+ console.log('useEffect setLayouts');
273
274
  setLayouts(createLayout());
274
275
  }, [props.dashboardLayouts]);
275
276
 
@@ -580,7 +581,9 @@ var Dashboard = function Dashboard(props) {
580
581
  var EvaluateNewWidgetPosition = function EvaluateNewWidgetPosition() {
581
582
  var widgetYPosition = 0;
582
583
  var widgetXPosition = 0;
583
- var layout = layouts["lg"];
584
+ var layout = layouts["lg"].map(function (e) {
585
+ return e.Layout;
586
+ });
584
587
  var maxY = layout.reduce(function (max, widget) {
585
588
  if (widget.y > max) max = widget.y;
586
589
  return max;
@@ -683,8 +686,13 @@ var Dashboard = function Dashboard(props) {
683
686
  var updateWidgets = function updateWidgets(layouts) {
684
687
  console.log('updateWidgets = (layouts:Layouts', layouts);
685
688
  var layoutsDic = {};
686
- layouts.lg.map(function (e) {
687
- layoutsDic[e.i] = e;
689
+ Object.keys(layouts).forEach(function (sizeType) {
690
+ if (layouts[sizeType].length > 0) {
691
+ layouts[sizeType].map(function (layout) {
692
+ layoutsDic[layout.i] = layout;
693
+ });
694
+ return;
695
+ }
688
696
  });
689
697
  currentDashbord === null || currentDashbord === void 0 ? void 0 : currentDashbord.Widgets.forEach(function (widget) {
690
698
  widget.StartPotistion = layoutsDic[widget.Id].x + "," + layoutsDic[widget.Id].y;
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/services/tools.ts","../src/features/Dashboard/ChartsComponents/ApexChart.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":["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 React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM|null\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n\r\n const lineOptoins = () => {\r\n\r\n return {\r\n\r\n series: [{\r\n name: \"Desktops\",\r\n data: [10, 41, 35, 51, 49, 62, 69, 91, 148]\r\n }],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: 'Product Trends by Month',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const barOptoins = () => {\r\n\r\n return {\r\n series: [{\r\n data: [44, 55, 41, 64, 22, 43, 21]\r\n }, {\r\n data: [53, 32, 33, 52, 13, 44, 32]\r\n }],\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],\r\n },\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 43, 22],\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n },\r\n labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],\r\n \r\n },\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 33],\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const getChartOptions = () => {\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins();\r\n break;\r\n case 'line':\r\n return lineOptoins();\r\n break;\r\n case 'pie':\r\n return pieOptoins();\r\n break;\r\n case 'donut':\r\n return donutOptoins();\r\n break;\r\n default:\r\n break;\r\n }\r\n return barOptoins();\r\n };\r\n const args = getChartOptions();\r\n return (\r\n <ReactApexChart\r\n options={args?.options }\r\n series={args?.series}\r\n type={props.widget?.TypeCode}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: any;\r\n series: any;\r\n}\r\n\r\nexport default ApexChart;\r\n\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 { ReactWidgetPM } from \"../../types/widget\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\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: ReactWidgetPM | 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 console.log('WidgetCard',props.el)\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.Title || \"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=\"dl-dashboard-widget\">\r\n <ApexChart widget={props.widget} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = {\r\n dashboardLayouts:{ lg: ReactWidgetPM[] },\r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n onLayoutChange:(layouts: Layouts) => 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 createLayout = ():Layouts => {\r\n var layout = { lg:props.dashboardLayouts.lg.map(w=>w.Layout as Layout)};\r\n return layout;\r\n }\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>( createLayout() || { 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 useEffect(()=>{\r\n setLayouts(createLayout())\r\n },[props.dashboardLayouts]);\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:Layouts) {\r\n console.log(layout, layouts);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n props.onLayoutChange(layouts)\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(id) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === id);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: id }));\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 {props.dashboardLayouts.lg.map((widget) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n el={widget}\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'\r\nimport { Card } from 'primereact/card';\r\nimport { Button } from \"primereact/button\";\r\nimport DashboardDesigner, { layoutGridProps } from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { DashBoardService } from './services/DashBoardService';\r\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\r\nimport { ReactDashboardPM } from './types/Dashboard';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\r\nimport { Session } from './services/session';\r\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\r\nimport { WidgetType } from './types/WidgetType';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { OverlayPanel } from 'primereact/overlaypanel';\r\nimport { Ripple } from 'primereact/ripple';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\r\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const newWidgetWidth = 3;\r\n const newWidgetHeight = 5;\r\n\r\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\r\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [beforEditDashbord, setBeforEditDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [selectedWidget, setSelectedWidget] = useState();\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\r\n const [layouts, setLayouts] = useState<{ lg: any[] }>({ lg: [] });\r\n\r\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\r\n const dashboardService = new DashBoardService();\r\n const widgetTypeListService = new WidgetTypeListService();\r\n useEffect(() => {\r\n getWidgetTypes();\r\n\r\n props.dataBinding.onGetDashboard.subscribe(e => {\r\n console.log('onGetDashboard.subscribe', e)\r\n setCurrentDashbord(e);\r\n applyLayouts(e);\r\n })\r\n props.dataBinding.onGetAllDashboards.subscribe(e => {\r\n console.log('onGetAllDashboard.subscribe', e)\r\n\r\n setDashbords(e);\r\n })\r\n\r\n }, [])\r\n\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n const getWidgetTypes = () => {\r\n widgetTypeListService.getAll().then(data => {\r\n setWidgetTypes(data.data);\r\n });\r\n }\r\n const EditDashBoard = () => {\r\n props.openAddEditDashboard(currentDashbord);\r\n dashboardMoreButtonToggle?.current?.hide();\r\n\r\n }\r\n const addWidget = (widgetCode) => {\r\n var position = EvaluateNewWidgetPosition();\r\n props.openAddEditWidget({ TypeCode: widgetCode, StartPotistion: `${position.x},${position.y}`, EndPosition: `${position.w},${position.h}` } as ReactWidgetPM);\r\n\r\n }\r\n const 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, w: newWidgetWidth, h: newWidgetHeight };\r\n }\r\n const editDesign = () => {\r\n setIsInEditMode(true)\r\n dashboardMoreButtonToggle?.current?.hide();\r\n console.log(WidgetTypes)\r\n setBeforEditDashbord(currentDashbord);\r\n }\r\n const save = () => {\r\n setIsInEditMode(false)\r\n\r\n props.onSaveDashboard(currentDashbord)\r\n }\r\n\r\n const cancelSave = () => {\r\n setIsInEditMode(false)\r\n props.dataBinding.onGetDashboard.next(beforEditDashbord);\r\n }\r\n\r\n const changeDashboard = (event) => {\r\n if (event.value == currentDashbord?.Id)\r\n return;\r\n var dasboard = dashbords.find(e => e.Id == event.value);\r\n\r\n props.onChangeDashboard(dasboard);\r\n props.dataBinding.onGetDashboard.next(dasboard);\r\n\r\n }\r\n\r\n const applyLayouts = (dashbord: ReactDashboardPM | undefined) => {\r\n if ((!dashbord?.Widgets))\r\n return;\r\n var layout: { lg: ReactWidgetPM[] } = { lg: [] };\r\n dashbord?.Widgets.map(widget => {\r\n widget.Layout = {\r\n minH: 5,\r\n minW: 3,\r\n i: widget.Id,\r\n w: +widget.EndPosition.split(',')[0],\r\n h: +widget.EndPosition.split(',')[1],\r\n x: +widget.StartPotistion.split(',')[0],\r\n y: +widget.StartPotistion.split(',')[1],\r\n }\r\n layout.lg.push(widget\r\n\r\n )\r\n });\r\n setLayouts(layout);\r\n\r\n }\r\n const updateWidgets = (layouts:Layouts) => {\r\n console.log('updateWidgets = (layouts:Layouts',layouts )\r\n var layoutsDic:{[key:string]:Layout} = {};\r\n layouts.lg.map(e=>{\r\n layoutsDic[e.i] = e;\r\n })\r\n currentDashbord?.Widgets.forEach(widget => {\r\n widget.StartPotistion = `${layoutsDic[widget.Id].x},${layoutsDic[widget.Id].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.Id].w},${layoutsDic[widget.Id].h}`;\r\n });\r\n }\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n\r\n <div className='dl-dashboard-header dl-card'>\r\n <div className='dl-flex-row'>\r\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n >\r\n <Ripple />\r\n </Button>\r\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => EditDashBoard()}>Edit</div>\r\n <div onClick={editDesign}>Edit Design</div>\r\n\r\n </div>\r\n </OverlayPanel >\r\n </div>\r\n <div className='dl-flex-row'>\r\n {!isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n\r\n <div style={{ width: \"210px\" }}>\r\n <Dropdown\r\n value={[]}\r\n options={dashbords}\r\n optionValue=\"Id\"\r\n optionLabel=\"Name\"\r\n onChange={changeDashboard}\r\n placeholder=\"Choose Dashboard\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\r\n className=\"dl-dashboard-add p-button-rounded p-button-success\" />\r\n </div>\r\n : null}\r\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\r\n\r\n\r\n\r\n {isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n <Button\r\n label=\"Cancel\"\r\n className=\"p-button-text\"\r\n onClick={cancelSave}\r\n />\r\n <Button\r\n label=\"Save\"\r\n form=\"frm\"\r\n // icon=\"pi pi-check\"\r\n onClick={save}\r\n autoFocus\r\n />\r\n\r\n <div style={{ width: '192px', marginLeft: '15px' }}>\r\n <Dropdown\r\n value={selectedWidget}\r\n options={WidgetTypes}\r\n optionValue=\"Code\"\r\n optionLabel=\"Name\"\r\n onChange={(e) => addWidget(e.value)}\r\n placeholder=\"Add Component\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n </div>\r\n : null}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onLayoutChange={updateWidgets} dashboardLayouts={layouts} openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n\r\n )\r\n}\r\nexport default Dashboard;"],"names":["Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","ApexChart","props","lineOptoins","series","name","data","options","chart","height","type","zoom","enabled","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","categories","barOptoins","plotOptions","bar","horizontal","position","offsetX","style","fontSize","show","width","tooltip","shared","intersect","pieOptoins","labels","donutOptoins","responsive","breakpoint","legend","offsetY","getChartOptions","widget","TypeCode","args","React","ReactApexChart","WidgetCard","state","moreBtnToggle","useRef","console","log","el","className","key","i","Title","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","createLayout","layout","lg","dashboardLayouts","map","w","Layout","array12","Array","from","fill","savedWidgets","getFromStorage","minimumPlaceholderRowsCount","useState","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","dateFilter","widgets","setWidgets","placeholderRows","setPlaceholderRows","useEffect","onLayoutChange","UpdatePlaceholderDimensions","deletePanel","id","itemIndex","findIndex","d","splice","_","reject","SaveGrid","saveToStorage","editWidget","openEditWidget","value","setTimeout","window","localStorage","setItem","JSON","stringify","getItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","encodeURIComponent","DashBoardService","_ApiServices","getDataByFilters","tableName","add","WidgetTypeListService","getAll","Dashboard","newWidgetWidth","newWidgetHeight","dashbords","setDashbords","currentDashbord","setCurrentDashbord","beforEditDashbord","setBeforEditDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","createRef","dashboardService","widgetTypeListService","getWidgetTypes","dataBinding","onGetDashboard","subscribe","applyLayouts","onGetAllDashboards","then","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","EvaluateNewWidgetPosition","openAddEditWidget","StartPotistion","x","y","EndPosition","h","widgetYPosition","widgetXPosition","maxY","reduce","max","widgetsRow","filter","lastWidgetStartXPosition","apply","a","lastWidget","find","lastWidgetEndXPosition","availableHorizontalSlots","editDesign","save","onSaveDashboard","cancelSave","next","changeDashboard","event","Id","dasboard","onChangeDashboard","dashbord","Widgets","minH","minW","push","updateWidgets","layoutsDic","forEach","Name","Ripple","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/services/tools.ts","../src/features/Dashboard/ChartsComponents/ApexChart.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":["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 React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM|null\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n\r\n const lineOptoins = () => {\r\n\r\n return {\r\n\r\n series: [{\r\n name: \"Desktops\",\r\n data: [10, 41, 35, 51, 49, 62, 69, 91, 148]\r\n }],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: 'Product Trends by Month',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const barOptoins = () => {\r\n\r\n return {\r\n series: [{\r\n data: [44, 55, 41, 64, 22, 43, 21]\r\n }, {\r\n data: [53, 32, 33, 52, 13, 44, 32]\r\n }],\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],\r\n },\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 43, 22],\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n },\r\n labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],\r\n \r\n },\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (): ApexChartArgs => {\r\n\r\n return {\r\n\r\n series: [44, 55, 13, 33],\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const getChartOptions = () => {\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins();\r\n break;\r\n case 'line':\r\n return lineOptoins();\r\n break;\r\n case 'pie':\r\n return pieOptoins();\r\n break;\r\n case 'donut':\r\n return donutOptoins();\r\n break;\r\n default:\r\n break;\r\n }\r\n return barOptoins();\r\n };\r\n const args = getChartOptions();\r\n return (\r\n <ReactApexChart\r\n options={args?.options }\r\n series={args?.series}\r\n type={props.widget?.TypeCode}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: any;\r\n series: any;\r\n}\r\n\r\nexport default ApexChart;\r\n\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 { ReactWidgetPM } from \"../../types/widget\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\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: ReactWidgetPM | 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 console.log('WidgetCard',props.el)\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.Title || \"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=\"dl-dashboard-widget\">\r\n <ApexChart widget={props.widget} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = {\r\n dashboardLayouts:{ lg: ReactWidgetPM[] },\r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n onLayoutChange:(layouts: Layouts) => 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 createLayout = ():Layouts => {\r\n var layout = { lg:props.dashboardLayouts.lg.map(w=>w.Layout as Layout)};\r\n return layout;\r\n }\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>( createLayout() || { 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 useEffect(()=>{\r\n\r\n console.log('useEffect setLayouts')\r\n setLayouts(createLayout())\r\n },[props.dashboardLayouts]);\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:Layouts) {\r\n console.log(layout, layouts);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n props.onLayoutChange(layouts)\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(id) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === id);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: id }));\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 {props.dashboardLayouts.lg.map((widget) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n el={widget}\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'\r\nimport { Card } from 'primereact/card';\r\nimport { Button } from \"primereact/button\";\r\nimport DashboardDesigner, { layoutGridProps } from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { DashBoardService } from './services/DashBoardService';\r\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\r\nimport { ReactDashboardPM } from './types/Dashboard';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\r\nimport { Session } from './services/session';\r\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\r\nimport { WidgetType } from './types/WidgetType';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { OverlayPanel } from 'primereact/overlaypanel';\r\nimport { Ripple } from 'primereact/ripple';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\r\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const newWidgetWidth = 3;\r\n const newWidgetHeight = 5;\r\n\r\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\r\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [beforEditDashbord, setBeforEditDashbord] = useState<ReactDashboardPM | undefined>(undefined);\r\n const [selectedWidget, setSelectedWidget] = useState();\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\r\n const [layouts, setLayouts] = useState<{ lg: any[] }>({ lg: [] });\r\n\r\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\r\n const dashboardService = new DashBoardService();\r\n const widgetTypeListService = new WidgetTypeListService();\r\n useEffect(() => {\r\n getWidgetTypes();\r\n\r\n props.dataBinding.onGetDashboard.subscribe(e => {\r\n console.log('onGetDashboard.subscribe', e)\r\n setCurrentDashbord(e);\r\n applyLayouts(e);\r\n })\r\n props.dataBinding.onGetAllDashboards.subscribe(e => {\r\n console.log('onGetAllDashboard.subscribe', e)\r\n\r\n setDashbords(e);\r\n })\r\n\r\n }, [])\r\n\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n const getWidgetTypes = () => {\r\n widgetTypeListService.getAll().then(data => {\r\n setWidgetTypes(data.data);\r\n });\r\n }\r\n const EditDashBoard = () => {\r\n props.openAddEditDashboard(currentDashbord);\r\n dashboardMoreButtonToggle?.current?.hide();\r\n\r\n }\r\n const addWidget = (widgetCode) => {\r\n var position = EvaluateNewWidgetPosition();\r\n props.openAddEditWidget({ TypeCode: widgetCode, StartPotistion: `${position.x},${position.y}`, EndPosition: `${position.w},${position.h}` } as ReactWidgetPM);\r\n\r\n }\r\n const EvaluateNewWidgetPosition = () => {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"].map(e=>e.Layout);\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, w: newWidgetWidth, h: newWidgetHeight };\r\n }\r\n const editDesign = () => {\r\n setIsInEditMode(true)\r\n dashboardMoreButtonToggle?.current?.hide();\r\n console.log(WidgetTypes)\r\n setBeforEditDashbord(currentDashbord);\r\n }\r\n const save = () => {\r\n setIsInEditMode(false)\r\n\r\n props.onSaveDashboard(currentDashbord)\r\n }\r\n\r\n const cancelSave = () => {\r\n setIsInEditMode(false)\r\n props.dataBinding.onGetDashboard.next(beforEditDashbord);\r\n }\r\n\r\n const changeDashboard = (event) => {\r\n if (event.value == currentDashbord?.Id)\r\n return;\r\n var dasboard = dashbords.find(e => e.Id == event.value);\r\n\r\n props.onChangeDashboard(dasboard);\r\n props.dataBinding.onGetDashboard.next(dasboard);\r\n\r\n }\r\n\r\n const applyLayouts = (dashbord: ReactDashboardPM | undefined) => {\r\n if ((!dashbord?.Widgets))\r\n return;\r\n var layout: { lg: ReactWidgetPM[] } = { lg: [] };\r\n dashbord?.Widgets.map(widget => {\r\n widget.Layout = {\r\n minH: 5,\r\n minW: 3,\r\n i: widget.Id,\r\n w: +widget.EndPosition.split(',')[0],\r\n h: +widget.EndPosition.split(',')[1],\r\n x: +widget.StartPotistion.split(',')[0],\r\n y: +widget.StartPotistion.split(',')[1],\r\n }\r\n layout.lg.push(widget\r\n\r\n )\r\n });\r\n setLayouts(layout);\r\n\r\n }\r\n const updateWidgets = (layouts: Layouts) => {\r\n console.log('updateWidgets = (layouts:Layouts', layouts)\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n\r\n currentDashbord?.Widgets.forEach(widget => {\r\n widget.StartPotistion = `${layoutsDic[widget.Id].x},${layoutsDic[widget.Id].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.Id].w},${layoutsDic[widget.Id].h}`;\r\n });\r\n }\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n\r\n <div className='dl-dashboard-header dl-card'>\r\n <div className='dl-flex-row'>\r\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n >\r\n <Ripple />\r\n </Button>\r\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => EditDashBoard()}>Edit</div>\r\n <div onClick={editDesign}>Edit Design</div>\r\n\r\n </div>\r\n </OverlayPanel >\r\n </div>\r\n <div className='dl-flex-row'>\r\n {!isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n\r\n <div style={{ width: \"210px\" }}>\r\n <Dropdown\r\n value={[]}\r\n options={dashbords}\r\n optionValue=\"Id\"\r\n optionLabel=\"Name\"\r\n onChange={changeDashboard}\r\n placeholder=\"Choose Dashboard\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\r\n className=\"dl-dashboard-add p-button-rounded p-button-success\" />\r\n </div>\r\n : null}\r\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\r\n\r\n\r\n\r\n {isInEditMode ?\r\n <div className='dl-flex-row'>\r\n\r\n <Button\r\n label=\"Cancel\"\r\n className=\"p-button-text\"\r\n onClick={cancelSave}\r\n />\r\n <Button\r\n label=\"Save\"\r\n form=\"frm\"\r\n // icon=\"pi pi-check\"\r\n onClick={save}\r\n autoFocus\r\n />\r\n\r\n <div style={{ width: '192px', marginLeft: '15px' }}>\r\n <Dropdown\r\n value={selectedWidget}\r\n options={WidgetTypes}\r\n optionValue=\"Code\"\r\n optionLabel=\"Name\"\r\n onChange={(e) => addWidget(e.value)}\r\n placeholder=\"Add Component\"\r\n optionDisabled={(option) => {\r\n return option?.Disabled;\r\n }}\r\n scrollHeight=\"300px\"\r\n />\r\n </div>\r\n </div>\r\n : null}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onLayoutChange={updateWidgets} dashboardLayouts={layouts} openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n\r\n )\r\n}\r\nexport default Dashboard;"],"names":["Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","ApexChart","props","lineOptoins","series","name","data","options","chart","height","type","zoom","enabled","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","categories","barOptoins","plotOptions","bar","horizontal","position","offsetX","style","fontSize","show","width","tooltip","shared","intersect","pieOptoins","labels","donutOptoins","responsive","breakpoint","legend","offsetY","getChartOptions","widget","TypeCode","args","React","ReactApexChart","WidgetCard","state","moreBtnToggle","useRef","console","log","el","className","key","i","Title","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","createLayout","layout","lg","dashboardLayouts","map","w","Layout","array12","Array","from","fill","savedWidgets","getFromStorage","minimumPlaceholderRowsCount","useState","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","dateFilter","widgets","setWidgets","placeholderRows","setPlaceholderRows","useEffect","onLayoutChange","UpdatePlaceholderDimensions","deletePanel","id","itemIndex","findIndex","d","splice","_","reject","SaveGrid","saveToStorage","editWidget","openEditWidget","value","setTimeout","window","localStorage","setItem","JSON","stringify","getItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","encodeURIComponent","DashBoardService","_ApiServices","getDataByFilters","tableName","add","WidgetTypeListService","getAll","Dashboard","newWidgetWidth","newWidgetHeight","dashbords","setDashbords","currentDashbord","setCurrentDashbord","beforEditDashbord","setBeforEditDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","createRef","dashboardService","widgetTypeListService","getWidgetTypes","dataBinding","onGetDashboard","subscribe","applyLayouts","onGetAllDashboards","then","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","EvaluateNewWidgetPosition","openAddEditWidget","StartPotistion","x","y","EndPosition","h","widgetYPosition","widgetXPosition","maxY","reduce","max","widgetsRow","filter","lastWidgetStartXPosition","apply","a","lastWidget","find","lastWidgetEndXPosition","availableHorizontalSlots","editDesign","save","onSaveDashboard","cancelSave","next","changeDashboard","event","Id","dasboard","onChangeDashboard","dashbord","Widgets","minH","minW","push","updateWidgets","layoutsDic","forEach","sizeType","Name","Ripple","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logitude-dashboard-library",
3
- "version": "1.2.45",
3
+ "version": "1.2.46",
4
4
  "description": "Made with create-react-library",
5
5
  "author": "logitude",
6
6
  "license": "MIT",