@fctc/widget-logic 3.4.0 → 3.4.1

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
@@ -95,7 +95,9 @@ interface UseMenuReturn {
95
95
  xNode?: string;
96
96
  }
97
97
 
98
- declare const useUser: () => any;
98
+ declare const useUser: ({ service }: {
99
+ service?: string;
100
+ }) => any;
99
101
  type useUserType = ReturnType<typeof useUser>;
100
102
 
101
103
  declare const useViewV2: ({ action, context, aid, service, xNode, }: {
@@ -283,7 +285,9 @@ type ViewResponse = {
283
285
  };
284
286
  };
285
287
 
286
- declare const useCompany: () => {
288
+ declare const useCompany: ({ service }: {
289
+ service?: string;
290
+ }) => {
287
291
  currentCompany: {
288
292
  data: CurrentCompany | undefined;
289
293
  error: Error;
@@ -1041,7 +1045,9 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
1041
1045
  };
1042
1046
  type useListDataType = ReturnType<typeof useListData>;
1043
1047
 
1044
- declare const useProfile: () => {
1048
+ declare const useProfile: ({ service }: {
1049
+ service?: string;
1050
+ }) => {
1045
1051
  context: ContextProfile | undefined;
1046
1052
  data: UserInfo | undefined;
1047
1053
  error: Error;
package/dist/hooks.d.ts CHANGED
@@ -95,7 +95,9 @@ interface UseMenuReturn {
95
95
  xNode?: string;
96
96
  }
97
97
 
98
- declare const useUser: () => any;
98
+ declare const useUser: ({ service }: {
99
+ service?: string;
100
+ }) => any;
99
101
  type useUserType = ReturnType<typeof useUser>;
100
102
 
101
103
  declare const useViewV2: ({ action, context, aid, service, xNode, }: {
@@ -283,7 +285,9 @@ type ViewResponse = {
283
285
  };
284
286
  };
285
287
 
286
- declare const useCompany: () => {
288
+ declare const useCompany: ({ service }: {
289
+ service?: string;
290
+ }) => {
287
291
  currentCompany: {
288
292
  data: CurrentCompany | undefined;
289
293
  error: Error;
@@ -1041,7 +1045,9 @@ declare const useListData: ({ action, context, viewData, model, service, xNode,
1041
1045
  };
1042
1046
  type useListDataType = ReturnType<typeof useListData>;
1043
1047
 
1044
- declare const useProfile: () => {
1048
+ declare const useProfile: ({ service }: {
1049
+ service?: string;
1050
+ }) => {
1045
1051
  context: ContextProfile | undefined;
1046
1052
  data: UserInfo | undefined;
1047
1053
  error: Error;
package/dist/hooks.js CHANGED
@@ -455,7 +455,7 @@ var useDetail = (sub) => {
455
455
  var import_react_query2 = require("@tanstack/react-query");
456
456
  var import_react5 = require("react");
457
457
  var import_react_i18next = require("react-i18next");
458
- var useProfile = () => {
458
+ var useProfile = ({ service }) => {
459
459
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
460
460
  const { useGetProfile: useGetProfile2 } = (0, provider_exports.useService)();
461
461
  const getProfile = useGetProfile2();
@@ -493,8 +493,8 @@ var useProfile = () => {
493
493
  };
494
494
 
495
495
  // src/hooks/core/use-user.ts
496
- var useUser = () => {
497
- const userProfile = useProfile();
496
+ var useUser = ({ service }) => {
497
+ const userProfile = useProfile({ service });
498
498
  const userDetail = useDetail(userProfile?.data?.sub);
499
499
  return { userProfile, userDetail, context: userProfile?.context };
500
500
  };
@@ -544,10 +544,12 @@ var useViewV2 = ({
544
544
  // src/hooks/core/use-company.ts
545
545
  var import_react_query3 = require("@tanstack/react-query");
546
546
  var import_react7 = require("react");
547
- var useCompany = () => {
547
+ var useCompany = ({ service }) => {
548
548
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
549
549
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
550
- const getCurrentCompany = useGetCurrentCompany2();
550
+ const getCurrentCompany = useGetCurrentCompany2({
551
+ service
552
+ });
551
553
  const fetchCurrentCompany = async () => {
552
554
  return await getCurrentCompany.mutateAsync();
553
555
  };
@@ -604,8 +606,8 @@ var AppProvider = ({
604
606
  aid
605
607
  }) => {
606
608
  const { env } = (0, provider_exports.useEnv)();
607
- const user = useUser();
608
- const company = useCompany();
609
+ const user = useUser({ service: env.default_service });
610
+ const company = useCompany({ service: env.default_service });
609
611
  const menuContext = (0, import_react8.useMemo)(() => {
610
612
  return combineContexts([
611
613
  {
package/dist/hooks.mjs CHANGED
@@ -436,7 +436,7 @@ var useDetail = (sub) => {
436
436
  import { useQuery as useQuery2 } from "@tanstack/react-query";
437
437
  import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
438
438
  import { useTranslation } from "react-i18next";
439
- var useProfile = () => {
439
+ var useProfile = ({ service }) => {
440
440
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
441
441
  const { useGetProfile: useGetProfile2 } = (0, provider_exports.useService)();
442
442
  const getProfile = useGetProfile2();
@@ -474,8 +474,8 @@ var useProfile = () => {
474
474
  };
475
475
 
476
476
  // src/hooks/core/use-user.ts
477
- var useUser = () => {
478
- const userProfile = useProfile();
477
+ var useUser = ({ service }) => {
478
+ const userProfile = useProfile({ service });
479
479
  const userDetail = useDetail(userProfile?.data?.sub);
480
480
  return { userProfile, userDetail, context: userProfile?.context };
481
481
  };
@@ -525,10 +525,12 @@ var useViewV2 = ({
525
525
  // src/hooks/core/use-company.ts
526
526
  import { useQuery as useQuery3 } from "@tanstack/react-query";
527
527
  import { useEffect as useEffect4, useMemo as useMemo4 } from "react";
528
- var useCompany = () => {
528
+ var useCompany = ({ service }) => {
529
529
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
530
530
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
531
- const getCurrentCompany = useGetCurrentCompany2();
531
+ const getCurrentCompany = useGetCurrentCompany2({
532
+ service
533
+ });
532
534
  const fetchCurrentCompany = async () => {
533
535
  return await getCurrentCompany.mutateAsync();
534
536
  };
@@ -585,8 +587,8 @@ var AppProvider = ({
585
587
  aid
586
588
  }) => {
587
589
  const { env } = (0, provider_exports.useEnv)();
588
- const user = useUser();
589
- const company = useCompany();
590
+ const user = useUser({ service: env.default_service });
591
+ const company = useCompany({ service: env.default_service });
590
592
  const menuContext = useMemo5(() => {
591
593
  return combineContexts([
592
594
  {
package/dist/index.js CHANGED
@@ -4505,7 +4505,7 @@ var useDetail = (sub) => {
4505
4505
  var import_react_query2 = require("@tanstack/react-query");
4506
4506
  var import_react5 = require("react");
4507
4507
  var import_react_i18next = require("react-i18next");
4508
- var useProfile = () => {
4508
+ var useProfile = ({ service }) => {
4509
4509
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
4510
4510
  const { useGetProfile: useGetProfile2 } = (0, provider_exports.useService)();
4511
4511
  const getProfile = useGetProfile2();
@@ -4543,8 +4543,8 @@ var useProfile = () => {
4543
4543
  };
4544
4544
 
4545
4545
  // src/hooks/core/use-user.ts
4546
- var useUser = () => {
4547
- const userProfile = useProfile();
4546
+ var useUser = ({ service }) => {
4547
+ const userProfile = useProfile({ service });
4548
4548
  const userDetail = useDetail(userProfile?.data?.sub);
4549
4549
  return { userProfile, userDetail, context: userProfile?.context };
4550
4550
  };
@@ -4594,10 +4594,12 @@ var useViewV2 = ({
4594
4594
  // src/hooks/core/use-company.ts
4595
4595
  var import_react_query3 = require("@tanstack/react-query");
4596
4596
  var import_react7 = require("react");
4597
- var useCompany = () => {
4597
+ var useCompany = ({ service }) => {
4598
4598
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
4599
4599
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
4600
- const getCurrentCompany = useGetCurrentCompany2();
4600
+ const getCurrentCompany = useGetCurrentCompany2({
4601
+ service
4602
+ });
4601
4603
  const fetchCurrentCompany = async () => {
4602
4604
  return await getCurrentCompany.mutateAsync();
4603
4605
  };
@@ -4654,8 +4656,8 @@ var AppProvider = ({
4654
4656
  aid
4655
4657
  }) => {
4656
4658
  const { env } = (0, provider_exports.useEnv)();
4657
- const user = useUser();
4658
- const company = useCompany();
4659
+ const user = useUser({ service: env.default_service });
4660
+ const company = useCompany({ service: env.default_service });
4659
4661
  const menuContext = (0, import_react8.useMemo)(() => {
4660
4662
  return combineContexts([
4661
4663
  {
@@ -6951,76 +6953,88 @@ var tableHeadController = (props) => {
6951
6953
  var import_react24 = require("react");
6952
6954
  var import_utils17 = require("@fctc/interface-logic/utils");
6953
6955
  var tableController = ({ data }) => {
6954
- const [rows, setRows] = (0, import_react24.useState)([]);
6955
- const [columnVisibility, setColumnVisibility] = (0, import_react24.useState)({});
6956
- const dataModelFields = (0, import_react24.useMemo)(() => {
6957
- return data?.fields?.map((field) => ({
6956
+ const [rows, setRows] = (0, import_react24.useState)(null);
6957
+ const [columns, setColumns] = (0, import_react24.useState)(null);
6958
+ const dataModelFields = data?.fields?.map((field) => {
6959
+ return {
6958
6960
  ...data.dataModel?.[field?.name],
6959
6961
  ...field,
6960
6962
  string: field?.string || data.dataModel?.[field?.name]?.string
6961
- })) ?? [];
6962
- }, [data?.fields, data?.dataModel]);
6963
- const mergeFields = (0, import_react24.useMemo)(
6964
- () => mergeButtons(dataModelFields),
6965
- [dataModelFields]
6966
- );
6967
- const transformData = (0, import_react24.useCallback)(
6968
- (dataList) => {
6969
- if (!dataList) return [];
6970
- return dataList.map((item) => {
6971
- const transformedItem = { ...item };
6972
- Object.keys(item).forEach((field) => {
6973
- if (field !== "__domain") {
6974
- if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6975
- transformedItem[field] = item[field];
6976
- } else if (Array.isArray(item[field]) && item[field].length > 0) {
6977
- if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6978
- transformedItem["string"] = item[field]?.[1];
6979
- }
6980
- transformedItem[field] = item[field];
6963
+ };
6964
+ });
6965
+ const mergeFields = mergeButtons(dataModelFields);
6966
+ const transformData = (dataList) => {
6967
+ if (!dataList) return;
6968
+ return dataList?.map((item) => {
6969
+ const transformedItem = { ...item };
6970
+ Object.keys(item).forEach((field) => {
6971
+ if (field !== "__domain") {
6972
+ if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6973
+ transformedItem[field] = item[field];
6974
+ } else if (Array.isArray(item[field]) && item[field].length > 0) {
6975
+ if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6976
+ transformedItem["string"] = item[field]?.[1];
6981
6977
  }
6978
+ transformedItem[field] = item[field];
6982
6979
  }
6983
- });
6984
- return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6980
+ }
6985
6981
  });
6986
- },
6987
- [data?.typeTable]
6988
- );
6982
+ return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6983
+ });
6984
+ };
6989
6985
  (0, import_react24.useEffect)(() => {
6990
- setRows(transformData(data?.records));
6991
- }, [data?.records, transformData]);
6992
- const columns = (0, import_react24.useMemo)(() => {
6986
+ setRows(transformData(data.records));
6987
+ }, [data.records]);
6988
+ const handleGetColumns = () => {
6989
+ let cols = [];
6993
6990
  try {
6994
- return mergeFields?.filter((item) => {
6995
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(
6996
- data.context,
6997
- item?.column_invisible
6998
- ) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
6991
+ cols = mergeFields?.filter((item) => {
6992
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
6999
6993
  })?.map((field) => {
7000
- const overridden = columnVisibility[field?.name];
7001
6994
  return {
7002
6995
  name: field?.name,
7003
- optional: overridden ?? field?.optional,
6996
+ optional: field?.optional,
7004
6997
  title: field?.type_co === "button" ? "" : field?.string,
7005
6998
  field: { ...field }
7006
6999
  };
7007
- }) ?? [];
7000
+ });
7008
7001
  } catch (error) {
7009
7002
  console.error("Error in useTable:", error);
7010
- return [];
7011
7003
  }
7012
- }, [mergeFields, data?.context, columnVisibility]);
7013
- const onToggleColumnOptional = (0, import_react24.useCallback)((item) => {
7014
- setColumnVisibility((prev) => ({
7015
- ...prev,
7016
- [item?.name]: item?.optional === "show" ? "hide" : "show"
7017
- }));
7018
- }, []);
7004
+ return cols;
7005
+ };
7006
+ (0, import_react24.useEffect)(() => {
7007
+ if (!columns) {
7008
+ setColumns(handleGetColumns());
7009
+ }
7010
+ }, [data]);
7011
+ const onToggleColumnOptional = (item) => {
7012
+ const tempColumn = [...columns]?.map((val) => {
7013
+ if (item?.name === val?.name) {
7014
+ return {
7015
+ ...val,
7016
+ optional: item?.optional === "show" ? "hide" : "show"
7017
+ };
7018
+ }
7019
+ return val;
7020
+ });
7021
+ setColumns(tempColumn);
7022
+ };
7023
+ (0, import_react24.useEffect)(() => {
7024
+ if (data?.fields != null) {
7025
+ setColumns(null);
7026
+ }
7027
+ return () => {
7028
+ if (data?.fields != null) {
7029
+ setColumns(null);
7030
+ }
7031
+ };
7032
+ }, [data?.fields]);
7019
7033
  return {
7020
7034
  rows,
7021
7035
  columns,
7022
7036
  onToggleColumnOptional,
7023
- typeTable: data?.typeTable
7037
+ typeTable: data.typeTable
7024
7038
  };
7025
7039
  };
7026
7040
 
package/dist/index.mjs CHANGED
@@ -4580,7 +4580,7 @@ var useDetail = (sub) => {
4580
4580
  import { useQuery as useQuery2 } from "@tanstack/react-query";
4581
4581
  import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
4582
4582
  import { useTranslation } from "react-i18next";
4583
- var useProfile = () => {
4583
+ var useProfile = ({ service }) => {
4584
4584
  const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
4585
4585
  const { useGetProfile: useGetProfile2 } = (0, provider_exports.useService)();
4586
4586
  const getProfile = useGetProfile2();
@@ -4618,8 +4618,8 @@ var useProfile = () => {
4618
4618
  };
4619
4619
 
4620
4620
  // src/hooks/core/use-user.ts
4621
- var useUser = () => {
4622
- const userProfile = useProfile();
4621
+ var useUser = ({ service }) => {
4622
+ const userProfile = useProfile({ service });
4623
4623
  const userDetail = useDetail(userProfile?.data?.sub);
4624
4624
  return { userProfile, userDetail, context: userProfile?.context };
4625
4625
  };
@@ -4669,10 +4669,12 @@ var useViewV2 = ({
4669
4669
  // src/hooks/core/use-company.ts
4670
4670
  import { useQuery as useQuery3 } from "@tanstack/react-query";
4671
4671
  import { useEffect as useEffect4, useMemo as useMemo4 } from "react";
4672
- var useCompany = () => {
4672
+ var useCompany = ({ service }) => {
4673
4673
  const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
4674
4674
  const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
4675
- const getCurrentCompany = useGetCurrentCompany2();
4675
+ const getCurrentCompany = useGetCurrentCompany2({
4676
+ service
4677
+ });
4676
4678
  const fetchCurrentCompany = async () => {
4677
4679
  return await getCurrentCompany.mutateAsync();
4678
4680
  };
@@ -4729,8 +4731,8 @@ var AppProvider = ({
4729
4731
  aid
4730
4732
  }) => {
4731
4733
  const { env } = (0, provider_exports.useEnv)();
4732
- const user = useUser();
4733
- const company = useCompany();
4734
+ const user = useUser({ service: env.default_service });
4735
+ const company = useCompany({ service: env.default_service });
4734
4736
  const menuContext = useMemo5(() => {
4735
4737
  return combineContexts([
4736
4738
  {
@@ -7029,84 +7031,96 @@ var tableHeadController = (props) => {
7029
7031
  };
7030
7032
 
7031
7033
  // src/widget/advance/table/table-view/controller.ts
7032
- import { useCallback as useCallback5, useEffect as useEffect13, useMemo as useMemo11, useState as useState12 } from "react";
7034
+ import { useEffect as useEffect13, useState as useState12 } from "react";
7033
7035
  import { domainHelper } from "@fctc/interface-logic/utils";
7034
7036
  var tableController = ({ data }) => {
7035
- const [rows, setRows] = useState12([]);
7036
- const [columnVisibility, setColumnVisibility] = useState12({});
7037
- const dataModelFields = useMemo11(() => {
7038
- return data?.fields?.map((field) => ({
7037
+ const [rows, setRows] = useState12(null);
7038
+ const [columns, setColumns] = useState12(null);
7039
+ const dataModelFields = data?.fields?.map((field) => {
7040
+ return {
7039
7041
  ...data.dataModel?.[field?.name],
7040
7042
  ...field,
7041
7043
  string: field?.string || data.dataModel?.[field?.name]?.string
7042
- })) ?? [];
7043
- }, [data?.fields, data?.dataModel]);
7044
- const mergeFields = useMemo11(
7045
- () => mergeButtons(dataModelFields),
7046
- [dataModelFields]
7047
- );
7048
- const transformData = useCallback5(
7049
- (dataList) => {
7050
- if (!dataList) return [];
7051
- return dataList.map((item) => {
7052
- const transformedItem = { ...item };
7053
- Object.keys(item).forEach((field) => {
7054
- if (field !== "__domain") {
7055
- if (item[field] && typeof item[field] === "object" && item[field].display_name) {
7056
- transformedItem[field] = item[field];
7057
- } else if (Array.isArray(item[field]) && item[field].length > 0) {
7058
- if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
7059
- transformedItem["string"] = item[field]?.[1];
7060
- }
7061
- transformedItem[field] = item[field];
7044
+ };
7045
+ });
7046
+ const mergeFields = mergeButtons(dataModelFields);
7047
+ const transformData = (dataList) => {
7048
+ if (!dataList) return;
7049
+ return dataList?.map((item) => {
7050
+ const transformedItem = { ...item };
7051
+ Object.keys(item).forEach((field) => {
7052
+ if (field !== "__domain") {
7053
+ if (item[field] && typeof item[field] === "object" && item[field].display_name) {
7054
+ transformedItem[field] = item[field];
7055
+ } else if (Array.isArray(item[field]) && item[field].length > 0) {
7056
+ if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
7057
+ transformedItem["string"] = item[field]?.[1];
7062
7058
  }
7059
+ transformedItem[field] = item[field];
7063
7060
  }
7064
- });
7065
- return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
7061
+ }
7066
7062
  });
7067
- },
7068
- [data?.typeTable]
7069
- );
7063
+ return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
7064
+ });
7065
+ };
7070
7066
  useEffect13(() => {
7071
- setRows(transformData(data?.records));
7072
- }, [data?.records, transformData]);
7073
- const columns = useMemo11(() => {
7067
+ setRows(transformData(data.records));
7068
+ }, [data.records]);
7069
+ const handleGetColumns = () => {
7070
+ let cols = [];
7074
7071
  try {
7075
- return mergeFields?.filter((item) => {
7076
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(
7077
- data.context,
7078
- item?.column_invisible
7079
- ) : item?.invisible ? domainHelper.matchDomains(data.context, item?.invisible) : false);
7072
+ cols = mergeFields?.filter((item) => {
7073
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? domainHelper.matchDomains(data.context, item?.invisible) : false);
7080
7074
  })?.map((field) => {
7081
- const overridden = columnVisibility[field?.name];
7082
7075
  return {
7083
7076
  name: field?.name,
7084
- optional: overridden ?? field?.optional,
7077
+ optional: field?.optional,
7085
7078
  title: field?.type_co === "button" ? "" : field?.string,
7086
7079
  field: { ...field }
7087
7080
  };
7088
- }) ?? [];
7081
+ });
7089
7082
  } catch (error) {
7090
7083
  console.error("Error in useTable:", error);
7091
- return [];
7092
7084
  }
7093
- }, [mergeFields, data?.context, columnVisibility]);
7094
- const onToggleColumnOptional = useCallback5((item) => {
7095
- setColumnVisibility((prev) => ({
7096
- ...prev,
7097
- [item?.name]: item?.optional === "show" ? "hide" : "show"
7098
- }));
7099
- }, []);
7085
+ return cols;
7086
+ };
7087
+ useEffect13(() => {
7088
+ if (!columns) {
7089
+ setColumns(handleGetColumns());
7090
+ }
7091
+ }, [data]);
7092
+ const onToggleColumnOptional = (item) => {
7093
+ const tempColumn = [...columns]?.map((val) => {
7094
+ if (item?.name === val?.name) {
7095
+ return {
7096
+ ...val,
7097
+ optional: item?.optional === "show" ? "hide" : "show"
7098
+ };
7099
+ }
7100
+ return val;
7101
+ });
7102
+ setColumns(tempColumn);
7103
+ };
7104
+ useEffect13(() => {
7105
+ if (data?.fields != null) {
7106
+ setColumns(null);
7107
+ }
7108
+ return () => {
7109
+ if (data?.fields != null) {
7110
+ setColumns(null);
7111
+ }
7112
+ };
7113
+ }, [data?.fields]);
7100
7114
  return {
7101
7115
  rows,
7102
7116
  columns,
7103
7117
  onToggleColumnOptional,
7104
- typeTable: data?.typeTable
7118
+ typeTable: data.typeTable
7105
7119
  };
7106
7120
  };
7107
7121
 
7108
7122
  // src/widget/advance/table/table-group/controller.ts
7109
- import { useEffect as useEffect14, useMemo as useMemo12, useState as useState13 } from "react";
7123
+ import { useEffect as useEffect14, useMemo as useMemo11, useState as useState13 } from "react";
7110
7124
  import { useAppSelector as useAppSelector2, selectList } from "@fctc/interface-logic/store";
7111
7125
  var tableGroupController = (props) => {
7112
7126
  const { env } = (0, provider_exports.useEnv)();
@@ -7131,7 +7145,7 @@ var tableGroupController = (props) => {
7131
7145
  fromEnd: 1
7132
7146
  });
7133
7147
  const domain = row?.__domain;
7134
- const processedData = useMemo12(() => {
7148
+ const processedData = useMemo11(() => {
7135
7149
  const calculateColSpanEmpty = () => {
7136
7150
  const startIndex = columns.findIndex(
7137
7151
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
@@ -7146,7 +7160,7 @@ var tableGroupController = (props) => {
7146
7160
  };
7147
7161
  return calculateColSpanEmpty();
7148
7162
  }, [columns, row]);
7149
- const shouldFetchData = useMemo12(() => {
7163
+ const shouldFetchData = useMemo11(() => {
7150
7164
  return !!isShowGroup;
7151
7165
  }, [isShowGroup]);
7152
7166
  const enabled = shouldFetchData && !!processedData;
@@ -7248,7 +7262,7 @@ import {
7248
7262
  evalJSONDomain as evalJSONDomain6,
7249
7263
  validateAndParseDate
7250
7264
  } from "@fctc/interface-logic/utils";
7251
- import { useCallback as useCallback6, useEffect as useEffect15, useState as useState14 } from "react";
7265
+ import { useCallback as useCallback5, useEffect as useEffect15, useState as useState14 } from "react";
7252
7266
  var searchController = ({
7253
7267
  viewData,
7254
7268
  model,
@@ -7391,7 +7405,7 @@ var searchController = ({
7391
7405
  return [...domain2];
7392
7406
  }
7393
7407
  };
7394
- const setTagSearch = useCallback6(
7408
+ const setTagSearch = useCallback5(
7395
7409
  (updatedMap) => {
7396
7410
  if (!updatedMap) return;
7397
7411
  const tagsSearch = Object.entries(updatedMap).map(
package/dist/widget.d.mts CHANGED
@@ -70,7 +70,7 @@ interface IMany2ManyControllerProps extends IInputFieldProps {
70
70
  }
71
71
 
72
72
  declare const many2manyFieldController: (props: IMany2ManyControllerProps) => {
73
- rows: any[];
73
+ rows: any;
74
74
  columns: any;
75
75
  optionsObject: any;
76
76
  viewData: any;
@@ -245,7 +245,7 @@ interface ISelctionStateProps {
245
245
  }
246
246
 
247
247
  declare const tableController: ({ data }: ITableProps) => {
248
- rows: any[];
248
+ rows: any;
249
249
  columns: any;
250
250
  onToggleColumnOptional: (item: any) => void;
251
251
  typeTable: "list" | "group" | "calendar" | undefined;
@@ -262,7 +262,7 @@ declare const tableGroupController: (props: any) => {
262
262
  isDataPlaceHolder: boolean;
263
263
  nameGroupWithCount: string;
264
264
  columnsGroup: any;
265
- rowsGroup: any[];
265
+ rowsGroup: any;
266
266
  dataGroup: any;
267
267
  pageGroup: any;
268
268
  setPageGroup: react.Dispatch<any>;
package/dist/widget.d.ts CHANGED
@@ -70,7 +70,7 @@ interface IMany2ManyControllerProps extends IInputFieldProps {
70
70
  }
71
71
 
72
72
  declare const many2manyFieldController: (props: IMany2ManyControllerProps) => {
73
- rows: any[];
73
+ rows: any;
74
74
  columns: any;
75
75
  optionsObject: any;
76
76
  viewData: any;
@@ -245,7 +245,7 @@ interface ISelctionStateProps {
245
245
  }
246
246
 
247
247
  declare const tableController: ({ data }: ITableProps) => {
248
- rows: any[];
248
+ rows: any;
249
249
  columns: any;
250
250
  onToggleColumnOptional: (item: any) => void;
251
251
  typeTable: "list" | "group" | "calendar" | undefined;
@@ -262,7 +262,7 @@ declare const tableGroupController: (props: any) => {
262
262
  isDataPlaceHolder: boolean;
263
263
  nameGroupWithCount: string;
264
264
  columnsGroup: any;
265
- rowsGroup: any[];
265
+ rowsGroup: any;
266
266
  dataGroup: any;
267
267
  pageGroup: any;
268
268
  setPageGroup: react.Dispatch<any>;
package/dist/widget.js CHANGED
@@ -6196,76 +6196,88 @@ var tableHeadController = (props) => {
6196
6196
  var import_react24 = require("react");
6197
6197
  var import_utils17 = require("@fctc/interface-logic/utils");
6198
6198
  var tableController = ({ data }) => {
6199
- const [rows, setRows] = (0, import_react24.useState)([]);
6200
- const [columnVisibility, setColumnVisibility] = (0, import_react24.useState)({});
6201
- const dataModelFields = (0, import_react24.useMemo)(() => {
6202
- return data?.fields?.map((field) => ({
6199
+ const [rows, setRows] = (0, import_react24.useState)(null);
6200
+ const [columns, setColumns] = (0, import_react24.useState)(null);
6201
+ const dataModelFields = data?.fields?.map((field) => {
6202
+ return {
6203
6203
  ...data.dataModel?.[field?.name],
6204
6204
  ...field,
6205
6205
  string: field?.string || data.dataModel?.[field?.name]?.string
6206
- })) ?? [];
6207
- }, [data?.fields, data?.dataModel]);
6208
- const mergeFields = (0, import_react24.useMemo)(
6209
- () => mergeButtons(dataModelFields),
6210
- [dataModelFields]
6211
- );
6212
- const transformData = (0, import_react24.useCallback)(
6213
- (dataList) => {
6214
- if (!dataList) return [];
6215
- return dataList.map((item) => {
6216
- const transformedItem = { ...item };
6217
- Object.keys(item).forEach((field) => {
6218
- if (field !== "__domain") {
6219
- if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6220
- transformedItem[field] = item[field];
6221
- } else if (Array.isArray(item[field]) && item[field].length > 0) {
6222
- if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6223
- transformedItem["string"] = item[field]?.[1];
6224
- }
6225
- transformedItem[field] = item[field];
6206
+ };
6207
+ });
6208
+ const mergeFields = mergeButtons(dataModelFields);
6209
+ const transformData = (dataList) => {
6210
+ if (!dataList) return;
6211
+ return dataList?.map((item) => {
6212
+ const transformedItem = { ...item };
6213
+ Object.keys(item).forEach((field) => {
6214
+ if (field !== "__domain") {
6215
+ if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6216
+ transformedItem[field] = item[field];
6217
+ } else if (Array.isArray(item[field]) && item[field].length > 0) {
6218
+ if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6219
+ transformedItem["string"] = item[field]?.[1];
6226
6220
  }
6221
+ transformedItem[field] = item[field];
6227
6222
  }
6228
- });
6229
- return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6223
+ }
6230
6224
  });
6231
- },
6232
- [data?.typeTable]
6233
- );
6225
+ return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6226
+ });
6227
+ };
6234
6228
  (0, import_react24.useEffect)(() => {
6235
- setRows(transformData(data?.records));
6236
- }, [data?.records, transformData]);
6237
- const columns = (0, import_react24.useMemo)(() => {
6229
+ setRows(transformData(data.records));
6230
+ }, [data.records]);
6231
+ const handleGetColumns = () => {
6232
+ let cols = [];
6238
6233
  try {
6239
- return mergeFields?.filter((item) => {
6240
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(
6241
- data.context,
6242
- item?.column_invisible
6243
- ) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
6234
+ cols = mergeFields?.filter((item) => {
6235
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
6244
6236
  })?.map((field) => {
6245
- const overridden = columnVisibility[field?.name];
6246
6237
  return {
6247
6238
  name: field?.name,
6248
- optional: overridden ?? field?.optional,
6239
+ optional: field?.optional,
6249
6240
  title: field?.type_co === "button" ? "" : field?.string,
6250
6241
  field: { ...field }
6251
6242
  };
6252
- }) ?? [];
6243
+ });
6253
6244
  } catch (error) {
6254
6245
  console.error("Error in useTable:", error);
6255
- return [];
6256
6246
  }
6257
- }, [mergeFields, data?.context, columnVisibility]);
6258
- const onToggleColumnOptional = (0, import_react24.useCallback)((item) => {
6259
- setColumnVisibility((prev) => ({
6260
- ...prev,
6261
- [item?.name]: item?.optional === "show" ? "hide" : "show"
6262
- }));
6263
- }, []);
6247
+ return cols;
6248
+ };
6249
+ (0, import_react24.useEffect)(() => {
6250
+ if (!columns) {
6251
+ setColumns(handleGetColumns());
6252
+ }
6253
+ }, [data]);
6254
+ const onToggleColumnOptional = (item) => {
6255
+ const tempColumn = [...columns]?.map((val) => {
6256
+ if (item?.name === val?.name) {
6257
+ return {
6258
+ ...val,
6259
+ optional: item?.optional === "show" ? "hide" : "show"
6260
+ };
6261
+ }
6262
+ return val;
6263
+ });
6264
+ setColumns(tempColumn);
6265
+ };
6266
+ (0, import_react24.useEffect)(() => {
6267
+ if (data?.fields != null) {
6268
+ setColumns(null);
6269
+ }
6270
+ return () => {
6271
+ if (data?.fields != null) {
6272
+ setColumns(null);
6273
+ }
6274
+ };
6275
+ }, [data?.fields]);
6264
6276
  return {
6265
6277
  rows,
6266
6278
  columns,
6267
6279
  onToggleColumnOptional,
6268
- typeTable: data?.typeTable
6280
+ typeTable: data.typeTable
6269
6281
  };
6270
6282
  };
6271
6283
 
package/dist/widget.mjs CHANGED
@@ -6251,84 +6251,96 @@ var tableHeadController = (props) => {
6251
6251
  };
6252
6252
 
6253
6253
  // src/widget/advance/table/table-view/controller.ts
6254
- import { useCallback as useCallback5, useEffect as useEffect13, useMemo as useMemo11, useState as useState12 } from "react";
6254
+ import { useEffect as useEffect13, useState as useState12 } from "react";
6255
6255
  import { domainHelper } from "@fctc/interface-logic/utils";
6256
6256
  var tableController = ({ data }) => {
6257
- const [rows, setRows] = useState12([]);
6258
- const [columnVisibility, setColumnVisibility] = useState12({});
6259
- const dataModelFields = useMemo11(() => {
6260
- return data?.fields?.map((field) => ({
6257
+ const [rows, setRows] = useState12(null);
6258
+ const [columns, setColumns] = useState12(null);
6259
+ const dataModelFields = data?.fields?.map((field) => {
6260
+ return {
6261
6261
  ...data.dataModel?.[field?.name],
6262
6262
  ...field,
6263
6263
  string: field?.string || data.dataModel?.[field?.name]?.string
6264
- })) ?? [];
6265
- }, [data?.fields, data?.dataModel]);
6266
- const mergeFields = useMemo11(
6267
- () => mergeButtons(dataModelFields),
6268
- [dataModelFields]
6269
- );
6270
- const transformData = useCallback5(
6271
- (dataList) => {
6272
- if (!dataList) return [];
6273
- return dataList.map((item) => {
6274
- const transformedItem = { ...item };
6275
- Object.keys(item).forEach((field) => {
6276
- if (field !== "__domain") {
6277
- if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6278
- transformedItem[field] = item[field];
6279
- } else if (Array.isArray(item[field]) && item[field].length > 0) {
6280
- if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6281
- transformedItem["string"] = item[field]?.[1];
6282
- }
6283
- transformedItem[field] = item[field];
6264
+ };
6265
+ });
6266
+ const mergeFields = mergeButtons(dataModelFields);
6267
+ const transformData = (dataList) => {
6268
+ if (!dataList) return;
6269
+ return dataList?.map((item) => {
6270
+ const transformedItem = { ...item };
6271
+ Object.keys(item).forEach((field) => {
6272
+ if (field !== "__domain") {
6273
+ if (item[field] && typeof item[field] === "object" && item[field].display_name) {
6274
+ transformedItem[field] = item[field];
6275
+ } else if (Array.isArray(item[field]) && item[field].length > 0) {
6276
+ if (data.typeTable === "group" && item[field]?.length === 2 && typeof item[field]?.[1] === "string") {
6277
+ transformedItem["string"] = item[field]?.[1];
6284
6278
  }
6279
+ transformedItem[field] = item[field];
6285
6280
  }
6286
- });
6287
- return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6281
+ }
6288
6282
  });
6289
- },
6290
- [data?.typeTable]
6291
- );
6283
+ return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6284
+ });
6285
+ };
6292
6286
  useEffect13(() => {
6293
- setRows(transformData(data?.records));
6294
- }, [data?.records, transformData]);
6295
- const columns = useMemo11(() => {
6287
+ setRows(transformData(data.records));
6288
+ }, [data.records]);
6289
+ const handleGetColumns = () => {
6290
+ let cols = [];
6296
6291
  try {
6297
- return mergeFields?.filter((item) => {
6298
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(
6299
- data.context,
6300
- item?.column_invisible
6301
- ) : item?.invisible ? domainHelper.matchDomains(data.context, item?.invisible) : false);
6292
+ cols = mergeFields?.filter((item) => {
6293
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? domainHelper.matchDomains(data.context, item?.invisible) : false);
6302
6294
  })?.map((field) => {
6303
- const overridden = columnVisibility[field?.name];
6304
6295
  return {
6305
6296
  name: field?.name,
6306
- optional: overridden ?? field?.optional,
6297
+ optional: field?.optional,
6307
6298
  title: field?.type_co === "button" ? "" : field?.string,
6308
6299
  field: { ...field }
6309
6300
  };
6310
- }) ?? [];
6301
+ });
6311
6302
  } catch (error) {
6312
6303
  console.error("Error in useTable:", error);
6313
- return [];
6314
6304
  }
6315
- }, [mergeFields, data?.context, columnVisibility]);
6316
- const onToggleColumnOptional = useCallback5((item) => {
6317
- setColumnVisibility((prev) => ({
6318
- ...prev,
6319
- [item?.name]: item?.optional === "show" ? "hide" : "show"
6320
- }));
6321
- }, []);
6305
+ return cols;
6306
+ };
6307
+ useEffect13(() => {
6308
+ if (!columns) {
6309
+ setColumns(handleGetColumns());
6310
+ }
6311
+ }, [data]);
6312
+ const onToggleColumnOptional = (item) => {
6313
+ const tempColumn = [...columns]?.map((val) => {
6314
+ if (item?.name === val?.name) {
6315
+ return {
6316
+ ...val,
6317
+ optional: item?.optional === "show" ? "hide" : "show"
6318
+ };
6319
+ }
6320
+ return val;
6321
+ });
6322
+ setColumns(tempColumn);
6323
+ };
6324
+ useEffect13(() => {
6325
+ if (data?.fields != null) {
6326
+ setColumns(null);
6327
+ }
6328
+ return () => {
6329
+ if (data?.fields != null) {
6330
+ setColumns(null);
6331
+ }
6332
+ };
6333
+ }, [data?.fields]);
6322
6334
  return {
6323
6335
  rows,
6324
6336
  columns,
6325
6337
  onToggleColumnOptional,
6326
- typeTable: data?.typeTable
6338
+ typeTable: data.typeTable
6327
6339
  };
6328
6340
  };
6329
6341
 
6330
6342
  // src/widget/advance/table/table-group/controller.ts
6331
- import { useEffect as useEffect14, useMemo as useMemo12, useState as useState13 } from "react";
6343
+ import { useEffect as useEffect14, useMemo as useMemo11, useState as useState13 } from "react";
6332
6344
  import { useAppSelector as useAppSelector2, selectList } from "@fctc/interface-logic/store";
6333
6345
  var tableGroupController = (props) => {
6334
6346
  const { env } = (0, provider_exports.useEnv)();
@@ -6353,7 +6365,7 @@ var tableGroupController = (props) => {
6353
6365
  fromEnd: 1
6354
6366
  });
6355
6367
  const domain = row?.__domain;
6356
- const processedData = useMemo12(() => {
6368
+ const processedData = useMemo11(() => {
6357
6369
  const calculateColSpanEmpty = () => {
6358
6370
  const startIndex = columns.findIndex(
6359
6371
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
@@ -6368,7 +6380,7 @@ var tableGroupController = (props) => {
6368
6380
  };
6369
6381
  return calculateColSpanEmpty();
6370
6382
  }, [columns, row]);
6371
- const shouldFetchData = useMemo12(() => {
6383
+ const shouldFetchData = useMemo11(() => {
6372
6384
  return !!isShowGroup;
6373
6385
  }, [isShowGroup]);
6374
6386
  const enabled = shouldFetchData && !!processedData;
@@ -6470,7 +6482,7 @@ import {
6470
6482
  evalJSONDomain as evalJSONDomain6,
6471
6483
  validateAndParseDate
6472
6484
  } from "@fctc/interface-logic/utils";
6473
- import { useCallback as useCallback6, useEffect as useEffect15, useState as useState14 } from "react";
6485
+ import { useCallback as useCallback5, useEffect as useEffect15, useState as useState14 } from "react";
6474
6486
  var searchController = ({
6475
6487
  viewData,
6476
6488
  model,
@@ -6613,7 +6625,7 @@ var searchController = ({
6613
6625
  return [...domain2];
6614
6626
  }
6615
6627
  };
6616
- const setTagSearch = useCallback6(
6628
+ const setTagSearch = useCallback5(
6617
6629
  (updatedMap) => {
6618
6630
  if (!updatedMap) return;
6619
6631
  const tagsSearch = Object.entries(updatedMap).map(
package/package.json CHANGED
@@ -1,94 +1,94 @@
1
- {
2
- "name": "@fctc/widget-logic",
3
- "version": "3.4.0",
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": "^3.0.3",
78
- "@headlessui/react": "^2.2.6",
79
- "@tanstack/react-query": "^5.84.0",
80
- "i18next": "^25.3.2",
81
- "i18next-browser-languagedetector": "^8.2.0",
82
- "react-i18next": "^15.6.1",
83
- "react-tooltip": "^5.29.1"
84
- },
85
- "devDependencies": {
86
- "@types/react": "^18.3.1",
87
- "jest": "^29.7.0",
88
- "react": "18.0.0",
89
- "tsup": "^8.0.0",
90
- "typescript": "^5.8.2"
91
- },
92
- "packageManager": "yarn@1.22.0",
93
- "peerDependencies": {}
94
- }
1
+ {
2
+ "name": "@fctc/widget-logic",
3
+ "version": "3.4.1",
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": "^3.0.4",
78
+ "@headlessui/react": "^2.2.6",
79
+ "@tanstack/react-query": "^5.84.0",
80
+ "i18next": "^25.3.2",
81
+ "i18next-browser-languagedetector": "^8.2.0",
82
+ "react-i18next": "^15.6.1",
83
+ "react-tooltip": "^5.29.1"
84
+ },
85
+ "devDependencies": {
86
+ "@types/react": "^18.3.1",
87
+ "jest": "^29.7.0",
88
+ "react": "18.0.0",
89
+ "tsup": "^8.0.0",
90
+ "typescript": "^5.8.2"
91
+ },
92
+ "packageManager": "yarn@1.22.0",
93
+ "peerDependencies": {}
94
+ }