@fctc/widget-logic 4.6.5 → 4.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
@@ -155,13 +155,14 @@ var useCallAction = () => {
155
155
  context
156
156
  }) => {
157
157
  try {
158
+ const stableEnvContext = (0, import_react.useMemo)(
159
+ () => env?.context,
160
+ [env?.context?.lang]
161
+ );
158
162
  const menuContext = {
159
- ...env?.context,
163
+ ...stableEnvContext,
160
164
  ...context
161
165
  };
162
- if (!menuContext?.uid) {
163
- return void 0;
164
- }
165
166
  const loadRes = await queryLoadAction.mutateAsync({
166
167
  idAction: aid,
167
168
  context: menuContext,
package/dist/hooks.mjs CHANGED
@@ -105,13 +105,13 @@ import {
105
105
  } from "@fctc/interface-logic/hooks";
106
106
 
107
107
  // src/hooks/core/use-app-provider.tsx
108
- import { createContext, useContext, useMemo as useMemo5 } from "react";
108
+ import { createContext, useContext, useMemo as useMemo6 } from "react";
109
109
 
110
110
  // src/hooks/core/use-menu.ts
111
- import { useMemo, useState as useState2 } from "react";
111
+ import { useMemo as useMemo2, useState as useState2 } from "react";
112
112
 
113
113
  // src/hooks/core/use-call-action.ts
114
- import { useCallback, useState } from "react";
114
+ import { useCallback, useMemo, useState } from "react";
115
115
 
116
116
  // src/provider.ts
117
117
  var provider_exports = {};
@@ -135,13 +135,14 @@ var useCallAction = () => {
135
135
  context
136
136
  }) => {
137
137
  try {
138
+ const stableEnvContext = useMemo(
139
+ () => env?.context,
140
+ [env?.context?.lang]
141
+ );
138
142
  const menuContext = {
139
- ...env?.context,
143
+ ...stableEnvContext,
140
144
  ...context
141
145
  };
142
- if (!menuContext?.uid) {
143
- return void 0;
144
- }
145
146
  const loadRes = await queryLoadAction.mutateAsync({
146
147
  idAction: aid,
147
148
  context: menuContext,
@@ -373,7 +374,7 @@ var useMenu = ({
373
374
  defaultService
374
375
  );
375
376
  const [menuId, setMenuId] = useState2(void 0);
376
- const configedIconData = useMemo(() => {
377
+ const configedIconData = useMemo2(() => {
377
378
  const data = menuData.data;
378
379
  return data?.map((item) => {
379
380
  return {
@@ -455,7 +456,7 @@ var useDetail = (sub) => {
455
456
 
456
457
  // src/hooks/core/use-profile.ts
457
458
  import { useQuery as useQuery2 } from "@tanstack/react-query";
458
- import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
459
+ import { useEffect as useEffect3, useMemo as useMemo3 } from "react";
459
460
  import { useTranslation } from "react-i18next";
460
461
  var useProfile = ({ service }) => {
461
462
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
@@ -478,7 +479,7 @@ var useProfile = ({ service }) => {
478
479
  i18n.changeLanguage(userLocale?.id.split("_")[0]);
479
480
  }
480
481
  }, [userInfoQuery.isFetched]);
481
- const context = useMemo2(() => {
482
+ const context = useMemo3(() => {
482
483
  if (userInfoQuery.data?.sub && userInfoQuery.data?.locale) {
483
484
  return {
484
485
  uid: Number(userInfoQuery.data.sub),
@@ -502,7 +503,7 @@ var useUser = ({ service }) => {
502
503
  };
503
504
 
504
505
  // src/hooks/core/use-view-v2.ts
505
- import { useMemo as useMemo3 } from "react";
506
+ import { useMemo as useMemo4 } from "react";
506
507
  var useViewV2 = ({
507
508
  action,
508
509
  context,
@@ -511,7 +512,7 @@ var useViewV2 = ({
511
512
  xNode
512
513
  }) => {
513
514
  const { useGetView: useGetView2 } = (0, provider_exports.useService)();
514
- const viewParams = useMemo3(() => {
515
+ const viewParams = useMemo4(() => {
515
516
  if (!action || !action?.res_model) {
516
517
  return void 0;
517
518
  }
@@ -545,7 +546,7 @@ var useViewV2 = ({
545
546
 
546
547
  // src/hooks/core/use-company.ts
547
548
  import { useQuery as useQuery3 } from "@tanstack/react-query";
548
- import { useEffect as useEffect4, useMemo as useMemo4 } from "react";
549
+ import { useEffect as useEffect4, useMemo as useMemo5 } from "react";
549
550
  var useCompany = ({ service }) => {
550
551
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
551
552
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
@@ -560,7 +561,7 @@ var useCompany = ({ service }) => {
560
561
  queryFn: fetchCurrentCompany,
561
562
  enabled: !!env?.defaultCompany
562
563
  });
563
- const current_company_id = useMemo4(() => {
564
+ const current_company_id = useMemo5(() => {
564
565
  return currentCompany.data?.current_company_id;
565
566
  }, [currentCompany.data]);
566
567
  useEffect4(() => {
@@ -611,7 +612,7 @@ var AppProvider = ({
611
612
  const { env } = (0, provider_exports.useEnv)();
612
613
  const user = useUser({ service: env.default_service });
613
614
  const company = useCompany({ service: env.default_service });
614
- const menuContext = useMemo5(() => {
615
+ const menuContext = useMemo6(() => {
615
616
  return combineContexts([
616
617
  {
617
618
  ...user?.context,
@@ -628,10 +629,10 @@ var AppProvider = ({
628
629
  domain: menuParams?.domain,
629
630
  defaultService: env.default_service
630
631
  });
631
- const action = useMemo5(() => {
632
+ const action = useMemo6(() => {
632
633
  return menu?.state?.action;
633
634
  }, [menu?.state?.action, env?.context?.lang]);
634
- const viewContext = useMemo5(() => {
635
+ const viewContext = useMemo6(() => {
635
636
  return combineContexts([
636
637
  menuContext,
637
638
  { ...(0, utils_exports.evalJSONContext)(action?.context) }
@@ -735,7 +736,7 @@ var useGetAction = ({
735
736
  };
736
737
 
737
738
  // src/hooks/core/use-get-specification.ts
738
- import { useMemo as useMemo6 } from "react";
739
+ import { useMemo as useMemo7 } from "react";
739
740
  var useGetSpecification = ({
740
741
  model,
741
742
  viewData,
@@ -747,13 +748,13 @@ var useGetSpecification = ({
747
748
  fields
748
749
  };
749
750
  const initModel = useModel();
750
- const modelInstance = useMemo6(() => {
751
+ const modelInstance = useMemo7(() => {
751
752
  if (viewData) {
752
753
  return initModel.initModel(baseModel);
753
754
  }
754
755
  return null;
755
756
  }, [baseModel, viewData, model]);
756
- const specification = useMemo6(() => {
757
+ const specification = useMemo7(() => {
757
758
  if (modelInstance) {
758
759
  return modelInstance.getSpecification();
759
760
  }
@@ -763,7 +764,7 @@ var useGetSpecification = ({
763
764
  };
764
765
 
765
766
  // src/hooks/core/use-list-data.ts
766
- import { useMemo as useMemo7, useState as useState5 } from "react";
767
+ import { useMemo as useMemo8, useState as useState5 } from "react";
767
768
  import {
768
769
  evalJSONDomain,
769
770
  formatSortingString,
@@ -907,7 +908,7 @@ var useListData = ({
907
908
  viewData,
908
909
  fields: mode === "kanban" ? viewData?.views?.kanban?.fields : viewData?.views?.list?.fields
909
910
  });
910
- const listDataProps = useMemo7(() => {
911
+ const listDataProps = useMemo8(() => {
911
912
  if (!viewData || !action || !context) {
912
913
  return null;
913
914
  }
package/dist/index.js CHANGED
@@ -4205,13 +4205,14 @@ var useCallAction = () => {
4205
4205
  context
4206
4206
  }) => {
4207
4207
  try {
4208
+ const stableEnvContext = (0, import_react.useMemo)(
4209
+ () => env?.context,
4210
+ [env?.context?.lang]
4211
+ );
4208
4212
  const menuContext = {
4209
- ...env?.context,
4213
+ ...stableEnvContext,
4210
4214
  ...context
4211
4215
  };
4212
- if (!menuContext?.uid) {
4213
- return void 0;
4214
- }
4215
4216
  const loadRes = await queryLoadAction.mutateAsync({
4216
4217
  idAction: aid,
4217
4218
  context: menuContext,
package/dist/index.mjs CHANGED
@@ -4264,13 +4264,13 @@ import {
4264
4264
  } from "@fctc/interface-logic/hooks";
4265
4265
 
4266
4266
  // src/hooks/core/use-app-provider.tsx
4267
- import { createContext, useContext, useMemo as useMemo5 } from "react";
4267
+ import { createContext, useContext, useMemo as useMemo6 } from "react";
4268
4268
 
4269
4269
  // src/hooks/core/use-menu.ts
4270
- import { useMemo, useState as useState2 } from "react";
4270
+ import { useMemo as useMemo2, useState as useState2 } from "react";
4271
4271
 
4272
4272
  // src/hooks/core/use-call-action.ts
4273
- import { useCallback, useState } from "react";
4273
+ import { useCallback, useMemo, useState } from "react";
4274
4274
 
4275
4275
  // src/provider.ts
4276
4276
  var provider_exports = {};
@@ -4294,13 +4294,14 @@ var useCallAction = () => {
4294
4294
  context
4295
4295
  }) => {
4296
4296
  try {
4297
+ const stableEnvContext = useMemo(
4298
+ () => env?.context,
4299
+ [env?.context?.lang]
4300
+ );
4297
4301
  const menuContext = {
4298
- ...env?.context,
4302
+ ...stableEnvContext,
4299
4303
  ...context
4300
4304
  };
4301
- if (!menuContext?.uid) {
4302
- return void 0;
4303
- }
4304
4305
  const loadRes = await queryLoadAction.mutateAsync({
4305
4306
  idAction: aid,
4306
4307
  context: menuContext,
@@ -4532,7 +4533,7 @@ var useMenu = ({
4532
4533
  defaultService
4533
4534
  );
4534
4535
  const [menuId, setMenuId] = useState2(void 0);
4535
- const configedIconData = useMemo(() => {
4536
+ const configedIconData = useMemo2(() => {
4536
4537
  const data = menuData.data;
4537
4538
  return data?.map((item) => {
4538
4539
  return {
@@ -4614,7 +4615,7 @@ var useDetail = (sub) => {
4614
4615
 
4615
4616
  // src/hooks/core/use-profile.ts
4616
4617
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4617
- import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
4618
+ import { useEffect as useEffect3, useMemo as useMemo3 } from "react";
4618
4619
  import { useTranslation } from "react-i18next";
4619
4620
  var useProfile = ({ service }) => {
4620
4621
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
@@ -4637,7 +4638,7 @@ var useProfile = ({ service }) => {
4637
4638
  i18n2.changeLanguage(userLocale?.id.split("_")[0]);
4638
4639
  }
4639
4640
  }, [userInfoQuery.isFetched]);
4640
- const context = useMemo2(() => {
4641
+ const context = useMemo3(() => {
4641
4642
  if (userInfoQuery.data?.sub && userInfoQuery.data?.locale) {
4642
4643
  return {
4643
4644
  uid: Number(userInfoQuery.data.sub),
@@ -4661,7 +4662,7 @@ var useUser = ({ service }) => {
4661
4662
  };
4662
4663
 
4663
4664
  // src/hooks/core/use-view-v2.ts
4664
- import { useMemo as useMemo3 } from "react";
4665
+ import { useMemo as useMemo4 } from "react";
4665
4666
  var useViewV2 = ({
4666
4667
  action,
4667
4668
  context,
@@ -4670,7 +4671,7 @@ var useViewV2 = ({
4670
4671
  xNode
4671
4672
  }) => {
4672
4673
  const { useGetView: useGetView2 } = (0, provider_exports.useService)();
4673
- const viewParams = useMemo3(() => {
4674
+ const viewParams = useMemo4(() => {
4674
4675
  if (!action || !action?.res_model) {
4675
4676
  return void 0;
4676
4677
  }
@@ -4704,7 +4705,7 @@ var useViewV2 = ({
4704
4705
 
4705
4706
  // src/hooks/core/use-company.ts
4706
4707
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4707
- import { useEffect as useEffect4, useMemo as useMemo4 } from "react";
4708
+ import { useEffect as useEffect4, useMemo as useMemo5 } from "react";
4708
4709
  var useCompany = ({ service }) => {
4709
4710
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
4710
4711
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
@@ -4719,7 +4720,7 @@ var useCompany = ({ service }) => {
4719
4720
  queryFn: fetchCurrentCompany,
4720
4721
  enabled: !!env?.defaultCompany
4721
4722
  });
4722
- const current_company_id = useMemo4(() => {
4723
+ const current_company_id = useMemo5(() => {
4723
4724
  return currentCompany.data?.current_company_id;
4724
4725
  }, [currentCompany.data]);
4725
4726
  useEffect4(() => {
@@ -4770,7 +4771,7 @@ var AppProvider = ({
4770
4771
  const { env } = (0, provider_exports.useEnv)();
4771
4772
  const user = useUser({ service: env.default_service });
4772
4773
  const company = useCompany({ service: env.default_service });
4773
- const menuContext = useMemo5(() => {
4774
+ const menuContext = useMemo6(() => {
4774
4775
  return combineContexts([
4775
4776
  {
4776
4777
  ...user?.context,
@@ -4787,10 +4788,10 @@ var AppProvider = ({
4787
4788
  domain: menuParams?.domain,
4788
4789
  defaultService: env.default_service
4789
4790
  });
4790
- const action = useMemo5(() => {
4791
+ const action = useMemo6(() => {
4791
4792
  return menu?.state?.action;
4792
4793
  }, [menu?.state?.action, env?.context?.lang]);
4793
- const viewContext = useMemo5(() => {
4794
+ const viewContext = useMemo6(() => {
4794
4795
  return combineContexts([
4795
4796
  menuContext,
4796
4797
  { ...(0, utils_exports.evalJSONContext)(action?.context) }
@@ -4894,7 +4895,7 @@ var useGetAction = ({
4894
4895
  };
4895
4896
 
4896
4897
  // src/hooks/core/use-get-specification.ts
4897
- import { useMemo as useMemo6 } from "react";
4898
+ import { useMemo as useMemo7 } from "react";
4898
4899
  var useGetSpecification = ({
4899
4900
  model,
4900
4901
  viewData,
@@ -4906,13 +4907,13 @@ var useGetSpecification = ({
4906
4907
  fields
4907
4908
  };
4908
4909
  const initModel = useModel();
4909
- const modelInstance = useMemo6(() => {
4910
+ const modelInstance = useMemo7(() => {
4910
4911
  if (viewData) {
4911
4912
  return initModel.initModel(baseModel);
4912
4913
  }
4913
4914
  return null;
4914
4915
  }, [baseModel, viewData, model]);
4915
- const specification = useMemo6(() => {
4916
+ const specification = useMemo7(() => {
4916
4917
  if (modelInstance) {
4917
4918
  return modelInstance.getSpecification();
4918
4919
  }
@@ -4922,7 +4923,7 @@ var useGetSpecification = ({
4922
4923
  };
4923
4924
 
4924
4925
  // src/hooks/core/use-list-data.ts
4925
- import { useMemo as useMemo7, useState as useState5 } from "react";
4926
+ import { useMemo as useMemo8, useState as useState5 } from "react";
4926
4927
  import {
4927
4928
  evalJSONDomain,
4928
4929
  formatSortingString,
@@ -5066,7 +5067,7 @@ var useListData = ({
5066
5067
  viewData,
5067
5068
  fields: mode === "kanban" ? viewData?.views?.kanban?.fields : viewData?.views?.list?.fields
5068
5069
  });
5069
- const listDataProps = useMemo7(() => {
5070
+ const listDataProps = useMemo8(() => {
5070
5071
  if (!viewData || !action || !context) {
5071
5072
  return null;
5072
5073
  }
@@ -5429,7 +5430,7 @@ var statusDropdownController = (props) => {
5429
5430
  };
5430
5431
 
5431
5432
  // src/widget/basic/many2one-field/controller.ts
5432
- import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo8, useState as useState7 } from "react";
5433
+ import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo9, useState as useState7 } from "react";
5433
5434
  var MANY2ONE_EXTERNAL = "many2one_external";
5434
5435
  var many2oneFieldController = (props) => {
5435
5436
  const {
@@ -5496,7 +5497,7 @@ var many2oneFieldController = (props) => {
5496
5497
  service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
5497
5498
  xNode
5498
5499
  });
5499
- const selectOptions = useMemo8(() => {
5500
+ const selectOptions = useMemo9(() => {
5500
5501
  return dataOfSelection?.records?.map((val) => ({
5501
5502
  value: val?.id,
5502
5503
  label: val?.display_name || val?.name,
@@ -5507,7 +5508,7 @@ var many2oneFieldController = (props) => {
5507
5508
  setListOptions(selectOptions);
5508
5509
  setDomainModal(domainObject);
5509
5510
  }, [selectOptions]);
5510
- const parsedFormValues = useMemo8(
5511
+ const parsedFormValues = useMemo9(
5511
5512
  () => JSON.parse(
5512
5513
  JSON.stringify({
5513
5514
  ...formValues,
@@ -5864,7 +5865,7 @@ var many2manyFieldController = (props) => {
5864
5865
  };
5865
5866
 
5866
5867
  // src/widget/basic/many2many-tags-field/controller.ts
5867
- import { useCallback as useCallback5, useEffect as useEffect12, useMemo as useMemo9, useState as useState8 } from "react";
5868
+ import { useCallback as useCallback5, useEffect as useEffect12, useMemo as useMemo10, useState as useState8 } from "react";
5868
5869
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
5869
5870
  import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
5870
5871
  var many2manyTagsController = (props) => {
@@ -5896,7 +5897,7 @@ var many2manyTagsController = (props) => {
5896
5897
  ...fieldContext ?? {},
5897
5898
  ...env?.context
5898
5899
  };
5899
- const parsedFormValues = useMemo9(
5900
+ const parsedFormValues = useMemo10(
5900
5901
  () => JSON.parse(
5901
5902
  JSON.stringify({
5902
5903
  ...formValues,
@@ -5937,7 +5938,7 @@ var many2manyTagsController = (props) => {
5937
5938
  xNode,
5938
5939
  enabled: false
5939
5940
  });
5940
- const selectOptions = useMemo9(() => {
5941
+ const selectOptions = useMemo10(() => {
5941
5942
  return dataOfSelection?.records?.map((val) => ({
5942
5943
  value: val.id,
5943
5944
  label: val.name ?? val.display_name,
@@ -6444,7 +6445,7 @@ var binaryFieldController = (props) => {
6444
6445
  };
6445
6446
 
6446
6447
  // src/widget/advance/table/table-head/controller.ts
6447
- import { useMemo as useMemo10, useRef as useRef5 } from "react";
6448
+ import { useMemo as useMemo11, useRef as useRef5 } from "react";
6448
6449
  var tableHeadController = (props) => {
6449
6450
  const {
6450
6451
  typeTable,
@@ -6457,19 +6458,19 @@ var tableHeadController = (props) => {
6457
6458
  const { rowIds: recordIds } = useGetRowIds(tableRef);
6458
6459
  const selectedRowKeysRef = useRef5(recordIds);
6459
6460
  const isGroupTable = typeTable === "group";
6460
- const recordsCheckedGroup = useMemo10(() => {
6461
+ const recordsCheckedGroup = useMemo11(() => {
6461
6462
  if (!rows || !groupByList) return 0;
6462
6463
  const groupBy = typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0;
6463
6464
  return countSum(rows, groupBy);
6464
6465
  }, [rows, groupByList]);
6465
- const isAllGroupChecked = useMemo10(() => {
6466
+ const isAllGroupChecked = useMemo11(() => {
6466
6467
  if (!isGroupTable || !selectedRowKeys?.length) return false;
6467
6468
  const selectedLength = selectedRowKeys.filter((id) => id !== -1).length;
6468
6469
  const allRecordsSelected = recordIds.length === selectedRowKeys.length ? recordIds.length === selectedLength : false;
6469
6470
  const allGroupsSelected = recordsCheckedGroup === selectedRowKeys.length;
6470
6471
  return allGroupsSelected || allRecordsSelected;
6471
6472
  }, [isGroupTable, selectedRowKeys, recordIds, recordsCheckedGroup]);
6472
- const isAllNormalChecked = useMemo10(() => {
6473
+ const isAllNormalChecked = useMemo11(() => {
6473
6474
  if (isGroupTable || !selectedRowKeys?.length || !rows?.length) return false;
6474
6475
  return selectedRowKeys.length === rows.length && selectedRowKeys.every(
6475
6476
  (id) => rows.some((record) => record.id === id)
@@ -6510,19 +6511,19 @@ var tableHeadController = (props) => {
6510
6511
  };
6511
6512
 
6512
6513
  // src/widget/advance/table/table-view/controller.ts
6513
- import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo11, useState as useState13 } from "react";
6514
+ import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo12, useState as useState13 } from "react";
6514
6515
  import { domainHelper } from "@fctc/interface-logic/utils";
6515
6516
  var tableController = ({ data }) => {
6516
6517
  const [rows, setRows] = useState13([]);
6517
6518
  const [columnVisibility, setColumnVisibility] = useState13({});
6518
- const dataModelFields = useMemo11(() => {
6519
+ const dataModelFields = useMemo12(() => {
6519
6520
  return data?.fields?.map((field) => ({
6520
6521
  ...data.dataModel?.[field?.name],
6521
6522
  ...field,
6522
6523
  string: field?.string || data.dataModel?.[field?.name]?.string
6523
6524
  })) ?? [];
6524
6525
  }, [data?.fields, data?.dataModel]);
6525
- const mergeFields = useMemo11(
6526
+ const mergeFields = useMemo12(
6526
6527
  () => mergeButtons(dataModelFields),
6527
6528
  [dataModelFields]
6528
6529
  );
@@ -6551,7 +6552,7 @@ var tableController = ({ data }) => {
6551
6552
  useEffect14(() => {
6552
6553
  setRows(transformData(data?.records));
6553
6554
  }, [data?.records, transformData]);
6554
- const columns = useMemo11(() => {
6555
+ const columns = useMemo12(() => {
6555
6556
  try {
6556
6557
  return mergeFields?.filter((item) => {
6557
6558
  return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(
@@ -6587,7 +6588,7 @@ var tableController = ({ data }) => {
6587
6588
  };
6588
6589
 
6589
6590
  // src/widget/advance/table/table-group/controller.ts
6590
- import { useEffect as useEffect15, useMemo as useMemo12, useState as useState14 } from "react";
6591
+ import { useEffect as useEffect15, useMemo as useMemo13, useState as useState14 } from "react";
6591
6592
  import { useAppSelector, selectList } from "@fctc/interface-logic/store";
6592
6593
  var tableGroupController = (props) => {
6593
6594
  const { env } = (0, provider_exports.useEnv)();
@@ -6612,7 +6613,7 @@ var tableGroupController = (props) => {
6612
6613
  fromEnd: 1
6613
6614
  });
6614
6615
  const domain = row?.__domain;
6615
- const processedData = useMemo12(() => {
6616
+ const processedData = useMemo13(() => {
6616
6617
  const calculateColSpanEmpty = () => {
6617
6618
  const startIndex = columns.findIndex(
6618
6619
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
@@ -6627,7 +6628,7 @@ var tableGroupController = (props) => {
6627
6628
  };
6628
6629
  return calculateColSpanEmpty();
6629
6630
  }, [columns, row]);
6630
- const shouldFetchData = useMemo12(() => {
6631
+ const shouldFetchData = useMemo13(() => {
6631
6632
  return !!isShowGroup;
6632
6633
  }, [isShowGroup]);
6633
6634
  const enabled = shouldFetchData && !!processedData;
package/dist/widget.mjs CHANGED
@@ -4091,7 +4091,7 @@ var statusDropdownController = (props) => {
4091
4091
  };
4092
4092
 
4093
4093
  // src/widget/basic/many2one-field/controller.ts
4094
- import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo8, useState as useState7 } from "react";
4094
+ import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo9, useState as useState7 } from "react";
4095
4095
 
4096
4096
  // src/hooks.ts
4097
4097
  import {
@@ -4182,13 +4182,13 @@ import {
4182
4182
  } from "@fctc/interface-logic/hooks";
4183
4183
 
4184
4184
  // src/hooks/core/use-app-provider.tsx
4185
- import { createContext, useContext, useMemo as useMemo5 } from "react";
4185
+ import { createContext, useContext, useMemo as useMemo6 } from "react";
4186
4186
 
4187
4187
  // src/hooks/core/use-menu.ts
4188
- import { useMemo, useState as useState3 } from "react";
4188
+ import { useMemo as useMemo2, useState as useState3 } from "react";
4189
4189
 
4190
4190
  // src/hooks/core/use-call-action.ts
4191
- import { useCallback, useState as useState2 } from "react";
4191
+ import { useCallback, useMemo, useState as useState2 } from "react";
4192
4192
 
4193
4193
  // src/provider.ts
4194
4194
  var provider_exports = {};
@@ -4383,15 +4383,15 @@ import { useEffect as useEffect3 } from "react";
4383
4383
 
4384
4384
  // src/hooks/core/use-profile.ts
4385
4385
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4386
- import { useEffect as useEffect4, useMemo as useMemo2 } from "react";
4386
+ import { useEffect as useEffect4, useMemo as useMemo3 } from "react";
4387
4387
  import { useTranslation } from "react-i18next";
4388
4388
 
4389
4389
  // src/hooks/core/use-view-v2.ts
4390
- import { useMemo as useMemo3 } from "react";
4390
+ import { useMemo as useMemo4 } from "react";
4391
4391
 
4392
4392
  // src/hooks/core/use-company.ts
4393
4393
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4394
- import { useEffect as useEffect5, useMemo as useMemo4 } from "react";
4394
+ import { useEffect as useEffect5, useMemo as useMemo5 } from "react";
4395
4395
 
4396
4396
  // src/hooks/core/use-app-provider.tsx
4397
4397
  import { jsx } from "react/jsx-runtime";
@@ -4415,7 +4415,7 @@ var useAppProvider = () => {
4415
4415
  import { useEffect as useEffect6 } from "react";
4416
4416
 
4417
4417
  // src/hooks/core/use-get-specification.ts
4418
- import { useMemo as useMemo6 } from "react";
4418
+ import { useMemo as useMemo7 } from "react";
4419
4419
  var useGetSpecification = ({
4420
4420
  model,
4421
4421
  viewData,
@@ -4427,13 +4427,13 @@ var useGetSpecification = ({
4427
4427
  fields
4428
4428
  };
4429
4429
  const initModel = useModel();
4430
- const modelInstance = useMemo6(() => {
4430
+ const modelInstance = useMemo7(() => {
4431
4431
  if (viewData) {
4432
4432
  return initModel.initModel(baseModel);
4433
4433
  }
4434
4434
  return null;
4435
4435
  }, [baseModel, viewData, model]);
4436
- const specification = useMemo6(() => {
4436
+ const specification = useMemo7(() => {
4437
4437
  if (modelInstance) {
4438
4438
  return modelInstance.getSpecification();
4439
4439
  }
@@ -4443,7 +4443,7 @@ var useGetSpecification = ({
4443
4443
  };
4444
4444
 
4445
4445
  // src/hooks/core/use-list-data.ts
4446
- import { useMemo as useMemo7, useState as useState6 } from "react";
4446
+ import { useMemo as useMemo8, useState as useState6 } from "react";
4447
4447
  import {
4448
4448
  evalJSONDomain,
4449
4449
  formatSortingString,
@@ -4559,7 +4559,7 @@ var useListData = ({
4559
4559
  viewData,
4560
4560
  fields: mode === "kanban" ? viewData?.views?.kanban?.fields : viewData?.views?.list?.fields
4561
4561
  });
4562
- const listDataProps = useMemo7(() => {
4562
+ const listDataProps = useMemo8(() => {
4563
4563
  if (!viewData || !action || !context) {
4564
4564
  return null;
4565
4565
  }
@@ -4696,7 +4696,7 @@ var many2oneFieldController = (props) => {
4696
4696
  service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
4697
4697
  xNode
4698
4698
  });
4699
- const selectOptions = useMemo8(() => {
4699
+ const selectOptions = useMemo9(() => {
4700
4700
  return dataOfSelection?.records?.map((val) => ({
4701
4701
  value: val?.id,
4702
4702
  label: val?.display_name || val?.name,
@@ -4707,7 +4707,7 @@ var many2oneFieldController = (props) => {
4707
4707
  setListOptions(selectOptions);
4708
4708
  setDomainModal(domainObject);
4709
4709
  }, [selectOptions]);
4710
- const parsedFormValues = useMemo8(
4710
+ const parsedFormValues = useMemo9(
4711
4711
  () => JSON.parse(
4712
4712
  JSON.stringify({
4713
4713
  ...formValues,
@@ -5064,7 +5064,7 @@ var many2manyFieldController = (props) => {
5064
5064
  };
5065
5065
 
5066
5066
  // src/widget/basic/many2many-tags-field/controller.ts
5067
- import { useCallback as useCallback5, useEffect as useEffect12, useMemo as useMemo9, useState as useState8 } from "react";
5067
+ import { useCallback as useCallback5, useEffect as useEffect12, useMemo as useMemo10, useState as useState8 } from "react";
5068
5068
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
5069
5069
  import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
5070
5070
  var many2manyTagsController = (props) => {
@@ -5096,7 +5096,7 @@ var many2manyTagsController = (props) => {
5096
5096
  ...fieldContext ?? {},
5097
5097
  ...env?.context
5098
5098
  };
5099
- const parsedFormValues = useMemo9(
5099
+ const parsedFormValues = useMemo10(
5100
5100
  () => JSON.parse(
5101
5101
  JSON.stringify({
5102
5102
  ...formValues,
@@ -5137,7 +5137,7 @@ var many2manyTagsController = (props) => {
5137
5137
  xNode,
5138
5138
  enabled: false
5139
5139
  });
5140
- const selectOptions = useMemo9(() => {
5140
+ const selectOptions = useMemo10(() => {
5141
5141
  return dataOfSelection?.records?.map((val) => ({
5142
5142
  value: val.id,
5143
5143
  label: val.name ?? val.display_name,
@@ -5644,7 +5644,7 @@ var binaryFieldController = (props) => {
5644
5644
  };
5645
5645
 
5646
5646
  // src/widget/advance/table/table-head/controller.ts
5647
- import { useMemo as useMemo10, useRef as useRef5 } from "react";
5647
+ import { useMemo as useMemo11, useRef as useRef5 } from "react";
5648
5648
  var tableHeadController = (props) => {
5649
5649
  const {
5650
5650
  typeTable,
@@ -5657,19 +5657,19 @@ var tableHeadController = (props) => {
5657
5657
  const { rowIds: recordIds } = useGetRowIds(tableRef);
5658
5658
  const selectedRowKeysRef = useRef5(recordIds);
5659
5659
  const isGroupTable = typeTable === "group";
5660
- const recordsCheckedGroup = useMemo10(() => {
5660
+ const recordsCheckedGroup = useMemo11(() => {
5661
5661
  if (!rows || !groupByList) return 0;
5662
5662
  const groupBy = typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0;
5663
5663
  return countSum(rows, groupBy);
5664
5664
  }, [rows, groupByList]);
5665
- const isAllGroupChecked = useMemo10(() => {
5665
+ const isAllGroupChecked = useMemo11(() => {
5666
5666
  if (!isGroupTable || !selectedRowKeys?.length) return false;
5667
5667
  const selectedLength = selectedRowKeys.filter((id) => id !== -1).length;
5668
5668
  const allRecordsSelected = recordIds.length === selectedRowKeys.length ? recordIds.length === selectedLength : false;
5669
5669
  const allGroupsSelected = recordsCheckedGroup === selectedRowKeys.length;
5670
5670
  return allGroupsSelected || allRecordsSelected;
5671
5671
  }, [isGroupTable, selectedRowKeys, recordIds, recordsCheckedGroup]);
5672
- const isAllNormalChecked = useMemo10(() => {
5672
+ const isAllNormalChecked = useMemo11(() => {
5673
5673
  if (isGroupTable || !selectedRowKeys?.length || !rows?.length) return false;
5674
5674
  return selectedRowKeys.length === rows.length && selectedRowKeys.every(
5675
5675
  (id) => rows.some((record) => record.id === id)
@@ -5710,19 +5710,19 @@ var tableHeadController = (props) => {
5710
5710
  };
5711
5711
 
5712
5712
  // src/widget/advance/table/table-view/controller.ts
5713
- import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo11, useState as useState13 } from "react";
5713
+ import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo12, useState as useState13 } from "react";
5714
5714
  import { domainHelper } from "@fctc/interface-logic/utils";
5715
5715
  var tableController = ({ data }) => {
5716
5716
  const [rows, setRows] = useState13([]);
5717
5717
  const [columnVisibility, setColumnVisibility] = useState13({});
5718
- const dataModelFields = useMemo11(() => {
5718
+ const dataModelFields = useMemo12(() => {
5719
5719
  return data?.fields?.map((field) => ({
5720
5720
  ...data.dataModel?.[field?.name],
5721
5721
  ...field,
5722
5722
  string: field?.string || data.dataModel?.[field?.name]?.string
5723
5723
  })) ?? [];
5724
5724
  }, [data?.fields, data?.dataModel]);
5725
- const mergeFields = useMemo11(
5725
+ const mergeFields = useMemo12(
5726
5726
  () => mergeButtons(dataModelFields),
5727
5727
  [dataModelFields]
5728
5728
  );
@@ -5751,7 +5751,7 @@ var tableController = ({ data }) => {
5751
5751
  useEffect14(() => {
5752
5752
  setRows(transformData(data?.records));
5753
5753
  }, [data?.records, transformData]);
5754
- const columns = useMemo11(() => {
5754
+ const columns = useMemo12(() => {
5755
5755
  try {
5756
5756
  return mergeFields?.filter((item) => {
5757
5757
  return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(
@@ -5787,7 +5787,7 @@ var tableController = ({ data }) => {
5787
5787
  };
5788
5788
 
5789
5789
  // src/widget/advance/table/table-group/controller.ts
5790
- import { useEffect as useEffect15, useMemo as useMemo12, useState as useState14 } from "react";
5790
+ import { useEffect as useEffect15, useMemo as useMemo13, useState as useState14 } from "react";
5791
5791
  import { useAppSelector, selectList } from "@fctc/interface-logic/store";
5792
5792
  var tableGroupController = (props) => {
5793
5793
  const { env } = (0, provider_exports.useEnv)();
@@ -5812,7 +5812,7 @@ var tableGroupController = (props) => {
5812
5812
  fromEnd: 1
5813
5813
  });
5814
5814
  const domain = row?.__domain;
5815
- const processedData = useMemo12(() => {
5815
+ const processedData = useMemo13(() => {
5816
5816
  const calculateColSpanEmpty = () => {
5817
5817
  const startIndex = columns.findIndex(
5818
5818
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
@@ -5827,7 +5827,7 @@ var tableGroupController = (props) => {
5827
5827
  };
5828
5828
  return calculateColSpanEmpty();
5829
5829
  }, [columns, row]);
5830
- const shouldFetchData = useMemo12(() => {
5830
+ const shouldFetchData = useMemo13(() => {
5831
5831
  return !!isShowGroup;
5832
5832
  }, [isShowGroup]);
5833
5833
  const enabled = shouldFetchData && !!processedData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/widget-logic",
3
- "version": "4.6.5",
3
+ "version": "4.6.6",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",