@dexteel/mesf-core 5.5.0 → 5.5.2
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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +28 -0
- package/dist/context/ProvidersLoader.d.ts +4 -0
- package/dist/context/UTLSettingContext.d.ts +1 -0
- package/dist/context/userContext.d.ts +1 -0
- package/dist/index.esm.js +136 -116
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [5.5.2](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v5.5.1...@dexteel/mesf-core-v5.5.2) (2025-07-01)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **treePickerControl:** fix control supporting 0 ([d63e1ee](https://github.com/dexteel/mesf-core-frontend/commit/d63e1ee0d26afd0067e10ffd4555c6b03cb44f01))
|
|
9
|
+
* **treePickerControl:** fix control supporting 0 ([bcfb5db](https://github.com/dexteel/mesf-core-frontend/commit/bcfb5dbc5094f6ecbcebf127182dcb9839023bd6))
|
|
10
|
+
|
|
11
|
+
## [5.5.1] - 2025-06-24
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Changelog
|
|
16
|
+
|
|
17
|
+
## [5.5.1](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v5.5.0...@dexteel/mesf-core-v5.5.1) (2025-06-24)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **ApiService:** replace fetch with axios for file upload ([a29ceb9](https://github.com/dexteel/mesf-core-frontend/commit/a29ceb9b1a251cf2664975cdae0dab4ed396ff00))
|
|
23
|
+
* enhance app initialization ([9e3eb46](https://github.com/dexteel/mesf-core-frontend/commit/9e3eb46550ae1e88d83739a84b1467fd2d547e21))
|
|
24
|
+
|
|
25
|
+
## [5.5.0] - 2025-06-18
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
1
29
|
# Changelog
|
|
2
30
|
|
|
3
31
|
## [5.5.0](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v5.4.2...@dexteel/mesf-core-v5.5.0) (2025-06-18)
|
package/dist/index.esm.js
CHANGED
|
@@ -15,8 +15,6 @@ import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
|
15
15
|
import MenuIcon from '@material-ui/icons/Menu';
|
|
16
16
|
import SettingsIcon from '@material-ui/icons/Settings';
|
|
17
17
|
import ShowChartIcon from '@material-ui/icons/ShowChart';
|
|
18
|
-
import { useComplexState } from 'use-complex-state';
|
|
19
|
-
import { createSlice } from '@reduxjs/toolkit';
|
|
20
18
|
import AccountCircleIcon from '@material-ui/icons/AccountCircle';
|
|
21
19
|
import { DndProvider } from 'react-dnd';
|
|
22
20
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
@@ -33,6 +31,8 @@ export * from '@microsoft/signalr';
|
|
|
33
31
|
import { Alert as Alert$2, Autocomplete } from '@material-ui/lab';
|
|
34
32
|
import { useForm, Controller } from 'react-hook-form';
|
|
35
33
|
import SearchIcon from '@material-ui/icons/Search';
|
|
34
|
+
import { useComplexState } from 'use-complex-state';
|
|
35
|
+
import { createSlice } from '@reduxjs/toolkit';
|
|
36
36
|
import DeleteIcon from '@material-ui/icons/Delete';
|
|
37
37
|
import FormatListBulletedSharpIcon from '@material-ui/icons/FormatListBulletedSharp';
|
|
38
38
|
import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
|
|
@@ -617,7 +617,7 @@ var TreePickerControl = function (props) {
|
|
|
617
617
|
if (!showAssetTree) {
|
|
618
618
|
setOpen(false);
|
|
619
619
|
}
|
|
620
|
-
if (newValue) {
|
|
620
|
+
if (newValue !== undefined && newValue !== null) {
|
|
621
621
|
if (onSelect !== undefined) {
|
|
622
622
|
onSelect(newValue, newDescription, findNode);
|
|
623
623
|
}
|
|
@@ -8236,22 +8236,22 @@ var MESApiService = /** @class */ (function () {
|
|
|
8236
8236
|
};
|
|
8237
8237
|
MESApiService.prototype.uploadFiles = function (selectedFiles_1) {
|
|
8238
8238
|
return __awaiter(this, arguments, void 0, function (selectedFiles, folderName) {
|
|
8239
|
-
var formData, _i, selectedFiles_2, file;
|
|
8239
|
+
var formData, _i, selectedFiles_2, file, response;
|
|
8240
8240
|
if (folderName === void 0) { folderName = ""; }
|
|
8241
8241
|
return __generator(this, function (_a) {
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8242
|
+
switch (_a.label) {
|
|
8243
|
+
case 0:
|
|
8244
|
+
formData = new FormData();
|
|
8245
|
+
for (_i = 0, selectedFiles_2 = selectedFiles; _i < selectedFiles_2.length; _i++) {
|
|
8246
|
+
file = selectedFiles_2[_i];
|
|
8247
|
+
formData.append("files", file, file.name);
|
|
8248
|
+
}
|
|
8249
|
+
formData.append("folderName", folderName);
|
|
8250
|
+
return [4 /*yield*/, axiosInstance.post("/backend/uploadFiles", formData)];
|
|
8251
|
+
case 1:
|
|
8252
|
+
response = _a.sent();
|
|
8253
|
+
return [2 /*return*/, response.data];
|
|
8246
8254
|
}
|
|
8247
|
-
formData.append("folderName", folderName);
|
|
8248
|
-
return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/uploadFiles", {
|
|
8249
|
-
method: "POST",
|
|
8250
|
-
headers: {
|
|
8251
|
-
Authorization: "Bearer " + this.TOKEN,
|
|
8252
|
-
},
|
|
8253
|
-
body: formData,
|
|
8254
|
-
}).then(function (res) { return res.json(); })];
|
|
8255
8255
|
});
|
|
8256
8256
|
});
|
|
8257
8257
|
};
|
|
@@ -9004,6 +9004,7 @@ var UserReducer = createSlice({
|
|
|
9004
9004
|
var UserContext = createContext({
|
|
9005
9005
|
state: UserReducer.getInitialState(),
|
|
9006
9006
|
actions: UserReducer.actions,
|
|
9007
|
+
isLoading: true,
|
|
9007
9008
|
});
|
|
9008
9009
|
var useUserContext = function () { return useContext(UserContext); };
|
|
9009
9010
|
var useHasPermission = function () {
|
|
@@ -9064,16 +9065,7 @@ var UserProvider = function (_a) {
|
|
|
9064
9065
|
}
|
|
9065
9066
|
},
|
|
9066
9067
|
});
|
|
9067
|
-
|
|
9068
|
-
return (React__default.createElement("div", { style: {
|
|
9069
|
-
display: "flex",
|
|
9070
|
-
justifyContent: "center",
|
|
9071
|
-
alignItems: "center",
|
|
9072
|
-
height: "100vh",
|
|
9073
|
-
} },
|
|
9074
|
-
React__default.createElement(CircularProgress, null)));
|
|
9075
|
-
}
|
|
9076
|
-
return (React__default.createElement(UserContext.Provider, { value: { state: state, actions: actions } }, children));
|
|
9068
|
+
return (React__default.createElement(UserContext.Provider, { value: { state: state, actions: actions, isLoading: !permissionsLoaded } }, children));
|
|
9077
9069
|
};
|
|
9078
9070
|
|
|
9079
9071
|
var getTokenFromLS = function () {
|
|
@@ -9683,74 +9675,6 @@ var useSearchAssets = function (setError) {
|
|
|
9683
9675
|
return { searchAssets: searchAssets };
|
|
9684
9676
|
};
|
|
9685
9677
|
|
|
9686
|
-
var UTLSettingsInitialState = {
|
|
9687
|
-
serverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
9688
|
-
settings: {},
|
|
9689
|
-
};
|
|
9690
|
-
var UTLSettingsReducer = createSlice({
|
|
9691
|
-
name: "__",
|
|
9692
|
-
initialState: UTLSettingsInitialState,
|
|
9693
|
-
reducers: {
|
|
9694
|
-
setServerTimeZone: function (state, _a) {
|
|
9695
|
-
var payload = _a.payload;
|
|
9696
|
-
state.serverTimeZone = payload;
|
|
9697
|
-
},
|
|
9698
|
-
setSetting: function (state, _a) {
|
|
9699
|
-
var payload = _a.payload;
|
|
9700
|
-
state.settings[payload.key] = payload.value;
|
|
9701
|
-
},
|
|
9702
|
-
initSettings: function (state, _a) {
|
|
9703
|
-
var payload = _a.payload;
|
|
9704
|
-
state.settings = payload.reduce(function (acc, cur) {
|
|
9705
|
-
if (cur.SettingName.trim() === "TimeZone") {
|
|
9706
|
-
var timeService = TimeService.getInstance();
|
|
9707
|
-
timeService.setTimeZone(cur.Value);
|
|
9708
|
-
}
|
|
9709
|
-
acc[cur.SettingName.trim()] = cur.Value;
|
|
9710
|
-
return acc;
|
|
9711
|
-
}, {});
|
|
9712
|
-
},
|
|
9713
|
-
},
|
|
9714
|
-
});
|
|
9715
|
-
|
|
9716
|
-
var UTLSettingsContext = createContext({
|
|
9717
|
-
state: UTLSettingsReducer.getInitialState(),
|
|
9718
|
-
actions: UTLSettingsReducer.actions,
|
|
9719
|
-
});
|
|
9720
|
-
var useUTLSettingsContext = function () { return useContext(UTLSettingsContext); };
|
|
9721
|
-
var UTLSettingsProvider = function (_a) {
|
|
9722
|
-
var children = _a.children;
|
|
9723
|
-
var _b = useComplexState({
|
|
9724
|
-
initialState: UTLSettingsReducer.getInitialState(),
|
|
9725
|
-
reducers: UTLSettingsReducer.caseReducers,
|
|
9726
|
-
}), state = _b[0], actions = _b[1];
|
|
9727
|
-
return (React__default.createElement(UTLSettingsContext.Provider, { value: { state: state, actions: actions } }, children));
|
|
9728
|
-
};
|
|
9729
|
-
|
|
9730
|
-
var useSearchUTLSettings = function (_a) {
|
|
9731
|
-
var onError = _a.onError;
|
|
9732
|
-
var initSettings = useUTLSettingsContext().actions.initSettings;
|
|
9733
|
-
var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
9734
|
-
var res, settings;
|
|
9735
|
-
return __generator(this, function (_a) {
|
|
9736
|
-
switch (_a.label) {
|
|
9737
|
-
case 0: return [4 /*yield*/, getUTLSettings()];
|
|
9738
|
-
case 1:
|
|
9739
|
-
res = _a.sent();
|
|
9740
|
-
if (res.ok) {
|
|
9741
|
-
settings = get(res, "data.tables[0].rows", []);
|
|
9742
|
-
initSettings(settings);
|
|
9743
|
-
}
|
|
9744
|
-
else {
|
|
9745
|
-
onError(res.message);
|
|
9746
|
-
}
|
|
9747
|
-
return [2 /*return*/];
|
|
9748
|
-
}
|
|
9749
|
-
});
|
|
9750
|
-
}); };
|
|
9751
|
-
return { searchUTLSettings: searchUTLSettings };
|
|
9752
|
-
};
|
|
9753
|
-
|
|
9754
9678
|
var useStyles$7 = makeStyles(function (theme) { return ({
|
|
9755
9679
|
container: {
|
|
9756
9680
|
display: "flex",
|
|
@@ -9872,22 +9796,13 @@ function Header$1(_a) {
|
|
|
9872
9796
|
var CustomNavbar = useContext(NavbarContext);
|
|
9873
9797
|
var searchAssets = useSearchAssets(setError).searchAssets;
|
|
9874
9798
|
var _f = useState(false), drawerOpen = _f[0], setDrawerOpen = _f[1];
|
|
9875
|
-
var _g = useState(false), settingsIsReady = _g[0], setSettingsIsReady = _g[1];
|
|
9876
9799
|
var hasPermissionTo = useHasPermission();
|
|
9877
|
-
var searchUTLSettings = useSearchUTLSettings({
|
|
9878
|
-
onError: setError,
|
|
9879
|
-
}).searchUTLSettings;
|
|
9880
9800
|
var userLogged = useUserContext().state.userLogged;
|
|
9881
9801
|
useEffect(function () {
|
|
9882
|
-
|
|
9883
|
-
setSettingsIsReady(true);
|
|
9884
|
-
});
|
|
9885
|
-
}, []);
|
|
9886
|
-
useEffect(function () {
|
|
9887
|
-
if (showAreaSelector && userLogged && settingsIsReady) {
|
|
9802
|
+
if (showAreaSelector && userLogged) {
|
|
9888
9803
|
searchAssets();
|
|
9889
9804
|
}
|
|
9890
|
-
}, [userLogged
|
|
9805
|
+
}, [userLogged]);
|
|
9891
9806
|
var handleDrawerToggle = function () {
|
|
9892
9807
|
setDrawerOpen(!drawerOpen);
|
|
9893
9808
|
};
|
|
@@ -14163,6 +14078,110 @@ var Navigation = function (_a) {
|
|
|
14163
14078
|
React__default.createElement(MESFMainContainer, null)));
|
|
14164
14079
|
};
|
|
14165
14080
|
|
|
14081
|
+
var useSearchUTLSettings = function (_a) {
|
|
14082
|
+
var onError = _a.onError;
|
|
14083
|
+
var initSettings = useUTLSettingsContext().actions.initSettings;
|
|
14084
|
+
var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
14085
|
+
var res, settings;
|
|
14086
|
+
return __generator(this, function (_a) {
|
|
14087
|
+
switch (_a.label) {
|
|
14088
|
+
case 0: return [4 /*yield*/, getUTLSettings()];
|
|
14089
|
+
case 1:
|
|
14090
|
+
res = _a.sent();
|
|
14091
|
+
if (res.ok) {
|
|
14092
|
+
settings = get(res, "data.tables[0].rows", []);
|
|
14093
|
+
initSettings(settings);
|
|
14094
|
+
}
|
|
14095
|
+
else {
|
|
14096
|
+
onError(res.message);
|
|
14097
|
+
}
|
|
14098
|
+
return [2 /*return*/];
|
|
14099
|
+
}
|
|
14100
|
+
});
|
|
14101
|
+
}); };
|
|
14102
|
+
return { searchUTLSettings: searchUTLSettings };
|
|
14103
|
+
};
|
|
14104
|
+
|
|
14105
|
+
var UTLSettingsInitialState = {
|
|
14106
|
+
serverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
14107
|
+
settings: {},
|
|
14108
|
+
};
|
|
14109
|
+
var UTLSettingsReducer = createSlice({
|
|
14110
|
+
name: "__",
|
|
14111
|
+
initialState: UTLSettingsInitialState,
|
|
14112
|
+
reducers: {
|
|
14113
|
+
setServerTimeZone: function (state, _a) {
|
|
14114
|
+
var payload = _a.payload;
|
|
14115
|
+
state.serverTimeZone = payload;
|
|
14116
|
+
},
|
|
14117
|
+
setSetting: function (state, _a) {
|
|
14118
|
+
var payload = _a.payload;
|
|
14119
|
+
state.settings[payload.key] = payload.value;
|
|
14120
|
+
},
|
|
14121
|
+
initSettings: function (state, _a) {
|
|
14122
|
+
var payload = _a.payload;
|
|
14123
|
+
state.settings = payload.reduce(function (acc, cur) {
|
|
14124
|
+
if (cur.SettingName.trim() === "TimeZone") {
|
|
14125
|
+
var timeService = TimeService.getInstance();
|
|
14126
|
+
timeService.setTimeZone(cur.Value);
|
|
14127
|
+
}
|
|
14128
|
+
acc[cur.SettingName.trim()] = cur.Value;
|
|
14129
|
+
return acc;
|
|
14130
|
+
}, {});
|
|
14131
|
+
},
|
|
14132
|
+
},
|
|
14133
|
+
});
|
|
14134
|
+
|
|
14135
|
+
var UTLSettingsContext = createContext({
|
|
14136
|
+
state: UTLSettingsReducer.getInitialState(),
|
|
14137
|
+
actions: UTLSettingsReducer.actions,
|
|
14138
|
+
isLoading: true,
|
|
14139
|
+
});
|
|
14140
|
+
var useUTLSettingsContext = function () { return useContext(UTLSettingsContext); };
|
|
14141
|
+
var UTLSettingsProvider = function (_a) {
|
|
14142
|
+
var children = _a.children;
|
|
14143
|
+
var _b = useComplexState({
|
|
14144
|
+
initialState: UTLSettingsReducer.getInitialState(),
|
|
14145
|
+
reducers: UTLSettingsReducer.caseReducers,
|
|
14146
|
+
}), state = _b[0], actions = _b[1];
|
|
14147
|
+
var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
|
|
14148
|
+
var searchUTLSettings = useSearchUTLSettings({
|
|
14149
|
+
onError: console.error,
|
|
14150
|
+
}).searchUTLSettings;
|
|
14151
|
+
useEffect(function () {
|
|
14152
|
+
setIsLoading(true);
|
|
14153
|
+
searchUTLSettings().then(function () {
|
|
14154
|
+
setIsLoading(false);
|
|
14155
|
+
});
|
|
14156
|
+
}, []);
|
|
14157
|
+
useMesfRealtime({
|
|
14158
|
+
onReceiveMessage: function (author, message) {
|
|
14159
|
+
if (message === "UTL.GetSettings") {
|
|
14160
|
+
searchUTLSettings().then(function () {
|
|
14161
|
+
// setIsLoading(false);
|
|
14162
|
+
});
|
|
14163
|
+
}
|
|
14164
|
+
},
|
|
14165
|
+
});
|
|
14166
|
+
return (React__default.createElement(UTLSettingsContext.Provider, { value: { state: state, actions: actions, isLoading: isLoading } }, children));
|
|
14167
|
+
};
|
|
14168
|
+
|
|
14169
|
+
var ProvidersLoader = function (_a) {
|
|
14170
|
+
var children = _a.children;
|
|
14171
|
+
var isUsersLoading = useUserContext().isLoading;
|
|
14172
|
+
var isSettingsLoading = useUTLSettingsContext().isLoading;
|
|
14173
|
+
if (isUsersLoading || isSettingsLoading) {
|
|
14174
|
+
return (React__default.createElement("div", { style: {
|
|
14175
|
+
display: "flex",
|
|
14176
|
+
justifyContent: "center",
|
|
14177
|
+
alignItems: "center",
|
|
14178
|
+
height: "100vh",
|
|
14179
|
+
} },
|
|
14180
|
+
React__default.createElement(CircularProgress, null)));
|
|
14181
|
+
}
|
|
14182
|
+
return React__default.createElement(React__default.Fragment, null, children);
|
|
14183
|
+
};
|
|
14184
|
+
|
|
14166
14185
|
var themeMESF = createTheme({
|
|
14167
14186
|
palette: {
|
|
14168
14187
|
type: "light",
|
|
@@ -14222,17 +14241,18 @@ function MESFMain(_a) {
|
|
|
14222
14241
|
React__default.createElement(AuthProvider, { authConfig: authentication },
|
|
14223
14242
|
React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$2 },
|
|
14224
14243
|
React__default.createElement(UserProvider, null,
|
|
14225
|
-
React__default.createElement(
|
|
14226
|
-
React__default.createElement(
|
|
14227
|
-
React__default.createElement(
|
|
14228
|
-
React__default.createElement(
|
|
14229
|
-
React__default.createElement(
|
|
14230
|
-
React__default.createElement(
|
|
14231
|
-
React__default.createElement(
|
|
14232
|
-
React__default.createElement(
|
|
14233
|
-
React__default.createElement(
|
|
14234
|
-
React__default.createElement(
|
|
14235
|
-
|
|
14244
|
+
React__default.createElement(UTLSettingsProvider, null,
|
|
14245
|
+
React__default.createElement(ProvidersLoader, null,
|
|
14246
|
+
React__default.createElement(AssetProvider, { plantAssetId: plantAssetId },
|
|
14247
|
+
React__default.createElement(RouterContext.Provider, { value: routes },
|
|
14248
|
+
React__default.createElement(NavbarContext.Provider, { value: navbar },
|
|
14249
|
+
React__default.createElement(ConfigurationContext.Provider, { value: configurations },
|
|
14250
|
+
React__default.createElement(ShiftNavigatorProvider, null,
|
|
14251
|
+
React__default.createElement(ContextMenuMESFProvider, null,
|
|
14252
|
+
React__default.createElement(BrowserRouter, { basename: base },
|
|
14253
|
+
React__default.createElement(Routes, null,
|
|
14254
|
+
React__default.createElement(Route, { path: "/logout", element: React__default.createElement(Logout, null) })),
|
|
14255
|
+
React__default.createElement(Navigation, { showAreaSelector: showAreaSelector, showTrendingsIcon: showTrendingsIcon, navbarTitle: navbarTitle, byPassHeaderRoutes: byPassHeaderRoutes }))))))))))))))));
|
|
14236
14256
|
}
|
|
14237
14257
|
|
|
14238
14258
|
var useDefaultAreaId = function (setError) {
|