logitude-dashboard-library 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/features/Dashboard/DashboardDesigner.d.ts +23 -63
- package/dist/features/Dashboard/WidgetCard.d.ts +0 -1
- package/dist/index.css +117 -74
- package/dist/index.d.ts +2 -3
- package/dist/index.js +280 -366
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +281 -367
- package/dist/index.modern.js.map +1 -1
- package/dist/index.test.d.ts +0 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import React__default, { useRef, createRef, createElement } from 'react';
|
|
1
|
+
import React__default, { useRef, useState, createRef, createElement } from 'react';
|
|
2
2
|
import 'react-grid-layout/css/styles.css';
|
|
3
|
-
import 'primereact/resources/themes/lara-light-indigo/theme.css';
|
|
4
|
-
import 'primereact/resources/primereact.min.css';
|
|
5
|
-
import 'primeicons/primeicons.css';
|
|
6
|
-
import 'line-awesome/dist/line-awesome/css/line-awesome.min.css';
|
|
7
3
|
import { WidthProvider, Responsive } from 'react-grid-layout';
|
|
8
4
|
import { Button } from 'primereact/button';
|
|
9
5
|
import _ from 'lodash';
|
|
@@ -994,333 +990,105 @@ var WidgetCard = function WidgetCard(props, state) {
|
|
|
994
990
|
var ResponsiveReactGridLayout = WidthProvider(Responsive);
|
|
995
991
|
var newWidgetWidth = 3;
|
|
996
992
|
|
|
997
|
-
var DashboardDesigner =
|
|
998
|
-
|
|
993
|
+
var DashboardDesigner = function DashboardDesigner() {
|
|
994
|
+
var _useState = useState(createRef()),
|
|
995
|
+
moreButtonToggle = _useState[0];
|
|
999
996
|
|
|
1000
|
-
|
|
1001
|
-
var _this;
|
|
1002
|
-
|
|
1003
|
-
_this = _React$Component.call(this, props) || this;
|
|
1004
|
-
_this.widgetComponents = [{
|
|
1005
|
-
type: "Bar",
|
|
1006
|
-
component: BarChartComponent
|
|
1007
|
-
}, {
|
|
1008
|
-
type: "Column",
|
|
1009
|
-
component: ColumnChartComponent
|
|
1010
|
-
}, {
|
|
1011
|
-
type: "Pie",
|
|
1012
|
-
component: PieChartComponent
|
|
1013
|
-
}, {
|
|
1014
|
-
type: "Mixed",
|
|
1015
|
-
component: MixedChartComponent
|
|
1016
|
-
}, {
|
|
1017
|
-
type: "Timeline",
|
|
1018
|
-
component: TimelineChartComponent
|
|
1019
|
-
}, {
|
|
1020
|
-
type: "Candle",
|
|
1021
|
-
component: CandleChartComponent
|
|
1022
|
-
}, {
|
|
1023
|
-
type: "Area",
|
|
1024
|
-
component: AreaChartComponent
|
|
1025
|
-
}];
|
|
1026
|
-
_this.showMsg = false;
|
|
1027
|
-
|
|
1028
|
-
_this.deletePanel = function (i) {
|
|
1029
|
-
var layout = _this.state.layouts["lg"];
|
|
1030
|
-
var itemIndex = layout.findIndex(function (d) {
|
|
1031
|
-
return d.i === i;
|
|
1032
|
-
});
|
|
1033
|
-
layout.splice(itemIndex, 1);
|
|
1034
|
-
|
|
1035
|
-
_this.setState({
|
|
1036
|
-
layouts: {
|
|
1037
|
-
lg: [].concat(layout)
|
|
1038
|
-
},
|
|
1039
|
-
widgets: _.reject(_this.state.widgets, {
|
|
1040
|
-
i: i
|
|
1041
|
-
})
|
|
1042
|
-
});
|
|
1043
|
-
|
|
1044
|
-
_this.SaveGrid();
|
|
1045
|
-
};
|
|
1046
|
-
|
|
1047
|
-
_this.editWidget = function (widget) {
|
|
1048
|
-
_this.widgetToEdit = widget;
|
|
1049
|
-
|
|
1050
|
-
_this.toggleDialog();
|
|
1051
|
-
};
|
|
1052
|
-
|
|
1053
|
-
_this.addPanel = function (newWidget) {
|
|
1054
|
-
var newWidgetPosition = _this.EvaluateNewWidgetPosition();
|
|
997
|
+
var _useState2 = useState(createRef());
|
|
1055
998
|
|
|
1056
|
-
|
|
1057
|
-
return wc.type === newWidget.WidgetType;
|
|
1058
|
-
});
|
|
1059
|
-
|
|
1060
|
-
var randomIndex = _this.getRandomInt(100, 999);
|
|
1061
|
-
|
|
1062
|
-
var newPanel = {
|
|
1063
|
-
i: "" + randomIndex,
|
|
1064
|
-
x: newWidgetPosition.x,
|
|
1065
|
-
y: newWidgetPosition.y,
|
|
1066
|
-
w: newWidgetWidth,
|
|
1067
|
-
h: 5,
|
|
1068
|
-
minH: 5,
|
|
1069
|
-
minW: 3
|
|
1070
|
-
};
|
|
999
|
+
var _useState3 = useState(createRef());
|
|
1071
1000
|
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
_this.onCancelButton = function () {
|
|
1097
|
-
_this.widgetToEdit = null;
|
|
1098
|
-
|
|
1099
|
-
_this.toggleDialog();
|
|
1100
|
-
};
|
|
1101
|
-
|
|
1102
|
-
_this.saveToStorage = function (key, value) {
|
|
1103
|
-
_this.setState({
|
|
1104
|
-
showMsg: true
|
|
1105
|
-
});
|
|
1106
|
-
|
|
1107
|
-
setTimeout(function () {
|
|
1108
|
-
_this.setState({
|
|
1109
|
-
showMsg: false
|
|
1110
|
-
});
|
|
1111
|
-
}, 2000);
|
|
1112
|
-
window.localStorage.setItem(key, JSON.stringify(value));
|
|
1113
|
-
};
|
|
1114
|
-
|
|
1115
|
-
_this.getFromStorage = function (key) {
|
|
1116
|
-
var layout = window.localStorage.getItem(key);
|
|
1117
|
-
return JSON.parse(layout);
|
|
1118
|
-
};
|
|
1119
|
-
|
|
1120
|
-
_this.moreButtonToggle = createRef();
|
|
1121
|
-
_this.widgetButtonToggle = createRef();
|
|
1122
|
-
_this.addWidgetButtonToggle = createRef();
|
|
1123
|
-
|
|
1124
|
-
var savedLayouts = _this.getFromStorage("grid-layout");
|
|
1125
|
-
|
|
1126
|
-
var savedWidgets = _this.getFromStorage("grid-widgets");
|
|
1127
|
-
|
|
1128
|
-
_this.state = {
|
|
1129
|
-
layouts: savedLayouts || {
|
|
1130
|
-
lg: []
|
|
1131
|
-
},
|
|
1132
|
-
showMsg: false,
|
|
1133
|
-
dateFilter: null,
|
|
1134
|
-
displayDialog: false,
|
|
1135
|
-
dashboardTitle: "",
|
|
1136
|
-
widgets: savedWidgets || [],
|
|
1137
|
-
placeholderRows: 10
|
|
1138
|
-
};
|
|
1139
|
-
return _this;
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
var _proto = DashboardDesigner.prototype;
|
|
1143
|
-
|
|
1144
|
-
_proto.componentDidUpdate = function componentDidUpdate(prevState) {
|
|
1145
|
-
this.UpdatePlaceholderDimensions(prevState);
|
|
1146
|
-
};
|
|
1147
|
-
|
|
1148
|
-
_proto.UpdatePlaceholderDimensions = function UpdatePlaceholderDimensions(prevState) {
|
|
1149
|
-
var minimumPlaceholderRowsCount = 10;
|
|
1150
|
-
var prevPlaceholderRows = prevState.placeholderRows;
|
|
1151
|
-
var gridElementHeight = document.getElementsByClassName('react-grid-layout')[0].clientHeight;
|
|
1152
|
-
var newPlaceholderRows = Math.floor(gridElementHeight / DashboardDesigner.layoutGridProps.rowHeight);
|
|
1153
|
-
newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? 10 : newPlaceholderRows;
|
|
1154
|
-
if (prevPlaceholderRows != newPlaceholderRows) this.setState({
|
|
1155
|
-
placeholderRows: newPlaceholderRows
|
|
1156
|
-
});
|
|
1157
|
-
};
|
|
1158
|
-
|
|
1159
|
-
_proto.onLayoutChange = function onLayoutChange(layouts) {
|
|
1160
|
-
this.saveToStorage("grid-layout", layouts);
|
|
1161
|
-
this.saveToStorage("grid-widgets", this.state.widgets);
|
|
1162
|
-
this.setState({
|
|
1163
|
-
layouts: layouts
|
|
1164
|
-
});
|
|
1165
|
-
};
|
|
1166
|
-
|
|
1167
|
-
_proto.EvaluateNewWidgetPosition = function EvaluateNewWidgetPosition() {
|
|
1168
|
-
var widgetYPosition = 0;
|
|
1169
|
-
var widgetXPosition = 0;
|
|
1170
|
-
var layout = this.state.layouts["lg"];
|
|
1171
|
-
var maxY = layout.reduce(function (max, widget) {
|
|
1172
|
-
if (widget.y > max) max = widget.y;
|
|
1173
|
-
return max;
|
|
1174
|
-
}, 0);
|
|
1175
|
-
|
|
1176
|
-
var _loop = function _loop(y) {
|
|
1177
|
-
var widgetsRow = layout.filter(function (d) {
|
|
1178
|
-
return d.y == y;
|
|
1179
|
-
});
|
|
1180
|
-
var lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(function (a) {
|
|
1181
|
-
return a.x;
|
|
1182
|
-
}));
|
|
1183
|
-
var lastWidget = widgetsRow.find(function (a) {
|
|
1184
|
-
return a.x == lastWidgetStartXPosition;
|
|
1185
|
-
});
|
|
1186
|
-
|
|
1187
|
-
if (lastWidget) {
|
|
1188
|
-
var lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;
|
|
1189
|
-
var availableHorizontalSlots = DashboardDesigner.layoutGridProps.cols.lg - lastWidgetEndXPosition;
|
|
1190
|
-
|
|
1191
|
-
if (availableHorizontalSlots >= newWidgetWidth) {
|
|
1192
|
-
widgetYPosition = y;
|
|
1193
|
-
widgetXPosition = lastWidgetEndXPosition;
|
|
1194
|
-
return {
|
|
1195
|
-
v: {
|
|
1196
|
-
x: widgetXPosition,
|
|
1197
|
-
y: widgetYPosition
|
|
1198
|
-
}
|
|
1199
|
-
};
|
|
1200
|
-
} else {
|
|
1201
|
-
widgetYPosition = y + 1;
|
|
1202
|
-
}
|
|
1203
|
-
} else {
|
|
1204
|
-
widgetYPosition = y + 1;
|
|
1205
|
-
}
|
|
1206
|
-
};
|
|
1207
|
-
|
|
1208
|
-
for (var y = 0; y <= maxY; y++) {
|
|
1209
|
-
var _ret = _loop(y);
|
|
1001
|
+
var _useState4 = useState([{
|
|
1002
|
+
type: "Bar",
|
|
1003
|
+
component: BarChartComponent
|
|
1004
|
+
}, {
|
|
1005
|
+
type: "Column",
|
|
1006
|
+
component: ColumnChartComponent
|
|
1007
|
+
}, {
|
|
1008
|
+
type: "Pie",
|
|
1009
|
+
component: PieChartComponent
|
|
1010
|
+
}, {
|
|
1011
|
+
type: "Mixed",
|
|
1012
|
+
component: MixedChartComponent
|
|
1013
|
+
}, {
|
|
1014
|
+
type: "Timeline",
|
|
1015
|
+
component: TimelineChartComponent
|
|
1016
|
+
}, {
|
|
1017
|
+
type: "Candle",
|
|
1018
|
+
component: CandleChartComponent
|
|
1019
|
+
}, {
|
|
1020
|
+
type: "Area",
|
|
1021
|
+
component: AreaChartComponent
|
|
1022
|
+
}]),
|
|
1023
|
+
widgetComponents = _useState4[0];
|
|
1210
1024
|
|
|
1211
|
-
|
|
1212
|
-
|
|
1025
|
+
var savedLayouts = getFromStorage("grid-layout");
|
|
1026
|
+
var savedWidgets = getFromStorage("grid-widgets");
|
|
1213
1027
|
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1028
|
+
var _useState5 = useState(savedLayouts || {
|
|
1029
|
+
lg: []
|
|
1030
|
+
}),
|
|
1031
|
+
layouts = _useState5[0],
|
|
1032
|
+
setLayouts = _useState5[1];
|
|
1219
1033
|
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
this.saveToStorage("grid-widgets", this.state.widgets);
|
|
1223
|
-
};
|
|
1034
|
+
var _useState6 = useState(false),
|
|
1035
|
+
setShowMsg = _useState6[1];
|
|
1224
1036
|
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
};
|
|
1037
|
+
var _useState7 = useState(undefined),
|
|
1038
|
+
dateFilter = _useState7[0],
|
|
1039
|
+
setDateFilter = _useState7[1];
|
|
1229
1040
|
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
if (newToken && newToken != "") localStorage.setItem("token", newToken || "");
|
|
1234
|
-
};
|
|
1041
|
+
var _useState8 = useState(false),
|
|
1042
|
+
displayDialog = _useState8[0],
|
|
1043
|
+
setDisplayDialog = _useState8[1];
|
|
1235
1044
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
var newTitle = prompt("Title:");
|
|
1239
|
-
widget.title = newTitle;
|
|
1240
|
-
this.setState(this.state.widgets);
|
|
1241
|
-
this.SaveGrid();
|
|
1242
|
-
};
|
|
1045
|
+
var _useState9 = useState(""),
|
|
1046
|
+
dashboardTitle = _useState9[0];
|
|
1243
1047
|
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1048
|
+
var _useState10 = useState(savedWidgets || []),
|
|
1049
|
+
widgets = _useState10[0],
|
|
1050
|
+
setWidgets = _useState10[1];
|
|
1247
1051
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
return d.i === el.i;
|
|
1251
|
-
});
|
|
1252
|
-
};
|
|
1052
|
+
var _useState11 = useState(10),
|
|
1053
|
+
placeholderRows = _useState11[0];
|
|
1253
1054
|
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
displayDialog: !this.state.displayDialog
|
|
1257
|
-
});
|
|
1258
|
-
};
|
|
1055
|
+
var _useState12 = useState(),
|
|
1056
|
+
selectedWidget = _useState12[0];
|
|
1259
1057
|
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
if (menuButtons) {
|
|
1264
|
-
var isHidden = menuButtons.className.includes("hidden");
|
|
1265
|
-
menuButtons.className = isHidden ? "" : "hidden";
|
|
1266
|
-
}
|
|
1267
|
-
};
|
|
1268
|
-
|
|
1269
|
-
_proto.getRandomInt = function getRandomInt(min, max) {
|
|
1270
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
1271
|
-
};
|
|
1272
|
-
|
|
1273
|
-
_proto.renderNewWidgetDialog = function renderNewWidgetDialog() {
|
|
1274
|
-
return React__default.createElement(Dialog, {
|
|
1275
|
-
header: this.widgetToEdit ? "Edit Chart" : "New Chart",
|
|
1276
|
-
visible: this.state.displayDialog,
|
|
1277
|
-
onHide: this.toggleDialog.bind(this),
|
|
1278
|
-
breakpoints: {
|
|
1279
|
-
"850px": "95vw",
|
|
1280
|
-
"600px": "100vw"
|
|
1281
|
-
},
|
|
1282
|
-
style: {
|
|
1283
|
-
width: "800px"
|
|
1284
|
-
}
|
|
1285
|
-
}, React__default.createElement(NewWidget, {
|
|
1286
|
-
onOkButton: this.onOkButton,
|
|
1287
|
-
onCancelButton: this.onCancelButton,
|
|
1288
|
-
widget: this.widgetToEdit
|
|
1289
|
-
}));
|
|
1290
|
-
};
|
|
1291
|
-
|
|
1292
|
-
_proto.renderPageHeader = function renderPageHeader() {
|
|
1293
|
-
var _this2 = this;
|
|
1058
|
+
var _useState13 = useState(null),
|
|
1059
|
+
widgetToEdit = _useState13[0],
|
|
1060
|
+
setWidgetToEdit = _useState13[1];
|
|
1294
1061
|
|
|
1062
|
+
var renderPageHeader = function renderPageHeader() {
|
|
1295
1063
|
return React__default.createElement("header", {
|
|
1296
1064
|
className: "dashboard-header"
|
|
1297
|
-
}, React__default.createElement("div", null, React__default.createElement("h1", null,
|
|
1065
|
+
}, React__default.createElement("div", null, React__default.createElement("h1", null, dashboardTitle || "Dashboard"), React__default.createElement(Button, {
|
|
1298
1066
|
icon: "las la-ellipsis-v",
|
|
1299
1067
|
onClick: function onClick(e) {
|
|
1300
|
-
var
|
|
1068
|
+
var _moreButtonToggle$cur;
|
|
1301
1069
|
|
|
1302
|
-
return (
|
|
1070
|
+
return moreButtonToggle === null || moreButtonToggle === void 0 ? void 0 : (_moreButtonToggle$cur = moreButtonToggle.current) === null || _moreButtonToggle$cur === void 0 ? void 0 : _moreButtonToggle$cur.toggle(e);
|
|
1303
1071
|
},
|
|
1304
1072
|
className: "p-button-lg p-button-rounded p-button-text"
|
|
1305
1073
|
}, React__default.createElement(Ripple, null)), React__default.createElement(OverlayPanel, {
|
|
1306
|
-
ref:
|
|
1074
|
+
ref: moreButtonToggle,
|
|
1307
1075
|
className: "buttons-overlay"
|
|
1308
1076
|
}, React__default.createElement("div", {
|
|
1309
1077
|
className: "buttons-list"
|
|
1310
1078
|
}, React__default.createElement("div", {
|
|
1311
|
-
onClick:
|
|
1079
|
+
onClick: setToken
|
|
1312
1080
|
}, "set token"), React__default.createElement("div", {
|
|
1313
|
-
onClick:
|
|
1081
|
+
onClick: reset
|
|
1314
1082
|
}, "reset")))), React__default.createElement("div", null, React__default.createElement(Button, {
|
|
1315
1083
|
label: "<< back to dashboards",
|
|
1316
1084
|
className: "p-button-link"
|
|
1317
1085
|
}), React__default.createElement(Dropdown, {
|
|
1318
|
-
value:
|
|
1086
|
+
value: selectedWidget,
|
|
1319
1087
|
options: WidgetTypes,
|
|
1320
1088
|
optionValue: "Name",
|
|
1321
1089
|
optionLabel: "Name",
|
|
1322
1090
|
onChange: function onChange(e) {
|
|
1323
|
-
return
|
|
1091
|
+
return addComponent();
|
|
1324
1092
|
},
|
|
1325
1093
|
placeholder: "Add Component",
|
|
1326
1094
|
optionDisabled: function optionDisabled(option) {
|
|
@@ -1330,71 +1098,240 @@ var DashboardDesigner = /*#__PURE__*/function (_React$Component) {
|
|
|
1330
1098
|
})));
|
|
1331
1099
|
};
|
|
1332
1100
|
|
|
1333
|
-
|
|
1101
|
+
function addComponent(componentType) {
|
|
1102
|
+
toggleDialog();
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
function reset() {
|
|
1106
|
+
window.localStorage.clear();
|
|
1107
|
+
window.location.reload();
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
function setToken() {
|
|
1111
|
+
var token = localStorage.getItem("token");
|
|
1112
|
+
var newToken = prompt("Token: ", token || "");
|
|
1113
|
+
if (newToken && newToken != "") localStorage.setItem("token", newToken || "");
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
function renderGridWidgetsPlaceholder() {
|
|
1334
1117
|
return React__default.createElement("div", {
|
|
1335
1118
|
className: "grid grid--bordered"
|
|
1336
|
-
}, [].concat(Array(
|
|
1337
|
-
return [].concat(Array(
|
|
1119
|
+
}, [].concat(Array(placeholderRows)).map(function (e, i) {
|
|
1120
|
+
return [].concat(Array(layoutGridProps.cols.lg)).map(function (e, i) {
|
|
1338
1121
|
return React__default.createElement("div", {
|
|
1339
1122
|
style: {
|
|
1340
|
-
height:
|
|
1123
|
+
height: layoutGridProps.rowHeight
|
|
1341
1124
|
}
|
|
1342
1125
|
});
|
|
1343
1126
|
});
|
|
1344
1127
|
}));
|
|
1345
|
-
}
|
|
1128
|
+
}
|
|
1346
1129
|
|
|
1347
|
-
|
|
1348
|
-
|
|
1130
|
+
function renderLayoutGrid(layout) {
|
|
1131
|
+
function _onLayoutChange(layout, layouts) {
|
|
1132
|
+
saveToStorage("grid-layout", layouts);
|
|
1133
|
+
saveToStorage("grid-widgets", widgets);
|
|
1134
|
+
setLayouts(layouts);
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
function renderWidgetComponent(el) {
|
|
1138
|
+
var widget = FindWidget(el);
|
|
1139
|
+
|
|
1140
|
+
function deletePanel(i) {
|
|
1141
|
+
var layout = layouts["lg"];
|
|
1142
|
+
var itemIndex = layout.findIndex(function (d) {
|
|
1143
|
+
return d.i === i;
|
|
1144
|
+
});
|
|
1145
|
+
layout.splice(itemIndex, 1);
|
|
1146
|
+
setLayouts({
|
|
1147
|
+
lg: [].concat(layout)
|
|
1148
|
+
});
|
|
1149
|
+
setWidgets(_.reject(widgets, {
|
|
1150
|
+
i: i
|
|
1151
|
+
}));
|
|
1152
|
+
SaveGrid();
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
function SaveGrid() {
|
|
1156
|
+
saveToStorage("grid-layout", layouts);
|
|
1157
|
+
saveToStorage("grid-widgets", widgets);
|
|
1158
|
+
}
|
|
1349
1159
|
|
|
1350
|
-
|
|
1351
|
-
|
|
1160
|
+
function editWidget(widget) {
|
|
1161
|
+
setWidgetToEdit(widget);
|
|
1162
|
+
toggleDialog();
|
|
1163
|
+
}
|
|
1164
|
+
return React__default.createElement("div", {
|
|
1165
|
+
key: el.i
|
|
1166
|
+
}, React__default.createElement(WidgetCard, {
|
|
1167
|
+
key: el.i,
|
|
1168
|
+
widget: widget,
|
|
1169
|
+
el: el,
|
|
1170
|
+
dateFilter: dateFilter,
|
|
1171
|
+
editBtnClicked: editWidget,
|
|
1172
|
+
deleteBtnClicked: deletePanel
|
|
1173
|
+
}));
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
function FindWidget(el) {
|
|
1177
|
+
return widgets.find(function (d) {
|
|
1178
|
+
return d.i === el.i;
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
return React__default.createElement(ResponsiveReactGridLayout, Object.assign({}, layoutGridProps, {
|
|
1183
|
+
layouts: layouts,
|
|
1352
1184
|
compactType: "vertical",
|
|
1353
|
-
onLayoutChange: function onLayoutChange(layouts) {
|
|
1354
|
-
return
|
|
1185
|
+
onLayoutChange: function onLayoutChange(layout, layouts) {
|
|
1186
|
+
return _onLayoutChange(layout, layouts);
|
|
1355
1187
|
}
|
|
1356
1188
|
}), _.map(layout, function (el) {
|
|
1357
|
-
return
|
|
1189
|
+
return renderWidgetComponent(el);
|
|
1358
1190
|
}));
|
|
1359
|
-
}
|
|
1191
|
+
}
|
|
1360
1192
|
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
},
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
el: el,
|
|
1369
|
-
dateFilter: this.state.dateFilter,
|
|
1370
|
-
editBtnClicked: this.editWidget,
|
|
1371
|
-
deleteBtnClicked: this.deletePanel
|
|
1372
|
-
}));
|
|
1373
|
-
};
|
|
1193
|
+
function saveToStorage(key, value) {
|
|
1194
|
+
setShowMsg(true);
|
|
1195
|
+
setTimeout(function () {
|
|
1196
|
+
setShowMsg(false);
|
|
1197
|
+
}, 2000);
|
|
1198
|
+
window.localStorage.setItem(key, JSON.stringify(value));
|
|
1199
|
+
}
|
|
1374
1200
|
|
|
1375
|
-
|
|
1376
|
-
var
|
|
1201
|
+
function getFromStorage(key) {
|
|
1202
|
+
var layout = window.localStorage.getItem(key);
|
|
1203
|
+
return JSON.parse(layout);
|
|
1204
|
+
}
|
|
1377
1205
|
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1206
|
+
function toggleDialog() {
|
|
1207
|
+
setDisplayDialog(!displayDialog);
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
function renderNewWidgetDialog() {
|
|
1211
|
+
function addPanel(newWidget) {
|
|
1212
|
+
var newWidgetPosition = EvaluateNewWidgetPosition();
|
|
1213
|
+
var widgetComponent = widgetComponents.find(function (wc) {
|
|
1214
|
+
return wc.type === newWidget.WidgetType;
|
|
1215
|
+
});
|
|
1216
|
+
var randomIndex = getRandomInt(100, 999);
|
|
1217
|
+
var newPanel = {
|
|
1218
|
+
i: "" + randomIndex,
|
|
1219
|
+
x: newWidgetPosition.x,
|
|
1220
|
+
y: newWidgetPosition.y,
|
|
1221
|
+
w: newWidgetWidth,
|
|
1222
|
+
h: 5,
|
|
1223
|
+
minH: 5,
|
|
1224
|
+
minW: 3
|
|
1225
|
+
};
|
|
1226
|
+
widgets.push(_extends({
|
|
1227
|
+
i: "" + randomIndex,
|
|
1228
|
+
title: newWidget.WidgetName,
|
|
1229
|
+
component: widgetComponent === null || widgetComponent === void 0 ? void 0 : widgetComponent.component
|
|
1230
|
+
}, newWidget));
|
|
1231
|
+
setLayouts({
|
|
1232
|
+
lg: layouts["lg"].concat(newPanel)
|
|
1233
|
+
});
|
|
1234
|
+
setWidgets(widgets);
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
function EvaluateNewWidgetPosition() {
|
|
1238
|
+
var widgetYPosition = 0;
|
|
1239
|
+
var widgetXPosition = 0;
|
|
1240
|
+
var layout = layouts["lg"];
|
|
1241
|
+
var maxY = layout.reduce(function (max, widget) {
|
|
1242
|
+
if (widget.y > max) max = widget.y;
|
|
1243
|
+
return max;
|
|
1244
|
+
}, 0);
|
|
1245
|
+
|
|
1246
|
+
var _loop = function _loop(y) {
|
|
1247
|
+
var widgetsRow = layout.filter(function (d) {
|
|
1248
|
+
return d.y == y;
|
|
1249
|
+
});
|
|
1250
|
+
var lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(function (a) {
|
|
1251
|
+
return a.x;
|
|
1252
|
+
}));
|
|
1253
|
+
var lastWidget = widgetsRow.find(function (a) {
|
|
1254
|
+
return a.x == lastWidgetStartXPosition;
|
|
1386
1255
|
});
|
|
1256
|
+
|
|
1257
|
+
if (lastWidget) {
|
|
1258
|
+
var lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;
|
|
1259
|
+
var availableHorizontalSlots = layoutGridProps.cols.lg - lastWidgetEndXPosition;
|
|
1260
|
+
|
|
1261
|
+
if (availableHorizontalSlots >= newWidgetWidth) {
|
|
1262
|
+
widgetYPosition = y;
|
|
1263
|
+
widgetXPosition = lastWidgetEndXPosition;
|
|
1264
|
+
return {
|
|
1265
|
+
v: {
|
|
1266
|
+
x: widgetXPosition,
|
|
1267
|
+
y: widgetYPosition
|
|
1268
|
+
}
|
|
1269
|
+
};
|
|
1270
|
+
} else {
|
|
1271
|
+
widgetYPosition = y + 1;
|
|
1272
|
+
}
|
|
1273
|
+
} else {
|
|
1274
|
+
widgetYPosition = y + 1;
|
|
1275
|
+
}
|
|
1276
|
+
};
|
|
1277
|
+
|
|
1278
|
+
for (var y = 0; y <= maxY; y++) {
|
|
1279
|
+
var _ret = _loop(y);
|
|
1280
|
+
|
|
1281
|
+
if (typeof _ret === "object") return _ret.v;
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
return {
|
|
1285
|
+
x: widgetXPosition,
|
|
1286
|
+
y: widgetYPosition
|
|
1287
|
+
};
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
function onOkButton(data) {
|
|
1291
|
+
setWidgetToEdit(null);
|
|
1292
|
+
toggleDialog();
|
|
1293
|
+
addPanel(data);
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
function onCancelButton() {
|
|
1297
|
+
setWidgetToEdit(null);
|
|
1298
|
+
toggleDialog();
|
|
1299
|
+
}
|
|
1300
|
+
return React__default.createElement(Dialog, {
|
|
1301
|
+
header: widgetToEdit ? "Edit Chart" : "New Chart",
|
|
1302
|
+
visible: displayDialog,
|
|
1303
|
+
onHide: toggleDialog,
|
|
1304
|
+
breakpoints: {
|
|
1305
|
+
"850px": "95vw",
|
|
1306
|
+
"600px": "100vw"
|
|
1387
1307
|
},
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
},
|
|
1392
|
-
|
|
1308
|
+
style: {
|
|
1309
|
+
width: "800px"
|
|
1310
|
+
}
|
|
1311
|
+
}, React__default.createElement(NewWidget, {
|
|
1312
|
+
onOkButton: onOkButton,
|
|
1313
|
+
onCancelButton: onCancelButton,
|
|
1314
|
+
widget: widgetToEdit
|
|
1315
|
+
}));
|
|
1316
|
+
}
|
|
1393
1317
|
|
|
1394
|
-
|
|
1395
|
-
|
|
1318
|
+
function getRandomInt(min, max) {
|
|
1319
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
return React__default.createElement("div", null, renderPageHeader(), React__default.createElement(Calendar, {
|
|
1323
|
+
value: dateFilter,
|
|
1324
|
+
showIcon: true,
|
|
1325
|
+
onChange: function onChange(e) {
|
|
1326
|
+
return setDateFilter(e.value);
|
|
1327
|
+
},
|
|
1328
|
+
placeholder: "filter by date..."
|
|
1329
|
+
}), React__default.createElement("div", {
|
|
1330
|
+
className: "grid-container"
|
|
1331
|
+
}, renderGridWidgetsPlaceholder(), renderLayoutGrid(layouts["lg"])), renderNewWidgetDialog());
|
|
1332
|
+
};
|
|
1396
1333
|
|
|
1397
|
-
|
|
1334
|
+
var layoutGridProps = {
|
|
1398
1335
|
rowHeight: 50,
|
|
1399
1336
|
className: "layout",
|
|
1400
1337
|
cols: {
|
|
@@ -1425,33 +1362,10 @@ var WidgetTypes = [{
|
|
|
1425
1362
|
Name: "Gauge",
|
|
1426
1363
|
Disabled: true
|
|
1427
1364
|
}];
|
|
1428
|
-
var widgetComponents = [{
|
|
1429
|
-
type: "Bar",
|
|
1430
|
-
component: BarChartComponent
|
|
1431
|
-
}, {
|
|
1432
|
-
type: "Column",
|
|
1433
|
-
component: ColumnChartComponent
|
|
1434
|
-
}, {
|
|
1435
|
-
type: "Pie",
|
|
1436
|
-
component: PieChartComponent
|
|
1437
|
-
}, {
|
|
1438
|
-
type: "Mixed",
|
|
1439
|
-
component: MixedChartComponent
|
|
1440
|
-
}, {
|
|
1441
|
-
type: "Timeline",
|
|
1442
|
-
component: TimelineChartComponent
|
|
1443
|
-
}, {
|
|
1444
|
-
type: "Candle",
|
|
1445
|
-
component: CandleChartComponent
|
|
1446
|
-
}, {
|
|
1447
|
-
type: "Area",
|
|
1448
|
-
component: AreaChartComponent
|
|
1449
|
-
}];
|
|
1450
1365
|
|
|
1451
|
-
var
|
|
1452
|
-
return createElement("div", null, createElement(
|
|
1366
|
+
var Dashboard = function Dashboard() {
|
|
1367
|
+
return createElement("div", null, createElement(DashboardDesigner, null));
|
|
1453
1368
|
};
|
|
1454
1369
|
|
|
1455
|
-
export default
|
|
1456
|
-
export { ExampleComponent };
|
|
1370
|
+
export default Dashboard;
|
|
1457
1371
|
//# sourceMappingURL=index.modern.js.map
|