@fctc/interface-logic 1.8.2 → 1.8.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.
Files changed (43) hide show
  1. package/dist/configs.d.mts +15 -0
  2. package/dist/configs.d.ts +15 -0
  3. package/dist/configs.js +2383 -0
  4. package/dist/configs.mjs +2346 -0
  5. package/dist/constants.d.mts +131 -0
  6. package/dist/constants.d.ts +131 -0
  7. package/dist/constants.js +205 -0
  8. package/dist/constants.mjs +166 -0
  9. package/dist/environment.d.mts +55 -0
  10. package/dist/environment.d.ts +55 -0
  11. package/dist/environment.js +3091 -0
  12. package/dist/environment.mjs +3051 -0
  13. package/dist/hooks.d.mts +364 -0
  14. package/dist/hooks.d.ts +364 -0
  15. package/dist/{index.js → hooks.js} +10 -1208
  16. package/dist/{index.mjs → hooks.mjs} +5 -1064
  17. package/dist/provider.d.mts +15 -0
  18. package/dist/provider.d.ts +15 -0
  19. package/dist/provider.js +3601 -0
  20. package/dist/provider.mjs +3562 -0
  21. package/dist/services.d.mts +256 -0
  22. package/dist/services.d.ts +256 -0
  23. package/dist/services.js +4674 -0
  24. package/dist/services.mjs +4629 -0
  25. package/dist/store.d.mts +643 -0
  26. package/dist/store.d.ts +643 -0
  27. package/dist/store.js +814 -0
  28. package/dist/store.mjs +709 -0
  29. package/dist/types.d.mts +17 -0
  30. package/dist/types.d.ts +17 -0
  31. package/dist/types.js +18 -0
  32. package/dist/types.mjs +0 -0
  33. package/dist/utils.d.mts +93 -0
  34. package/dist/utils.d.ts +93 -0
  35. package/dist/utils.js +2962 -0
  36. package/dist/utils.mjs +2896 -0
  37. package/dist/view-type-BGJfDe73.d.mts +113 -0
  38. package/dist/view-type-BGJfDe73.d.ts +113 -0
  39. package/package.json +1 -1
  40. package/dist/index.d.mts +0 -1681
  41. package/dist/index.d.ts +0 -1681
  42. package/dist/index.js.map +0 -1
  43. package/dist/index.mjs.map +0 -1
@@ -27,145 +27,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/index.ts
31
- var index_exports = {};
32
- __export(index_exports, {
33
- ActionService: () => action_service_default,
34
- AuthService: () => auth_service_default,
35
- CompanyService: () => company_service_default,
36
- ComponentType: () => ComponentType,
37
- EnvStore: () => EnvStore,
38
- ExcelService: () => excel_service_default,
39
- FieldTypeConstants: () => FieldTypeConstants,
40
- FormService: () => form_service_default,
41
- KanbanService: () => kanban_service_default,
42
- KeyConstants: () => KeyConstants,
43
- MainProvider: () => MainProvider,
44
- MethodConstants: () => MethodConstants,
45
- MethodType: () => MethodType,
46
- ModelConstants: () => ModelConstants,
47
- ModelService: () => model_service_default,
48
- ReactQueryProvider: () => ReactQueryProvider,
49
- SearchType: () => SearchType,
50
- UriConstants: () => UriConstants,
51
- UserService: () => user_service_default,
52
- VersionGate: () => VersionGate,
53
- ViewService: () => view_service_default,
54
- WIDGETAVATAR: () => WIDGETAVATAR,
55
- WIDGETCOLOR: () => WIDGETCOLOR,
56
- WIDGETCURRENCY: () => WIDGETCURRENCY,
57
- WIDGETNOSTRING: () => WIDGETNOSTRING,
58
- WIDGETSTATUS: () => WIDGETSTATUS,
59
- WesapError: () => WesapError,
60
- axiosClient: () => axiosClient,
61
- breadcrumbsSlice: () => breadcrumbsSlice,
62
- checkIsImageLink: () => checkIsImageLink,
63
- clearSearchMap: () => clearSearchMap,
64
- convertFloatToTime: () => convertFloatToTime,
65
- convertTimeToFloat: () => convertTimeToFloat,
66
- copyTextToClipboard: () => copyTextToClipboard,
67
- domainHelper: () => domainHelper,
68
- env: () => env,
69
- envSlice: () => envSlice,
70
- envStore: () => envStore,
71
- evalJSONContext: () => evalJSONContext,
72
- evalJSONDomain: () => evalJSONDomain,
73
- excelSlice: () => excelSlice,
74
- filterFieldDirty: () => filterFieldDirty,
75
- formSlice: () => formSlice,
76
- formatCurrency: () => formatCurrency,
77
- formatDate: () => formatDate,
78
- formatFileSize: () => formatFileSize,
79
- formatSortingString: () => formatSortingString,
80
- formatUrlPath: () => formatUrlPath,
81
- getEnv: () => getEnv,
82
- getFieldsOnChange: () => getFieldsOnChange,
83
- getOffSet: () => getOffSet,
84
- getSubdomain: () => getSubdomain,
85
- handleError: () => handleError,
86
- headerSlice: () => headerSlice,
87
- initEnv: () => initEnv,
88
- isBase64File: () => isBase64File,
89
- isBase64Image: () => isBase64Image,
90
- isObjectEmpty: () => isObjectEmpty,
91
- listSlice: () => listSlice,
92
- loginSlice: () => loginSlice,
93
- mergeObjects: () => mergeObjects,
94
- navbarSlice: () => navbarSlice,
95
- profileSlice: () => profileSlice,
96
- removeKeyFromSearchMap: () => removeKeyFromSearchMap,
97
- removeUndefinedFields: () => removeUndefinedFields,
98
- resequence: () => resequence,
99
- searchSlice: () => searchSlice,
100
- selectBreadCrumbs: () => selectBreadCrumbs,
101
- selectEnv: () => selectEnv,
102
- selectExcel: () => selectExcel,
103
- selectForm: () => selectForm,
104
- selectHeader: () => selectHeader,
105
- selectList: () => selectList,
106
- selectLogin: () => selectLogin,
107
- selectNavbar: () => selectNavbar,
108
- selectProfile: () => selectProfile,
109
- selectSearch: () => selectSearch,
110
- selectSearchMap: () => selectSearchMap,
111
- setAllowCompanies: () => setAllowCompanies,
112
- setAllowedCompanyIds: () => setAllowedCompanyIds,
113
- setBreadCrumbs: () => setBreadCrumbs,
114
- setCompanies: () => setCompanies,
115
- setConfig: () => setConfig,
116
- setDataParse: () => setDataParse,
117
- setDataUser: () => setDataUser,
118
- setDb: () => setDb,
119
- setDefaultCompany: () => setDefaultCompany,
120
- setDomainTable: () => setDomainTable,
121
- setEnv: () => setEnv,
122
- setEnvFile: () => setEnvFile,
123
- setErrorData: () => setErrorData,
124
- setFieldTranslate: () => setFieldTranslate,
125
- setFields: () => setFields,
126
- setFilterBy: () => setFilterBy,
127
- setFirstDomain: () => setFirstDomain,
128
- setForgotPasswordUrl: () => setForgotPasswordUrl,
129
- setFormSubmitComponent: () => setFormSubmitComponent,
130
- setGroupBy: () => setGroupBy,
131
- setGroupByDomain: () => setGroupByDomain,
132
- setHeader: () => setHeader,
133
- setHoveredIndexSearchList: () => setHoveredIndexSearchList,
134
- setIdFile: () => setIdFile,
135
- setIndexRowTableModal: () => setIndexRowTableModal,
136
- setIsFileLoaded: () => setIsFileLoaded,
137
- setIsShowModalTranslate: () => setIsShowModalTranslate,
138
- setIsShowingModalDetail: () => setIsShowingModalDetail,
139
- setIsUpdateTableModal: () => setIsUpdateTableModal,
140
- setLang: () => setLang,
141
- setListSubject: () => setListSubject,
142
- setLoadingImport: () => setLoadingImport,
143
- setMenuFocus: () => setMenuFocus,
144
- setMenuFocusAction: () => setMenuFocusAction,
145
- setMenuList: () => setMenuList,
146
- setNavbarWidth: () => setNavbarWidth,
147
- setOrder: () => setOrder,
148
- setPage: () => setPage,
149
- setPageLimit: () => setPageLimit,
150
- setProfile: () => setProfile,
151
- setRedirectTo: () => setRedirectTo,
152
- setSearchBy: () => setSearchBy,
153
- setSearchMap: () => setSearchMap,
154
- setSearchString: () => setSearchString,
155
- setSelectedFile: () => setSelectedFile,
156
- setSelectedRadioKey: () => setSelectedRadioKey,
157
- setSelectedRowKeys: () => setSelectedRowKeys,
158
- setSelectedTags: () => setSelectedTags,
159
- setTransferDetail: () => setTransferDetail,
160
- setUid: () => setUid,
161
- setUser: () => setUser,
162
- setViewDataStore: () => setViewDataStore,
163
- stringToColor: () => stringToColor,
164
- toQueryString: () => toQueryString,
165
- updateSearchMap: () => updateSearchMap,
166
- updateTokenParamInOriginalRequest: () => updateTokenParamInOriginalRequest,
167
- useAppDispatch: () => useAppDispatch,
168
- useAppSelector: () => useAppSelector,
30
+ // src/hooks.ts
31
+ var hooks_exports = {};
32
+ __export(hooks_exports, {
169
33
  useButton: () => use_button_default,
170
34
  useChangeStatus: () => use_change_status_default,
171
35
  useDelete: () => use_delete_default,
@@ -173,7 +37,6 @@ __export(index_exports, {
173
37
  useDuplicateRecord: () => use_duplicate_record_default,
174
38
  useExecuteImport: () => uss_execute_import_default,
175
39
  useExportExcel: () => use_export_excel_default,
176
- useField: () => useField,
177
40
  useForgotPassword: () => use_forgot_password_default,
178
41
  useForgotPasswordSSO: () => use_forgotpassword_sso_default,
179
42
  useGet2FAMethods: () => uset_get_2FA_method_default,
@@ -229,49 +92,18 @@ __export(index_exports, {
229
92
  useSettingsWebRead2fa: () => use_settings_web_read_2fa_default,
230
93
  useSignInSSO: () => use_signin_sso_default,
231
94
  useSwitchLocale: () => use_switch_locale_default,
232
- useTabModel: () => useTabModel,
233
95
  useUpdatePassword: () => use_update_password_default,
234
96
  useUploadFile: () => use_upload_file_default,
235
97
  useUploadIdFile: () => use_upload_id_file_default,
236
98
  useUploadImage: () => use_upload_image_default,
237
99
  useValidateActionToken: () => use_validate_action_token_default,
238
100
  useVerify2FA: () => use_verify_2FA_default,
239
- useVerifyTotp: () => use_verify_totp_default,
240
- validateAndParseDate: () => validateAndParseDate
101
+ useVerifyTotp: () => use_verify_totp_default
241
102
  });
242
- module.exports = __toCommonJS(index_exports);
103
+ module.exports = __toCommonJS(hooks_exports);
243
104
 
244
- // src/configs/axios-client.ts
245
- var import_axios = __toESM(require("axios"));
246
-
247
- // src/constants/api/key-constant.ts
248
- var KeyConstants = /* @__PURE__ */ ((KeyConstants2) => {
249
- KeyConstants2["PROFILE"] = "userinfo";
250
- KeyConstants2["CURRENT_COMPANY"] = "current_company";
251
- KeyConstants2["LIST_COMPANY"] = "list_company";
252
- KeyConstants2["COMPANY_INFO"] = "company_info";
253
- KeyConstants2["MENU"] = "menus";
254
- KeyConstants2["GET_VIEW_BY_ACTION"] = "get_view_by_action";
255
- KeyConstants2["ACTION_DETAIL"] = "action_detail";
256
- KeyConstants2["GET_DATA_SELECTION"] = "get_data_select";
257
- KeyConstants2["WEB_SAVE"] = "web_save";
258
- KeyConstants2["WEB_READ"] = "web_read";
259
- KeyConstants2["GET_PROVIDER"] = "get_provider";
260
- return KeyConstants2;
261
- })(KeyConstants || {});
262
-
263
- // src/constants/api/method-constant.ts
264
- var MethodConstants = /* @__PURE__ */ ((MethodConstants2) => {
265
- MethodConstants2["WEB_SEARCH_READ"] = "web_search_read";
266
- MethodConstants2["WEB_READ_GROUP"] = "web_read_group";
267
- MethodConstants2["WEB_READ"] = "web_read";
268
- MethodConstants2["WEB_SAVE"] = "web_save";
269
- MethodConstants2["UNLINK"] = "unlink";
270
- MethodConstants2["ONCHANGE"] = "onchange";
271
- MethodConstants2["GET_ONCHANGE_FIELDS"] = "get_fields_onchange";
272
- MethodConstants2["GET_FIELD_VIEW"] = "get_fields_view_v2";
273
- return MethodConstants2;
274
- })(MethodConstants || {});
105
+ // src/hooks/auth/use-forgot-password.ts
106
+ var import_react_query = require("@tanstack/react-query");
275
107
 
276
108
  // src/constants/api/uri-constant.ts
277
109
  var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
@@ -303,380 +135,11 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
303
135
  return UriConstants2;
304
136
  })(UriConstants || {});
305
137
 
306
- // src/utils/error-handler.ts
307
- var WesapError = class extends Error {
308
- code;
309
- constructor(message, code) {
310
- super(message);
311
- this.code = code;
312
- }
313
- };
314
- function handleError(error, env2) {
315
- if (error instanceof WesapError) {
316
- env2.services.notification.error(error.message);
317
- } else {
318
- env2.services.notification.error("An unexpected error occurred");
319
- }
320
- }
138
+ // src/configs/axios-client.ts
139
+ var import_axios = __toESM(require("axios"));
321
140
 
322
141
  // src/utils/format.ts
323
142
  var import_moment = __toESM(require("moment"));
324
- var formatCurrency = (amount, currency = "USD") => {
325
- const formatter = new Intl.NumberFormat("vi-VN", {
326
- style: "currency",
327
- currency,
328
- minimumFractionDigits: 0
329
- });
330
- return formatter.format(amount).replaceAll(".", ",");
331
- };
332
- var formatDate = (date, locale = "en-US") => {
333
- return new Intl.DateTimeFormat(locale).format(new Date(date));
334
- };
335
- var validateAndParseDate = (input, isDateTime = false) => {
336
- if (!input || typeof input !== "string") return null;
337
- const cleanInput = input.replace(/[^0-9-\/:\s]/g, "");
338
- const dateFormat = "YYYY-MM-DD";
339
- const dateTimeFormat = "YYYY-MM-DD HH:mm:ss";
340
- const currentDay = (0, import_moment.default)().format("DD");
341
- const currentMonth = (0, import_moment.default)().format("MM");
342
- const currentYear = (0, import_moment.default)().format("YYYY");
343
- const defaultTime = "00:00:00";
344
- const maxYear = parseInt(currentYear) + 10;
345
- const isValidDate = (day, month, year) => {
346
- const date = (0, import_moment.default)(`${day}-${month}-${year}`, "DD-MM-YYYY", true);
347
- return date.isValid();
348
- };
349
- const isValidTime = (hour, minute = "00", second = "00") => {
350
- const h = parseInt(hour, 10);
351
- const m = parseInt(minute, 10);
352
- const s = parseInt(second, 10);
353
- return h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59;
354
- };
355
- const formatOutput = (day, month, year, time = defaultTime) => {
356
- let result = (0, import_moment.default)(
357
- `${day}-${month}-${year} ${time}`,
358
- "DD-MM-YYYY HH:mm:ss"
359
- );
360
- if (!result.isValid()) return null;
361
- if (isDateTime) {
362
- result = result.subtract(7, "hours");
363
- return result.format(dateTimeFormat);
364
- }
365
- return result.format(dateFormat);
366
- };
367
- if (isDateTime && input.match(
368
- /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}\s+\d{1,2}(:\d{1,2}(:\d{1,2})?)?$/
369
- )) {
370
- const [datePart, timePart] = input.split(/\s+/);
371
- const dateParts = datePart.split(/[\/-]/);
372
- const timeParts = timePart.split(":");
373
- const day = dateParts[0].padStart(2, "0");
374
- const month = dateParts[1].padStart(2, "0");
375
- const year = dateParts[2].length <= 2 ? `20${dateParts[2].padStart(2, "0")}` : dateParts[2].padStart(4, "0");
376
- const hour = timeParts[0].padStart(2, "0");
377
- const minute = timeParts[1] ? timeParts[1].padStart(2, "0") : "00";
378
- const second = timeParts[2] ? timeParts[2].padStart(2, "0") : "00";
379
- if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
380
- let result = (0, import_moment.default)(
381
- `${day}-${month}-${year} ${hour}:${minute}:${second}`,
382
- "DD-MM-YYYY HH:mm:ss"
383
- );
384
- if (!result.isValid()) return null;
385
- result = result.subtract(7, "hours");
386
- return result.format(dateTimeFormat);
387
- }
388
- return null;
389
- }
390
- if (cleanInput.match(/^\d{4}-\d{2}-\d{2}$/)) {
391
- const [year, month, day] = cleanInput.split("-");
392
- if (isValidDate(day, month, year)) {
393
- return formatOutput(day, month, year);
394
- }
395
- return null;
396
- }
397
- if (cleanInput.match(/^\d{1,2}\/\d{1,2}\/\d{2,4}$/)) {
398
- const [day, month, year] = cleanInput.split("/");
399
- const paddedDay = day.padStart(2, "0");
400
- const paddedMonth = month.padStart(2, "0");
401
- const fullYear = year.length <= 2 ? `20${year.padStart(2, "0")}` : year.padStart(4, "0");
402
- if (isValidDate(paddedDay, paddedMonth, fullYear)) {
403
- return formatOutput(paddedDay, paddedMonth, fullYear);
404
- }
405
- return null;
406
- }
407
- if (cleanInput.match(/^\d{1,2}-\d{1,2}-\d{2,4}$/)) {
408
- const [day, month, year] = cleanInput.split("-");
409
- const paddedDay = day.padStart(2, "0");
410
- const paddedMonth = month.padStart(2, "0");
411
- const fullYear = year.length <= 2 ? `20${year.padStart(2, "0")}` : year.padStart(4, "0");
412
- if (isValidDate(paddedDay, paddedMonth, fullYear)) {
413
- return formatOutput(paddedDay, paddedMonth, fullYear);
414
- }
415
- return null;
416
- }
417
- if (cleanInput.match(/^\d{1,2}[\/-]\d{1,2}$/)) {
418
- const [day, month] = cleanInput.split(/[\/-]/);
419
- const paddedDay = day.padStart(2, "0");
420
- const paddedMonth = month.padStart(2, "0");
421
- if (isValidDate(paddedDay, paddedMonth, currentYear)) {
422
- return formatOutput(paddedDay, paddedMonth, currentYear);
423
- }
424
- return null;
425
- }
426
- if (cleanInput.match(/^\d{4}$/)) {
427
- const num = parseInt(cleanInput, 10);
428
- if (num >= 2e3 && num <= maxYear) {
429
- if (isValidDate(currentDay, currentMonth, num.toString())) {
430
- return formatOutput(currentDay, currentMonth, num.toString());
431
- }
432
- return null;
433
- }
434
- const day = cleanInput.slice(0, 2);
435
- const month = cleanInput.slice(2, 4);
436
- if (isValidDate(day, month, currentYear)) {
437
- return formatOutput(day, month, currentYear);
438
- }
439
- return null;
440
- }
441
- if (cleanInput.startsWith("-") && /^\-\d+$/.test(cleanInput)) {
442
- const daysToSubtract = Math.abs(parseInt(cleanInput, 10));
443
- let result = (0, import_moment.default)().subtract(daysToSubtract, "days");
444
- if (isDateTime) {
445
- result = result.subtract(7, "hours");
446
- }
447
- if (result.isValid()) {
448
- return isDateTime ? result.format(dateTimeFormat) : result.format(dateFormat);
449
- }
450
- return null;
451
- }
452
- if (input.match(/^\d{1,2}[^0-9-\/]+\d{1,2}[^0-9-\/]+\d{2,4}.*$/)) {
453
- const parts = input.split(/[^0-9-\/]+/).filter(Boolean);
454
- const day = parts[0].padStart(2, "0");
455
- const month = parts[1].padStart(2, "0");
456
- let year = parts[2];
457
- year = year.length === 2 ? `20${year}` : year.padStart(4, "0");
458
- if (isValidDate(day, month, year)) {
459
- return formatOutput(day, month, year);
460
- }
461
- return null;
462
- }
463
- if (isDateTime) {
464
- if (cleanInput.length === 9) {
465
- const day = cleanInput.slice(0, 2);
466
- const month = cleanInput.slice(2, 4);
467
- const year = cleanInput.slice(4, 8);
468
- const hour = cleanInput.slice(8, 9).padStart(2, "0");
469
- if (isValidDate(day, month, year) && isValidTime(hour)) {
470
- let result = (0, import_moment.default)(
471
- `${day}-${month}-${year} ${hour}:00:00`,
472
- "DD-MM-YYYY HH:mm:ss"
473
- );
474
- if (!result.isValid()) return null;
475
- result = result.subtract(7, "hours");
476
- return result.format(dateTimeFormat);
477
- }
478
- return null;
479
- }
480
- if (cleanInput.length === 10) {
481
- const day = cleanInput.slice(0, 2);
482
- const month = cleanInput.slice(2, 4);
483
- const year = cleanInput.slice(4, 8);
484
- const hour = cleanInput.slice(8, 10);
485
- if (isValidDate(day, month, year) && isValidTime(hour)) {
486
- let result = (0, import_moment.default)(
487
- `${day}-${month}-${year} ${hour}:00:00`,
488
- "DD-MM-YYYY HH:mm:ss"
489
- );
490
- if (!result.isValid()) return null;
491
- result = result.subtract(7, "hours");
492
- return result.format(dateTimeFormat);
493
- }
494
- return null;
495
- }
496
- if (cleanInput.length === 11) {
497
- const day = cleanInput.slice(0, 2);
498
- const month = cleanInput.slice(2, 4);
499
- const year = cleanInput.slice(4, 8);
500
- const hour = cleanInput.slice(8, 10);
501
- const minute = cleanInput.slice(10, 11).padStart(2, "0");
502
- if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
503
- let result = (0, import_moment.default)(
504
- `${day}-${month}-${year} ${hour}:${minute}:00`,
505
- "DD-MM-YYYY HH:mm:ss"
506
- );
507
- if (!result.isValid()) return null;
508
- result = result.subtract(7, "hours");
509
- return result.format(dateTimeFormat);
510
- }
511
- return null;
512
- }
513
- if (cleanInput.length === 12) {
514
- const day = cleanInput.slice(0, 2);
515
- const month = cleanInput.slice(2, 4);
516
- const year = cleanInput.slice(4, 8);
517
- const hour = cleanInput.slice(8, 10);
518
- const minute = cleanInput.slice(10, 12);
519
- if (isValidDate(day, month, year) && isValidTime(hour, minute)) {
520
- let result = (0, import_moment.default)(
521
- `${day}-${month}-${year} ${hour}:${minute}:00`,
522
- "DD-MM-YYYY HH:mm:ss"
523
- );
524
- if (!result.isValid()) return null;
525
- result = result.subtract(7, "hours");
526
- return result.format(dateTimeFormat);
527
- }
528
- return null;
529
- }
530
- if (cleanInput.length === 13) {
531
- const day = cleanInput.slice(0, 2);
532
- const month = cleanInput.slice(2, 4);
533
- const year = cleanInput.slice(4, 8);
534
- const hour = cleanInput.slice(8, 10);
535
- const minute = cleanInput.slice(10, 12);
536
- const second = cleanInput.slice(12, 13).padStart(2, "0");
537
- if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
538
- let result = (0, import_moment.default)(
539
- `${day}-${month}-${year} ${hour}:${minute}:${second}`,
540
- "DD-MM-YYYY HH:mm:ss"
541
- );
542
- if (!result.isValid()) return null;
543
- result = result.subtract(7, "hours");
544
- return result.format(dateTimeFormat);
545
- }
546
- return null;
547
- }
548
- if (cleanInput.length === 14) {
549
- const day = cleanInput.slice(0, 2);
550
- const month = cleanInput.slice(2, 4);
551
- const year = cleanInput.slice(4, 8);
552
- const hour = cleanInput.slice(8, 10);
553
- const minute = cleanInput.slice(10, 12);
554
- const second = cleanInput.slice(12, 14);
555
- if (isValidDate(day, month, year) && isValidTime(hour, minute, second)) {
556
- let result = (0, import_moment.default)(
557
- `${day}-${month}-${year} ${hour}:${minute}:${second}`,
558
- "DD-MM-YYYY HH:mm:ss"
559
- );
560
- if (!result.isValid()) return null;
561
- result = result.subtract(7, "hours");
562
- return result.format(dateTimeFormat);
563
- }
564
- return null;
565
- }
566
- }
567
- const len = cleanInput.length;
568
- if (len === 1 || len === 2) {
569
- const paddedDay = cleanInput.padStart(2, "0");
570
- if (isValidDate(paddedDay, currentMonth, currentYear)) {
571
- return formatOutput(paddedDay, currentMonth, currentYear);
572
- }
573
- return null;
574
- }
575
- if (len === 3) {
576
- const day = cleanInput.slice(0, 2);
577
- const month = cleanInput.slice(2, 3).padStart(2, "0");
578
- if (isValidDate(day, month, currentYear)) {
579
- return formatOutput(day, month, currentYear);
580
- }
581
- return null;
582
- }
583
- if (len === 6) {
584
- const day = cleanInput.slice(0, 2);
585
- const month = cleanInput.slice(2, 4);
586
- let year = cleanInput.slice(4, 6);
587
- year = `20${year}`;
588
- if (parseInt(month) > 12) {
589
- if (isValidDate(day, currentMonth, currentYear)) {
590
- return formatOutput(day, currentMonth, currentYear);
591
- }
592
- return null;
593
- }
594
- if (isValidDate(day, month, year)) {
595
- return formatOutput(day, month, year);
596
- }
597
- return null;
598
- }
599
- if (len === 7) {
600
- return null;
601
- }
602
- if (len === 8) {
603
- const day = cleanInput.slice(0, 2);
604
- const month = cleanInput.slice(2, 4);
605
- const year = cleanInput.slice(4, 8);
606
- if (isValidDate(day, month, year)) {
607
- return formatOutput(day, month, year);
608
- }
609
- return null;
610
- }
611
- if (len > 8 && !isDateTime) {
612
- return null;
613
- }
614
- return null;
615
- };
616
-
617
- // src/constants/field/field-type-constant.ts
618
- var FieldTypeConstants = /* @__PURE__ */ ((FieldTypeConstants2) => {
619
- FieldTypeConstants2["CHAR"] = "char";
620
- FieldTypeConstants2["TEXT"] = "text";
621
- FieldTypeConstants2["INTEGER"] = "integer";
622
- FieldTypeConstants2["FLOAT"] = "float";
623
- FieldTypeConstants2["BOOLEAN"] = "boolean";
624
- FieldTypeConstants2["DATE"] = "date";
625
- FieldTypeConstants2["DATETIME"] = "datetime";
626
- FieldTypeConstants2["BINARY"] = "binary";
627
- FieldTypeConstants2["SELECTION"] = "selection";
628
- FieldTypeConstants2["HTML"] = "html";
629
- FieldTypeConstants2["MANY2ONE"] = "many2one";
630
- FieldTypeConstants2["ONE2MANY"] = "one2many";
631
- FieldTypeConstants2["MANY2MANY"] = "many2many";
632
- FieldTypeConstants2["MONETARY"] = "monetary";
633
- FieldTypeConstants2["REFERENCE"] = "reference";
634
- FieldTypeConstants2["FUNCTION"] = "function";
635
- FieldTypeConstants2["PROPERTY"] = "property";
636
- return FieldTypeConstants2;
637
- })(FieldTypeConstants || {});
638
-
639
- // src/constants/method/method-type-constant.ts
640
- var MethodType = /* @__PURE__ */ ((MethodType2) => {
641
- MethodType2[MethodType2["CREATE"] = 0] = "CREATE";
642
- MethodType2[MethodType2["UPDATE"] = 1] = "UPDATE";
643
- MethodType2[MethodType2["DELETE"] = 2] = "DELETE";
644
- MethodType2[MethodType2["UNLINK"] = 3] = "UNLINK";
645
- MethodType2[MethodType2["NO_CHANGE"] = 4] = "NO_CHANGE";
646
- return MethodType2;
647
- })(MethodType || {});
648
-
649
- // src/constants/model/model-constant.ts
650
- var ModelConstants = /* @__PURE__ */ ((ModelConstants2) => {
651
- ModelConstants2["MENU"] = "ir.ui.menu";
652
- ModelConstants2["USER"] = "res.users";
653
- ModelConstants2["COMPANY"] = "res.company";
654
- ModelConstants2["WINDOW_ACTION"] = "ir.actions.act_window";
655
- ModelConstants2["BASE_IMPORT"] = "base_import.import";
656
- ModelConstants2["GET_IMPORT"] = "get_import_templates";
657
- return ModelConstants2;
658
- })(ModelConstants || {});
659
-
660
- // src/constants/type/index.ts
661
- var ComponentType = /* @__PURE__ */ ((ComponentType2) => {
662
- ComponentType2["GROUP"] = "group";
663
- ComponentType2["FIELD"] = "field";
664
- ComponentType2["TREE"] = "tree";
665
- ComponentType2["DIV"] = "div";
666
- ComponentType2["LIST"] = "list";
667
- ComponentType2["FORM"] = "form";
668
- ComponentType2["SETTINGS"] = "setting";
669
- ComponentType2["SPAN"] = "span";
670
- ComponentType2["KANBAN"] = "kanban";
671
- ComponentType2["CALENDAR"] = "calendar";
672
- ComponentType2["TYPE"] = "view-type";
673
- return ComponentType2;
674
- })(ComponentType || {});
675
- var SearchType = {
676
- FILTER: "filter_by",
677
- SEARCH: "search_by",
678
- GROUP: "group_by"
679
- };
680
143
 
681
144
  // src/constants/widget/widget-avatar-constant.ts
682
145
  var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
@@ -684,28 +147,6 @@ var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
684
147
  WIDGETAVATAR2["many2many_avatar_user"] = "many2many_avatar_user";
685
148
  return WIDGETAVATAR2;
686
149
  })(WIDGETAVATAR || {});
687
- var WIDGETCURRENCY = /* @__PURE__ */ ((WIDGETCURRENCY2) => {
688
- WIDGETCURRENCY2["many2one_avatar_user"] = "many2one_avatar_user";
689
- WIDGETCURRENCY2["many2many_avatar_user"] = "many2many_avatar_user";
690
- return WIDGETCURRENCY2;
691
- })(WIDGETCURRENCY || {});
692
-
693
- // src/constants/widget/widget-color-constant.ts
694
- var WIDGETCOLOR = /* @__PURE__ */ ((WIDGETCOLOR2) => {
695
- WIDGETCOLOR2["many2many_tags"] = "many2many_tags";
696
- WIDGETCOLOR2["helpdesk_sla_many2many_tags"] = "helpdesk_sla_many2many_tags";
697
- return WIDGETCOLOR2;
698
- })(WIDGETCOLOR || {});
699
-
700
- // src/constants/widget/widget-status-constant.ts
701
- var WIDGETSTATUS = /* @__PURE__ */ ((WIDGETSTATUS2) => {
702
- WIDGETSTATUS2["sla_status_ids"] = "sla_status_ids";
703
- return WIDGETSTATUS2;
704
- })(WIDGETSTATUS || {});
705
- var WIDGETNOSTRING = /* @__PURE__ */ ((WIDGETNOSTRING2) => {
706
- WIDGETNOSTRING2["sla_status_ids"] = "sla_status_ids";
707
- return WIDGETNOSTRING2;
708
- })(WIDGETNOSTRING || {});
709
150
 
710
151
  // src/utils/domain/py_tokenizer.ts
711
152
  var TokenizerError = class extends Error {
@@ -2474,48 +1915,6 @@ function parseExpr(expr) {
2474
1915
  const tokens = tokenize(expr);
2475
1916
  return parse(tokens);
2476
1917
  }
2477
- function evaluateExpr(expr, context = {}) {
2478
- let ast;
2479
- try {
2480
- ast = parseExpr(expr);
2481
- } catch (error) {
2482
- throw new EvalError(
2483
- `Can not parse python expression: (${expr})
2484
- Error: ${error.message}`
2485
- );
2486
- }
2487
- try {
2488
- return evaluate(ast, context);
2489
- } catch (error) {
2490
- throw new EvalError(
2491
- `Can not evaluate python expression: (${expr})
2492
- Error: ${error.message}`
2493
- );
2494
- }
2495
- }
2496
- function evaluateBooleanExpr(expr, context = {}) {
2497
- if (!expr || expr === "False" || expr === "0") {
2498
- return false;
2499
- }
2500
- if (expr === "True" || expr === "1") {
2501
- return true;
2502
- }
2503
- return evaluateExpr(`bool(${expr})`, context);
2504
- }
2505
-
2506
- // src/utils/domain/context.ts
2507
- function evalPartialContext(_context, evaluationContext = {}) {
2508
- const ast = parseExpr(_context);
2509
- const context = {};
2510
- for (const key in ast.value) {
2511
- const value = ast.value[key];
2512
- try {
2513
- context[key] = evaluate(value, evaluationContext);
2514
- } catch {
2515
- }
2516
- }
2517
- return context;
2518
- }
2519
1918
 
2520
1919
  // src/utils/domain/objects.ts
2521
1920
  function shallowEqual(obj1, obj2, comparisonFn = (a, b) => a === b) {
@@ -2854,280 +2253,14 @@ function matchDomain(record, domain) {
2854
2253
  }
2855
2254
  return matchCondition(record, condStack.pop());
2856
2255
  }
2857
- var checkDomain = (context, domain) => {
2858
- try {
2859
- if (domain === void 0 || domain === "0" || domain === "False" || domain === false) {
2860
- return false;
2861
- } else if (domain === "1" || domain === "True" || domain === true) {
2862
- return true;
2863
- }
2864
- try {
2865
- if (context && domain) {
2866
- const d = new Domain(domain);
2867
- return d.contains(context);
2868
- }
2869
- } catch (error) {
2870
- if (context && domain) {
2871
- const domainEval = evaluateBooleanExpr(domain, context);
2872
- return domainEval;
2873
- }
2874
- return false;
2875
- }
2876
- return false;
2877
- } catch (e) {
2878
- return false;
2879
- }
2880
- };
2881
- var matchDomains = (context, domains) => {
2882
- if (Array.isArray(domains)) {
2883
- if (domains?.length > 0) {
2884
- return domains && domains.some((domain) => checkDomain(context, domain));
2885
- }
2886
- } else return checkDomain(context, domains);
2887
- return false;
2888
- };
2889
2256
 
2890
2257
  // src/utils/function.ts
2891
2258
  var import_react = require("react");
2892
- var evalJSONContext = (_context, context = {}) => {
2893
- try {
2894
- return evalPartialContext(_context, context);
2895
- } catch (err) {
2896
- return null;
2897
- }
2898
- };
2899
- var evalJSONDomain = (domain, context) => {
2900
- try {
2901
- if (context) {
2902
- Object.keys(context)?.forEach((key) => {
2903
- if (Array.isArray(context[key])) {
2904
- const isTypeObject = context[key]?.every(
2905
- (item) => typeof item === "object" && item !== null && item?.id !== void 0
2906
- );
2907
- if (isTypeObject) {
2908
- context[key] = context[key]?.map((item) => item?.id);
2909
- }
2910
- }
2911
- });
2912
- }
2913
- const value = evaluateExpr(domain, context);
2914
- return value;
2915
- } catch (err) {
2916
- try {
2917
- const domainObject = new Domain(domain).toList(context);
2918
- return domainObject;
2919
- } catch (err2) {
2920
- return [];
2921
- }
2922
- }
2923
- };
2924
- var formatSortingString = (input) => {
2925
- if (!input) return null;
2926
- return input.split(",").map((field) => {
2927
- const [key, order] = field.trim().split(/\s+/);
2928
- const sortOrder = order?.toUpperCase() === "DESC" ? "DESC" : "ASC";
2929
- return `${key} ${sortOrder}`;
2930
- }).join(", ");
2931
- };
2932
- var domainHelper = {
2933
- checkDomain,
2934
- matchDomains,
2935
- Domain
2936
- };
2937
2259
  var toQueryString = (params) => {
2938
2260
  return Object.keys(params).map(
2939
2261
  (key) => encodeURIComponent(key) + "=" + encodeURIComponent(params[key].toString())
2940
2262
  ).join("&");
2941
2263
  };
2942
- var convertFloatToTime = (floatValue) => {
2943
- const hours = Math.floor(floatValue);
2944
- const minutes = Math.round((floatValue - hours) * 60);
2945
- const formattedHours = String(hours).padStart(2, "0");
2946
- const formattedMinutes = String(minutes).padStart(2, "0");
2947
- return `${formattedHours}:${formattedMinutes}`;
2948
- };
2949
- var convertTimeToFloat = (timeString) => {
2950
- const [hours, minutes] = timeString.split(":").map(Number);
2951
- return hours + minutes / 60;
2952
- };
2953
- var stringToColor = (name, id) => {
2954
- const combined = name + id / 2;
2955
- let hash = 0;
2956
- for (let i = 0; i < combined.length; i++) {
2957
- hash = combined.charCodeAt(i) + ((hash << 5) - hash);
2958
- }
2959
- const r = hash >> 16 & 255;
2960
- const g = hash >> 8 & 255;
2961
- const b = hash & 255;
2962
- const adjustedR = 120 + r % 61;
2963
- const adjustedG = 120 + g % 61;
2964
- const adjustedB = 120 + b % 61;
2965
- return `#${adjustedR.toString(16).padStart(2, "0")}${adjustedG.toString(16).padStart(2, "0")}${adjustedB.toString(16).padStart(2, "0")}`;
2966
- };
2967
- var getFieldsOnChange = (fields) => {
2968
- const result = [];
2969
- function traverse(items) {
2970
- for (const item of items) {
2971
- if (item) {
2972
- if (item?.type_co === "field" && matchDomains(fields, item?.on_change)) {
2973
- result.push(item.name);
2974
- }
2975
- if (item?.fields && Array.isArray(item?.fields)) {
2976
- traverse(item?.fields);
2977
- }
2978
- }
2979
- }
2980
- }
2981
- traverse(fields);
2982
- return result;
2983
- };
2984
- var filterFieldDirty = ({
2985
- id,
2986
- viewData,
2987
- formValues,
2988
- dirtyFields,
2989
- model,
2990
- defaultData
2991
- }) => {
2992
- const data = id ? { ...dirtyFields } : { ...formValues };
2993
- for (const key in data) {
2994
- if (viewData?.models?.[model]?.[key]?.type === "one2many" /* ONE2MANY */) {
2995
- const lineData = [];
2996
- (formValues[key] ?? []).forEach((itemData, index) => {
2997
- if (typeof itemData?.id === "string" && itemData?.id.includes("virtual")) {
2998
- delete itemData?.id;
2999
- }
3000
- if (!itemData?.id) {
3001
- lineData.push([
3002
- 0 /* CREATE */,
3003
- `virtual_${index}`,
3004
- filterFieldDirty({
3005
- id: itemData?.id,
3006
- viewData,
3007
- formValues: itemData,
3008
- dirtyFields: {},
3009
- model: viewData?.models?.[model]?.[key]?.relation,
3010
- defaultData
3011
- })
3012
- ]);
3013
- } else if (dirtyFields[key]?.length) {
3014
- dirtyFields[key].forEach((itemDirty, indexDirty) => {
3015
- if (Object.values(itemDirty).includes(true) && indexDirty === index) {
3016
- lineData.push([
3017
- 1 /* UPDATE */,
3018
- itemData?.id,
3019
- filterFieldDirty({
3020
- id: itemData?.id,
3021
- viewData,
3022
- formValues: itemData,
3023
- dirtyFields: itemDirty,
3024
- model: viewData?.models?.[model]?.[key]?.relation,
3025
- defaultData: {}
3026
- })
3027
- ]);
3028
- }
3029
- });
3030
- }
3031
- });
3032
- (defaultData[key] ?? []).forEach((item) => {
3033
- if (!(formValues[key] ?? []).find(
3034
- (itemData) => itemData?.id === item?.id
3035
- )) {
3036
- lineData.push([2 /* DELETE */, item?.id, item]);
3037
- }
3038
- });
3039
- data[key] = lineData;
3040
- } else if (viewData?.models?.[model]?.[key]?.type === "many2many" /* MANY2MANY */) {
3041
- const lineData = [];
3042
- (formValues[key] || []).forEach((itemData) => {
3043
- if (itemData?.id) {
3044
- lineData.push([4 /* NO_CHANGE */, itemData?.id]);
3045
- }
3046
- });
3047
- (defaultData[key] ?? []).forEach((item) => {
3048
- if (!(formValues[key] ?? []).find(
3049
- (itemData) => itemData?.id === item?.id
3050
- )) {
3051
- lineData.push([3 /* UNLINK */, item?.id]);
3052
- }
3053
- });
3054
- data[key] = lineData;
3055
- } else {
3056
- if (id && (typeof dirtyFields?.[key] === "object" && !dirtyFields?.[key]?.id || typeof dirtyFields[key] !== "object" && !dirtyFields[key])) {
3057
- delete data[key];
3058
- } else {
3059
- if (!data[key]) {
3060
- delete data[key];
3061
- } else {
3062
- data[key] = formValues?.[key]?.display_name ? formValues?.[key]?.id : formValues?.[key];
3063
- }
3064
- }
3065
- }
3066
- }
3067
- return data;
3068
- };
3069
- var mergeObjects = (object1, object2) => {
3070
- if (!object1 || !object2) return void 0;
3071
- const mergedObject = { ...object2 };
3072
- Object.keys(object1).forEach((key) => {
3073
- if (Array.isArray(object1[key]) && Array.isArray(object2[key])) {
3074
- mergedObject[key] = object2[key].map((item, index) => {
3075
- if (object1[key][index]) {
3076
- return {
3077
- ...item,
3078
- ...object1[key][index]
3079
- };
3080
- }
3081
- return item;
3082
- });
3083
- } else if (typeof object1[key] === "object" && typeof object2[key] === "object" && object1[key] !== null && object2[key] !== null) {
3084
- mergedObject[key] = mergeObjects(object1[key], object2[key]);
3085
- } else {
3086
- mergedObject[key] = object1[key] !== void 0 ? object1[key] : object2[key];
3087
- }
3088
- });
3089
- if (object2) {
3090
- Object.keys(object2).forEach((key) => {
3091
- if (!mergedObject.hasOwnProperty(key)) {
3092
- mergedObject[key] = object2[key];
3093
- }
3094
- });
3095
- }
3096
- return mergedObject;
3097
- };
3098
- var formatUrlPath = ({
3099
- viewType,
3100
- aid,
3101
- model,
3102
- id,
3103
- actionPath
3104
- }) => {
3105
- let _url = `/${viewType}/${actionPath}?aid=${aid}&model=${model}`;
3106
- if (id) {
3107
- _url += `&id=${id}`;
3108
- }
3109
- return _url;
3110
- };
3111
- var removeUndefinedFields = (obj) => {
3112
- const newObj = {};
3113
- for (const key in obj) {
3114
- if (obj[key] !== void 0) {
3115
- newObj[key] = obj[key];
3116
- }
3117
- }
3118
- return newObj;
3119
- };
3120
- var useTabModel = (viewData, onchangeData) => {
3121
- const tabsData = viewData?.views?.form?.tabs?.filter((val) => {
3122
- if (!val) return null;
3123
- const hide = checkDomain(onchangeData, val.invisible);
3124
- if (!hide) {
3125
- return val;
3126
- }
3127
- return false;
3128
- }) || [];
3129
- return tabsData;
3130
- };
3131
2264
  var isBase64File = (str) => {
3132
2265
  try {
3133
2266
  const dataUriPattern = /^data:([a-zA-Z]+\/[a-zA-Z0-9-.+]+)?;base64,/;
@@ -3143,69 +2276,6 @@ var isBase64File = (str) => {
3143
2276
  return false;
3144
2277
  }
3145
2278
  };
3146
- var isBase64Image = (str) => {
3147
- const base64Regex = /^data:image\/(png|jpeg|jpg|gif|webp);base64,/;
3148
- if (!base64Regex.test(str)) {
3149
- return false;
3150
- }
3151
- try {
3152
- const base64Data = str.split(",")[1];
3153
- return !!base64Data && atob(base64Data).length > 0;
3154
- } catch (error) {
3155
- return false;
3156
- }
3157
- };
3158
- var checkIsImageLink = (url) => {
3159
- const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|svg|tiff|ico)$/i;
3160
- return imageExtensions.test(url) || isBase64Image(url);
3161
- };
3162
- var formatFileSize = (size) => {
3163
- if (size < 1024) return `${size} B`;
3164
- const i = Math.floor(Math.log(size) / Math.log(1024));
3165
- const sizes = ["B", "KB", "MB", "GB", "TB"];
3166
- return `${(size / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;
3167
- };
3168
- var getSubdomain = (url = window.location.href) => {
3169
- const parts = url?.split(".");
3170
- if (parts.length > 2) {
3171
- return parts[0].replace("https://", "").replace("http://", "");
3172
- }
3173
- return null;
3174
- };
3175
- var resequence = (arr, start, end) => {
3176
- if (start < 0 || start >= arr.length || end < 0 || end >= arr.length) {
3177
- return [];
3178
- }
3179
- const [element] = arr.splice(start, 1);
3180
- arr.splice(end, 0, element);
3181
- return arr.slice(Math.min(start, end), Math.max(start, end) + 1);
3182
- };
3183
- var getOffSet = (arr, start, end) => {
3184
- if (start < 0 || start >= arr.length || end < 0 || end >= arr.length) {
3185
- return 0;
3186
- }
3187
- if (start > end) {
3188
- return end;
3189
- }
3190
- return arr.slice(0, start).length;
3191
- };
3192
- var copyTextToClipboard = async (text) => {
3193
- if ("clipboard" in navigator) {
3194
- return await navigator.clipboard.writeText(text);
3195
- } else {
3196
- const textArea = document.createElement("textarea");
3197
- textArea.value = text;
3198
- textArea.style.position = "fixed";
3199
- document.body.appendChild(textArea);
3200
- textArea.focus();
3201
- textArea.select();
3202
- try {
3203
- document.execCommand("copy");
3204
- } finally {
3205
- document.body.removeChild(textArea);
3206
- }
3207
- }
3208
- };
3209
2279
  var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
3210
2280
  if (!originalRequest.data) return originalRequest.data;
3211
2281
  if (typeof originalRequest.data === "string") {
@@ -3225,41 +2295,6 @@ var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
3225
2295
  }
3226
2296
  return originalRequest.data;
3227
2297
  };
3228
- var isObjectEmpty = (obj) => {
3229
- return Object.keys(obj).length === 0;
3230
- };
3231
- var useField = (props) => {
3232
- const [invisible, setInvisible] = (0, import_react.useState)(true);
3233
- const [required, setRequired] = (0, import_react.useState)(false);
3234
- const [readonly, setReadOnly] = (0, import_react.useState)(false);
3235
- const {
3236
- invisible: inv,
3237
- required: req,
3238
- readonly: rea,
3239
- onchangeData,
3240
- rootField,
3241
- index,
3242
- name
3243
- } = props;
3244
- const nameField = rootField ? `${rootField?.name}.${index}.${name}` : null;
3245
- (0, import_react.useEffect)(() => {
3246
- if (onchangeData && Object.keys(onchangeData).length > 0) {
3247
- setRequired(
3248
- typeof req === "object" ? matchDomains(onchangeData, req) : checkDomain(onchangeData, req)
3249
- );
3250
- setInvisible(matchDomains(onchangeData, inv));
3251
- setReadOnly(
3252
- typeof req === "object" ? matchDomains(onchangeData, rea) : checkDomain(onchangeData, rea)
3253
- );
3254
- }
3255
- }, [onchangeData]);
3256
- return {
3257
- invisible,
3258
- required,
3259
- readonly,
3260
- nameField
3261
- };
3262
- };
3263
2298
 
3264
2299
  // src/utils/storage/local-storage.ts
3265
2300
  var localStorageUtils = () => {
@@ -3489,7 +2524,6 @@ var breadcrumbsSlice = (0, import_toolkit.createSlice)({
3489
2524
  }
3490
2525
  });
3491
2526
  var { setBreadCrumbs } = breadcrumbsSlice.actions;
3492
- var selectBreadCrumbs = (state) => state.breadcrumbs;
3493
2527
  var breadcrums_slice_default = breadcrumbsSlice.reducer;
3494
2528
 
3495
2529
  // src/store/reducers/env-slice/index.ts
@@ -3558,7 +2592,6 @@ var {
3558
2592
  setConfig,
3559
2593
  setEnvFile
3560
2594
  } = envSlice.actions;
3561
- var selectEnv = (state) => state.env;
3562
2595
  var env_slice_default = envSlice.reducer;
3563
2596
 
3564
2597
  // src/store/reducers/excel-slice/index.ts
@@ -3603,7 +2636,6 @@ var {
3603
2636
  setSelectedFile,
3604
2637
  setErrorData
3605
2638
  } = excelSlice.actions;
3606
- var selectExcel = (state) => state.excel;
3607
2639
  var excel_slice_default = excelSlice.reducer;
3608
2640
 
3609
2641
  // src/store/reducers/form-slice/index.ts
@@ -3653,7 +2685,6 @@ var {
3653
2685
  setListSubject,
3654
2686
  setDataUser
3655
2687
  } = formSlice.actions;
3656
- var selectForm = (state) => state.form;
3657
2688
  var form_slice_default = formSlice.reducer;
3658
2689
 
3659
2690
  // src/store/reducers/header-slice/index.ts
@@ -3673,7 +2704,6 @@ var headerSlice = (0, import_toolkit5.createSlice)({
3673
2704
  }
3674
2705
  });
3675
2706
  var { setAllowedCompanyIds, setHeader } = headerSlice.actions;
3676
- var selectHeader = (state) => state.header;
3677
2707
  var header_slice_default = headerSlice.reducer;
3678
2708
 
3679
2709
  // src/store/reducers/list-slice/index.ts
@@ -3739,7 +2769,6 @@ var {
3739
2769
  setTransferDetail,
3740
2770
  setDomainTable
3741
2771
  } = listSlice.actions;
3742
- var selectList = (state) => state.list;
3743
2772
  var list_slice_default = listSlice.reducer;
3744
2773
 
3745
2774
  // src/store/reducers/login-slice/index.ts
@@ -3765,7 +2794,6 @@ var loginSlice = (0, import_toolkit7.createSlice)({
3765
2794
  }
3766
2795
  });
3767
2796
  var { setDb, setRedirectTo, setForgotPasswordUrl } = loginSlice.actions;
3768
- var selectLogin = (state) => state.login;
3769
2797
  var login_slice_default = loginSlice.reducer;
3770
2798
 
3771
2799
  // src/store/reducers/navbar-slice/index.ts
@@ -3795,7 +2823,6 @@ var navbarSlice = (0, import_toolkit8.createSlice)({
3795
2823
  }
3796
2824
  });
3797
2825
  var { setMenuFocus, setMenuFocusAction, setNavbarWidth, setMenuList } = navbarSlice.actions;
3798
- var selectNavbar = (state) => state.navbar;
3799
2826
  var navbar_slice_default = navbarSlice.reducer;
3800
2827
 
3801
2828
  // src/store/reducers/profile-slice/index.ts
@@ -3813,7 +2840,6 @@ var profileSlice = (0, import_toolkit9.createSlice)({
3813
2840
  }
3814
2841
  });
3815
2842
  var { setProfile } = profileSlice.actions;
3816
- var selectProfile = (state) => state.profile;
3817
2843
  var profile_slice_default = profileSlice.reducer;
3818
2844
 
3819
2845
  // src/store/reducers/search-slice/index.ts
@@ -3900,8 +2926,6 @@ var {
3900
2926
  setGroupBy,
3901
2927
  clearSearchMap
3902
2928
  } = searchSlice.actions;
3903
- var selectSearch = (state) => state.search;
3904
- var selectSearchMap = (state) => state.search.searchMap;
3905
2929
  var search_slice_default = searchSlice.reducer;
3906
2930
 
3907
2931
  // src/store/store.ts
@@ -4096,10 +3120,6 @@ var envStore = (0, import_toolkit11.configureStore)({
4096
3120
  })
4097
3121
  });
4098
3122
 
4099
- // src/store/index.ts
4100
- var useAppDispatch = import_react_redux.useDispatch;
4101
- var useAppSelector = import_react_redux.useSelector;
4102
-
4103
3123
  // src/environment/EnvStore.ts
4104
3124
  var EnvStore = class {
4105
3125
  envStore;
@@ -4175,22 +3195,12 @@ var EnvStore = class {
4175
3195
  }
4176
3196
  };
4177
3197
  var env = null;
4178
- function initEnv({
4179
- localStorageUtils: localStorageUtils2,
4180
- sessionStorageUtils: sessionStorageUtils2
4181
- }) {
4182
- env = new EnvStore(envStore, localStorageUtils2, sessionStorageUtils2);
4183
- return env;
4184
- }
4185
3198
  function getEnv() {
4186
3199
  if (!env)
4187
3200
  env = new EnvStore(envStore, localStorageUtils(), sessionStorageUtils());
4188
3201
  return env;
4189
3202
  }
4190
3203
 
4191
- // src/hooks/auth/use-forgot-password.ts
4192
- var import_react_query = require("@tanstack/react-query");
4193
-
4194
3204
  // src/services/action-service/index.ts
4195
3205
  var ActionService = {
4196
3206
  // Load Action
@@ -6963,212 +5973,8 @@ var useVerifyTotp = () => {
6963
5973
  });
6964
5974
  };
6965
5975
  var use_verify_totp_default = useVerifyTotp;
6966
-
6967
- // src/provider/react-query-provider.tsx
6968
- var import_react_query68 = require("@tanstack/react-query");
6969
- var import_jsx_runtime = require("react/jsx-runtime");
6970
- var ReactQueryProvider = ({ children }) => {
6971
- const queryClient = new import_react_query68.QueryClient({
6972
- defaultOptions: {
6973
- queries: {
6974
- // placeholderData: keepPreviousData,
6975
- refetchOnWindowFocus: false,
6976
- refetchOnMount: false,
6977
- refetchOnReconnect: false,
6978
- retry: false
6979
- }
6980
- }
6981
- });
6982
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_query68.QueryClientProvider, { client: queryClient, children });
6983
- };
6984
-
6985
- // src/provider/redux-provider.tsx
6986
- var import_react_redux2 = require("react-redux");
6987
- var import_jsx_runtime2 = require("react/jsx-runtime");
6988
- var ReduxProvider = ({ children }) => {
6989
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_redux2.Provider, { store: envStore, children });
6990
- };
6991
-
6992
- // src/provider/main-provider.tsx
6993
- var import_jsx_runtime3 = require("react/jsx-runtime");
6994
- var MainProvider = ({ children }) => {
6995
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ReduxProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ReactQueryProvider, { children }) });
6996
- };
6997
-
6998
- // src/provider/version-gate-provider.tsx
6999
- var import_react2 = require("react");
7000
- var import_react_query69 = require("@tanstack/react-query");
7001
- var import_jsx_runtime4 = require("react/jsx-runtime");
7002
- var VersionGate = ({ children }) => {
7003
- const queryClient = (0, import_react_query69.useQueryClient)();
7004
- const [ready, setReady] = (0, import_react2.useState)(false);
7005
- (0, import_react2.useEffect)(() => {
7006
- const clearVersion = () => {
7007
- queryClient.clear();
7008
- localStorage.removeItem("__api_version__");
7009
- };
7010
- const validateVersion = async () => {
7011
- const serverVersion = await view_service_default.getVersion();
7012
- const cached = localStorage.getItem("__api_version__");
7013
- if (cached !== serverVersion?.api_version) {
7014
- clearVersion();
7015
- localStorage.setItem("__api_version__", serverVersion?.api_version);
7016
- } else {
7017
- console.log("Api version:", serverVersion?.api_version);
7018
- }
7019
- setReady(true);
7020
- };
7021
- validateVersion();
7022
- if (typeof window !== "undefined") {
7023
- const onKey = (e) => {
7024
- const key = e.key.toLowerCase();
7025
- const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
7026
- if (isHardRefresh) clearVersion();
7027
- };
7028
- window.addEventListener("keydown", onKey);
7029
- return () => window.removeEventListener("keydown", onKey);
7030
- }
7031
- }, [queryClient]);
7032
- return ready ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
7033
- };
7034
5976
  // Annotate the CommonJS export names for ESM import in node:
7035
5977
  0 && (module.exports = {
7036
- ActionService,
7037
- AuthService,
7038
- CompanyService,
7039
- ComponentType,
7040
- EnvStore,
7041
- ExcelService,
7042
- FieldTypeConstants,
7043
- FormService,
7044
- KanbanService,
7045
- KeyConstants,
7046
- MainProvider,
7047
- MethodConstants,
7048
- MethodType,
7049
- ModelConstants,
7050
- ModelService,
7051
- ReactQueryProvider,
7052
- SearchType,
7053
- UriConstants,
7054
- UserService,
7055
- VersionGate,
7056
- ViewService,
7057
- WIDGETAVATAR,
7058
- WIDGETCOLOR,
7059
- WIDGETCURRENCY,
7060
- WIDGETNOSTRING,
7061
- WIDGETSTATUS,
7062
- WesapError,
7063
- axiosClient,
7064
- breadcrumbsSlice,
7065
- checkIsImageLink,
7066
- clearSearchMap,
7067
- convertFloatToTime,
7068
- convertTimeToFloat,
7069
- copyTextToClipboard,
7070
- domainHelper,
7071
- env,
7072
- envSlice,
7073
- envStore,
7074
- evalJSONContext,
7075
- evalJSONDomain,
7076
- excelSlice,
7077
- filterFieldDirty,
7078
- formSlice,
7079
- formatCurrency,
7080
- formatDate,
7081
- formatFileSize,
7082
- formatSortingString,
7083
- formatUrlPath,
7084
- getEnv,
7085
- getFieldsOnChange,
7086
- getOffSet,
7087
- getSubdomain,
7088
- handleError,
7089
- headerSlice,
7090
- initEnv,
7091
- isBase64File,
7092
- isBase64Image,
7093
- isObjectEmpty,
7094
- listSlice,
7095
- loginSlice,
7096
- mergeObjects,
7097
- navbarSlice,
7098
- profileSlice,
7099
- removeKeyFromSearchMap,
7100
- removeUndefinedFields,
7101
- resequence,
7102
- searchSlice,
7103
- selectBreadCrumbs,
7104
- selectEnv,
7105
- selectExcel,
7106
- selectForm,
7107
- selectHeader,
7108
- selectList,
7109
- selectLogin,
7110
- selectNavbar,
7111
- selectProfile,
7112
- selectSearch,
7113
- selectSearchMap,
7114
- setAllowCompanies,
7115
- setAllowedCompanyIds,
7116
- setBreadCrumbs,
7117
- setCompanies,
7118
- setConfig,
7119
- setDataParse,
7120
- setDataUser,
7121
- setDb,
7122
- setDefaultCompany,
7123
- setDomainTable,
7124
- setEnv,
7125
- setEnvFile,
7126
- setErrorData,
7127
- setFieldTranslate,
7128
- setFields,
7129
- setFilterBy,
7130
- setFirstDomain,
7131
- setForgotPasswordUrl,
7132
- setFormSubmitComponent,
7133
- setGroupBy,
7134
- setGroupByDomain,
7135
- setHeader,
7136
- setHoveredIndexSearchList,
7137
- setIdFile,
7138
- setIndexRowTableModal,
7139
- setIsFileLoaded,
7140
- setIsShowModalTranslate,
7141
- setIsShowingModalDetail,
7142
- setIsUpdateTableModal,
7143
- setLang,
7144
- setListSubject,
7145
- setLoadingImport,
7146
- setMenuFocus,
7147
- setMenuFocusAction,
7148
- setMenuList,
7149
- setNavbarWidth,
7150
- setOrder,
7151
- setPage,
7152
- setPageLimit,
7153
- setProfile,
7154
- setRedirectTo,
7155
- setSearchBy,
7156
- setSearchMap,
7157
- setSearchString,
7158
- setSelectedFile,
7159
- setSelectedRadioKey,
7160
- setSelectedRowKeys,
7161
- setSelectedTags,
7162
- setTransferDetail,
7163
- setUid,
7164
- setUser,
7165
- setViewDataStore,
7166
- stringToColor,
7167
- toQueryString,
7168
- updateSearchMap,
7169
- updateTokenParamInOriginalRequest,
7170
- useAppDispatch,
7171
- useAppSelector,
7172
5978
  useButton,
7173
5979
  useChangeStatus,
7174
5980
  useDelete,
@@ -7176,7 +5982,6 @@ var VersionGate = ({ children }) => {
7176
5982
  useDuplicateRecord,
7177
5983
  useExecuteImport,
7178
5984
  useExportExcel,
7179
- useField,
7180
5985
  useForgotPassword,
7181
5986
  useForgotPasswordSSO,
7182
5987
  useGet2FAMethods,
@@ -7232,14 +6037,11 @@ var VersionGate = ({ children }) => {
7232
6037
  useSettingsWebRead2fa,
7233
6038
  useSignInSSO,
7234
6039
  useSwitchLocale,
7235
- useTabModel,
7236
6040
  useUpdatePassword,
7237
6041
  useUploadFile,
7238
6042
  useUploadIdFile,
7239
6043
  useUploadImage,
7240
6044
  useValidateActionToken,
7241
6045
  useVerify2FA,
7242
- useVerifyTotp,
7243
- validateAndParseDate
6046
+ useVerifyTotp
7244
6047
  });
7245
- //# sourceMappingURL=index.js.map