@fctc/interface-logic 1.3.0 → 1.3.2

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