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