@dexteel/mesf-core 7.13.3 → 7.15.0

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.
Files changed (25) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +19 -0
  3. package/dist/configuration/pages/job/repositories/JobsRepository.d.ts +1 -1
  4. package/dist/configuration/pages/log/LogsPage.d.ts +0 -8
  5. package/dist/configuration/pages/log/models/Tag.d.ts +1 -0
  6. package/dist/configuration/pages/log/repositories/LogsRepository.d.ts +1 -1
  7. package/dist/configuration/pages/log/repositories/TagsRepository.d.ts +2 -2
  8. package/dist/configuration/pages/profiles/repositories/ProfilesRepository.d.ts +5 -3
  9. package/dist/configuration/pages/realtime/repositories/config-repository.d.ts +1 -1
  10. package/dist/configuration/pages/shifCrew/repositories/ShiftsCrewsRepository.d.ts +1 -1
  11. package/dist/configuration/pages/users/repositories/UsersRepository.d.ts +4 -4
  12. package/dist/controls/asset-filter/repositories/AssetRepository.d.ts +1 -1
  13. package/dist/controls/shift-selector/repositories/ShiftRepository.d.ts +3 -1
  14. package/dist/hooks/useFrontendVersionCheck.d.ts +17 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.esm.js +222 -133
  17. package/dist/index.esm.js.map +1 -1
  18. package/dist/pages/logbook/entry/repository/LogbookRepository.d.ts +4 -2
  19. package/dist/pages/logbook/report/repository/LogbookRepository.d.ts +2 -2
  20. package/dist/pages/section-logbook/entry/repository/LogbookRepository.d.ts +6 -5
  21. package/dist/pages/section-logbook/report/repository/LogbookRepository.d.ts +2 -3
  22. package/dist/pages/section-logbook/shared/repository/SectionRepository.d.ts +2 -3
  23. package/dist/pages/trendings-v2/components/chart/repository/TrendingRepositoryV2.d.ts +7 -3
  24. package/dist/repositorie/MESF-frontend-Repositorie.d.ts +2 -2
  25. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -1141,9 +1141,9 @@ class MESApiService {
1141
1141
  }
1142
1142
  }
1143
1143
 
1144
- const getUsers = () => __awaiter(void 0, void 0, void 0, function* () {
1144
+ const getUsers = (signal) => __awaiter(void 0, void 0, void 0, function* () {
1145
1145
  const apiService = new MESApiService();
1146
- const resp = yield apiService.callV2("[SEC].[GetUsers]", []);
1146
+ const resp = yield apiService.callV2("[SEC].[GetUsers]", [], signal);
1147
1147
  if (resp.ok) {
1148
1148
  return get(resp, "data.tables[0].rows", []);
1149
1149
  }
@@ -1151,13 +1151,13 @@ const getUsers = () => __awaiter(void 0, void 0, void 0, function* () {
1151
1151
  throw new Error(resp.message || "Error fetching users");
1152
1152
  }
1153
1153
  });
1154
- const getDataUser = (_a) => __awaiter(void 0, [_a], void 0, function* ({ userId }) {
1154
+ const getDataUser = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
1155
1155
  const apiService = new MESApiService();
1156
1156
  const parameters = [
1157
- { name: "UserId", value: userId },
1157
+ { name: "UserId", value: params.userId },
1158
1158
  { name: "UserName", value: null },
1159
1159
  ];
1160
- const resp = yield apiService.callV2("[SEC].[GetUser]", parameters);
1160
+ const resp = yield apiService.callV2("[SEC].[GetUser]", parameters, signal);
1161
1161
  if (resp.ok) {
1162
1162
  return get(resp, "data.tables[0].rows", []);
1163
1163
  }
@@ -1205,9 +1205,9 @@ const upsertUser = (user) => __awaiter(void 0, void 0, void 0, function* () {
1205
1205
  throw new Error(resp.message || "Error when upsert user data");
1206
1206
  }
1207
1207
  });
1208
- const getAuthTypes = () => __awaiter(void 0, void 0, void 0, function* () {
1208
+ const getAuthTypes = (signal) => __awaiter(void 0, void 0, void 0, function* () {
1209
1209
  const apiService = new MESApiService();
1210
- const resp = yield apiService.callV2("[SEC].[GetAuthTypes]", []);
1210
+ const resp = yield apiService.callV2("[SEC].[GetAuthTypes]", [], signal);
1211
1211
  if (resp.ok) {
1212
1212
  return get(resp, "data.tables[0].rows", 0);
1213
1213
  }
@@ -1532,9 +1532,9 @@ const dxtServerTimeZone = () => TimeService.getInstance().getServerTimeZone;
1532
1532
  const dxtToUTC = TimeService.getInstance().toUTC;
1533
1533
  const dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
1534
1534
 
1535
- const getAssets$1 = () => __awaiter(void 0, void 0, void 0, function* () {
1535
+ const getAssets$1 = (signal) => __awaiter(void 0, void 0, void 0, function* () {
1536
1536
  const apiService = new MESApiService();
1537
- const resp = yield apiService.callV2("[MES].[GetAssets]", []);
1537
+ const resp = yield apiService.callV2("[MES].[GetAssets]", [], signal);
1538
1538
  if (resp.ok) {
1539
1539
  return get(resp, "data.tables[0].rows", []);
1540
1540
  }
@@ -1542,9 +1542,9 @@ const getAssets$1 = () => __awaiter(void 0, void 0, void 0, function* () {
1542
1542
  throw new Error(resp.message || "Error fetching assets");
1543
1543
  }
1544
1544
  });
1545
- const getUTLSettings = () => __awaiter(void 0, void 0, void 0, function* () {
1545
+ const getUTLSettings = (signal) => __awaiter(void 0, void 0, void 0, function* () {
1546
1546
  const apiService = new MESApiService();
1547
- const resp = yield apiService.callV2("[UTL].[GetSettings]", []);
1547
+ const resp = yield apiService.callV2("[UTL].[GetSettings]", [], signal);
1548
1548
  if (resp.ok) {
1549
1549
  return get(resp, "data.tables[0].rows", []);
1550
1550
  }
@@ -1564,7 +1564,7 @@ const upsertDefaultAreaId = (UserId, DefaultAreaId) => __awaiter(void 0, void 0,
1564
1564
  const useSearchAssets = () => {
1565
1565
  return useQuery({
1566
1566
  queryKey: ["assets"],
1567
- queryFn: () => getAssets$1(),
1567
+ queryFn: ({ signal }) => getAssets$1(signal),
1568
1568
  });
1569
1569
  };
1570
1570
 
@@ -3254,7 +3254,7 @@ const AssetSelector = ({ value, onChange, disabled = false, }) => {
3254
3254
  const searchAuthTypes = () => {
3255
3255
  return useQuery({
3256
3256
  queryKey: ["authTypes"],
3257
- queryFn: () => getAuthTypes(),
3257
+ queryFn: ({ signal }) => getAuthTypes(signal),
3258
3258
  });
3259
3259
  };
3260
3260
  const ITEM_HEIGHT$1 = 48;
@@ -3306,9 +3306,9 @@ const AuthTypeSelector = ({ value, onChange, disabled }) => {
3306
3306
  };
3307
3307
 
3308
3308
  //fx obtener profiles
3309
- const getProfiles = () => __awaiter(void 0, void 0, void 0, function* () {
3309
+ const getProfiles = (signal) => __awaiter(void 0, void 0, void 0, function* () {
3310
3310
  const apiService = new MESApiService();
3311
- const resp = yield apiService.callV2("[SEC].[GetProfiles]", []);
3311
+ const resp = yield apiService.callV2("[SEC].[GetProfiles]", [], signal);
3312
3312
  if (resp.ok) {
3313
3313
  return get(resp, "data.tables[0].rows", []);
3314
3314
  }
@@ -3328,10 +3328,10 @@ const upsertProfile = (_a) => __awaiter(void 0, [_a], void 0, function* ({ Profi
3328
3328
  }
3329
3329
  });
3330
3330
  // PROFILES PROCEDURES
3331
- const getActions = () => __awaiter(void 0, void 0, void 0, function* () {
3331
+ const getActions = (signal) => __awaiter(void 0, void 0, void 0, function* () {
3332
3332
  const apiService = new MESApiService();
3333
3333
  const parameters = [];
3334
- const resp = yield apiService.callV2("[SEC].[GetActions]", parameters);
3334
+ const resp = yield apiService.callV2("[SEC].[GetActions]", parameters, signal);
3335
3335
  if (resp.ok) {
3336
3336
  return get(resp, "data.tables[0].rows", []);
3337
3337
  }
@@ -3339,10 +3339,12 @@ const getActions = () => __awaiter(void 0, void 0, void 0, function* () {
3339
3339
  throw new Error(resp.message || "Error fetching actions");
3340
3340
  }
3341
3341
  });
3342
- const getActionsByProfileId = (profileId) => __awaiter(void 0, void 0, void 0, function* () {
3342
+ const getActionsByProfileId = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
3343
3343
  const apiService = new MESApiService();
3344
- const parameters = [{ name: "ProfileId", value: profileId }];
3345
- const resp = yield apiService.callV2("[SEC].[GetActionsByProfileId]", parameters);
3344
+ const parameters = [
3345
+ { name: "ProfileId", value: params.profileId },
3346
+ ];
3347
+ const resp = yield apiService.callV2("[SEC].[GetActionsByProfileId]", parameters, signal);
3346
3348
  if (resp.ok) {
3347
3349
  return get(resp, "data.tables[0].rows", []);
3348
3350
  }
@@ -3604,7 +3606,7 @@ const DeleteProfile = ({ profile, show, onHide, suffixTitle, }) => {
3604
3606
  const searchActions = () => {
3605
3607
  return useQuery({
3606
3608
  queryKey: ["actions"],
3607
- queryFn: () => getActions(),
3609
+ queryFn: ({ signal }) => getActions(signal),
3608
3610
  });
3609
3611
  };
3610
3612
  const DataTable = ({ actionsOfProfile, onSelectionChanged }) => {
@@ -3698,9 +3700,9 @@ const DataTable = ({ actionsOfProfile, onSelectionChanged }) => {
3698
3700
  const searchActionsOfProfile = ({ profileId, }) => {
3699
3701
  return useQuery({
3700
3702
  queryKey: ["actions", profileId],
3701
- queryFn: () => {
3703
+ queryFn: ({ signal }) => {
3702
3704
  if (profileId) {
3703
- return getActionsByProfileId(profileId);
3705
+ return getActionsByProfileId({ profileId }, signal);
3704
3706
  }
3705
3707
  else {
3706
3708
  return [];
@@ -3960,7 +3962,7 @@ const useTableData$7 = ({ setProfileId, setModalProceduresProfile, setModalDelet
3960
3962
  const useSearchProfiles = () => {
3961
3963
  return useQuery({
3962
3964
  queryKey: ["profiles"],
3963
- queryFn: () => getProfiles(),
3965
+ queryFn: ({ signal }) => getProfiles(signal),
3964
3966
  });
3965
3967
  };
3966
3968
  const TableProfiles = () => {
@@ -4065,7 +4067,7 @@ const TableProfiles = () => {
4065
4067
  const searchProfiles = () => {
4066
4068
  return useQuery({
4067
4069
  queryKey: ["profiles"],
4068
- queryFn: () => getProfiles(),
4070
+ queryFn: ({ signal }) => getProfiles(signal),
4069
4071
  });
4070
4072
  };
4071
4073
  const Profiles = () => {
@@ -4222,7 +4224,7 @@ const CreateUser = ({ show, onHide, suffixTitle }) => {
4222
4224
  const useSearchUser = ({ userId }) => {
4223
4225
  return useQuery({
4224
4226
  queryKey: ["user", userId],
4225
- queryFn: () => getDataUser({ userId: userId }),
4227
+ queryFn: ({ signal }) => getDataUser({ userId: userId }, signal),
4226
4228
  enabled: !!userId,
4227
4229
  });
4228
4230
  };
@@ -4855,7 +4857,7 @@ const useUsersOptionsFunctions = ({ setUserId, setShowEditModal, setShowDeleteMo
4855
4857
  const useSearchUsers = () => {
4856
4858
  return useQuery({
4857
4859
  queryKey: ["users"],
4858
- queryFn: () => getUsers(),
4860
+ queryFn: ({ signal }) => getUsers(signal),
4859
4861
  });
4860
4862
  };
4861
4863
  const TableUsers = () => {
@@ -4984,7 +4986,7 @@ const TableUsers = () => {
4984
4986
  const searchUser = ({ userId }) => {
4985
4987
  return useQuery({
4986
4988
  queryKey: ["user", userId],
4987
- queryFn: () => getDataUser({ userId: userId }),
4989
+ queryFn: ({ signal }) => getDataUser({ userId: userId }, signal),
4988
4990
  enabled: !!userId,
4989
4991
  });
4990
4992
  };
@@ -6753,9 +6755,9 @@ const ExcelIcon = (props) => {
6753
6755
  };
6754
6756
 
6755
6757
  //const moment = getMomentTz();
6756
- const getJobs = () => __awaiter(void 0, void 0, void 0, function* () {
6758
+ const getJobs = (signal) => __awaiter(void 0, void 0, void 0, function* () {
6757
6759
  const apiService = new MESApiService();
6758
- const resp = yield apiService.callV2("[SYSTEM].[GetJobsStatus]", []);
6760
+ const resp = yield apiService.callV2("[SYSTEM].[GetJobsStatus]", [], signal);
6759
6761
  if (resp.ok) {
6760
6762
  let rows = get(resp, "data.tables[0].rows", []);
6761
6763
  rows = rows.map((job) => (Object.assign(Object.assign({}, job), { LastStarted: job.LastStarted
@@ -7131,7 +7133,7 @@ const useJobsTableData = ({ setShowModal, setJobSelected, showContextMenu, }) =>
7131
7133
  const useSearchJobs = () => {
7132
7134
  return useQuery({
7133
7135
  queryKey: ["jobs"],
7134
- queryFn: () => getJobs(),
7136
+ queryFn: ({ signal }) => getJobs(signal),
7135
7137
  });
7136
7138
  };
7137
7139
  const CustomStatusPanel$1 = ({ handleNew }) => (React.createElement(IconButton$1, { onClick: handleNew, color: "primary", style: { marginLeft: -15 } },
@@ -7341,29 +7343,28 @@ const JobsPage = (props) => {
7341
7343
  React.createElement(Jobs, null)));
7342
7344
  };
7343
7345
 
7344
- // Get all tags that have been used in logs
7345
- const getLogTags = (context) => __awaiter(void 0, void 0, void 0, function* () {
7346
+ const getLogTags = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
7346
7347
  var _a;
7347
7348
  const apiService = new MESApiService();
7348
7349
  const tomorrow = new Date();
7349
7350
  tomorrow.setDate(tomorrow.getDate() + 1);
7350
- const parameters = context
7351
+ const parameters = params
7351
7352
  ? [
7352
- { name: "Start", value: context.startDate },
7353
- { name: "End", value: (_a = context.endDate) !== null && _a !== void 0 ? _a : tomorrow },
7353
+ { name: "Start", value: params.startDate },
7354
+ { name: "End", value: (_a = params.endDate) !== null && _a !== void 0 ? _a : tomorrow },
7354
7355
  {
7355
7356
  name: "LogTypeCode",
7356
- value: context.logTypeCode === "A" ? null : context.logTypeCode,
7357
+ value: params.logTypeCode === "A" ? null : params.logTypeCode,
7357
7358
  },
7358
7359
  {
7359
7360
  name: "TagFilters",
7360
- value: context.tagFilters.length > 0
7361
- ? JSON.stringify(context.tagFilters)
7361
+ value: params.tagFilters.length > 0
7362
+ ? JSON.stringify(params.tagFilters)
7362
7363
  : null,
7363
7364
  },
7364
7365
  ]
7365
7366
  : [];
7366
- const resp = yield apiService.callV2("[SYSTEM].[GetLogTags]", parameters);
7367
+ const resp = yield apiService.callV2("[SYSTEM].[GetLogTags]", parameters, signal);
7367
7368
  if (resp.ok) {
7368
7369
  const rows = get(resp, "data.tables[0].rows", []);
7369
7370
  return rows;
@@ -7372,24 +7373,23 @@ const getLogTags = (context) => __awaiter(void 0, void 0, void 0, function* () {
7372
7373
  throw new Error(resp.message || "Error fetching log tags");
7373
7374
  }
7374
7375
  });
7375
- // Get all distinct values for a specific tag
7376
- const getLogTagValues = (tagName, context) => __awaiter(void 0, void 0, void 0, function* () {
7377
- var _a;
7376
+ const getLogTagValues = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
7377
+ var _a, _b;
7378
7378
  const apiService = new MESApiService();
7379
7379
  const tomorrow = new Date();
7380
7380
  tomorrow.setDate(tomorrow.getDate() + 1);
7381
7381
  // When getting values for a tag, exclude that tag from the filter context
7382
7382
  // so we show all possible values that match the OTHER filters
7383
- const otherTagFilters = context === null || context === void 0 ? void 0 : context.tagFilters.filter((f) => f.TagName !== tagName);
7383
+ const otherTagFilters = params === null || params === void 0 ? void 0 : params.tagFilters.filter((f) => f.TagName !== params.tagName);
7384
7384
  const parameters = [
7385
- { name: "TagName", value: tagName },
7386
- ...(context
7385
+ { name: "TagName", value: (_a = params === null || params === void 0 ? void 0 : params.tagName) !== null && _a !== void 0 ? _a : "" },
7386
+ ...(params
7387
7387
  ? [
7388
- { name: "Start", value: context.startDate },
7389
- { name: "End", value: (_a = context.endDate) !== null && _a !== void 0 ? _a : tomorrow },
7388
+ { name: "Start", value: params.startDate },
7389
+ { name: "End", value: (_b = params.endDate) !== null && _b !== void 0 ? _b : tomorrow },
7390
7390
  {
7391
7391
  name: "LogTypeCode",
7392
- value: context.logTypeCode === "A" ? null : context.logTypeCode,
7392
+ value: params.logTypeCode === "A" ? null : params.logTypeCode,
7393
7393
  },
7394
7394
  {
7395
7395
  name: "TagFilters",
@@ -7400,7 +7400,7 @@ const getLogTagValues = (tagName, context) => __awaiter(void 0, void 0, void 0,
7400
7400
  ]
7401
7401
  : []),
7402
7402
  ];
7403
- const resp = yield apiService.callV2("[SYSTEM].[GetLogTagValues]", parameters);
7403
+ const resp = yield apiService.callV2("[SYSTEM].[GetLogTagValues]", parameters, signal);
7404
7404
  if (resp.ok) {
7405
7405
  const rows = get(resp, "data.tables[0].rows", []);
7406
7406
  return rows;
@@ -7419,9 +7419,11 @@ const useSearchLogTags = ({ startDate, endDate, logTypeCode, tagFilters, }) => {
7419
7419
  startDate.getTime(),
7420
7420
  endDate === null || endDate === void 0 ? void 0 : endDate.getTime(),
7421
7421
  logTypeCode,
7422
- tagFilters,
7422
+ JSON.stringify(tagFilters),
7423
7423
  ],
7424
- queryFn: () => getLogTags({ startDate, endDate, logTypeCode, tagFilters }),
7424
+ queryFn: ({ signal }) => getLogTags({ startDate, endDate, logTypeCode, tagFilters }, signal),
7425
+ enabled: !!startDate,
7426
+ staleTime: 10000,
7425
7427
  });
7426
7428
  };
7427
7429
  const useSearchLogTagValues = ({ tagName, startDate, endDate, logTypeCode, tagFilters, }) => {
@@ -7429,13 +7431,14 @@ const useSearchLogTagValues = ({ tagName, startDate, endDate, logTypeCode, tagFi
7429
7431
  queryKey: [
7430
7432
  "logTagValues",
7431
7433
  tagName,
7432
- startDate,
7433
- endDate,
7434
+ startDate.getTime(),
7435
+ endDate === null || endDate === void 0 ? void 0 : endDate.getTime(),
7434
7436
  logTypeCode,
7435
- tagFilters,
7437
+ JSON.stringify(tagFilters),
7436
7438
  ],
7437
- queryFn: () => getLogTagValues(tagName, { startDate, endDate, logTypeCode, tagFilters }),
7439
+ queryFn: ({ signal }) => getLogTagValues({ tagName, startDate, endDate, logTypeCode, tagFilters }, signal),
7438
7440
  enabled: !!tagName,
7441
+ staleTime: 10000,
7439
7442
  });
7440
7443
  };
7441
7444
  const TagFilter = ({ tagFilters, setTagFilters, filterContext, }) => {
@@ -7726,18 +7729,20 @@ const useLogTableData = () => {
7726
7729
  };
7727
7730
 
7728
7731
  //fx obtener logs
7729
- const getLogs = (_a) => __awaiter(void 0, [_a], void 0, function* ({ startDate, endDate, logTypeCode, tagFilters, }) {
7732
+ const getLogs = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
7730
7733
  const apiService = new MESApiService();
7731
7734
  const tomorrow = new Date();
7732
7735
  tomorrow.setDate(tomorrow.getDate() + 1);
7733
- const end = endDate ? endDate : tomorrow;
7734
- const tagFiltersJson = tagFilters && tagFilters.length > 0 ? JSON.stringify(tagFilters) : null;
7736
+ const end = params.endDate ? params.endDate : tomorrow;
7737
+ const tagFiltersJson = params.tagFilters && params.tagFilters.length > 0
7738
+ ? JSON.stringify(params.tagFilters)
7739
+ : null;
7735
7740
  const parameters = [
7736
- { name: "Start", value: startDate },
7741
+ { name: "Start", value: params.startDate },
7737
7742
  { name: "End", value: end },
7738
7743
  {
7739
7744
  name: "LogTypeCode",
7740
- value: logTypeCode === "A" ? null : logTypeCode,
7745
+ value: params.logTypeCode === "A" ? null : params.logTypeCode,
7741
7746
  },
7742
7747
  { name: "TagFilters", value: tagFiltersJson },
7743
7748
  ];
@@ -7852,14 +7857,22 @@ const useLogsOptionsFunctions = ({ setSelectedLog, setShowLogModal, handleResetB
7852
7857
 
7853
7858
  const useSearchLogs = ({ startDate, endDate, logTypeCode, autoRefresh, tagFilters, }) => {
7854
7859
  return useQuery({
7855
- queryKey: ["logs", startDate, endDate, logTypeCode, tagFilters],
7856
- queryFn: () => getLogs({
7860
+ queryKey: [
7861
+ "logs",
7862
+ startDate.getTime(),
7863
+ endDate === null || endDate === void 0 ? void 0 : endDate.getTime(),
7864
+ logTypeCode,
7865
+ JSON.stringify(tagFilters),
7866
+ ],
7867
+ queryFn: ({ signal }) => getLogs({
7857
7868
  startDate,
7858
7869
  endDate,
7859
7870
  logTypeCode,
7860
7871
  tagFilters,
7861
7872
  }),
7862
7873
  refetchInterval: autoRefresh ? 5000 : false,
7874
+ enabled: !!startDate && (!!endDate || autoRefresh),
7875
+ staleTime: 10000,
7863
7876
  });
7864
7877
  };
7865
7878
  const getLogTypeByCodeId = (logTypeCodeId) => {
@@ -7944,6 +7957,12 @@ const TableLogs = () => {
7944
7957
  setShowLogModal,
7945
7958
  handleResetButtonClick,
7946
7959
  });
7960
+ const filterContext = useMemo(() => ({
7961
+ startDate,
7962
+ endDate,
7963
+ logTypeCode: logTypeCode.join(","),
7964
+ tagFilters,
7965
+ }), [startDate, endDate, logTypeCode, tagFilters]);
7947
7966
  useEffect(() => {
7948
7967
  registerConfig({
7949
7968
  id: "TableLogs",
@@ -8011,12 +8030,7 @@ const TableLogs = () => {
8011
8030
  React.createElement(Grid2, { size: { md: 1, xs: 12 }, style: { paddingTop: 8 } },
8012
8031
  React.createElement(Button, { variant: "contained", color: "inherit", onClick: handleResetButtonClick, fullWidth: true }, "Reset")),
8013
8032
  React.createElement(Grid2, { size: { md: 12, xs: 12 }, sx: { mt: 1 } },
8014
- React.createElement(TagFilter, { tagFilters: tagFilters, setTagFilters: setTagFilters, filterContext: {
8015
- startDate,
8016
- endDate,
8017
- logTypeCode: logTypeCode.join(","),
8018
- tagFilters,
8019
- } })))))),
8033
+ React.createElement(TagFilter, { tagFilters: tagFilters, setTagFilters: setTagFilters, filterContext: filterContext })))))),
8020
8034
  React.createElement(Grid2, { size: { md: 12, xs: 12 }, style: {
8021
8035
  height: "70vh",
8022
8036
  } },
@@ -8044,9 +8058,9 @@ const ProfilesPage = (props) => {
8044
8058
  return React.createElement(Profiles, null);
8045
8059
  };
8046
8060
 
8047
- const getShiftParameters = () => __awaiter(void 0, void 0, void 0, function* () {
8061
+ const getShiftParameters = (signal) => __awaiter(void 0, void 0, void 0, function* () {
8048
8062
  const apiService = new MESApiService();
8049
- const resp = yield apiService.callV2("[MES].[GetShiftParameters]", []);
8063
+ const resp = yield apiService.callV2("[MES].[GetShiftParameters]", [], signal);
8050
8064
  if (resp.ok) {
8051
8065
  return get(resp, "data.tables[0].rows", []);
8052
8066
  }
@@ -8755,7 +8769,7 @@ const useTableData$5 = ({ setShiftSelected, setOpenModalEditShift, setOpenModalD
8755
8769
  const useSearchShifts = () => {
8756
8770
  return useQuery({
8757
8771
  queryKey: ["shifts"],
8758
- queryFn: () => getShiftParameters(),
8772
+ queryFn: ({ signal }) => getShiftParameters(signal),
8759
8773
  });
8760
8774
  };
8761
8775
  const TableShiftsCrews = () => {
@@ -9412,7 +9426,7 @@ const EditSetting = ({ settingSelected, show, onHide, suffixTitle, }) => {
9412
9426
  const useSearchSettings = () => {
9413
9427
  return useQuery({
9414
9428
  queryKey: ["settings"],
9415
- queryFn: () => getUTLSettings(),
9429
+ queryFn: ({ signal }) => getUTLSettings(signal),
9416
9430
  });
9417
9431
  };
9418
9432
  const TableSettings = () => {
@@ -9507,7 +9521,7 @@ const TableSettings = () => {
9507
9521
  const searchSettings = () => {
9508
9522
  return useQuery({
9509
9523
  queryKey: ["settings"],
9510
- queryFn: () => getUTLSettings(),
9524
+ queryFn: ({ signal }) => getUTLSettings(signal),
9511
9525
  });
9512
9526
  };
9513
9527
  const SettingsPage = () => {
@@ -9577,6 +9591,77 @@ const UTLSettingsProvider = ({ children }) => {
9577
9591
  return (React__default.createElement(UTLSettingsContext.Provider, { value: { state, actions, isLoading } }, children));
9578
9592
  };
9579
9593
 
9594
+ const useFrontendVersionCheck = ({ endpoint = "/frontend/version", intervalMs = 60000, enabled = true, onUpdate, } = {}) => {
9595
+ const [isUpdateAvailable, setIsUpdateAvailable] = useState(false);
9596
+ const [currentHash, setCurrentHash] = useState(null);
9597
+ const [error, setError] = useState(null);
9598
+ const initialHashRef = useRef(null);
9599
+ useEffect(() => {
9600
+ if (!enabled || isUpdateAvailable) {
9601
+ return;
9602
+ }
9603
+ let isDisposed = false;
9604
+ let intervalId = null;
9605
+ const loadVersion = () => __awaiter(void 0, void 0, void 0, function* () {
9606
+ try {
9607
+ const separator = endpoint.includes("?") ? "&" : "?";
9608
+ const response = yield fetch(`${endpoint}${separator}_t=${Date.now()}`, {
9609
+ cache: "no-store",
9610
+ });
9611
+ if (!response.ok) {
9612
+ throw new Error(`Version check failed with status ${response.status}`);
9613
+ }
9614
+ const payload = (yield response.json());
9615
+ if (!(payload === null || payload === void 0 ? void 0 : payload.hash)) {
9616
+ throw new Error("Version check response does not include a hash");
9617
+ }
9618
+ if (isDisposed) {
9619
+ return;
9620
+ }
9621
+ setError(null);
9622
+ setCurrentHash(payload.hash);
9623
+ if (!initialHashRef.current) {
9624
+ initialHashRef.current = payload.hash;
9625
+ return;
9626
+ }
9627
+ if (initialHashRef.current !== payload.hash) {
9628
+ setIsUpdateAvailable(true);
9629
+ onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(payload);
9630
+ if (intervalId !== null) {
9631
+ window.clearInterval(intervalId);
9632
+ }
9633
+ }
9634
+ }
9635
+ catch (requestError) {
9636
+ if (isDisposed) {
9637
+ return;
9638
+ }
9639
+ if (requestError instanceof Error) {
9640
+ setError(requestError);
9641
+ }
9642
+ else {
9643
+ setError(new Error("Unexpected error while checking frontend version"));
9644
+ }
9645
+ }
9646
+ });
9647
+ void loadVersion();
9648
+ intervalId = window.setInterval(() => {
9649
+ void loadVersion();
9650
+ }, intervalMs);
9651
+ return () => {
9652
+ isDisposed = true;
9653
+ if (intervalId !== null) {
9654
+ window.clearInterval(intervalId);
9655
+ }
9656
+ };
9657
+ }, [enabled, endpoint, intervalMs, isUpdateAvailable, onUpdate]);
9658
+ return {
9659
+ isUpdateAvailable,
9660
+ currentHash,
9661
+ error,
9662
+ };
9663
+ };
9664
+
9580
9665
  const RouterContext = createContext(() => React__default.createElement(React__default.Fragment, null));
9581
9666
  const ConfigurationContext = createContext([
9582
9667
  [],
@@ -9813,9 +9898,9 @@ const ChatComponent = () => {
9813
9898
  React__default.createElement(Button, { type: "submit", variant: "contained", color: "primary", disabled: !connectionState.isConnected || !user || !message, endIcon: React__default.createElement(Send, null), fullWidth: true, size: "medium" }, "Send"))))));
9814
9899
  };
9815
9900
 
9816
- const getQueryCacheInvalidations = () => __awaiter(void 0, void 0, void 0, function* () {
9901
+ const getQueryCacheInvalidations = (signal) => __awaiter(void 0, void 0, void 0, function* () {
9817
9902
  const apiService = new MESApiService();
9818
- const resp = yield apiService.callV2("[SYSTEM].[GetQueryCacheInvalidations]", []);
9903
+ const resp = yield apiService.callV2("[SYSTEM].[GetQueryCacheInvalidations]", [], signal);
9819
9904
  if (resp.ok) {
9820
9905
  let cacheInvalidations = get(resp, "data.tables[0].rows", []);
9821
9906
  let actions = get(resp, "data.tables[1].rows", []);
@@ -9848,7 +9933,7 @@ const upsertQueryCacheInvalidations = (_a) => __awaiter(void 0, [_a], void 0, fu
9848
9933
  const searchQueryCacheInvalidations = () => {
9849
9934
  return useQuery({
9850
9935
  queryKey: ["queryCacheInvalidations"],
9851
- queryFn: () => getQueryCacheInvalidations(),
9936
+ queryFn: ({ signal }) => getQueryCacheInvalidations(signal),
9852
9937
  });
9853
9938
  };
9854
9939
  const QueryCacheInvalidations = () => {
@@ -10793,10 +10878,10 @@ const useSeriesMinMax = (series, tagIds) => {
10793
10878
 
10794
10879
  const getIhPath = () => localStorage.getItem("ihPath") || "[mssql2022].[IH_100020].[ih]";
10795
10880
  //tags
10796
- const getTagsTree = () => __awaiter(void 0, void 0, void 0, function* () {
10881
+ const getTagsTree = (signal) => __awaiter(void 0, void 0, void 0, function* () {
10797
10882
  const apiService = new MESApiService();
10798
10883
  const parameters = [];
10799
- const resp = yield apiService.callV2(getIhPath() + ".[GetTagsTree]", parameters);
10884
+ const resp = yield apiService.callV2(getIhPath() + ".[GetTagsTree]", parameters, signal);
10800
10885
  if (resp.ok) {
10801
10886
  return get(resp, "data.tables[0].rows", []);
10802
10887
  }
@@ -10869,10 +10954,10 @@ const saveTagDefaults = (_a) => __awaiter(void 0, [_a], void 0, function* ({ tag
10869
10954
  }
10870
10955
  });
10871
10956
  //views
10872
- const getViews = (Search) => __awaiter(void 0, void 0, void 0, function* () {
10957
+ const getViews = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
10873
10958
  const apiService = new MESApiService();
10874
- const parameters = [{ name: "Search", value: Search }];
10875
- const resp = yield apiService.callV2(getIhPath() + ".[GetViews]", parameters);
10959
+ const parameters = [{ name: "Search", value: params.Search }];
10960
+ const resp = yield apiService.callV2(getIhPath() + ".[GetViews]", parameters, signal);
10876
10961
  if (resp.ok) {
10877
10962
  return get(resp, "data.tables[0].rows", []);
10878
10963
  }
@@ -10904,10 +10989,10 @@ const deleteView = (ViewId) => __awaiter(void 0, void 0, void 0, function* () {
10904
10989
  }
10905
10990
  });
10906
10991
  //viewTags
10907
- const getViewTags = (ViewId) => __awaiter(void 0, void 0, void 0, function* () {
10992
+ const getViewTags = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
10908
10993
  const apiService = new MESApiService();
10909
- const parameters = [{ name: "ViewId", value: ViewId }];
10910
- const resp = yield apiService.callV2(getIhPath() + ".[GetViewTags]", parameters);
10994
+ const parameters = [{ name: "ViewId", value: params.viewId }];
10995
+ const resp = yield apiService.callV2(getIhPath() + ".[GetViewTags]", parameters, signal);
10911
10996
  if (resp.ok) {
10912
10997
  return get(resp, "data.tables[0].rows", []);
10913
10998
  }
@@ -12200,7 +12285,7 @@ const CustomDragPreview = (props) => {
12200
12285
  const useSearchTagsTree = () => {
12201
12286
  return useQuery({
12202
12287
  queryKey: ["tagsTree-v2"],
12203
- queryFn: () => getTagsTree(),
12288
+ queryFn: ({ signal }) => getTagsTree(signal),
12204
12289
  enabled: false, // Only fetch when explicitly called
12205
12290
  });
12206
12291
  };
@@ -14934,16 +15019,16 @@ const TrendingChartV2 = ({ series = [], customOptions, isLoading = false, onChar
14934
15019
  const useSearchViews = ({ autoRefresh = false, }) => {
14935
15020
  return useQuery({
14936
15021
  queryKey: ["views-v2"],
14937
- queryFn: () => getViews(null),
15022
+ queryFn: ({ signal }) => getViews({ Search: null }, signal),
14938
15023
  refetchInterval: autoRefresh ? 10000 : false,
14939
15024
  });
14940
15025
  };
14941
15026
  const useSearchViewTags = ({ viewId }) => {
14942
15027
  return useQuery({
14943
15028
  queryKey: ["viewTags-v2", viewId],
14944
- queryFn: () => {
15029
+ queryFn: ({ signal }) => {
14945
15030
  if (viewId) {
14946
- return getViewTags(viewId);
15031
+ return getViewTags({ viewId }, signal);
14947
15032
  }
14948
15033
  return [];
14949
15034
  },
@@ -15480,13 +15565,13 @@ const upsertEntry$1 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ asset
15480
15565
  throw new Error(resp.message || "Error upserting entry");
15481
15566
  }
15482
15567
  });
15483
- const deleteEntry$1 = (EntryId) => __awaiter(void 0, void 0, void 0, function* () {
15568
+ const deleteEntry$1 = (entryId) => __awaiter(void 0, void 0, void 0, function* () {
15484
15569
  const apiService = new MESApiService();
15485
15570
  // First, get all attachments for this entry to identify files to delete
15486
15571
  let attachmentsToDelete = [];
15487
15572
  try {
15488
- if (EntryId) {
15489
- attachmentsToDelete = yield getEntryAttachments$1(EntryId);
15573
+ if (entryId) {
15574
+ attachmentsToDelete = yield getEntryAttachments$1({ entryId });
15490
15575
  }
15491
15576
  }
15492
15577
  catch (error) {
@@ -15494,7 +15579,7 @@ const deleteEntry$1 = (EntryId) => __awaiter(void 0, void 0, void 0, function* (
15494
15579
  console.warn("Failed to get attachments for entry deletion:", error);
15495
15580
  }
15496
15581
  // Delete the entry (this will cascade delete attachment records)
15497
- const parameters = [{ name: "EntryId", value: EntryId }];
15582
+ const parameters = [{ name: "EntryId", value: entryId }];
15498
15583
  const resp = yield apiService.callV2("[LB].[DeleteEntry]", parameters);
15499
15584
  if (!resp.ok) {
15500
15585
  throw new Error(resp.message || "Error deleting entry");
@@ -15529,9 +15614,11 @@ const deleteUploadFile$1 = (uploadFileId) => __awaiter(void 0, void 0, void 0, f
15529
15614
  }
15530
15615
  });
15531
15616
  // Attachment management functions
15532
- const getEntryAttachments$1 = (entryId) => __awaiter(void 0, void 0, void 0, function* () {
15617
+ const getEntryAttachments$1 = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
15533
15618
  const apiService = new MESApiService();
15534
- const parameters = [{ name: "EntryId", value: entryId }];
15619
+ const parameters = [
15620
+ { name: "EntryId", value: params.entryId },
15621
+ ];
15535
15622
  const resp = yield apiService.callV2("[LB].[GetEntryAttachments]", parameters);
15536
15623
  if (resp.ok) {
15537
15624
  let rows = get(resp, "data.tables[0].rows", []);
@@ -15819,9 +15906,9 @@ const RemoveEntryDialog$1 = ({ entry, show, onHide }) => {
15819
15906
  React__default.createElement(ErrorModal, { error: error, onHide: () => setError("") })));
15820
15907
  };
15821
15908
 
15822
- const getAssets = () => __awaiter(void 0, void 0, void 0, function* () {
15909
+ const getAssets = (signal) => __awaiter(void 0, void 0, void 0, function* () {
15823
15910
  const apiService = new MESApiService();
15824
- const resp = yield apiService.callV2("[MES].[GetAssets]", []);
15911
+ const resp = yield apiService.callV2("[MES].[GetAssets]", [], signal);
15825
15912
  if (resp.ok) {
15826
15913
  return get(resp, "data.tables[0].rows", []);
15827
15914
  }
@@ -15833,7 +15920,7 @@ const getAssets = () => __awaiter(void 0, void 0, void 0, function* () {
15833
15920
  const useAssets = (onError) => {
15834
15921
  return useQuery({
15835
15922
  queryKey: ["assets"],
15836
- queryFn: () => getAssets(),
15923
+ queryFn: ({ signal }) => getAssets(signal),
15837
15924
  onError: onError,
15838
15925
  });
15839
15926
  };
@@ -15862,15 +15949,16 @@ const AssetsFilter = ({ label = "Asset", value, onChange, filterAreaAssets = fal
15862
15949
  };
15863
15950
 
15864
15951
  const moment$d = getMomentTz();
15865
- const getShifts = (shiftId) => __awaiter(void 0, void 0, void 0, function* () {
15952
+ const getShifts = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
15953
+ var _a;
15866
15954
  const apiService = new MESApiService();
15867
15955
  const parameters = [
15868
15956
  {
15869
15957
  name: "ShiftId",
15870
- value: shiftId !== null && shiftId !== void 0 ? shiftId : null,
15958
+ value: (_a = params.shiftId) !== null && _a !== void 0 ? _a : null,
15871
15959
  },
15872
15960
  ];
15873
- const resp = yield apiService.callV2(`[MES].[GetShiftByParameters]`, parameters);
15961
+ const resp = yield apiService.callV2(`[MES].[GetShiftByParameters]`, parameters, signal);
15874
15962
  if (resp.ok) {
15875
15963
  let rows = get(resp, "data.tables[0].rows", []);
15876
15964
  rows = rows.map((row) => {
@@ -15958,7 +16046,7 @@ const ShiftAutocomplete = ({ currentShiftId, value, onShiftSelected, disabled, s
15958
16046
  const useShifts = (shiftId) => {
15959
16047
  return useQuery({
15960
16048
  queryKey: ["shifts", shiftId],
15961
- queryFn: () => getShifts(shiftId),
16049
+ queryFn: ({ signal }) => getShifts({ shiftId }, signal),
15962
16050
  });
15963
16051
  };
15964
16052
  const ShiftSelector = ({ label = "Shift - Crew", value, onChange = () => { }, fieldError, disabled = false, }) => {
@@ -16113,7 +16201,7 @@ const AttachmentModal$1 = ({ open, onClose, entryId, isEditing, entryData, onEnt
16113
16201
  // Query for fetching attachments
16114
16202
  const { data: attachments = [], isLoading, error: fetchError, } = useQuery({
16115
16203
  queryKey: ["entryAttachments", currentEntryId],
16116
- queryFn: () => getEntryAttachments$1(currentEntryId),
16204
+ queryFn: ({ signal }) => getEntryAttachments$1({ entryId: currentEntryId }),
16117
16205
  enabled: !!currentEntryId && currentEntryId > 0,
16118
16206
  });
16119
16207
  // Mutations
@@ -16409,7 +16497,7 @@ const ContentInput$1 = ({ value, onChange, isEditing, UpdateTimestamp, UpdatedBy
16409
16497
  // Query for fetching attachment count
16410
16498
  const { data: attachments = [], error: attachmentError } = useQuery({
16411
16499
  queryKey: ["entryAttachments", effectiveEntryId],
16412
- queryFn: () => getEntryAttachments$1(effectiveEntryId),
16500
+ queryFn: ({ signal }) => getEntryAttachments$1({ entryId: effectiveEntryId }),
16413
16501
  enabled: !!effectiveEntryId && effectiveEntryId > 0,
16414
16502
  retry: 1,
16415
16503
  onError: (err) => {
@@ -17128,14 +17216,14 @@ const MESFLogbookEntry$1 = () => {
17128
17216
  };
17129
17217
 
17130
17218
  const moment$9 = getMomentTz();
17131
- const getEntriesReport$1 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ startShiftId, endShiftId, assetId, }) {
17219
+ const getEntriesReport$1 = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
17132
17220
  const apiService = new MESApiService();
17133
17221
  const parameters = [
17134
- { name: "StartShiftId", value: startShiftId },
17135
- { name: "EndShiftId", value: endShiftId },
17222
+ { name: "StartShiftId", value: params.startShiftId },
17223
+ { name: "EndShiftId", value: params.endShiftId },
17136
17224
  ];
17137
- if (assetId) {
17138
- parameters.push({ name: "AssetId", value: assetId });
17225
+ if (params.assetId) {
17226
+ parameters.push({ name: "AssetId", value: params.assetId });
17139
17227
  }
17140
17228
  const resp = yield apiService.callV2("[LB].[GetEntries]", parameters);
17141
17229
  if (resp.ok) {
@@ -17155,7 +17243,7 @@ const getEntriesReport$1 = (_a) => __awaiter(void 0, [_a], void 0, function* ({
17155
17243
  const useEntriesReport$1 = ({ startShiftId, endShiftId, assetId, }) => {
17156
17244
  return useQuery({
17157
17245
  queryKey: ["entriesReport", startShiftId, endShiftId, assetId],
17158
- queryFn: () => getEntriesReport$1({ startShiftId, endShiftId, assetId }),
17246
+ queryFn: ({ signal }) => getEntriesReport$1({ startShiftId, endShiftId, assetId }),
17159
17247
  enabled: !!startShiftId && !!endShiftId && !!assetId,
17160
17248
  });
17161
17249
  };
@@ -17742,14 +17830,14 @@ const useGridDefinitions = ({ OnEdit, OnSend }) => {
17742
17830
  };
17743
17831
 
17744
17832
  const moment$6 = getMomentTz();
17745
- const getEntries = (_a) => __awaiter(void 0, [_a], void 0, function* ({ shiftId, sectionIds, signal, }) {
17833
+ const getEntries = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
17746
17834
  const apiService = new MESApiService();
17747
17835
  const parameters = [
17748
- { name: "ShiftId", value: shiftId },
17836
+ { name: "ShiftId", value: params.shiftId },
17749
17837
  ];
17750
17838
  // Pass comma-separated sectionIds for multi-select filter
17751
- if (sectionIds && sectionIds.length > 0) {
17752
- parameters.push({ name: "SectionIds", value: sectionIds.join(",") });
17839
+ if (params.sectionIds && params.sectionIds.length > 0) {
17840
+ parameters.push({ name: "SectionIds", value: params.sectionIds.join(",") });
17753
17841
  }
17754
17842
  // Use SWV.GetSectionLogbookEntries which extends LB.GetEntries with section info
17755
17843
  const resp = yield apiService.callV2("[SWV].[GetSectionLogbookEntries]", parameters, signal);
@@ -17794,13 +17882,13 @@ const upsertEntry = (_a) => __awaiter(void 0, [_a], void 0, function* ({ assetId
17794
17882
  throw new Error(resp.message || "Error upserting entry");
17795
17883
  }
17796
17884
  });
17797
- const deleteEntry = (EntryId) => __awaiter(void 0, void 0, void 0, function* () {
17885
+ const deleteEntry = (entryId) => __awaiter(void 0, void 0, void 0, function* () {
17798
17886
  const apiService = new MESApiService();
17799
17887
  // First, get all attachments for this entry to identify files to delete
17800
17888
  let attachmentsToDelete = [];
17801
17889
  try {
17802
- if (EntryId) {
17803
- attachmentsToDelete = yield getEntryAttachments(EntryId);
17890
+ if (entryId) {
17891
+ attachmentsToDelete = yield getEntryAttachments({ entryId });
17804
17892
  }
17805
17893
  }
17806
17894
  catch (error) {
@@ -17808,7 +17896,7 @@ const deleteEntry = (EntryId) => __awaiter(void 0, void 0, void 0, function* ()
17808
17896
  console.warn("Failed to get attachments for entry deletion:", error);
17809
17897
  }
17810
17898
  // Delete the entry (this will cascade delete attachment records)
17811
- const parameters = [{ name: "EntryId", value: EntryId }];
17899
+ const parameters = [{ name: "EntryId", value: entryId }];
17812
17900
  const resp = yield apiService.callV2("[LB].[DeleteEntry]", parameters);
17813
17901
  if (!resp.ok) {
17814
17902
  throw new Error(resp.message || "Error deleting entry");
@@ -17843,9 +17931,11 @@ const deleteUploadFile = (uploadFileId) => __awaiter(void 0, void 0, void 0, fun
17843
17931
  }
17844
17932
  });
17845
17933
  // Attachment management functions
17846
- const getEntryAttachments = (entryId) => __awaiter(void 0, void 0, void 0, function* () {
17934
+ const getEntryAttachments = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
17847
17935
  const apiService = new MESApiService();
17848
- const parameters = [{ name: "EntryId", value: entryId }];
17936
+ const parameters = [
17937
+ { name: "EntryId", value: params.entryId },
17938
+ ];
17849
17939
  const resp = yield apiService.callV2("[LB].[GetEntryAttachments]", parameters);
17850
17940
  if (resp.ok) {
17851
17941
  let rows = get(resp, "data.tables[0].rows", []);
@@ -17909,7 +17999,7 @@ const deleteUploadFileInBackground = (uploadFileId) => __awaiter(void 0, void 0,
17909
17999
  const useEntries = ({ shiftId, sectionIds }) => {
17910
18000
  return useQuery({
17911
18001
  queryKey: ["entries", shiftId, sectionIds],
17912
- queryFn: ({ signal }) => getEntries({ shiftId, sectionIds, signal }),
18002
+ queryFn: ({ signal }) => getEntries({ shiftId, sectionIds }, signal),
17913
18003
  });
17914
18004
  };
17915
18005
  const routeLogbookEntry = "/logbook/entry";
@@ -18437,7 +18527,7 @@ const AttachmentModal = ({ open, onClose, entryId, isEditing, entryData, onEntry
18437
18527
  // Query for fetching attachments
18438
18528
  const { data: attachments = [], isLoading, error: fetchError, } = useQuery({
18439
18529
  queryKey: ["entryAttachments", currentEntryId],
18440
- queryFn: () => getEntryAttachments(currentEntryId),
18530
+ queryFn: ({ signal }) => getEntryAttachments({ entryId: currentEntryId }),
18441
18531
  enabled: !!currentEntryId && currentEntryId > 0,
18442
18532
  });
18443
18533
  // Mutations
@@ -18733,7 +18823,7 @@ const ContentInput = ({ value, onChange, isEditing, UpdateTimestamp, UpdatedBy,
18733
18823
  // Query for fetching attachment count
18734
18824
  const { data: attachments = [], error: attachmentError } = useQuery({
18735
18825
  queryKey: ["entryAttachments", effectiveEntryId],
18736
- queryFn: () => getEntryAttachments(effectiveEntryId),
18826
+ queryFn: ({ signal }) => getEntryAttachments({ entryId: effectiveEntryId }),
18737
18827
  enabled: !!effectiveEntryId && effectiveEntryId > 0,
18738
18828
  retry: 1,
18739
18829
  onError: (err) => {
@@ -19469,18 +19559,18 @@ const MESFLogbookEntry = () => {
19469
19559
  };
19470
19560
 
19471
19561
  const moment$2 = getMomentTz();
19472
- const getEntriesReport = (_a) => __awaiter(void 0, [_a], void 0, function* ({ startShiftId, endShiftId, assetId, sectionIds, signal, }) {
19562
+ const getEntriesReport = (params, signal) => __awaiter(void 0, void 0, void 0, function* () {
19473
19563
  const apiService = new MESApiService();
19474
19564
  const parameters = [
19475
- { name: "StartShiftId", value: startShiftId },
19476
- { name: "EndShiftId", value: endShiftId },
19565
+ { name: "StartShiftId", value: params.startShiftId },
19566
+ { name: "EndShiftId", value: params.endShiftId },
19477
19567
  ];
19478
- if (assetId) {
19479
- parameters.push({ name: "AssetId", value: assetId });
19568
+ if (params.assetId) {
19569
+ parameters.push({ name: "AssetId", value: params.assetId });
19480
19570
  }
19481
19571
  // Pass comma-separated sectionIds for multi-select filter
19482
- if (sectionIds && sectionIds.length > 0) {
19483
- parameters.push({ name: "SectionIds", value: sectionIds.join(",") });
19572
+ if (params.sectionIds && params.sectionIds.length > 0) {
19573
+ parameters.push({ name: "SectionIds", value: params.sectionIds.join(",") });
19484
19574
  }
19485
19575
  // Use SWV.GetSectionLogbookEntries which extends LB.GetEntries with section info
19486
19576
  const resp = yield apiService.callV2("[SWV].[GetSectionLogbookEntries]", parameters, signal);
@@ -19506,8 +19596,7 @@ const useEntriesReport = ({ startShiftId, endShiftId, assetId, sectionIds, }) =>
19506
19596
  endShiftId,
19507
19597
  assetId,
19508
19598
  sectionIds,
19509
- signal,
19510
- }),
19599
+ }, signal),
19511
19600
  });
19512
19601
  };
19513
19602
 
@@ -20151,5 +20240,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
20151
20240
  AreaSelector: AreaSelector
20152
20241
  });
20153
20242
 
20154
- export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries$1 as getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry$1 as routeLogbookEntry, routeLogbookReport, useSearchAssets as searchAssets, sectionLogbookNavbar, sectionLogbookRoutesMESF, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useEntries$1 as useEntries, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useToken, useUTLSettingsContext, useUserContext };
20243
+ export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries$1 as getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry$1 as routeLogbookEntry, routeLogbookReport, useSearchAssets as searchAssets, sectionLogbookNavbar, sectionLogbookRoutesMESF, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useEntries$1 as useEntries, useFrontendVersionCheck, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useToken, useUTLSettingsContext, useUserContext };
20155
20244
  //# sourceMappingURL=index.esm.js.map