@fctc/widget-logic 1.6.4 → 1.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hooks.js CHANGED
@@ -100,8 +100,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
100
100
  }, []);
101
101
  (0, import_react2.useEffect)(() => {
102
102
  try {
103
- const env = (0, import_environment2.getEnv)();
104
- env.setupEnv({
103
+ (0, import_environment2.setupEnv)({
105
104
  baseUrl: envConfig.baseUrl,
106
105
  port: 3e3,
107
106
  config: {
@@ -453,10 +452,10 @@ var useProfile = (accessToken) => {
453
452
  if (userInfoQuery.data) {
454
453
  const userInfo = userInfoQuery.data;
455
454
  const env = (0, import_environment3.getEnv)();
456
- env.setUid(userInfo?.sub);
455
+ dispatch((0, import_store4.setUid)(userInfo?.sub));
457
456
  dispatch((0, import_store4.setDataUser)(userInfo));
458
457
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
459
- env.setLang(userLocale?.id);
458
+ dispatch((0, import_store4.setLang)(userLocale?.id));
460
459
  i18n.changeLanguage(userLocale?.id.split("_")[0]);
461
460
  }
462
461
  }, [dispatch, userInfoQuery.data]);
@@ -566,8 +565,10 @@ var import_react_query3 = require("@tanstack/react-query");
566
565
  var import_react9 = require("react");
567
566
  var import_environment4 = require("@fctc/interface-logic/environment");
568
567
  var import_hooks8 = require("@fctc/interface-logic/hooks");
568
+ var import_store6 = require("@fctc/interface-logic/store");
569
569
  var useCompany = (accessToken) => {
570
570
  const getCurrentCompany = (0, import_hooks8.useGetCurrentCompany)();
571
+ const dispatch = (0, import_store6.useAppDispatch)();
571
572
  const fetchCurrentCompany = async () => {
572
573
  return await getCurrentCompany.mutateAsync();
573
574
  };
@@ -583,8 +584,8 @@ var useCompany = (accessToken) => {
583
584
  if (current_company_id) {
584
585
  const companyIDs = [current_company_id];
585
586
  const env = (0, import_environment4.getEnv)();
586
- env.setAllowCompanies([...companyIDs]);
587
- env.setCompanies(companyIDs);
587
+ dispatch((0, import_store6.setAllowCompanies)([...companyIDs]));
588
+ dispatch((0, import_store6.setCompanies)(companyIDs));
588
589
  }
589
590
  }, [current_company_id]);
590
591
  const getCompanyInfo = (0, import_hooks8.useGetCompanyInfo)();
@@ -598,7 +599,7 @@ var useCompany = (accessToken) => {
598
599
  const companyInfoData = companyInfo.data;
599
600
  if (companyInfoData?.length) {
600
601
  const env = (0, import_environment4.getEnv)();
601
- env.setDefaultCompany(companyInfoData[0]);
602
+ dispatch((0, import_store6.setDefaultCompany)(companyInfoData[0]));
602
603
  }
603
604
  }
604
605
  }, [companyInfo.data]);
package/dist/hooks.mjs CHANGED
@@ -31,7 +31,7 @@ var useCallAction = () => {
31
31
 
32
32
  // src/hooks/core/use-config.ts
33
33
  import { useEffect, useMemo } from "react";
34
- import { getEnv as getEnv2 } from "@fctc/interface-logic/environment";
34
+ import { setupEnv } from "@fctc/interface-logic/environment";
35
35
  import { useAppDispatch, setEnvFile } from "@fctc/interface-logic/store";
36
36
  var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
37
37
  const dispatch = useAppDispatch();
@@ -61,8 +61,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
61
61
  }, []);
62
62
  useEffect(() => {
63
63
  try {
64
- const env = getEnv2();
65
- env.setupEnv({
64
+ setupEnv({
66
65
  baseUrl: envConfig.baseUrl,
67
66
  port: 3e3,
68
67
  config: {
@@ -402,9 +401,14 @@ var useMenu = ({ context }) => {
402
401
  import { useQuery as useQuery2 } from "@tanstack/react-query";
403
402
  import { useEffect as useEffect5, useMemo as useMemo4 } from "react";
404
403
  import { useTranslation } from "react-i18next";
405
- import { getEnv as getEnv3 } from "@fctc/interface-logic/environment";
404
+ import { getEnv as getEnv2 } from "@fctc/interface-logic/environment";
406
405
  import { useGetProfile } from "@fctc/interface-logic/hooks";
407
- import { useAppDispatch as useAppDispatch3, setDataUser } from "@fctc/interface-logic/store";
406
+ import {
407
+ useAppDispatch as useAppDispatch3,
408
+ setDataUser,
409
+ setUid,
410
+ setLang
411
+ } from "@fctc/interface-logic/store";
408
412
  var useProfile = (accessToken) => {
409
413
  const getProfile = useGetProfile();
410
414
  const dispatch = useAppDispatch3();
@@ -420,11 +424,11 @@ var useProfile = (accessToken) => {
420
424
  useEffect5(() => {
421
425
  if (userInfoQuery.data) {
422
426
  const userInfo = userInfoQuery.data;
423
- const env = getEnv3();
424
- env.setUid(userInfo?.sub);
427
+ const env = getEnv2();
428
+ dispatch(setUid(userInfo?.sub));
425
429
  dispatch(setDataUser(userInfo));
426
430
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
427
- env.setLang(userLocale?.id);
431
+ dispatch(setLang(userLocale?.id));
428
432
  i18n.changeLanguage(userLocale?.id.split("_")[0]);
429
433
  }
430
434
  }, [dispatch, userInfoQuery.data]);
@@ -537,13 +541,20 @@ import { createContext, useContext, useMemo as useMemo7 } from "react";
537
541
  // src/hooks/core/use-company.ts
538
542
  import { useQuery as useQuery3 } from "@tanstack/react-query";
539
543
  import { useEffect as useEffect6, useMemo as useMemo6 } from "react";
540
- import { getEnv as getEnv4 } from "@fctc/interface-logic/environment";
544
+ import { getEnv as getEnv3 } from "@fctc/interface-logic/environment";
541
545
  import {
542
546
  useGetCurrentCompany,
543
547
  useGetCompanyInfo
544
548
  } from "@fctc/interface-logic/hooks";
549
+ import {
550
+ setAllowCompanies,
551
+ setCompanies,
552
+ setDefaultCompany,
553
+ useAppDispatch as useAppDispatch5
554
+ } from "@fctc/interface-logic/store";
545
555
  var useCompany = (accessToken) => {
546
556
  const getCurrentCompany = useGetCurrentCompany();
557
+ const dispatch = useAppDispatch5();
547
558
  const fetchCurrentCompany = async () => {
548
559
  return await getCurrentCompany.mutateAsync();
549
560
  };
@@ -558,9 +569,9 @@ var useCompany = (accessToken) => {
558
569
  useEffect6(() => {
559
570
  if (current_company_id) {
560
571
  const companyIDs = [current_company_id];
561
- const env = getEnv4();
562
- env.setAllowCompanies([...companyIDs]);
563
- env.setCompanies(companyIDs);
572
+ const env = getEnv3();
573
+ dispatch(setAllowCompanies([...companyIDs]));
574
+ dispatch(setCompanies(companyIDs));
564
575
  }
565
576
  }, [current_company_id]);
566
577
  const getCompanyInfo = useGetCompanyInfo();
@@ -573,8 +584,8 @@ var useCompany = (accessToken) => {
573
584
  if (companyInfo.data) {
574
585
  const companyInfoData = companyInfo.data;
575
586
  if (companyInfoData?.length) {
576
- const env = getEnv4();
577
- env.setDefaultCompany(companyInfoData[0]);
587
+ const env = getEnv3();
588
+ dispatch(setDefaultCompany(companyInfoData[0]));
578
589
  }
579
590
  }
580
591
  }, [companyInfo.data]);
package/dist/index.js CHANGED
@@ -4166,8 +4166,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4166
4166
  }, []);
4167
4167
  (0, import_react2.useEffect)(() => {
4168
4168
  try {
4169
- const env = (0, import_environment2.getEnv)();
4170
- env.setupEnv({
4169
+ (0, import_environment2.setupEnv)({
4171
4170
  baseUrl: envConfig.baseUrl,
4172
4171
  port: 3e3,
4173
4172
  config: {
@@ -4598,10 +4597,10 @@ var useProfile = (accessToken) => {
4598
4597
  if (userInfoQuery.data) {
4599
4598
  const userInfo = userInfoQuery.data;
4600
4599
  const env = (0, import_environment3.getEnv)();
4601
- env.setUid(userInfo?.sub);
4600
+ dispatch((0, import_store4.setUid)(userInfo?.sub));
4602
4601
  dispatch((0, import_store4.setDataUser)(userInfo));
4603
4602
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
4604
- env.setLang(userLocale?.id);
4603
+ dispatch((0, import_store4.setLang)(userLocale?.id));
4605
4604
  i18n2.changeLanguage(userLocale?.id.split("_")[0]);
4606
4605
  }
4607
4606
  }, [dispatch, userInfoQuery.data]);
@@ -4711,8 +4710,10 @@ var import_react_query3 = require("@tanstack/react-query");
4711
4710
  var import_react9 = require("react");
4712
4711
  var import_environment4 = require("@fctc/interface-logic/environment");
4713
4712
  var import_hooks8 = require("@fctc/interface-logic/hooks");
4713
+ var import_store6 = require("@fctc/interface-logic/store");
4714
4714
  var useCompany = (accessToken) => {
4715
4715
  const getCurrentCompany = (0, import_hooks8.useGetCurrentCompany)();
4716
+ const dispatch = (0, import_store6.useAppDispatch)();
4716
4717
  const fetchCurrentCompany = async () => {
4717
4718
  return await getCurrentCompany.mutateAsync();
4718
4719
  };
@@ -4728,8 +4729,8 @@ var useCompany = (accessToken) => {
4728
4729
  if (current_company_id) {
4729
4730
  const companyIDs = [current_company_id];
4730
4731
  const env = (0, import_environment4.getEnv)();
4731
- env.setAllowCompanies([...companyIDs]);
4732
- env.setCompanies(companyIDs);
4732
+ dispatch((0, import_store6.setAllowCompanies)([...companyIDs]));
4733
+ dispatch((0, import_store6.setCompanies)(companyIDs));
4733
4734
  }
4734
4735
  }, [current_company_id]);
4735
4736
  const getCompanyInfo = (0, import_hooks8.useGetCompanyInfo)();
@@ -4743,7 +4744,7 @@ var useCompany = (accessToken) => {
4743
4744
  const companyInfoData = companyInfo.data;
4744
4745
  if (companyInfoData?.length) {
4745
4746
  const env = (0, import_environment4.getEnv)();
4746
- env.setDefaultCompany(companyInfoData[0]);
4747
+ dispatch((0, import_store6.setDefaultCompany)(companyInfoData[0]));
4747
4748
  }
4748
4749
  }
4749
4750
  }, [companyInfo.data]);
@@ -5043,7 +5044,7 @@ var statusDropdownController = (props) => {
5043
5044
  // src/widget/basic/many2one-field/controller.ts
5044
5045
  var import_react14 = require("react");
5045
5046
  var import_hooks11 = require("@fctc/interface-logic/hooks");
5046
- var import_store6 = require("@fctc/interface-logic/store");
5047
+ var import_store7 = require("@fctc/interface-logic/store");
5047
5048
  var import_utils3 = require("@fctc/interface-logic/utils");
5048
5049
  var many2oneFieldController = (props) => {
5049
5050
  const {
@@ -5062,8 +5063,8 @@ var many2oneFieldController = (props) => {
5062
5063
  const [options, setOptions] = (0, import_react14.useState)([]);
5063
5064
  const [isShowModalMany2Many, setIsShowModalMany2Many] = (0, import_react14.useState)(false);
5064
5065
  const [tempSelectedOption, setTempSelectedOption] = (0, import_react14.useState)(null);
5065
- const { menuList } = (0, import_store6.useAppSelector)(import_store6.selectNavbar);
5066
- const { context } = (0, import_store6.useAppSelector)(import_store6.selectEnv);
5066
+ const { menuList } = (0, import_store7.useAppSelector)(import_store7.selectNavbar);
5067
+ const { context } = (0, import_store7.useAppSelector)(import_store7.selectEnv);
5067
5068
  const [domainModal, setDomainModal] = (0, import_react14.useState)(null);
5068
5069
  const initValue = methods?.getValues(name);
5069
5070
  const domainObject = (0, import_react14.useMemo)(
@@ -5113,7 +5114,7 @@ var many2oneFieldController = (props) => {
5113
5114
  (0, import_react14.useEffect)(() => {
5114
5115
  setOptions(selectOptions);
5115
5116
  setDomainModal(domainObject);
5116
- if (relation === "student.subject") (0, import_store6.setListSubject)(selectOptions);
5117
+ if (relation === "student.subject") (0, import_store7.setListSubject)(selectOptions);
5117
5118
  }, [selectOptions]);
5118
5119
  (0, import_react14.useEffect)(() => {
5119
5120
  if (!propValue && tempSelectedOption) {
@@ -5244,7 +5245,7 @@ var many2oneButtonController = (props) => {
5244
5245
  var import_react18 = require("react");
5245
5246
 
5246
5247
  // src/widget/advance/table/table-body/controller.ts
5247
- var import_store7 = require("@fctc/interface-logic/store");
5248
+ var import_store8 = require("@fctc/interface-logic/store");
5248
5249
  var import_react15 = require("react");
5249
5250
  var tableBodyController = (props) => {
5250
5251
  const {
@@ -5257,7 +5258,7 @@ var tableBodyController = (props) => {
5257
5258
  selectedRowKeysRef,
5258
5259
  onClickRow
5259
5260
  } = props;
5260
- const appDispatch = (0, import_store7.useAppDispatch)();
5261
+ const appDispatch = (0, import_store8.useAppDispatch)();
5261
5262
  const checked = (0, import_react15.useMemo)(() => {
5262
5263
  if (!row?.id) return false;
5263
5264
  if (selectedRowKeys?.includes(row.id)) {
@@ -5274,7 +5275,7 @@ var tableBodyController = (props) => {
5274
5275
  }
5275
5276
  const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
5276
5277
  console.log("newSelectedRowKeys", newSelectedRowKeys);
5277
- appDispatch((0, import_store7.setSelectedRowKeys)(newSelectedRowKeys));
5278
+ appDispatch((0, import_store8.setSelectedRowKeys)(newSelectedRowKeys));
5278
5279
  };
5279
5280
  const handleClickRow = (col, row2) => {
5280
5281
  onClickRow(col, row2);
@@ -5287,13 +5288,13 @@ var tableBodyController = (props) => {
5287
5288
  (id) => id !== row.id
5288
5289
  );
5289
5290
  selectedRowKeysRef.current = filtered;
5290
- appDispatch((0, import_store7.setSelectedRowKeys)(filtered));
5291
+ appDispatch((0, import_store8.setSelectedRowKeys)(filtered));
5291
5292
  } else {
5292
5293
  const unique = Array.from(
5293
5294
  /* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
5294
5295
  );
5295
5296
  selectedRowKeysRef.current = unique;
5296
- appDispatch((0, import_store7.setSelectedRowKeys)(unique));
5297
+ appDispatch((0, import_store8.setSelectedRowKeys)(unique));
5297
5298
  }
5298
5299
  }
5299
5300
  }, [isAutoSelect]);
@@ -5311,35 +5312,35 @@ var tableBodyController = (props) => {
5311
5312
  };
5312
5313
 
5313
5314
  // src/widget/advance/table/table-head/controller.ts
5314
- var import_store8 = require("@fctc/interface-logic/store");
5315
+ var import_store9 = require("@fctc/interface-logic/store");
5315
5316
  var tableHeadController = (props) => {
5316
5317
  const { typeTable, rows, selectedRowKeysRef } = props;
5317
- const appDispatch = (0, import_store8.useAppDispatch)();
5318
- const { groupByDomain } = (0, import_store8.useAppSelector)(import_store8.selectSearch);
5318
+ const appDispatch = (0, import_store9.useAppDispatch)();
5319
+ const { groupByDomain } = (0, import_store9.useAppSelector)(import_store9.selectSearch);
5319
5320
  const handleCheckBoxAll = (event) => {
5320
5321
  if (event?.target?.checked && typeTable === "list") {
5321
5322
  const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
5322
- appDispatch((0, import_store8.setSelectedRowKeys)(allRowKeys));
5323
+ appDispatch((0, import_store9.setSelectedRowKeys)(allRowKeys));
5323
5324
  } else if (event?.target?.checked && typeTable === "group") {
5324
5325
  const rowsIDs = document.querySelectorAll("tr[data-row-id]");
5325
5326
  const ids = Array.from(rowsIDs)?.map(
5326
5327
  (row) => Number(row?.getAttribute("data-row-id"))
5327
5328
  );
5328
5329
  if (ids?.length > 0) {
5329
- appDispatch((0, import_store8.setSelectedRowKeys)(ids));
5330
+ appDispatch((0, import_store9.setSelectedRowKeys)(ids));
5330
5331
  } else {
5331
5332
  const sum = countSum(
5332
5333
  rows,
5333
5334
  typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
5334
5335
  );
5335
5336
  const keys = Array.from({ length: sum }, (_) => void 0);
5336
- appDispatch((0, import_store8.setSelectedRowKeys)(keys));
5337
+ appDispatch((0, import_store9.setSelectedRowKeys)(keys));
5337
5338
  }
5338
5339
  if (selectedRowKeysRef) {
5339
5340
  selectedRowKeysRef.current = [];
5340
5341
  }
5341
5342
  } else {
5342
- appDispatch((0, import_store8.setSelectedRowKeys)([]));
5343
+ appDispatch((0, import_store9.setSelectedRowKeys)([]));
5343
5344
  }
5344
5345
  };
5345
5346
  return {
@@ -5349,7 +5350,7 @@ var tableHeadController = (props) => {
5349
5350
 
5350
5351
  // src/widget/advance/table/table-view/controller.ts
5351
5352
  var import_react16 = require("react");
5352
- var import_store9 = require("@fctc/interface-logic/store");
5353
+ var import_store10 = require("@fctc/interface-logic/store");
5353
5354
  var import_utils5 = require("@fctc/interface-logic/utils");
5354
5355
  var tableController = ({ data }) => {
5355
5356
  const [rows, setRows] = (0, import_react16.useState)(data.records || []);
@@ -6197,7 +6198,7 @@ var i18n_default = import_i18next.default;
6197
6198
 
6198
6199
  // src/widget/advance/table/table-group/controller.ts
6199
6200
  var import_hooks13 = require("@fctc/interface-logic/hooks");
6200
- var import_store10 = require("@fctc/interface-logic/store");
6201
+ var import_store11 = require("@fctc/interface-logic/store");
6201
6202
 
6202
6203
  // src/environment.ts
6203
6204
  var environment_exports = {};
@@ -6225,9 +6226,9 @@ var tableGroupController = (props) => {
6225
6226
  selectedRowKeysRef
6226
6227
  } = props;
6227
6228
  const [pageGroup, setPageGroup] = (0, import_react17.useState)(0);
6228
- const { groupByDomain, selectedTags } = (0, import_store10.useAppSelector)(import_store10.selectSearch);
6229
- const { selectedRowKeys } = (0, import_store10.useAppSelector)(import_store10.selectList);
6230
- const appDispatch = (0, import_store10.useAppDispatch)();
6229
+ const { groupByDomain, selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
6230
+ const { selectedRowKeys } = (0, import_store11.useAppSelector)(import_store11.selectList);
6231
+ const appDispatch = (0, import_store11.useAppDispatch)();
6231
6232
  const { toDataJS } = (0, import_hooks13.useOdooDataTransform)();
6232
6233
  const initVal = toDataJS(row, viewData, model);
6233
6234
  const [isShowGroup, setIsShowGroup] = (0, import_react17.useState)(false);
@@ -6313,14 +6314,14 @@ var tableGroupController = (props) => {
6313
6314
  const filteredIds = selectedRowKeys.filter(
6314
6315
  (id) => !ids.includes(id)
6315
6316
  );
6316
- appDispatch((0, import_store10.setSelectedRowKeys)(filteredIds));
6317
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredIds));
6317
6318
  } else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
6318
6319
  const clonedKeys = [...selectedRowKeys];
6319
- appDispatch((0, import_store10.setSelectedRowKeys)([...clonedKeys, -1]));
6320
- setTimeout(() => appDispatch((0, import_store10.setSelectedRowKeys)(clonedKeys)), 500);
6320
+ appDispatch((0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]));
6321
+ setTimeout(() => appDispatch((0, import_store11.setSelectedRowKeys)(clonedKeys)), 500);
6321
6322
  } else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
6322
6323
  const filteredKeys = selectedRowKeys.filter((id) => id > -1);
6323
- appDispatch((0, import_store10.setSelectedRowKeys)(filteredKeys));
6324
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredKeys));
6324
6325
  }
6325
6326
  toggleShowGroup();
6326
6327
  };
@@ -6329,8 +6330,8 @@ var tableGroupController = (props) => {
6329
6330
  return;
6330
6331
  }
6331
6332
  const clonedKeys = [...selectedRowKeys];
6332
- (0, import_store10.setSelectedRowKeys)([...clonedKeys, -1]);
6333
- setTimeout(() => (0, import_store10.setSelectedRowKeys)(clonedKeys), 500);
6333
+ (0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]);
6334
+ setTimeout(() => (0, import_store11.setSelectedRowKeys)(clonedKeys), 500);
6334
6335
  }, [isQueryFetched]);
6335
6336
  return {
6336
6337
  handleExpandChildGroup,
@@ -6365,7 +6366,7 @@ var tableGroupController = (props) => {
6365
6366
 
6366
6367
  // src/widget/basic/many2many-field/controller.ts
6367
6368
  var import_environment8 = require("@fctc/interface-logic/environment");
6368
- var import_store11 = require("@fctc/interface-logic/store");
6369
+ var import_store12 = require("@fctc/interface-logic/store");
6369
6370
  var import_utils6 = require("@fctc/interface-logic/utils");
6370
6371
  var many2manyFieldController = (props) => {
6371
6372
  const {
@@ -6383,14 +6384,14 @@ var many2manyFieldController = (props) => {
6383
6384
  options,
6384
6385
  sessionStorageUtils
6385
6386
  } = props;
6386
- const appDispatch = (0, import_store11.useAppDispatch)();
6387
+ const appDispatch = (0, import_store12.useAppDispatch)();
6387
6388
  const actionData = sessionStorageUtils.getActionData();
6388
6389
  const [debouncedPage] = useDebounce(page, 500);
6389
6390
  const [order, setOrder] = (0, import_react18.useState)();
6390
6391
  const [isLoadedData, setIsLoadedData] = (0, import_react18.useState)(false);
6391
6392
  const [domainMany2Many, setDomainMany2Many] = (0, import_react18.useState)(domain);
6392
6393
  const env = (0, import_environment8.getEnv)();
6393
- const { selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
6394
+ const { selectedTags } = (0, import_store12.useAppSelector)(import_store12.selectSearch);
6394
6395
  const viewParams = {
6395
6396
  model: relation,
6396
6397
  views: [
@@ -6433,8 +6434,8 @@ var many2manyFieldController = (props) => {
6433
6434
  const fetchData = async () => {
6434
6435
  try {
6435
6436
  setDomainMany2Many(domain);
6436
- appDispatch((0, import_store11.setFirstDomain)(domain));
6437
- appDispatch((0, import_store11.setViewDataStore)(viewResponse));
6437
+ appDispatch((0, import_store12.setFirstDomain)(domain));
6438
+ appDispatch((0, import_store12.setViewDataStore)(viewResponse));
6438
6439
  const modalData = viewResponse?.views?.list?.fields.map((field) => ({
6439
6440
  ...viewResponse?.models?.[String(model)]?.[field?.name],
6440
6441
  ...field
@@ -6445,7 +6446,7 @@ var many2manyFieldController = (props) => {
6445
6446
  [`${aid}_${relation}_popupmany2many`]: modalData
6446
6447
  });
6447
6448
  }
6448
- appDispatch((0, import_store11.setPage)(0));
6449
+ appDispatch((0, import_store12.setPage)(0));
6449
6450
  } catch (err) {
6450
6451
  console.log(err);
6451
6452
  }
@@ -6481,12 +6482,12 @@ var many2manyFieldController = (props) => {
6481
6482
  fetchData();
6482
6483
  }
6483
6484
  return () => {
6484
- appDispatch((0, import_store11.setGroupByDomain)(null));
6485
+ appDispatch((0, import_store12.setGroupByDomain)(null));
6485
6486
  setFields((prevFields) => ({
6486
6487
  ...prevFields,
6487
6488
  [`${aid}_${relation}_popupmany2many`]: null
6488
6489
  }));
6489
- appDispatch((0, import_store11.setPage)(0));
6490
+ appDispatch((0, import_store12.setPage)(0));
6490
6491
  setSelectedRowKeys4([]);
6491
6492
  setDomainMany2Many(null);
6492
6493
  setIsLoadedData(false);
@@ -6599,7 +6600,7 @@ var many2manyTagsController = (props) => {
6599
6600
  // src/widget/basic/status-bar-field/controller.ts
6600
6601
  var import_react20 = require("react");
6601
6602
  var import_hooks16 = require("@fctc/interface-logic/hooks");
6602
- var import_store12 = require("@fctc/interface-logic/store");
6603
+ var import_store13 = require("@fctc/interface-logic/store");
6603
6604
  var import_utils8 = require("@fctc/interface-logic/utils");
6604
6605
  var durationController = (props) => {
6605
6606
  const {
@@ -6619,7 +6620,7 @@ var durationController = (props) => {
6619
6620
  };
6620
6621
  const [disabled, setDisabled] = (0, import_react20.useState)(false);
6621
6622
  const [modelStatus, setModalStatus] = (0, import_react20.useState)(false);
6622
- const { context } = (0, import_store12.useAppSelector)(import_store12.selectEnv);
6623
+ const { context } = (0, import_store13.useAppSelector)(import_store13.selectEnv);
6623
6624
  const queryKey = [`data-status-duration`, specification];
6624
6625
  const listDataProps = {
6625
6626
  model: relation,
package/dist/index.mjs CHANGED
@@ -4139,7 +4139,7 @@ var useCallAction = () => {
4139
4139
 
4140
4140
  // src/hooks/core/use-config.ts
4141
4141
  import { useEffect, useMemo } from "react";
4142
- import { getEnv as getEnv2 } from "@fctc/interface-logic/environment";
4142
+ import { setupEnv } from "@fctc/interface-logic/environment";
4143
4143
  import { useAppDispatch, setEnvFile } from "@fctc/interface-logic/store";
4144
4144
  var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4145
4145
  const dispatch = useAppDispatch();
@@ -4169,8 +4169,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4169
4169
  }, []);
4170
4170
  useEffect(() => {
4171
4171
  try {
4172
- const env = getEnv2();
4173
- env.setupEnv({
4172
+ setupEnv({
4174
4173
  baseUrl: envConfig.baseUrl,
4175
4174
  port: 3e3,
4176
4175
  config: {
@@ -4589,9 +4588,14 @@ var useMenu = ({ context }) => {
4589
4588
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4590
4589
  import { useEffect as useEffect5, useMemo as useMemo4 } from "react";
4591
4590
  import { useTranslation } from "react-i18next";
4592
- import { getEnv as getEnv3 } from "@fctc/interface-logic/environment";
4591
+ import { getEnv as getEnv2 } from "@fctc/interface-logic/environment";
4593
4592
  import { useGetProfile } from "@fctc/interface-logic/hooks";
4594
- import { useAppDispatch as useAppDispatch3, setDataUser } from "@fctc/interface-logic/store";
4593
+ import {
4594
+ useAppDispatch as useAppDispatch3,
4595
+ setDataUser,
4596
+ setUid,
4597
+ setLang
4598
+ } from "@fctc/interface-logic/store";
4595
4599
  var useProfile = (accessToken) => {
4596
4600
  const getProfile = useGetProfile();
4597
4601
  const dispatch = useAppDispatch3();
@@ -4607,11 +4611,11 @@ var useProfile = (accessToken) => {
4607
4611
  useEffect5(() => {
4608
4612
  if (userInfoQuery.data) {
4609
4613
  const userInfo = userInfoQuery.data;
4610
- const env = getEnv3();
4611
- env.setUid(userInfo?.sub);
4614
+ const env = getEnv2();
4615
+ dispatch(setUid(userInfo?.sub));
4612
4616
  dispatch(setDataUser(userInfo));
4613
4617
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
4614
- env.setLang(userLocale?.id);
4618
+ dispatch(setLang(userLocale?.id));
4615
4619
  i18n2.changeLanguage(userLocale?.id.split("_")[0]);
4616
4620
  }
4617
4621
  }, [dispatch, userInfoQuery.data]);
@@ -4724,13 +4728,20 @@ import { createContext, useContext, useMemo as useMemo7 } from "react";
4724
4728
  // src/hooks/core/use-company.ts
4725
4729
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4726
4730
  import { useEffect as useEffect6, useMemo as useMemo6 } from "react";
4727
- import { getEnv as getEnv4 } from "@fctc/interface-logic/environment";
4731
+ import { getEnv as getEnv3 } from "@fctc/interface-logic/environment";
4728
4732
  import {
4729
4733
  useGetCurrentCompany,
4730
4734
  useGetCompanyInfo
4731
4735
  } from "@fctc/interface-logic/hooks";
4736
+ import {
4737
+ setAllowCompanies,
4738
+ setCompanies,
4739
+ setDefaultCompany,
4740
+ useAppDispatch as useAppDispatch5
4741
+ } from "@fctc/interface-logic/store";
4732
4742
  var useCompany = (accessToken) => {
4733
4743
  const getCurrentCompany = useGetCurrentCompany();
4744
+ const dispatch = useAppDispatch5();
4734
4745
  const fetchCurrentCompany = async () => {
4735
4746
  return await getCurrentCompany.mutateAsync();
4736
4747
  };
@@ -4745,9 +4756,9 @@ var useCompany = (accessToken) => {
4745
4756
  useEffect6(() => {
4746
4757
  if (current_company_id) {
4747
4758
  const companyIDs = [current_company_id];
4748
- const env = getEnv4();
4749
- env.setAllowCompanies([...companyIDs]);
4750
- env.setCompanies(companyIDs);
4759
+ const env = getEnv3();
4760
+ dispatch(setAllowCompanies([...companyIDs]));
4761
+ dispatch(setCompanies(companyIDs));
4751
4762
  }
4752
4763
  }, [current_company_id]);
4753
4764
  const getCompanyInfo = useGetCompanyInfo();
@@ -4760,8 +4771,8 @@ var useCompany = (accessToken) => {
4760
4771
  if (companyInfo.data) {
4761
4772
  const companyInfoData = companyInfo.data;
4762
4773
  if (companyInfoData?.length) {
4763
- const env = getEnv4();
4764
- env.setDefaultCompany(companyInfoData[0]);
4774
+ const env = getEnv3();
4775
+ dispatch(setDefaultCompany(companyInfoData[0]));
4765
4776
  }
4766
4777
  }
4767
4778
  }, [companyInfo.data]);
@@ -5008,11 +5019,11 @@ var CloseIcon = ({ className = "" }) => {
5008
5019
 
5009
5020
  // src/widget/basic/status-dropdown-field/controller.ts
5010
5021
  import { useEffect as useEffect9, useRef as useRef3, useState as useState6 } from "react";
5011
- import { getEnv as getEnv5 } from "@fctc/interface-logic/environment";
5022
+ import { getEnv as getEnv4 } from "@fctc/interface-logic/environment";
5012
5023
  import { useSave } from "@fctc/interface-logic/hooks";
5013
5024
  var statusDropdownController = (props) => {
5014
5025
  const { selection, isForm, id, model, name, state, onRefetch } = props;
5015
- const env = getEnv5();
5026
+ const env = getEnv4();
5016
5027
  const colors = {
5017
5028
  normal: "bg-[#e9ecef]",
5018
5029
  done: "bg-primary",
@@ -5239,13 +5250,13 @@ var many2oneFieldController = (props) => {
5239
5250
  };
5240
5251
 
5241
5252
  // src/widget/basic/many2one-button-field/controller.ts
5242
- import { getEnv as getEnv6 } from "@fctc/interface-logic/environment";
5253
+ import { getEnv as getEnv5 } from "@fctc/interface-logic/environment";
5243
5254
  import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
5244
5255
  import { evalJSONDomain as evalJSONDomain3, evalJSONContext as evalJSONContext3 } from "@fctc/interface-logic/utils";
5245
5256
  var many2oneButtonController = (props) => {
5246
5257
  const { domain, methods, relation } = props;
5247
5258
  const actionDataString = sessionStorage.getItem("actionData");
5248
- const env = getEnv6();
5259
+ const env = getEnv5();
5249
5260
  const domainObject = evalJSONDomain3(domain, methods?.getValues() || {});
5250
5261
  const actionData = actionDataString && actionDataString !== "undefined" ? JSON.parse(actionDataString) : {};
5251
5262
  const { data: dataOfSelection } = useGetSelection2({
@@ -5269,7 +5280,7 @@ var many2oneButtonController = (props) => {
5269
5280
  import { useEffect as useEffect14, useMemo as useMemo12, useState as useState10 } from "react";
5270
5281
 
5271
5282
  // src/widget/advance/table/table-body/controller.ts
5272
- import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
5283
+ import { useAppDispatch as useAppDispatch6, setSelectedRowKeys } from "@fctc/interface-logic/store";
5273
5284
  import { useEffect as useEffect11, useMemo as useMemo9 } from "react";
5274
5285
  var tableBodyController = (props) => {
5275
5286
  const {
@@ -5282,7 +5293,7 @@ var tableBodyController = (props) => {
5282
5293
  selectedRowKeysRef,
5283
5294
  onClickRow
5284
5295
  } = props;
5285
- const appDispatch = useAppDispatch5();
5296
+ const appDispatch = useAppDispatch6();
5286
5297
  const checked = useMemo9(() => {
5287
5298
  if (!row?.id) return false;
5288
5299
  if (selectedRowKeys?.includes(row.id)) {
@@ -5337,14 +5348,14 @@ var tableBodyController = (props) => {
5337
5348
 
5338
5349
  // src/widget/advance/table/table-head/controller.ts
5339
5350
  import {
5340
- useAppDispatch as useAppDispatch6,
5351
+ useAppDispatch as useAppDispatch7,
5341
5352
  useAppSelector as useAppSelector3,
5342
5353
  selectSearch as selectSearch2,
5343
5354
  setSelectedRowKeys as setSelectedRowKeys2
5344
5355
  } from "@fctc/interface-logic/store";
5345
5356
  var tableHeadController = (props) => {
5346
5357
  const { typeTable, rows, selectedRowKeysRef } = props;
5347
- const appDispatch = useAppDispatch6();
5358
+ const appDispatch = useAppDispatch7();
5348
5359
  const { groupByDomain } = useAppSelector3(selectSearch2);
5349
5360
  const handleCheckBoxAll = (event) => {
5350
5361
  if (event?.target?.checked && typeTable === "list") {
@@ -6238,7 +6249,7 @@ import {
6238
6249
  useAppSelector as useAppSelector5,
6239
6250
  selectSearch as selectSearch4,
6240
6251
  selectList as selectList3,
6241
- useAppDispatch as useAppDispatch7,
6252
+ useAppDispatch as useAppDispatch8,
6242
6253
  setSelectedRowKeys as setSelectedRowKeys3
6243
6254
  } from "@fctc/interface-logic/store";
6244
6255
 
@@ -6271,7 +6282,7 @@ var tableGroupController = (props) => {
6271
6282
  const [pageGroup, setPageGroup] = useState9(0);
6272
6283
  const { groupByDomain, selectedTags } = useAppSelector5(selectSearch4);
6273
6284
  const { selectedRowKeys } = useAppSelector5(selectList3);
6274
- const appDispatch = useAppDispatch7();
6285
+ const appDispatch = useAppDispatch8();
6275
6286
  const { toDataJS } = useOdooDataTransform();
6276
6287
  const initVal = toDataJS(row, viewData, model);
6277
6288
  const [isShowGroup, setIsShowGroup] = useState9(false);
@@ -6408,9 +6419,9 @@ var tableGroupController = (props) => {
6408
6419
  };
6409
6420
 
6410
6421
  // src/widget/basic/many2many-field/controller.ts
6411
- import { getEnv as getEnv8 } from "@fctc/interface-logic/environment";
6422
+ import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
6412
6423
  import {
6413
- useAppDispatch as useAppDispatch8,
6424
+ useAppDispatch as useAppDispatch9,
6414
6425
  useAppSelector as useAppSelector6,
6415
6426
  selectSearch as selectSearch5,
6416
6427
  setFirstDomain,
@@ -6438,13 +6449,13 @@ var many2manyFieldController = (props) => {
6438
6449
  options,
6439
6450
  sessionStorageUtils
6440
6451
  } = props;
6441
- const appDispatch = useAppDispatch8();
6452
+ const appDispatch = useAppDispatch9();
6442
6453
  const actionData = sessionStorageUtils.getActionData();
6443
6454
  const [debouncedPage] = useDebounce(page, 500);
6444
6455
  const [order, setOrder] = useState10();
6445
6456
  const [isLoadedData, setIsLoadedData] = useState10(false);
6446
6457
  const [domainMany2Many, setDomainMany2Many] = useState10(domain);
6447
- const env = getEnv8();
6458
+ const env = getEnv7();
6448
6459
  const { selectedTags } = useAppSelector6(selectSearch5);
6449
6460
  const viewParams = {
6450
6461
  model: relation,
@@ -6594,7 +6605,7 @@ var many2manyFieldController = (props) => {
6594
6605
  // src/widget/basic/many2many-tags-field/controller.ts
6595
6606
  import { useMemo as useMemo13 } from "react";
6596
6607
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
6597
- import { getEnv as getEnv9 } from "@fctc/interface-logic/environment";
6608
+ import { getEnv as getEnv8 } from "@fctc/interface-logic/environment";
6598
6609
  import { useGetSelection as useGetSelection3 } from "@fctc/interface-logic/hooks";
6599
6610
  import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
6600
6611
  var many2manyTagsController = (props) => {
@@ -6607,7 +6618,7 @@ var many2manyTagsController = (props) => {
6607
6618
  placeholderNoOption
6608
6619
  } = props;
6609
6620
  const isUser = relation === "res.users" || relation === "res.partner";
6610
- const env = getEnv9();
6621
+ const env = getEnv8();
6611
6622
  const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
6612
6623
  const domainObject = useMemo13(
6613
6624
  () => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
@@ -7179,12 +7190,12 @@ var copyLinkButtonController = (props) => {
7179
7190
  };
7180
7191
 
7181
7192
  // src/widget/basic/color-field/color-controller.ts
7182
- import { getEnv as getEnv10 } from "@fctc/interface-logic/environment";
7193
+ import { getEnv as getEnv9 } from "@fctc/interface-logic/environment";
7183
7194
  import { useSave as useSave3 } from "@fctc/interface-logic/hooks";
7184
7195
  import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils";
7185
7196
  var colorFieldController = (props) => {
7186
7197
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
7187
- const env = getEnv10();
7198
+ const env = getEnv9();
7188
7199
  const _context = { ...evalJSONContext7(actionData?.context) || {} };
7189
7200
  const contextObject = { ...env.context, ..._context };
7190
7201
  const idDefault = isForm ? idForm : formValues?.id;
package/dist/widget.js CHANGED
@@ -4395,8 +4395,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4395
4395
  }, []);
4396
4396
  (0, import_react4.useEffect)(() => {
4397
4397
  try {
4398
- const env = (0, import_environment4.getEnv)();
4399
- env.setupEnv({
4398
+ (0, import_environment4.setupEnv)({
4400
4399
  baseUrl: envConfig.baseUrl,
4401
4400
  port: 3e3,
4402
4401
  config: {
@@ -4766,10 +4765,10 @@ var useProfile = (accessToken) => {
4766
4765
  if (userInfoQuery.data) {
4767
4766
  const userInfo = userInfoQuery.data;
4768
4767
  const env = (0, import_environment5.getEnv)();
4769
- env.setUid(userInfo?.sub);
4768
+ dispatch((0, import_store5.setUid)(userInfo?.sub));
4770
4769
  dispatch((0, import_store5.setDataUser)(userInfo));
4771
4770
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
4772
- env.setLang(userLocale?.id);
4771
+ dispatch((0, import_store5.setLang)(userLocale?.id));
4773
4772
  i18n2.changeLanguage(userLocale?.id.split("_")[0]);
4774
4773
  }
4775
4774
  }, [dispatch, userInfoQuery.data]);
@@ -4879,8 +4878,10 @@ var import_react_query3 = require("@tanstack/react-query");
4879
4878
  var import_react11 = require("react");
4880
4879
  var import_environment6 = require("@fctc/interface-logic/environment");
4881
4880
  var import_hooks11 = require("@fctc/interface-logic/hooks");
4881
+ var import_store7 = require("@fctc/interface-logic/store");
4882
4882
  var useCompany = (accessToken) => {
4883
4883
  const getCurrentCompany = (0, import_hooks11.useGetCurrentCompany)();
4884
+ const dispatch = (0, import_store7.useAppDispatch)();
4884
4885
  const fetchCurrentCompany = async () => {
4885
4886
  return await getCurrentCompany.mutateAsync();
4886
4887
  };
@@ -4896,8 +4897,8 @@ var useCompany = (accessToken) => {
4896
4897
  if (current_company_id) {
4897
4898
  const companyIDs = [current_company_id];
4898
4899
  const env = (0, import_environment6.getEnv)();
4899
- env.setAllowCompanies([...companyIDs]);
4900
- env.setCompanies(companyIDs);
4900
+ dispatch((0, import_store7.setAllowCompanies)([...companyIDs]));
4901
+ dispatch((0, import_store7.setCompanies)(companyIDs));
4901
4902
  }
4902
4903
  }, [current_company_id]);
4903
4904
  const getCompanyInfo = (0, import_hooks11.useGetCompanyInfo)();
@@ -4911,7 +4912,7 @@ var useCompany = (accessToken) => {
4911
4912
  const companyInfoData = companyInfo.data;
4912
4913
  if (companyInfoData?.length) {
4913
4914
  const env = (0, import_environment6.getEnv)();
4914
- env.setDefaultCompany(companyInfoData[0]);
4915
+ dispatch((0, import_store7.setDefaultCompany)(companyInfoData[0]));
4915
4916
  }
4916
4917
  }
4917
4918
  }, [companyInfo.data]);
@@ -5039,7 +5040,7 @@ function useDebounce(value, delay) {
5039
5040
  __reExport(hooks_exports, require("@fctc/interface-logic/hooks"));
5040
5041
 
5041
5042
  // src/widget/advance/table/table-body/controller.ts
5042
- var import_store7 = require("@fctc/interface-logic/store");
5043
+ var import_store8 = require("@fctc/interface-logic/store");
5043
5044
  var import_react15 = require("react");
5044
5045
  var tableBodyController = (props) => {
5045
5046
  const {
@@ -5052,7 +5053,7 @@ var tableBodyController = (props) => {
5052
5053
  selectedRowKeysRef,
5053
5054
  onClickRow
5054
5055
  } = props;
5055
- const appDispatch = (0, import_store7.useAppDispatch)();
5056
+ const appDispatch = (0, import_store8.useAppDispatch)();
5056
5057
  const checked = (0, import_react15.useMemo)(() => {
5057
5058
  if (!row?.id) return false;
5058
5059
  if (selectedRowKeys?.includes(row.id)) {
@@ -5069,7 +5070,7 @@ var tableBodyController = (props) => {
5069
5070
  }
5070
5071
  const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
5071
5072
  console.log("newSelectedRowKeys", newSelectedRowKeys);
5072
- appDispatch((0, import_store7.setSelectedRowKeys)(newSelectedRowKeys));
5073
+ appDispatch((0, import_store8.setSelectedRowKeys)(newSelectedRowKeys));
5073
5074
  };
5074
5075
  const handleClickRow = (col, row2) => {
5075
5076
  onClickRow(col, row2);
@@ -5082,13 +5083,13 @@ var tableBodyController = (props) => {
5082
5083
  (id) => id !== row.id
5083
5084
  );
5084
5085
  selectedRowKeysRef.current = filtered;
5085
- appDispatch((0, import_store7.setSelectedRowKeys)(filtered));
5086
+ appDispatch((0, import_store8.setSelectedRowKeys)(filtered));
5086
5087
  } else {
5087
5088
  const unique = Array.from(
5088
5089
  /* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
5089
5090
  );
5090
5091
  selectedRowKeysRef.current = unique;
5091
- appDispatch((0, import_store7.setSelectedRowKeys)(unique));
5092
+ appDispatch((0, import_store8.setSelectedRowKeys)(unique));
5092
5093
  }
5093
5094
  }
5094
5095
  }, [isAutoSelect]);
@@ -5106,35 +5107,35 @@ var tableBodyController = (props) => {
5106
5107
  };
5107
5108
 
5108
5109
  // src/widget/advance/table/table-head/controller.ts
5109
- var import_store8 = require("@fctc/interface-logic/store");
5110
+ var import_store9 = require("@fctc/interface-logic/store");
5110
5111
  var tableHeadController = (props) => {
5111
5112
  const { typeTable, rows, selectedRowKeysRef } = props;
5112
- const appDispatch = (0, import_store8.useAppDispatch)();
5113
- const { groupByDomain } = (0, import_store8.useAppSelector)(import_store8.selectSearch);
5113
+ const appDispatch = (0, import_store9.useAppDispatch)();
5114
+ const { groupByDomain } = (0, import_store9.useAppSelector)(import_store9.selectSearch);
5114
5115
  const handleCheckBoxAll = (event) => {
5115
5116
  if (event?.target?.checked && typeTable === "list") {
5116
5117
  const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
5117
- appDispatch((0, import_store8.setSelectedRowKeys)(allRowKeys));
5118
+ appDispatch((0, import_store9.setSelectedRowKeys)(allRowKeys));
5118
5119
  } else if (event?.target?.checked && typeTable === "group") {
5119
5120
  const rowsIDs = document.querySelectorAll("tr[data-row-id]");
5120
5121
  const ids = Array.from(rowsIDs)?.map(
5121
5122
  (row) => Number(row?.getAttribute("data-row-id"))
5122
5123
  );
5123
5124
  if (ids?.length > 0) {
5124
- appDispatch((0, import_store8.setSelectedRowKeys)(ids));
5125
+ appDispatch((0, import_store9.setSelectedRowKeys)(ids));
5125
5126
  } else {
5126
5127
  const sum = countSum(
5127
5128
  rows,
5128
5129
  typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
5129
5130
  );
5130
5131
  const keys = Array.from({ length: sum }, (_) => void 0);
5131
- appDispatch((0, import_store8.setSelectedRowKeys)(keys));
5132
+ appDispatch((0, import_store9.setSelectedRowKeys)(keys));
5132
5133
  }
5133
5134
  if (selectedRowKeysRef) {
5134
5135
  selectedRowKeysRef.current = [];
5135
5136
  }
5136
5137
  } else {
5137
- appDispatch((0, import_store8.setSelectedRowKeys)([]));
5138
+ appDispatch((0, import_store9.setSelectedRowKeys)([]));
5138
5139
  }
5139
5140
  };
5140
5141
  return {
@@ -5144,7 +5145,7 @@ var tableHeadController = (props) => {
5144
5145
 
5145
5146
  // src/widget/advance/table/table-view/controller.ts
5146
5147
  var import_react16 = require("react");
5147
- var import_store9 = require("@fctc/interface-logic/store");
5148
+ var import_store10 = require("@fctc/interface-logic/store");
5148
5149
  var import_utils5 = require("@fctc/interface-logic/utils");
5149
5150
  var tableController = ({ data }) => {
5150
5151
  const [rows, setRows] = (0, import_react16.useState)(data.records || []);
@@ -5992,7 +5993,7 @@ var i18n_default = import_i18next.default;
5992
5993
 
5993
5994
  // src/widget/advance/table/table-group/controller.ts
5994
5995
  var import_hooks13 = require("@fctc/interface-logic/hooks");
5995
- var import_store10 = require("@fctc/interface-logic/store");
5996
+ var import_store11 = require("@fctc/interface-logic/store");
5996
5997
 
5997
5998
  // src/environment.ts
5998
5999
  var environment_exports = {};
@@ -6020,9 +6021,9 @@ var tableGroupController = (props) => {
6020
6021
  selectedRowKeysRef
6021
6022
  } = props;
6022
6023
  const [pageGroup, setPageGroup] = (0, import_react17.useState)(0);
6023
- const { groupByDomain, selectedTags } = (0, import_store10.useAppSelector)(import_store10.selectSearch);
6024
- const { selectedRowKeys } = (0, import_store10.useAppSelector)(import_store10.selectList);
6025
- const appDispatch = (0, import_store10.useAppDispatch)();
6024
+ const { groupByDomain, selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
6025
+ const { selectedRowKeys } = (0, import_store11.useAppSelector)(import_store11.selectList);
6026
+ const appDispatch = (0, import_store11.useAppDispatch)();
6026
6027
  const { toDataJS } = (0, import_hooks13.useOdooDataTransform)();
6027
6028
  const initVal = toDataJS(row, viewData, model);
6028
6029
  const [isShowGroup, setIsShowGroup] = (0, import_react17.useState)(false);
@@ -6108,14 +6109,14 @@ var tableGroupController = (props) => {
6108
6109
  const filteredIds = selectedRowKeys.filter(
6109
6110
  (id) => !ids.includes(id)
6110
6111
  );
6111
- appDispatch((0, import_store10.setSelectedRowKeys)(filteredIds));
6112
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredIds));
6112
6113
  } else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
6113
6114
  const clonedKeys = [...selectedRowKeys];
6114
- appDispatch((0, import_store10.setSelectedRowKeys)([...clonedKeys, -1]));
6115
- setTimeout(() => appDispatch((0, import_store10.setSelectedRowKeys)(clonedKeys)), 500);
6115
+ appDispatch((0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]));
6116
+ setTimeout(() => appDispatch((0, import_store11.setSelectedRowKeys)(clonedKeys)), 500);
6116
6117
  } else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
6117
6118
  const filteredKeys = selectedRowKeys.filter((id) => id > -1);
6118
- appDispatch((0, import_store10.setSelectedRowKeys)(filteredKeys));
6119
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredKeys));
6119
6120
  }
6120
6121
  toggleShowGroup();
6121
6122
  };
@@ -6124,8 +6125,8 @@ var tableGroupController = (props) => {
6124
6125
  return;
6125
6126
  }
6126
6127
  const clonedKeys = [...selectedRowKeys];
6127
- (0, import_store10.setSelectedRowKeys)([...clonedKeys, -1]);
6128
- setTimeout(() => (0, import_store10.setSelectedRowKeys)(clonedKeys), 500);
6128
+ (0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]);
6129
+ setTimeout(() => (0, import_store11.setSelectedRowKeys)(clonedKeys), 500);
6129
6130
  }, [isQueryFetched]);
6130
6131
  return {
6131
6132
  handleExpandChildGroup,
@@ -6160,7 +6161,7 @@ var tableGroupController = (props) => {
6160
6161
 
6161
6162
  // src/widget/basic/many2many-field/controller.ts
6162
6163
  var import_environment8 = require("@fctc/interface-logic/environment");
6163
- var import_store11 = require("@fctc/interface-logic/store");
6164
+ var import_store12 = require("@fctc/interface-logic/store");
6164
6165
  var import_utils6 = require("@fctc/interface-logic/utils");
6165
6166
  var many2manyFieldController = (props) => {
6166
6167
  const {
@@ -6178,14 +6179,14 @@ var many2manyFieldController = (props) => {
6178
6179
  options,
6179
6180
  sessionStorageUtils
6180
6181
  } = props;
6181
- const appDispatch = (0, import_store11.useAppDispatch)();
6182
+ const appDispatch = (0, import_store12.useAppDispatch)();
6182
6183
  const actionData = sessionStorageUtils.getActionData();
6183
6184
  const [debouncedPage] = useDebounce(page, 500);
6184
6185
  const [order, setOrder] = (0, import_react18.useState)();
6185
6186
  const [isLoadedData, setIsLoadedData] = (0, import_react18.useState)(false);
6186
6187
  const [domainMany2Many, setDomainMany2Many] = (0, import_react18.useState)(domain);
6187
6188
  const env = (0, import_environment8.getEnv)();
6188
- const { selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
6189
+ const { selectedTags } = (0, import_store12.useAppSelector)(import_store12.selectSearch);
6189
6190
  const viewParams = {
6190
6191
  model: relation,
6191
6192
  views: [
@@ -6228,8 +6229,8 @@ var many2manyFieldController = (props) => {
6228
6229
  const fetchData = async () => {
6229
6230
  try {
6230
6231
  setDomainMany2Many(domain);
6231
- appDispatch((0, import_store11.setFirstDomain)(domain));
6232
- appDispatch((0, import_store11.setViewDataStore)(viewResponse));
6232
+ appDispatch((0, import_store12.setFirstDomain)(domain));
6233
+ appDispatch((0, import_store12.setViewDataStore)(viewResponse));
6233
6234
  const modalData = viewResponse?.views?.list?.fields.map((field) => ({
6234
6235
  ...viewResponse?.models?.[String(model)]?.[field?.name],
6235
6236
  ...field
@@ -6240,7 +6241,7 @@ var many2manyFieldController = (props) => {
6240
6241
  [`${aid}_${relation}_popupmany2many`]: modalData
6241
6242
  });
6242
6243
  }
6243
- appDispatch((0, import_store11.setPage)(0));
6244
+ appDispatch((0, import_store12.setPage)(0));
6244
6245
  } catch (err) {
6245
6246
  console.log(err);
6246
6247
  }
@@ -6276,12 +6277,12 @@ var many2manyFieldController = (props) => {
6276
6277
  fetchData();
6277
6278
  }
6278
6279
  return () => {
6279
- appDispatch((0, import_store11.setGroupByDomain)(null));
6280
+ appDispatch((0, import_store12.setGroupByDomain)(null));
6280
6281
  setFields((prevFields) => ({
6281
6282
  ...prevFields,
6282
6283
  [`${aid}_${relation}_popupmany2many`]: null
6283
6284
  }));
6284
- appDispatch((0, import_store11.setPage)(0));
6285
+ appDispatch((0, import_store12.setPage)(0));
6285
6286
  setSelectedRowKeys4([]);
6286
6287
  setDomainMany2Many(null);
6287
6288
  setIsLoadedData(false);
@@ -6394,7 +6395,7 @@ var many2manyTagsController = (props) => {
6394
6395
  // src/widget/basic/status-bar-field/controller.ts
6395
6396
  var import_react20 = require("react");
6396
6397
  var import_hooks16 = require("@fctc/interface-logic/hooks");
6397
- var import_store12 = require("@fctc/interface-logic/store");
6398
+ var import_store13 = require("@fctc/interface-logic/store");
6398
6399
  var import_utils8 = require("@fctc/interface-logic/utils");
6399
6400
  var durationController = (props) => {
6400
6401
  const {
@@ -6414,7 +6415,7 @@ var durationController = (props) => {
6414
6415
  };
6415
6416
  const [disabled, setDisabled] = (0, import_react20.useState)(false);
6416
6417
  const [modelStatus, setModalStatus] = (0, import_react20.useState)(false);
6417
- const { context } = (0, import_store12.useAppSelector)(import_store12.selectEnv);
6418
+ const { context } = (0, import_store13.useAppSelector)(import_store13.selectEnv);
6418
6419
  const queryKey = [`data-status-duration`, specification];
6419
6420
  const listDataProps = {
6420
6421
  model: relation,
package/dist/widget.mjs CHANGED
@@ -4349,7 +4349,7 @@ var useCallAction = () => {
4349
4349
 
4350
4350
  // src/hooks/core/use-config.ts
4351
4351
  import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
4352
- import { getEnv as getEnv4 } from "@fctc/interface-logic/environment";
4352
+ import { setupEnv } from "@fctc/interface-logic/environment";
4353
4353
  import { useAppDispatch, setEnvFile } from "@fctc/interface-logic/store";
4354
4354
  var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4355
4355
  const dispatch = useAppDispatch();
@@ -4379,8 +4379,7 @@ var useConfig = ({ localStorageUtils, sessionStorageUtils }) => {
4379
4379
  }, []);
4380
4380
  useEffect3(() => {
4381
4381
  try {
4382
- const env = getEnv4();
4383
- env.setupEnv({
4382
+ setupEnv({
4384
4383
  baseUrl: envConfig.baseUrl,
4385
4384
  port: 3e3,
4386
4385
  config: {
@@ -4738,9 +4737,14 @@ var useMenu = ({ context }) => {
4738
4737
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4739
4738
  import { useEffect as useEffect7, useMemo as useMemo5 } from "react";
4740
4739
  import { useTranslation } from "react-i18next";
4741
- import { getEnv as getEnv5 } from "@fctc/interface-logic/environment";
4740
+ import { getEnv as getEnv4 } from "@fctc/interface-logic/environment";
4742
4741
  import { useGetProfile } from "@fctc/interface-logic/hooks";
4743
- import { useAppDispatch as useAppDispatch3, setDataUser } from "@fctc/interface-logic/store";
4742
+ import {
4743
+ useAppDispatch as useAppDispatch3,
4744
+ setDataUser,
4745
+ setUid,
4746
+ setLang
4747
+ } from "@fctc/interface-logic/store";
4744
4748
  var useProfile = (accessToken) => {
4745
4749
  const getProfile = useGetProfile();
4746
4750
  const dispatch = useAppDispatch3();
@@ -4756,11 +4760,11 @@ var useProfile = (accessToken) => {
4756
4760
  useEffect7(() => {
4757
4761
  if (userInfoQuery.data) {
4758
4762
  const userInfo = userInfoQuery.data;
4759
- const env = getEnv5();
4760
- env.setUid(userInfo?.sub);
4763
+ const env = getEnv4();
4764
+ dispatch(setUid(userInfo?.sub));
4761
4765
  dispatch(setDataUser(userInfo));
4762
4766
  const userLocale = languages.find((lang) => lang?.id === userInfo?.locale);
4763
- env.setLang(userLocale?.id);
4767
+ dispatch(setLang(userLocale?.id));
4764
4768
  i18n2.changeLanguage(userLocale?.id.split("_")[0]);
4765
4769
  }
4766
4770
  }, [dispatch, userInfoQuery.data]);
@@ -4873,13 +4877,20 @@ import { createContext, useContext, useMemo as useMemo8 } from "react";
4873
4877
  // src/hooks/core/use-company.ts
4874
4878
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4875
4879
  import { useEffect as useEffect8, useMemo as useMemo7 } from "react";
4876
- import { getEnv as getEnv6 } from "@fctc/interface-logic/environment";
4880
+ import { getEnv as getEnv5 } from "@fctc/interface-logic/environment";
4877
4881
  import {
4878
4882
  useGetCurrentCompany,
4879
4883
  useGetCompanyInfo
4880
4884
  } from "@fctc/interface-logic/hooks";
4885
+ import {
4886
+ setAllowCompanies,
4887
+ setCompanies,
4888
+ setDefaultCompany,
4889
+ useAppDispatch as useAppDispatch5
4890
+ } from "@fctc/interface-logic/store";
4881
4891
  var useCompany = (accessToken) => {
4882
4892
  const getCurrentCompany = useGetCurrentCompany();
4893
+ const dispatch = useAppDispatch5();
4883
4894
  const fetchCurrentCompany = async () => {
4884
4895
  return await getCurrentCompany.mutateAsync();
4885
4896
  };
@@ -4894,9 +4905,9 @@ var useCompany = (accessToken) => {
4894
4905
  useEffect8(() => {
4895
4906
  if (current_company_id) {
4896
4907
  const companyIDs = [current_company_id];
4897
- const env = getEnv6();
4898
- env.setAllowCompanies([...companyIDs]);
4899
- env.setCompanies(companyIDs);
4908
+ const env = getEnv5();
4909
+ dispatch(setAllowCompanies([...companyIDs]));
4910
+ dispatch(setCompanies(companyIDs));
4900
4911
  }
4901
4912
  }, [current_company_id]);
4902
4913
  const getCompanyInfo = useGetCompanyInfo();
@@ -4909,8 +4920,8 @@ var useCompany = (accessToken) => {
4909
4920
  if (companyInfo.data) {
4910
4921
  const companyInfoData = companyInfo.data;
4911
4922
  if (companyInfoData?.length) {
4912
- const env = getEnv6();
4913
- env.setDefaultCompany(companyInfoData[0]);
4923
+ const env = getEnv5();
4924
+ dispatch(setDefaultCompany(companyInfoData[0]));
4914
4925
  }
4915
4926
  }
4916
4927
  }, [companyInfo.data]);
@@ -5039,7 +5050,7 @@ __reExport(hooks_exports, hooks_star);
5039
5050
  import * as hooks_star from "@fctc/interface-logic/hooks";
5040
5051
 
5041
5052
  // src/widget/advance/table/table-body/controller.ts
5042
- import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
5053
+ import { useAppDispatch as useAppDispatch6, setSelectedRowKeys } from "@fctc/interface-logic/store";
5043
5054
  import { useEffect as useEffect11, useMemo as useMemo9 } from "react";
5044
5055
  var tableBodyController = (props) => {
5045
5056
  const {
@@ -5052,7 +5063,7 @@ var tableBodyController = (props) => {
5052
5063
  selectedRowKeysRef,
5053
5064
  onClickRow
5054
5065
  } = props;
5055
- const appDispatch = useAppDispatch5();
5066
+ const appDispatch = useAppDispatch6();
5056
5067
  const checked = useMemo9(() => {
5057
5068
  if (!row?.id) return false;
5058
5069
  if (selectedRowKeys?.includes(row.id)) {
@@ -5107,14 +5118,14 @@ var tableBodyController = (props) => {
5107
5118
 
5108
5119
  // src/widget/advance/table/table-head/controller.ts
5109
5120
  import {
5110
- useAppDispatch as useAppDispatch6,
5121
+ useAppDispatch as useAppDispatch7,
5111
5122
  useAppSelector as useAppSelector3,
5112
5123
  selectSearch as selectSearch2,
5113
5124
  setSelectedRowKeys as setSelectedRowKeys2
5114
5125
  } from "@fctc/interface-logic/store";
5115
5126
  var tableHeadController = (props) => {
5116
5127
  const { typeTable, rows, selectedRowKeysRef } = props;
5117
- const appDispatch = useAppDispatch6();
5128
+ const appDispatch = useAppDispatch7();
5118
5129
  const { groupByDomain } = useAppSelector3(selectSearch2);
5119
5130
  const handleCheckBoxAll = (event) => {
5120
5131
  if (event?.target?.checked && typeTable === "list") {
@@ -6008,7 +6019,7 @@ import {
6008
6019
  useAppSelector as useAppSelector5,
6009
6020
  selectSearch as selectSearch4,
6010
6021
  selectList as selectList3,
6011
- useAppDispatch as useAppDispatch7,
6022
+ useAppDispatch as useAppDispatch8,
6012
6023
  setSelectedRowKeys as setSelectedRowKeys3
6013
6024
  } from "@fctc/interface-logic/store";
6014
6025
 
@@ -6041,7 +6052,7 @@ var tableGroupController = (props) => {
6041
6052
  const [pageGroup, setPageGroup] = useState9(0);
6042
6053
  const { groupByDomain, selectedTags } = useAppSelector5(selectSearch4);
6043
6054
  const { selectedRowKeys } = useAppSelector5(selectList3);
6044
- const appDispatch = useAppDispatch7();
6055
+ const appDispatch = useAppDispatch8();
6045
6056
  const { toDataJS } = useOdooDataTransform();
6046
6057
  const initVal = toDataJS(row, viewData, model);
6047
6058
  const [isShowGroup, setIsShowGroup] = useState9(false);
@@ -6178,9 +6189,9 @@ var tableGroupController = (props) => {
6178
6189
  };
6179
6190
 
6180
6191
  // src/widget/basic/many2many-field/controller.ts
6181
- import { getEnv as getEnv8 } from "@fctc/interface-logic/environment";
6192
+ import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
6182
6193
  import {
6183
- useAppDispatch as useAppDispatch8,
6194
+ useAppDispatch as useAppDispatch9,
6184
6195
  useAppSelector as useAppSelector6,
6185
6196
  selectSearch as selectSearch5,
6186
6197
  setFirstDomain,
@@ -6208,13 +6219,13 @@ var many2manyFieldController = (props) => {
6208
6219
  options,
6209
6220
  sessionStorageUtils
6210
6221
  } = props;
6211
- const appDispatch = useAppDispatch8();
6222
+ const appDispatch = useAppDispatch9();
6212
6223
  const actionData = sessionStorageUtils.getActionData();
6213
6224
  const [debouncedPage] = useDebounce(page, 500);
6214
6225
  const [order, setOrder] = useState10();
6215
6226
  const [isLoadedData, setIsLoadedData] = useState10(false);
6216
6227
  const [domainMany2Many, setDomainMany2Many] = useState10(domain);
6217
- const env = getEnv8();
6228
+ const env = getEnv7();
6218
6229
  const { selectedTags } = useAppSelector6(selectSearch5);
6219
6230
  const viewParams = {
6220
6231
  model: relation,
@@ -6364,7 +6375,7 @@ var many2manyFieldController = (props) => {
6364
6375
  // src/widget/basic/many2many-tags-field/controller.ts
6365
6376
  import { useMemo as useMemo13 } from "react";
6366
6377
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
6367
- import { getEnv as getEnv9 } from "@fctc/interface-logic/environment";
6378
+ import { getEnv as getEnv8 } from "@fctc/interface-logic/environment";
6368
6379
  import { useGetSelection as useGetSelection3 } from "@fctc/interface-logic/hooks";
6369
6380
  import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
6370
6381
  var many2manyTagsController = (props) => {
@@ -6377,7 +6388,7 @@ var many2manyTagsController = (props) => {
6377
6388
  placeholderNoOption
6378
6389
  } = props;
6379
6390
  const isUser = relation === "res.users" || relation === "res.partner";
6380
- const env = getEnv9();
6391
+ const env = getEnv8();
6381
6392
  const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
6382
6393
  const domainObject = useMemo13(
6383
6394
  () => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
@@ -6949,12 +6960,12 @@ var copyLinkButtonController = (props) => {
6949
6960
  };
6950
6961
 
6951
6962
  // src/widget/basic/color-field/color-controller.ts
6952
- import { getEnv as getEnv10 } from "@fctc/interface-logic/environment";
6963
+ import { getEnv as getEnv9 } from "@fctc/interface-logic/environment";
6953
6964
  import { useSave as useSave3 } from "@fctc/interface-logic/hooks";
6954
6965
  import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils";
6955
6966
  var colorFieldController = (props) => {
6956
6967
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
6957
- const env = getEnv10();
6968
+ const env = getEnv9();
6958
6969
  const _context = { ...evalJSONContext7(actionData?.context) || {} };
6959
6970
  const contextObject = { ...env.context, ..._context };
6960
6971
  const idDefault = isForm ? idForm : formValues?.id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/widget-logic",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -74,7 +74,7 @@
74
74
  "test": "jest"
75
75
  },
76
76
  "dependencies": {
77
- "@fctc/interface-logic": "^1.6.9",
77
+ "@fctc/interface-logic": "^1.7.4",
78
78
  "@headlessui/react": "^2.2.6",
79
79
  "@tanstack/react-query": "^5.84.0",
80
80
  "i18next": "^25.3.2",
@@ -84,8 +84,8 @@
84
84
  },
85
85
  "devDependencies": {
86
86
  "@types/react": "^18.3.1",
87
- "react": "18.0.0",
88
87
  "jest": "^29.7.0",
88
+ "react": "18.0.0",
89
89
  "tsup": "^8.0.0",
90
90
  "typescript": "^5.8.2"
91
91
  },