@fctc/widget-logic 6.1.7 → 6.1.9

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.d.mts CHANGED
@@ -796,12 +796,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
796
796
  specification: Record<string, any> | null;
797
797
  page: number;
798
798
  order: any;
799
+ orderGroupBy: any;
799
800
  domain: any;
800
801
  pageLimit: number;
801
802
  groupByList: any;
802
803
  selectedRowKeys: number[];
803
804
  setPage: react.Dispatch<react.SetStateAction<number>>;
804
805
  setOrder: react.Dispatch<any>;
806
+ setOrderGroupBy: react.Dispatch<any>;
805
807
  setDomain: react.Dispatch<any>;
806
808
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
807
809
  setGroupByList: react.Dispatch<any>;
@@ -838,12 +840,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
838
840
  specification: Record<string, any> | null;
839
841
  page: number;
840
842
  order: any;
843
+ orderGroupBy: any;
841
844
  domain: any;
842
845
  pageLimit: number;
843
846
  groupByList: any;
844
847
  selectedRowKeys: number[];
845
848
  setPage: react.Dispatch<react.SetStateAction<number>>;
846
849
  setOrder: react.Dispatch<any>;
850
+ setOrderGroupBy: react.Dispatch<any>;
847
851
  setDomain: react.Dispatch<any>;
848
852
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
849
853
  setGroupByList: react.Dispatch<any>;
@@ -880,12 +884,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
880
884
  specification: Record<string, any> | null;
881
885
  page: number;
882
886
  order: any;
887
+ orderGroupBy: any;
883
888
  domain: any;
884
889
  pageLimit: number;
885
890
  groupByList: any;
886
891
  selectedRowKeys: number[];
887
892
  setPage: react.Dispatch<react.SetStateAction<number>>;
888
893
  setOrder: react.Dispatch<any>;
894
+ setOrderGroupBy: react.Dispatch<any>;
889
895
  setDomain: react.Dispatch<any>;
890
896
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
891
897
  setGroupByList: react.Dispatch<any>;
@@ -922,12 +928,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
922
928
  specification: Record<string, any> | null;
923
929
  page: number;
924
930
  order: any;
931
+ orderGroupBy: any;
925
932
  domain: any;
926
933
  pageLimit: number;
927
934
  groupByList: any;
928
935
  selectedRowKeys: number[];
929
936
  setPage: react.Dispatch<react.SetStateAction<number>>;
930
937
  setOrder: react.Dispatch<any>;
938
+ setOrderGroupBy: react.Dispatch<any>;
931
939
  setDomain: react.Dispatch<any>;
932
940
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
933
941
  setGroupByList: react.Dispatch<any>;
@@ -964,12 +972,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
964
972
  specification: Record<string, any> | null;
965
973
  page: number;
966
974
  order: any;
975
+ orderGroupBy: any;
967
976
  domain: any;
968
977
  pageLimit: number;
969
978
  groupByList: any;
970
979
  selectedRowKeys: number[];
971
980
  setPage: react.Dispatch<react.SetStateAction<number>>;
972
981
  setOrder: react.Dispatch<any>;
982
+ setOrderGroupBy: react.Dispatch<any>;
973
983
  setDomain: react.Dispatch<any>;
974
984
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
975
985
  setGroupByList: react.Dispatch<any>;
@@ -1006,12 +1016,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
1006
1016
  specification: Record<string, any> | null;
1007
1017
  page: number;
1008
1018
  order: any;
1019
+ orderGroupBy: any;
1009
1020
  domain: any;
1010
1021
  pageLimit: number;
1011
1022
  groupByList: any;
1012
1023
  selectedRowKeys: number[];
1013
1024
  setPage: react.Dispatch<react.SetStateAction<number>>;
1014
1025
  setOrder: react.Dispatch<any>;
1026
+ setOrderGroupBy: react.Dispatch<any>;
1015
1027
  setDomain: react.Dispatch<any>;
1016
1028
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
1017
1029
  setGroupByList: react.Dispatch<any>;
package/dist/hooks.d.ts CHANGED
@@ -796,12 +796,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
796
796
  specification: Record<string, any> | null;
797
797
  page: number;
798
798
  order: any;
799
+ orderGroupBy: any;
799
800
  domain: any;
800
801
  pageLimit: number;
801
802
  groupByList: any;
802
803
  selectedRowKeys: number[];
803
804
  setPage: react.Dispatch<react.SetStateAction<number>>;
804
805
  setOrder: react.Dispatch<any>;
806
+ setOrderGroupBy: react.Dispatch<any>;
805
807
  setDomain: react.Dispatch<any>;
806
808
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
807
809
  setGroupByList: react.Dispatch<any>;
@@ -838,12 +840,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
838
840
  specification: Record<string, any> | null;
839
841
  page: number;
840
842
  order: any;
843
+ orderGroupBy: any;
841
844
  domain: any;
842
845
  pageLimit: number;
843
846
  groupByList: any;
844
847
  selectedRowKeys: number[];
845
848
  setPage: react.Dispatch<react.SetStateAction<number>>;
846
849
  setOrder: react.Dispatch<any>;
850
+ setOrderGroupBy: react.Dispatch<any>;
847
851
  setDomain: react.Dispatch<any>;
848
852
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
849
853
  setGroupByList: react.Dispatch<any>;
@@ -880,12 +884,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
880
884
  specification: Record<string, any> | null;
881
885
  page: number;
882
886
  order: any;
887
+ orderGroupBy: any;
883
888
  domain: any;
884
889
  pageLimit: number;
885
890
  groupByList: any;
886
891
  selectedRowKeys: number[];
887
892
  setPage: react.Dispatch<react.SetStateAction<number>>;
888
893
  setOrder: react.Dispatch<any>;
894
+ setOrderGroupBy: react.Dispatch<any>;
889
895
  setDomain: react.Dispatch<any>;
890
896
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
891
897
  setGroupByList: react.Dispatch<any>;
@@ -922,12 +928,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
922
928
  specification: Record<string, any> | null;
923
929
  page: number;
924
930
  order: any;
931
+ orderGroupBy: any;
925
932
  domain: any;
926
933
  pageLimit: number;
927
934
  groupByList: any;
928
935
  selectedRowKeys: number[];
929
936
  setPage: react.Dispatch<react.SetStateAction<number>>;
930
937
  setOrder: react.Dispatch<any>;
938
+ setOrderGroupBy: react.Dispatch<any>;
931
939
  setDomain: react.Dispatch<any>;
932
940
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
933
941
  setGroupByList: react.Dispatch<any>;
@@ -964,12 +972,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
964
972
  specification: Record<string, any> | null;
965
973
  page: number;
966
974
  order: any;
975
+ orderGroupBy: any;
967
976
  domain: any;
968
977
  pageLimit: number;
969
978
  groupByList: any;
970
979
  selectedRowKeys: number[];
971
980
  setPage: react.Dispatch<react.SetStateAction<number>>;
972
981
  setOrder: react.Dispatch<any>;
982
+ setOrderGroupBy: react.Dispatch<any>;
973
983
  setDomain: react.Dispatch<any>;
974
984
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
975
985
  setGroupByList: react.Dispatch<any>;
@@ -1006,12 +1016,14 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
1006
1016
  specification: Record<string, any> | null;
1007
1017
  page: number;
1008
1018
  order: any;
1019
+ orderGroupBy: any;
1009
1020
  domain: any;
1010
1021
  pageLimit: number;
1011
1022
  groupByList: any;
1012
1023
  selectedRowKeys: number[];
1013
1024
  setPage: react.Dispatch<react.SetStateAction<number>>;
1014
1025
  setOrder: react.Dispatch<any>;
1026
+ setOrderGroupBy: react.Dispatch<any>;
1015
1027
  setDomain: react.Dispatch<any>;
1016
1028
  setPageLimit: react.Dispatch<react.SetStateAction<number>>;
1017
1029
  setGroupByList: react.Dispatch<any>;
package/dist/hooks.js CHANGED
@@ -919,6 +919,7 @@ var useListData = ({
919
919
  const [groupByList, setGroupByList] = (0, import_react14.useState)(null);
920
920
  const [domain, setDomain] = (0, import_react14.useState)(null);
921
921
  const [order, setOrder] = (0, import_react14.useState)("");
922
+ const [orderGroupBy, setOrderGroupBy] = (0, import_react14.useState)("");
922
923
  const [selectedRowKeys, setSelectedRowKeys] = (0, import_react14.useState)([]);
923
924
  const [debouncedPage] = useDebounce(page, 500);
924
925
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -939,6 +940,7 @@ var useListData = ({
939
940
  const sort = order ?? (0, import_utils5.formatSortingString)(
940
941
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
941
942
  ) ?? "";
943
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? (0, import_utils5.formatSortingString)(groupByList?.contexts?.[0]?.order_by) : null;
942
944
  return {
943
945
  model: action?.res_model,
944
946
  specification,
@@ -949,7 +951,8 @@ var useListData = ({
949
951
  groupby,
950
952
  context,
951
953
  sort,
952
- mode
954
+ mode,
955
+ orderGroupBy: orderGroupBy2
953
956
  };
954
957
  }, [
955
958
  action,
@@ -959,7 +962,8 @@ var useListData = ({
959
962
  pageLimit,
960
963
  debouncedDomain,
961
964
  context,
962
- model
965
+ model,
966
+ orderGroupBy
963
967
  ]);
964
968
  const list = useGetListData2(
965
969
  { ...listDataProps },
@@ -971,7 +975,8 @@ var useListData = ({
971
975
  listDataProps?.sort,
972
976
  listDataProps?.context,
973
977
  listDataProps?.specification,
974
- listDataProps?.mode
978
+ listDataProps?.mode,
979
+ listDataProps?.orderGroupBy
975
980
  ],
976
981
  !!listDataProps && !!specification && !(0, import_utils5.isObjectEmpty)(specification) && !!domain,
977
982
  service,
@@ -983,12 +988,14 @@ var useListData = ({
983
988
  specification,
984
989
  page,
985
990
  order,
991
+ orderGroupBy,
986
992
  domain: listDataProps?.domain,
987
993
  pageLimit,
988
994
  groupByList,
989
995
  selectedRowKeys,
990
996
  setPage,
991
997
  setOrder,
998
+ setOrderGroupBy,
992
999
  setDomain,
993
1000
  setPageLimit,
994
1001
  setGroupByList,
package/dist/hooks.mjs CHANGED
@@ -904,6 +904,7 @@ var useListData = ({
904
904
  const [groupByList, setGroupByList] = useState5(null);
905
905
  const [domain, setDomain] = useState5(null);
906
906
  const [order, setOrder] = useState5("");
907
+ const [orderGroupBy, setOrderGroupBy] = useState5("");
907
908
  const [selectedRowKeys, setSelectedRowKeys] = useState5([]);
908
909
  const [debouncedPage] = useDebounce(page, 500);
909
910
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -924,6 +925,7 @@ var useListData = ({
924
925
  const sort = order ?? formatSortingString(
925
926
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
926
927
  ) ?? "";
928
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? formatSortingString(groupByList?.contexts?.[0]?.order_by) : null;
927
929
  return {
928
930
  model: action?.res_model,
929
931
  specification,
@@ -934,7 +936,8 @@ var useListData = ({
934
936
  groupby,
935
937
  context,
936
938
  sort,
937
- mode
939
+ mode,
940
+ orderGroupBy: orderGroupBy2
938
941
  };
939
942
  }, [
940
943
  action,
@@ -944,7 +947,8 @@ var useListData = ({
944
947
  pageLimit,
945
948
  debouncedDomain,
946
949
  context,
947
- model
950
+ model,
951
+ orderGroupBy
948
952
  ]);
949
953
  const list = useGetListData2(
950
954
  { ...listDataProps },
@@ -956,7 +960,8 @@ var useListData = ({
956
960
  listDataProps?.sort,
957
961
  listDataProps?.context,
958
962
  listDataProps?.specification,
959
- listDataProps?.mode
963
+ listDataProps?.mode,
964
+ listDataProps?.orderGroupBy
960
965
  ],
961
966
  !!listDataProps && !!specification && !isObjectEmpty4(specification) && !!domain,
962
967
  service,
@@ -968,12 +973,14 @@ var useListData = ({
968
973
  specification,
969
974
  page,
970
975
  order,
976
+ orderGroupBy,
971
977
  domain: listDataProps?.domain,
972
978
  pageLimit,
973
979
  groupByList,
974
980
  selectedRowKeys,
975
981
  setPage,
976
982
  setOrder,
983
+ setOrderGroupBy,
977
984
  setDomain,
978
985
  setPageLimit,
979
986
  setGroupByList,
package/dist/index.js CHANGED
@@ -4993,6 +4993,7 @@ var useListData = ({
4993
4993
  const [groupByList, setGroupByList] = (0, import_react14.useState)(null);
4994
4994
  const [domain, setDomain] = (0, import_react14.useState)(null);
4995
4995
  const [order, setOrder] = (0, import_react14.useState)("");
4996
+ const [orderGroupBy, setOrderGroupBy] = (0, import_react14.useState)("");
4996
4997
  const [selectedRowKeys, setSelectedRowKeys] = (0, import_react14.useState)([]);
4997
4998
  const [debouncedPage] = useDebounce(page, 500);
4998
4999
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -5013,6 +5014,7 @@ var useListData = ({
5013
5014
  const sort = order ?? (0, import_utils5.formatSortingString)(
5014
5015
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
5015
5016
  ) ?? "";
5017
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? (0, import_utils5.formatSortingString)(groupByList?.contexts?.[0]?.order_by) : null;
5016
5018
  return {
5017
5019
  model: action?.res_model,
5018
5020
  specification,
@@ -5023,7 +5025,8 @@ var useListData = ({
5023
5025
  groupby,
5024
5026
  context,
5025
5027
  sort,
5026
- mode
5028
+ mode,
5029
+ orderGroupBy: orderGroupBy2
5027
5030
  };
5028
5031
  }, [
5029
5032
  action,
@@ -5033,7 +5036,8 @@ var useListData = ({
5033
5036
  pageLimit,
5034
5037
  debouncedDomain,
5035
5038
  context,
5036
- model
5039
+ model,
5040
+ orderGroupBy
5037
5041
  ]);
5038
5042
  const list = useGetListData2(
5039
5043
  { ...listDataProps },
@@ -5045,7 +5049,8 @@ var useListData = ({
5045
5049
  listDataProps?.sort,
5046
5050
  listDataProps?.context,
5047
5051
  listDataProps?.specification,
5048
- listDataProps?.mode
5052
+ listDataProps?.mode,
5053
+ listDataProps?.orderGroupBy
5049
5054
  ],
5050
5055
  !!listDataProps && !!specification && !(0, import_utils5.isObjectEmpty)(specification) && !!domain,
5051
5056
  service,
@@ -5057,12 +5062,14 @@ var useListData = ({
5057
5062
  specification,
5058
5063
  page,
5059
5064
  order,
5065
+ orderGroupBy,
5060
5066
  domain: listDataProps?.domain,
5061
5067
  pageLimit,
5062
5068
  groupByList,
5063
5069
  selectedRowKeys,
5064
5070
  setPage,
5065
5071
  setOrder,
5072
+ setOrderGroupBy,
5066
5073
  setDomain,
5067
5074
  setPageLimit,
5068
5075
  setGroupByList,
@@ -6605,9 +6612,11 @@ var tableGroupController = (props) => {
6605
6612
  context,
6606
6613
  checkedAll,
6607
6614
  groupByList,
6608
- setSelectedRowKeys
6615
+ setSelectedRowKeys,
6616
+ limit = 10
6609
6617
  } = props;
6610
6618
  const [pageGroup, setPageGroup] = (0, import_react26.useState)(0);
6619
+ const [pageLimitGroup, setPageLimitGroup] = (0, import_react26.useState)(limit);
6611
6620
  const { selectedRowKeys } = (0, import_store.useAppSelector)(import_store.selectList);
6612
6621
  const [isShowGroup, setIsShowGroup] = (0, import_react26.useState)(false);
6613
6622
  const [colEmptyGroup, setColEmptyGroup] = (0, import_react26.useState)({
@@ -6617,16 +6626,20 @@ var tableGroupController = (props) => {
6617
6626
  const domain = row?.__domain;
6618
6627
  const processedData = (0, import_react26.useMemo)(() => {
6619
6628
  const calculateColSpanEmpty = () => {
6620
- const startIndex = columns.findIndex(
6629
+ const startIndex = columns?.filter(
6630
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
6631
+ ).findIndex(
6621
6632
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
6622
6633
  );
6623
- const endIndex = columns.findLastIndex(
6634
+ const endIndex = columns?.filter(
6635
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
6636
+ ).findLastIndex(
6624
6637
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator !== "sum"
6625
6638
  );
6626
6639
  const fromStart = startIndex === -1 ? columns.length : startIndex;
6627
6640
  const fromEnd = endIndex === -1 ? columns.length : columns.length - 1 - endIndex;
6628
- setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 1 });
6629
- return { fromStart: fromStart + 1, fromEnd: fromEnd + 1 };
6641
+ setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 10 });
6642
+ return { fromStart: fromStart + 1, fromEnd: fromEnd + 10 };
6630
6643
  };
6631
6644
  return calculateColSpanEmpty();
6632
6645
  }, [columns, row]);
@@ -6639,16 +6652,17 @@ var tableGroupController = (props) => {
6639
6652
  specification,
6640
6653
  domain,
6641
6654
  context,
6642
- offset: pageGroup * 10,
6655
+ offset: pageGroup * pageLimitGroup,
6643
6656
  fields: groupByList?.fields,
6644
6657
  groupby: [groupByList?.contexts[level]?.group_by],
6645
- limit: 10
6658
+ limit: pageLimitGroup
6646
6659
  };
6647
6660
  const queryKey = [
6648
6661
  `data-${model}-level_${level}-row-${row?.id}`,
6649
6662
  specification,
6650
6663
  domain,
6651
- pageGroup
6664
+ pageGroup,
6665
+ pageLimitGroup
6652
6666
  ];
6653
6667
  const {
6654
6668
  data: dataGroup,
@@ -6722,7 +6736,9 @@ var tableGroupController = (props) => {
6722
6736
  dataGroup,
6723
6737
  pageGroup,
6724
6738
  setPageGroup,
6725
- typeTableGroup
6739
+ typeTableGroup,
6740
+ pageLimitGroup,
6741
+ setPageLimitGroup
6726
6742
  };
6727
6743
  };
6728
6744
 
package/dist/index.mjs CHANGED
@@ -5087,6 +5087,7 @@ var useListData = ({
5087
5087
  const [groupByList, setGroupByList] = useState5(null);
5088
5088
  const [domain, setDomain] = useState5(null);
5089
5089
  const [order, setOrder] = useState5("");
5090
+ const [orderGroupBy, setOrderGroupBy] = useState5("");
5090
5091
  const [selectedRowKeys, setSelectedRowKeys] = useState5([]);
5091
5092
  const [debouncedPage] = useDebounce(page, 500);
5092
5093
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -5107,6 +5108,7 @@ var useListData = ({
5107
5108
  const sort = order ?? formatSortingString(
5108
5109
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
5109
5110
  ) ?? "";
5111
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? formatSortingString(groupByList?.contexts?.[0]?.order_by) : null;
5110
5112
  return {
5111
5113
  model: action?.res_model,
5112
5114
  specification,
@@ -5117,7 +5119,8 @@ var useListData = ({
5117
5119
  groupby,
5118
5120
  context,
5119
5121
  sort,
5120
- mode
5122
+ mode,
5123
+ orderGroupBy: orderGroupBy2
5121
5124
  };
5122
5125
  }, [
5123
5126
  action,
@@ -5127,7 +5130,8 @@ var useListData = ({
5127
5130
  pageLimit,
5128
5131
  debouncedDomain,
5129
5132
  context,
5130
- model
5133
+ model,
5134
+ orderGroupBy
5131
5135
  ]);
5132
5136
  const list = useGetListData2(
5133
5137
  { ...listDataProps },
@@ -5139,7 +5143,8 @@ var useListData = ({
5139
5143
  listDataProps?.sort,
5140
5144
  listDataProps?.context,
5141
5145
  listDataProps?.specification,
5142
- listDataProps?.mode
5146
+ listDataProps?.mode,
5147
+ listDataProps?.orderGroupBy
5143
5148
  ],
5144
5149
  !!listDataProps && !!specification && !isObjectEmpty4(specification) && !!domain,
5145
5150
  service,
@@ -5151,12 +5156,14 @@ var useListData = ({
5151
5156
  specification,
5152
5157
  page,
5153
5158
  order,
5159
+ orderGroupBy,
5154
5160
  domain: listDataProps?.domain,
5155
5161
  pageLimit,
5156
5162
  groupByList,
5157
5163
  selectedRowKeys,
5158
5164
  setPage,
5159
5165
  setOrder,
5166
+ setOrderGroupBy,
5160
5167
  setDomain,
5161
5168
  setPageLimit,
5162
5169
  setGroupByList,
@@ -6700,9 +6707,11 @@ var tableGroupController = (props) => {
6700
6707
  context,
6701
6708
  checkedAll,
6702
6709
  groupByList,
6703
- setSelectedRowKeys
6710
+ setSelectedRowKeys,
6711
+ limit = 10
6704
6712
  } = props;
6705
6713
  const [pageGroup, setPageGroup] = useState15(0);
6714
+ const [pageLimitGroup, setPageLimitGroup] = useState15(limit);
6706
6715
  const { selectedRowKeys } = useAppSelector(selectList);
6707
6716
  const [isShowGroup, setIsShowGroup] = useState15(false);
6708
6717
  const [colEmptyGroup, setColEmptyGroup] = useState15({
@@ -6712,16 +6721,20 @@ var tableGroupController = (props) => {
6712
6721
  const domain = row?.__domain;
6713
6722
  const processedData = useMemo12(() => {
6714
6723
  const calculateColSpanEmpty = () => {
6715
- const startIndex = columns.findIndex(
6724
+ const startIndex = columns?.filter(
6725
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
6726
+ ).findIndex(
6716
6727
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
6717
6728
  );
6718
- const endIndex = columns.findLastIndex(
6729
+ const endIndex = columns?.filter(
6730
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
6731
+ ).findLastIndex(
6719
6732
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator !== "sum"
6720
6733
  );
6721
6734
  const fromStart = startIndex === -1 ? columns.length : startIndex;
6722
6735
  const fromEnd = endIndex === -1 ? columns.length : columns.length - 1 - endIndex;
6723
- setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 1 });
6724
- return { fromStart: fromStart + 1, fromEnd: fromEnd + 1 };
6736
+ setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 10 });
6737
+ return { fromStart: fromStart + 1, fromEnd: fromEnd + 10 };
6725
6738
  };
6726
6739
  return calculateColSpanEmpty();
6727
6740
  }, [columns, row]);
@@ -6734,16 +6747,17 @@ var tableGroupController = (props) => {
6734
6747
  specification,
6735
6748
  domain,
6736
6749
  context,
6737
- offset: pageGroup * 10,
6750
+ offset: pageGroup * pageLimitGroup,
6738
6751
  fields: groupByList?.fields,
6739
6752
  groupby: [groupByList?.contexts[level]?.group_by],
6740
- limit: 10
6753
+ limit: pageLimitGroup
6741
6754
  };
6742
6755
  const queryKey = [
6743
6756
  `data-${model}-level_${level}-row-${row?.id}`,
6744
6757
  specification,
6745
6758
  domain,
6746
- pageGroup
6759
+ pageGroup,
6760
+ pageLimitGroup
6747
6761
  ];
6748
6762
  const {
6749
6763
  data: dataGroup,
@@ -6817,7 +6831,9 @@ var tableGroupController = (props) => {
6817
6831
  dataGroup,
6818
6832
  pageGroup,
6819
6833
  setPageGroup,
6820
- typeTableGroup
6834
+ typeTableGroup,
6835
+ pageLimitGroup,
6836
+ setPageLimitGroup
6821
6837
  };
6822
6838
  };
6823
6839
 
package/dist/widget.d.mts CHANGED
@@ -315,6 +315,8 @@ declare const tableGroupController: (props: any) => {
315
315
  pageGroup: any;
316
316
  setPageGroup: react.Dispatch<any>;
317
317
  typeTableGroup: "list" | "group" | "calendar" | undefined;
318
+ pageLimitGroup: number;
319
+ setPageLimitGroup: react.Dispatch<react.SetStateAction<number>>;
318
320
  };
319
321
 
320
322
  declare const searchController: ({ viewData, model, domain, context, fieldsList, }: {
package/dist/widget.d.ts CHANGED
@@ -315,6 +315,8 @@ declare const tableGroupController: (props: any) => {
315
315
  pageGroup: any;
316
316
  setPageGroup: react.Dispatch<any>;
317
317
  typeTableGroup: "list" | "group" | "calendar" | undefined;
318
+ pageLimitGroup: number;
319
+ setPageLimitGroup: react.Dispatch<react.SetStateAction<number>>;
318
320
  };
319
321
 
320
322
  declare const searchController: ({ viewData, model, domain, context, fieldsList, }: {
package/dist/widget.js CHANGED
@@ -4506,6 +4506,7 @@ var useListData = ({
4506
4506
  const [groupByList, setGroupByList] = (0, import_react15.useState)(null);
4507
4507
  const [domain, setDomain] = (0, import_react15.useState)(null);
4508
4508
  const [order, setOrder] = (0, import_react15.useState)("");
4509
+ const [orderGroupBy, setOrderGroupBy] = (0, import_react15.useState)("");
4509
4510
  const [selectedRowKeys, setSelectedRowKeys] = (0, import_react15.useState)([]);
4510
4511
  const [debouncedPage] = useDebounce(page, 500);
4511
4512
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -4526,6 +4527,7 @@ var useListData = ({
4526
4527
  const sort = order ?? (0, import_utils5.formatSortingString)(
4527
4528
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
4528
4529
  ) ?? "";
4530
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? (0, import_utils5.formatSortingString)(groupByList?.contexts?.[0]?.order_by) : null;
4529
4531
  return {
4530
4532
  model: action?.res_model,
4531
4533
  specification,
@@ -4536,7 +4538,8 @@ var useListData = ({
4536
4538
  groupby,
4537
4539
  context,
4538
4540
  sort,
4539
- mode
4541
+ mode,
4542
+ orderGroupBy: orderGroupBy2
4540
4543
  };
4541
4544
  }, [
4542
4545
  action,
@@ -4546,7 +4549,8 @@ var useListData = ({
4546
4549
  pageLimit,
4547
4550
  debouncedDomain,
4548
4551
  context,
4549
- model
4552
+ model,
4553
+ orderGroupBy
4550
4554
  ]);
4551
4555
  const list = useGetListData2(
4552
4556
  { ...listDataProps },
@@ -4558,7 +4562,8 @@ var useListData = ({
4558
4562
  listDataProps?.sort,
4559
4563
  listDataProps?.context,
4560
4564
  listDataProps?.specification,
4561
- listDataProps?.mode
4565
+ listDataProps?.mode,
4566
+ listDataProps?.orderGroupBy
4562
4567
  ],
4563
4568
  !!listDataProps && !!specification && !(0, import_utils5.isObjectEmpty)(specification) && !!domain,
4564
4569
  service,
@@ -4570,12 +4575,14 @@ var useListData = ({
4570
4575
  specification,
4571
4576
  page,
4572
4577
  order,
4578
+ orderGroupBy,
4573
4579
  domain: listDataProps?.domain,
4574
4580
  pageLimit,
4575
4581
  groupByList,
4576
4582
  selectedRowKeys,
4577
4583
  setPage,
4578
4584
  setOrder,
4585
+ setOrderGroupBy,
4579
4586
  setDomain,
4580
4587
  setPageLimit,
4581
4588
  setGroupByList,
@@ -5826,9 +5833,11 @@ var tableGroupController = (props) => {
5826
5833
  context,
5827
5834
  checkedAll,
5828
5835
  groupByList,
5829
- setSelectedRowKeys
5836
+ setSelectedRowKeys,
5837
+ limit = 10
5830
5838
  } = props;
5831
5839
  const [pageGroup, setPageGroup] = (0, import_react26.useState)(0);
5840
+ const [pageLimitGroup, setPageLimitGroup] = (0, import_react26.useState)(limit);
5832
5841
  const { selectedRowKeys } = (0, import_store.useAppSelector)(import_store.selectList);
5833
5842
  const [isShowGroup, setIsShowGroup] = (0, import_react26.useState)(false);
5834
5843
  const [colEmptyGroup, setColEmptyGroup] = (0, import_react26.useState)({
@@ -5838,16 +5847,20 @@ var tableGroupController = (props) => {
5838
5847
  const domain = row?.__domain;
5839
5848
  const processedData = (0, import_react26.useMemo)(() => {
5840
5849
  const calculateColSpanEmpty = () => {
5841
- const startIndex = columns.findIndex(
5850
+ const startIndex = columns?.filter(
5851
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
5852
+ ).findIndex(
5842
5853
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
5843
5854
  );
5844
- const endIndex = columns.findLastIndex(
5855
+ const endIndex = columns?.filter(
5856
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
5857
+ ).findLastIndex(
5845
5858
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator !== "sum"
5846
5859
  );
5847
5860
  const fromStart = startIndex === -1 ? columns.length : startIndex;
5848
5861
  const fromEnd = endIndex === -1 ? columns.length : columns.length - 1 - endIndex;
5849
- setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 1 });
5850
- return { fromStart: fromStart + 1, fromEnd: fromEnd + 1 };
5862
+ setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 10 });
5863
+ return { fromStart: fromStart + 1, fromEnd: fromEnd + 10 };
5851
5864
  };
5852
5865
  return calculateColSpanEmpty();
5853
5866
  }, [columns, row]);
@@ -5860,16 +5873,17 @@ var tableGroupController = (props) => {
5860
5873
  specification,
5861
5874
  domain,
5862
5875
  context,
5863
- offset: pageGroup * 10,
5876
+ offset: pageGroup * pageLimitGroup,
5864
5877
  fields: groupByList?.fields,
5865
5878
  groupby: [groupByList?.contexts[level]?.group_by],
5866
- limit: 10
5879
+ limit: pageLimitGroup
5867
5880
  };
5868
5881
  const queryKey = [
5869
5882
  `data-${model}-level_${level}-row-${row?.id}`,
5870
5883
  specification,
5871
5884
  domain,
5872
- pageGroup
5885
+ pageGroup,
5886
+ pageLimitGroup
5873
5887
  ];
5874
5888
  const {
5875
5889
  data: dataGroup,
@@ -5943,7 +5957,9 @@ var tableGroupController = (props) => {
5943
5957
  dataGroup,
5944
5958
  pageGroup,
5945
5959
  setPageGroup,
5946
- typeTableGroup
5960
+ typeTableGroup,
5961
+ pageLimitGroup,
5962
+ setPageLimitGroup
5947
5963
  };
5948
5964
  };
5949
5965
 
package/dist/widget.mjs CHANGED
@@ -4577,6 +4577,7 @@ var useListData = ({
4577
4577
  const [groupByList, setGroupByList] = useState6(null);
4578
4578
  const [domain, setDomain] = useState6(null);
4579
4579
  const [order, setOrder] = useState6("");
4580
+ const [orderGroupBy, setOrderGroupBy] = useState6("");
4580
4581
  const [selectedRowKeys, setSelectedRowKeys] = useState6([]);
4581
4582
  const [debouncedPage] = useDebounce(page, 500);
4582
4583
  const [debouncedDomain] = useDebounce(domain, 500);
@@ -4597,6 +4598,7 @@ var useListData = ({
4597
4598
  const sort = order ?? formatSortingString(
4598
4599
  (mode === "kanban" ? viewData?.views?.kanban : viewData?.views?.list)?.default_order
4599
4600
  ) ?? "";
4601
+ const orderGroupBy2 = groupByList && typeof groupByList === "object" ? formatSortingString(groupByList?.contexts?.[0]?.order_by) : null;
4600
4602
  return {
4601
4603
  model: action?.res_model,
4602
4604
  specification,
@@ -4607,7 +4609,8 @@ var useListData = ({
4607
4609
  groupby,
4608
4610
  context,
4609
4611
  sort,
4610
- mode
4612
+ mode,
4613
+ orderGroupBy: orderGroupBy2
4611
4614
  };
4612
4615
  }, [
4613
4616
  action,
@@ -4617,7 +4620,8 @@ var useListData = ({
4617
4620
  pageLimit,
4618
4621
  debouncedDomain,
4619
4622
  context,
4620
- model
4623
+ model,
4624
+ orderGroupBy
4621
4625
  ]);
4622
4626
  const list = useGetListData2(
4623
4627
  { ...listDataProps },
@@ -4629,7 +4633,8 @@ var useListData = ({
4629
4633
  listDataProps?.sort,
4630
4634
  listDataProps?.context,
4631
4635
  listDataProps?.specification,
4632
- listDataProps?.mode
4636
+ listDataProps?.mode,
4637
+ listDataProps?.orderGroupBy
4633
4638
  ],
4634
4639
  !!listDataProps && !!specification && !isObjectEmpty4(specification) && !!domain,
4635
4640
  service,
@@ -4641,12 +4646,14 @@ var useListData = ({
4641
4646
  specification,
4642
4647
  page,
4643
4648
  order,
4649
+ orderGroupBy,
4644
4650
  domain: listDataProps?.domain,
4645
4651
  pageLimit,
4646
4652
  groupByList,
4647
4653
  selectedRowKeys,
4648
4654
  setPage,
4649
4655
  setOrder,
4656
+ setOrderGroupBy,
4650
4657
  setDomain,
4651
4658
  setPageLimit,
4652
4659
  setGroupByList,
@@ -5897,9 +5904,11 @@ var tableGroupController = (props) => {
5897
5904
  context,
5898
5905
  checkedAll,
5899
5906
  groupByList,
5900
- setSelectedRowKeys
5907
+ setSelectedRowKeys,
5908
+ limit = 10
5901
5909
  } = props;
5902
5910
  const [pageGroup, setPageGroup] = useState15(0);
5911
+ const [pageLimitGroup, setPageLimitGroup] = useState15(limit);
5903
5912
  const { selectedRowKeys } = useAppSelector(selectList);
5904
5913
  const [isShowGroup, setIsShowGroup] = useState15(false);
5905
5914
  const [colEmptyGroup, setColEmptyGroup] = useState15({
@@ -5909,16 +5918,20 @@ var tableGroupController = (props) => {
5909
5918
  const domain = row?.__domain;
5910
5919
  const processedData = useMemo12(() => {
5911
5920
  const calculateColSpanEmpty = () => {
5912
- const startIndex = columns.findIndex(
5921
+ const startIndex = columns?.filter(
5922
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
5923
+ ).findIndex(
5913
5924
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
5914
5925
  );
5915
- const endIndex = columns.findLastIndex(
5926
+ const endIndex = columns?.filter(
5927
+ (col) => col?.field?.type_co === "field" && col?.optional !== "hide"
5928
+ ).findLastIndex(
5916
5929
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator !== "sum"
5917
5930
  );
5918
5931
  const fromStart = startIndex === -1 ? columns.length : startIndex;
5919
5932
  const fromEnd = endIndex === -1 ? columns.length : columns.length - 1 - endIndex;
5920
- setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 1 });
5921
- return { fromStart: fromStart + 1, fromEnd: fromEnd + 1 };
5933
+ setColEmptyGroup({ fromStart: fromStart + 1, fromEnd: fromEnd + 10 });
5934
+ return { fromStart: fromStart + 1, fromEnd: fromEnd + 10 };
5922
5935
  };
5923
5936
  return calculateColSpanEmpty();
5924
5937
  }, [columns, row]);
@@ -5931,16 +5944,17 @@ var tableGroupController = (props) => {
5931
5944
  specification,
5932
5945
  domain,
5933
5946
  context,
5934
- offset: pageGroup * 10,
5947
+ offset: pageGroup * pageLimitGroup,
5935
5948
  fields: groupByList?.fields,
5936
5949
  groupby: [groupByList?.contexts[level]?.group_by],
5937
- limit: 10
5950
+ limit: pageLimitGroup
5938
5951
  };
5939
5952
  const queryKey = [
5940
5953
  `data-${model}-level_${level}-row-${row?.id}`,
5941
5954
  specification,
5942
5955
  domain,
5943
- pageGroup
5956
+ pageGroup,
5957
+ pageLimitGroup
5944
5958
  ];
5945
5959
  const {
5946
5960
  data: dataGroup,
@@ -6014,7 +6028,9 @@ var tableGroupController = (props) => {
6014
6028
  dataGroup,
6015
6029
  pageGroup,
6016
6030
  setPageGroup,
6017
- typeTableGroup
6031
+ typeTableGroup,
6032
+ pageLimitGroup,
6033
+ setPageLimitGroup
6018
6034
  };
6019
6035
  };
6020
6036
 
package/package.json CHANGED
@@ -1,92 +1,92 @@
1
- {
2
- "name": "@fctc/widget-logic",
3
- "version": "6.1.7",
4
- "types": "dist/index.d.ts",
5
- "main": "dist/index.cjs",
6
- "module": "dist/index.mjs",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs"
12
- },
13
- "./hooks": {
14
- "types": "./dist/hooks.d.ts",
15
- "import": "./dist/hooks.mjs",
16
- "require": "./dist/hooks.cjs"
17
- },
18
- "./widget": {
19
- "types": "./dist/widget.d.ts",
20
- "import": "./dist/widget.mjs",
21
- "require": "./dist/widget.cjs"
22
- },
23
- "./icons": {
24
- "types": "./dist/icons.d.ts",
25
- "import": "./dist/icons.mjs",
26
- "require": "./dist/icons.cjs"
27
- },
28
- "./utils": {
29
- "types": "./dist/utils.d.ts",
30
- "import": "./dist/utils.mjs",
31
- "require": "./dist/utils.cjs"
32
- },
33
- "./store": {
34
- "types": "./dist/store.d.ts",
35
- "import": "./dist/store.mjs",
36
- "require": "./dist/store.cjs"
37
- },
38
- "./config": {
39
- "types": "./dist/config.d.ts",
40
- "import": "./dist/config.mjs",
41
- "require": "./dist/config.cjs"
42
- },
43
- "./constants": {
44
- "types": "./dist/constants.d.ts",
45
- "import": "./dist/constants.mjs",
46
- "require": "./dist/constants.cjs"
47
- },
48
- "./environment": {
49
- "types": "./dist/environment.d.ts",
50
- "import": "./dist/environment.mjs",
51
- "require": "./dist/environment.cjs"
52
- },
53
- "./provider": {
54
- "types": "./dist/provider.d.ts",
55
- "import": "./dist/provider.mjs",
56
- "require": "./dist/provider.cjs"
57
- },
58
- "./services": {
59
- "types": "./dist/services.d.ts",
60
- "import": "./dist/services.mjs",
61
- "require": "./dist/services.cjs"
62
- },
63
- "./types": {
64
- "types": "./dist/types.d.ts",
65
- "import": "./dist/types.mjs",
66
- "require": "./dist/types.cjs"
67
- }
68
- },
69
- "files": [
70
- "dist"
71
- ],
72
- "scripts": {
73
- "build": "tsup",
74
- "test": "jest"
75
- },
76
- "dependencies": {
77
- "@fctc/interface-logic": "^5.4.9",
78
- "@tanstack/react-query": "^5.84.0",
79
- "i18next": "^25.3.2",
80
- "i18next-browser-languagedetector": "^8.2.0",
81
- "react-i18next": "^15.6.1"
82
- },
83
- "devDependencies": {
84
- "@types/react": "^18.3.1",
85
- "jest": "^29.7.0",
86
- "react": "18.0.0",
87
- "tsup": "^8.0.0",
88
- "typescript": "^5.8.2"
89
- },
90
- "packageManager": "yarn@1.22.0",
91
- "peerDependencies": {}
92
- }
1
+ {
2
+ "name": "@fctc/widget-logic",
3
+ "version": "6.1.9",
4
+ "types": "dist/index.d.ts",
5
+ "main": "dist/index.cjs",
6
+ "module": "dist/index.mjs",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.mjs",
11
+ "require": "./dist/index.cjs"
12
+ },
13
+ "./hooks": {
14
+ "types": "./dist/hooks.d.ts",
15
+ "import": "./dist/hooks.mjs",
16
+ "require": "./dist/hooks.cjs"
17
+ },
18
+ "./widget": {
19
+ "types": "./dist/widget.d.ts",
20
+ "import": "./dist/widget.mjs",
21
+ "require": "./dist/widget.cjs"
22
+ },
23
+ "./icons": {
24
+ "types": "./dist/icons.d.ts",
25
+ "import": "./dist/icons.mjs",
26
+ "require": "./dist/icons.cjs"
27
+ },
28
+ "./utils": {
29
+ "types": "./dist/utils.d.ts",
30
+ "import": "./dist/utils.mjs",
31
+ "require": "./dist/utils.cjs"
32
+ },
33
+ "./store": {
34
+ "types": "./dist/store.d.ts",
35
+ "import": "./dist/store.mjs",
36
+ "require": "./dist/store.cjs"
37
+ },
38
+ "./config": {
39
+ "types": "./dist/config.d.ts",
40
+ "import": "./dist/config.mjs",
41
+ "require": "./dist/config.cjs"
42
+ },
43
+ "./constants": {
44
+ "types": "./dist/constants.d.ts",
45
+ "import": "./dist/constants.mjs",
46
+ "require": "./dist/constants.cjs"
47
+ },
48
+ "./environment": {
49
+ "types": "./dist/environment.d.ts",
50
+ "import": "./dist/environment.mjs",
51
+ "require": "./dist/environment.cjs"
52
+ },
53
+ "./provider": {
54
+ "types": "./dist/provider.d.ts",
55
+ "import": "./dist/provider.mjs",
56
+ "require": "./dist/provider.cjs"
57
+ },
58
+ "./services": {
59
+ "types": "./dist/services.d.ts",
60
+ "import": "./dist/services.mjs",
61
+ "require": "./dist/services.cjs"
62
+ },
63
+ "./types": {
64
+ "types": "./dist/types.d.ts",
65
+ "import": "./dist/types.mjs",
66
+ "require": "./dist/types.cjs"
67
+ }
68
+ },
69
+ "files": [
70
+ "dist"
71
+ ],
72
+ "scripts": {
73
+ "build": "tsup",
74
+ "test": "jest"
75
+ },
76
+ "dependencies": {
77
+ "@fctc/interface-logic": "^5.5.1",
78
+ "@tanstack/react-query": "^5.84.0",
79
+ "i18next": "^25.3.2",
80
+ "i18next-browser-languagedetector": "^8.2.0",
81
+ "react-i18next": "^15.6.1"
82
+ },
83
+ "devDependencies": {
84
+ "@types/react": "^18.3.1",
85
+ "jest": "^29.7.0",
86
+ "react": "18.0.0",
87
+ "tsup": "^8.0.0",
88
+ "typescript": "^5.8.2"
89
+ },
90
+ "packageManager": "yarn@1.22.0",
91
+ "peerDependencies": {}
92
+ }