@fctc/widget-logic 2.0.9 → 2.1.0

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/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 useCallback2, useEffect as useEffect10, useMemo as useMemo9, useState as useState7 } from "react";
4094
+ import { useCallback as useCallback2, useEffect as useEffect10, useMemo as useMemo9, useState as useState8 } from "react";
4095
4095
 
4096
4096
  // src/hooks.ts
4097
4097
  var hooks_exports = {};
@@ -4106,6 +4106,7 @@ __export(hooks_exports, {
4106
4106
  useDetail: () => useDetail,
4107
4107
  useListData: () => useListData,
4108
4108
  useMenu: () => useMenu,
4109
+ useMenuItem: () => useMenuItem,
4109
4110
  useProfile: () => useProfile,
4110
4111
  useUser: () => useUser,
4111
4112
  useViewV2: () => useViewV2
@@ -4888,6 +4889,68 @@ var useAppProvider = () => {
4888
4889
  return context;
4889
4890
  };
4890
4891
 
4892
+ // src/hooks/core/use-menu-item.tsx
4893
+ import { getEnv as getEnv6 } from "@fctc/interface-logic/environment";
4894
+ import { useGetActionDetail } from "@fctc/interface-logic/hooks";
4895
+ import { useState as useState6 } from "react";
4896
+
4897
+ // src/utils.ts
4898
+ var utils_exports = {};
4899
+ __export(utils_exports, {
4900
+ API_APP_URL: () => API_APP_URL,
4901
+ API_PRESCHOOL_URL: () => API_PRESCHOOL_URL,
4902
+ STORAGES: () => STORAGES,
4903
+ combineContexts: () => combineContexts,
4904
+ convertFieldsToArray: () => convertFieldsToArray,
4905
+ countSum: () => countSum,
4906
+ getDateRange: () => getDateRange,
4907
+ languages: () => languages,
4908
+ mergeButtons: () => mergeButtons,
4909
+ setStorageItemAsync: () => setStorageItemAsync,
4910
+ useGetRowIds: () => useGetRowIds,
4911
+ useSelectionState: () => useSelectionState,
4912
+ useStorageState: () => useStorageState
4913
+ });
4914
+ __reExport(utils_exports, utils_star);
4915
+ import * as utils_star from "@fctc/interface-logic/utils";
4916
+
4917
+ // src/hooks/core/use-menu-item.tsx
4918
+ var useMenuItem = (props) => {
4919
+ const { menu, activeMenuId } = props;
4920
+ const model = menu?.action?.res_model;
4921
+ const aid = menu?.action?.id?.id;
4922
+ const id = menu?.id;
4923
+ const context = getEnv6().context;
4924
+ const queryActionDetail = useGetActionDetail({
4925
+ aid,
4926
+ id,
4927
+ model,
4928
+ context,
4929
+ enabled: true,
4930
+ queryKey: [`action-${aid}`]
4931
+ }).data;
4932
+ const [path, setPath] = useState6("");
4933
+ const handleClick = () => {
4934
+ if (location?.pathname === "/list/menu" && activeMenuId === menu?.id) {
4935
+ return;
4936
+ }
4937
+ const hasListView = queryActionDetail.views.some(
4938
+ ([id2, type]) => type === "list"
4939
+ );
4940
+ const viewType = hasListView ? "list" : "form";
4941
+ const isAccountPayment = menu?.action?.res_model === "account.payment" && menu?.action?.id?.id === 1551;
4942
+ const isConvertCurrencyMenu = menu?.action?.res_model === "currency.convert" && menu?.action?.id?.id === 1562;
4943
+ const path2 = (0, utils_exports.formatUrlPath)({
4944
+ viewType,
4945
+ actionPath: isConvertCurrencyMenu ? "menu" : isAccountPayment ? "menu" : menu?.action?.path || "menu",
4946
+ aid: menu?.action?.id?.id,
4947
+ model: queryActionDetail.res_model
4948
+ });
4949
+ setPath(path2);
4950
+ };
4951
+ return { handleClick, path, queryActionDetail };
4952
+ };
4953
+
4891
4954
  // src/hooks/utils/use-click-outside.ts
4892
4955
  import { useEffect as useEffect8, useRef as useRef3 } from "react";
4893
4956
  var DEFAULT_EVENTS = ["mousedown", "touchstart"];
@@ -4920,9 +4983,9 @@ var useClickOutside = ({
4920
4983
  };
4921
4984
 
4922
4985
  // src/hooks/utils/use-debounce.ts
4923
- import { useEffect as useEffect9, useState as useState6 } from "react";
4986
+ import { useEffect as useEffect9, useState as useState7 } from "react";
4924
4987
  function useDebounce(value, delay) {
4925
- const [debouncedValue, setDebouncedValue] = useState6(value);
4988
+ const [debouncedValue, setDebouncedValue] = useState7(value);
4926
4989
  useEffect9(() => {
4927
4990
  const handler = setTimeout(() => {
4928
4991
  setDebouncedValue(value);
@@ -4938,26 +5001,6 @@ function useDebounce(value, delay) {
4938
5001
  __reExport(hooks_exports, hooks_star);
4939
5002
  import * as hooks_star from "@fctc/interface-logic/hooks";
4940
5003
 
4941
- // src/utils.ts
4942
- var utils_exports = {};
4943
- __export(utils_exports, {
4944
- API_APP_URL: () => API_APP_URL,
4945
- API_PRESCHOOL_URL: () => API_PRESCHOOL_URL,
4946
- STORAGES: () => STORAGES,
4947
- combineContexts: () => combineContexts,
4948
- convertFieldsToArray: () => convertFieldsToArray,
4949
- countSum: () => countSum,
4950
- getDateRange: () => getDateRange,
4951
- languages: () => languages,
4952
- mergeButtons: () => mergeButtons,
4953
- setStorageItemAsync: () => setStorageItemAsync,
4954
- useGetRowIds: () => useGetRowIds,
4955
- useSelectionState: () => useSelectionState,
4956
- useStorageState: () => useStorageState
4957
- });
4958
- __reExport(utils_exports, utils_star2);
4959
- import * as utils_star2 from "@fctc/interface-logic/utils";
4960
-
4961
5004
  // src/provider.ts
4962
5005
  var provider_exports = {};
4963
5006
  __reExport(provider_exports, provider_star);
@@ -4979,13 +5022,13 @@ var many2oneFieldController = (props) => {
4979
5022
  showDetail
4980
5023
  } = props;
4981
5024
  const { env } = (0, provider_exports.useEnv)();
4982
- const [options, setOptions] = useState7([]);
4983
- const [inputValue, setInputValue] = useState7("");
5025
+ const [options, setOptions] = useState8([]);
5026
+ const [inputValue, setInputValue] = useState8("");
4984
5027
  const [debouncedInputValue] = useDebounce(inputValue, 1e3);
4985
- const [isShowModalMany2Many, setIsShowModalMany2Many] = useState7(false);
4986
- const [tempSelectedOption, setTempSelectedOption] = useState7(null);
4987
- const [domainModal, setDomainModal] = useState7(null);
4988
- const [domainObject, setDomainObject] = useState7(null);
5028
+ const [isShowModalMany2Many, setIsShowModalMany2Many] = useState8(false);
5029
+ const [tempSelectedOption, setTempSelectedOption] = useState8(null);
5030
+ const [domainModal, setDomainModal] = useState8(null);
5031
+ const [domainObject, setDomainObject] = useState8(null);
4989
5032
  const actionData = sessionStorageUtils.getActionData();
4990
5033
  const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
4991
5034
  const initValue = methods?.getValues(name);
@@ -4995,7 +5038,7 @@ var many2oneFieldController = (props) => {
4995
5038
  ...fieldContext,
4996
5039
  ...env?.context
4997
5040
  };
4998
- const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
5041
+ const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
4999
5042
  const data = {
5000
5043
  model: relation,
5001
5044
  domain: domainObject,
@@ -5011,7 +5054,7 @@ var many2oneFieldController = (props) => {
5011
5054
  data: dataOfSelection,
5012
5055
  refetch,
5013
5056
  isFetching
5014
- } = useGetSelection3({
5057
+ } = useGetSelection2({
5015
5058
  data,
5016
5059
  queryKey,
5017
5060
  enabled: false
@@ -5137,13 +5180,13 @@ var many2oneFieldController = (props) => {
5137
5180
  };
5138
5181
 
5139
5182
  // src/widget/basic/many2one-button-field/controller.ts
5140
- import { getEnv as getEnv6 } from "@fctc/interface-logic/environment";
5183
+ import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
5141
5184
  import { useGetSelection } from "@fctc/interface-logic/hooks";
5142
5185
  import { evalJSONDomain as evalJSONDomain3, evalJSONContext as evalJSONContext3 } from "@fctc/interface-logic/utils";
5143
5186
  var many2oneButtonController = (props) => {
5144
5187
  const { domain, methods, relation } = props;
5145
5188
  const actionDataString = sessionStorage.getItem("actionData");
5146
- const env = getEnv6();
5189
+ const env = getEnv7();
5147
5190
  const domainObject = evalJSONDomain3(domain, methods?.getValues() || {});
5148
5191
  const actionData = actionDataString && actionDataString !== "undefined" ? JSON.parse(actionDataString) : {};
5149
5192
  const { data: dataOfSelection } = useGetSelection({
@@ -5164,7 +5207,7 @@ var many2oneButtonController = (props) => {
5164
5207
  };
5165
5208
 
5166
5209
  // src/widget/basic/many2many-field/controller.ts
5167
- import { useEffect as useEffect11, useMemo as useMemo10, useState as useState8 } from "react";
5210
+ import { useEffect as useEffect11, useMemo as useMemo10, useState as useState9 } from "react";
5168
5211
  import {
5169
5212
  evalJSONContext as evalJSONContext4,
5170
5213
  evalJSONDomain as evalJSONDomain4,
@@ -5177,16 +5220,16 @@ var many2manyFieldController = (props) => {
5177
5220
  context,
5178
5221
  options,
5179
5222
  tab,
5180
- setSelectedRowKeys: setSelectedRowKeys4,
5223
+ setSelectedRowKeys: setSelectedRowKeys3,
5181
5224
  groupByDomain,
5182
5225
  enabled: enabledCallAPI,
5183
5226
  actionData
5184
5227
  } = props;
5185
5228
  const { env } = (0, provider_exports.useEnv)();
5186
5229
  const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
5187
- const [order, setOrder] = useState8();
5188
- const [page, setPage] = useState8(0);
5189
- const [domainMany2Many, setDomainMany2Many] = useState8(null);
5230
+ const [order, setOrder] = useState9();
5231
+ const [page, setPage] = useState9(0);
5232
+ const [domainMany2Many, setDomainMany2Many] = useState9(null);
5190
5233
  const [debouncedPage] = useDebounce(page, 500);
5191
5234
  const contextObject = {
5192
5235
  ...env.context,
@@ -5269,7 +5312,7 @@ var many2manyFieldController = (props) => {
5269
5312
  }
5270
5313
  return () => {
5271
5314
  setPage(0);
5272
- setSelectedRowKeys4([]);
5315
+ setSelectedRowKeys3([]);
5273
5316
  setDomainMany2Many(null);
5274
5317
  };
5275
5318
  }, [viewResponse]);
@@ -5318,8 +5361,6 @@ var many2manyFieldController = (props) => {
5318
5361
  // src/widget/basic/many2many-tags-field/controller.ts
5319
5362
  import { useMemo as useMemo11 } from "react";
5320
5363
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
5321
- import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
5322
- import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
5323
5364
  import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
5324
5365
  var many2manyTagsController = (props) => {
5325
5366
  const {
@@ -5331,7 +5372,8 @@ var many2manyTagsController = (props) => {
5331
5372
  placeholderNoOption
5332
5373
  } = props;
5333
5374
  const isUser = relation === "res.users" || relation === "res.partner";
5334
- const env = getEnv7();
5375
+ const { env } = (0, provider_exports.useEnv)();
5376
+ const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
5335
5377
  const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
5336
5378
  const domainObject = useMemo11(
5337
5379
  () => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
@@ -5370,16 +5412,15 @@ var many2manyTagsController = (props) => {
5370
5412
  options,
5371
5413
  customNoOptionsMessage,
5372
5414
  tranfer,
5373
- dataOfSelection,
5374
5415
  isUser
5375
5416
  };
5376
5417
  };
5377
5418
 
5378
5419
  // src/widget/basic/status-bar-field/controller.ts
5379
- import { useState as useState9 } from "react";
5420
+ import { useState as useState10 } from "react";
5380
5421
  import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
5381
5422
  var durationController = (props) => {
5382
- const { relation, domain, formValues, name, id, model, onRefetch } = props;
5423
+ const { relation, domain, formValues, name, id, model, onRefetch, enabled } = props;
5383
5424
  const specification = {
5384
5425
  id: 0,
5385
5426
  name: "",
@@ -5387,8 +5428,8 @@ var durationController = (props) => {
5387
5428
  };
5388
5429
  const { useGetListData: useGetListData3, useChangeStatus } = (0, provider_exports.useService)();
5389
5430
  const { env } = (0, provider_exports.useEnv)();
5390
- const [disabled, setDisabled] = useState9(false);
5391
- const [modelStatus, setModalStatus] = useState9(false);
5431
+ const [disabled, setDisabled] = useState10(false);
5432
+ const [modelStatus, setModalStatus] = useState10(false);
5392
5433
  const queryKey = [`data-status-duration`, specification];
5393
5434
  const listDataProps = {
5394
5435
  model: relation,
@@ -5403,7 +5444,11 @@ var durationController = (props) => {
5403
5444
  },
5404
5445
  sort: ""
5405
5446
  };
5406
- const { data: dataResponse } = useGetListData3(listDataProps, queryKey);
5447
+ const { data: dataResponse } = useGetListData3(
5448
+ listDataProps,
5449
+ queryKey,
5450
+ enabled
5451
+ );
5407
5452
  const { mutate: fetchChangeStatus } = useChangeStatus();
5408
5453
  const handleClick = async (stage_id) => {
5409
5454
  setDisabled(true);
@@ -5439,41 +5484,28 @@ var durationController = (props) => {
5439
5484
  };
5440
5485
 
5441
5486
  // src/widget/basic/priority-field/controller.ts
5442
- import { useSave as useSave2 } from "@fctc/interface-logic/hooks";
5443
5487
  import { evalJSONContext as evalJSONContext6 } from "@fctc/interface-logic/utils";
5444
5488
  var priorityFieldController = (props) => {
5445
- const {
5446
- value,
5447
- isForm,
5448
- name,
5449
- methods,
5450
- onChange,
5451
- model,
5452
- selection,
5453
- id,
5454
- actionData,
5455
- viewData,
5456
- context
5457
- } = props;
5489
+ const { name, model, id, actionData, context, onChange, specification } = props;
5458
5490
  const _context = { ...evalJSONContext6(actionData?.context) };
5459
5491
  const contextObject = { ...context, ..._context };
5460
- const defaultPriority = parseInt(value) + 1;
5461
- const label = viewData?.models?.[model]?.[name ?? ""]?.string ?? name;
5492
+ const { useSave: useSave2 } = (0, provider_exports.useService)();
5462
5493
  const { mutateAsync: fetchSave } = useSave2();
5463
5494
  const savePriorities = async ({
5464
- value: value2,
5495
+ value,
5465
5496
  resetPriority
5466
5497
  }) => {
5467
- const priorityValue = value2 <= 0 ? 0 : value2 - 1;
5498
+ const priorityValue = value <= 0 ? 0 : value - 1;
5468
5499
  try {
5469
5500
  fetchSave({
5470
5501
  ids: id ? [id] : [],
5471
- data: { [name ?? ""]: String(priorityValue) },
5472
- model: model ?? "",
5473
- context: contextObject
5502
+ data: { [String(name)]: String(priorityValue) },
5503
+ model: String(model),
5504
+ context: contextObject,
5505
+ specification
5474
5506
  });
5475
5507
  if (typeof onChange === "function") {
5476
- onChange(name ?? "", String(priorityValue));
5508
+ onChange(String(name), String(priorityValue));
5477
5509
  }
5478
5510
  } catch (error) {
5479
5511
  if (resetPriority) {
@@ -5482,22 +5514,15 @@ var priorityFieldController = (props) => {
5482
5514
  }
5483
5515
  };
5484
5516
  return {
5485
- selection,
5486
- isForm,
5487
- methods,
5488
- defaultPriority,
5489
- savePriorities,
5490
- label,
5491
- id,
5492
- onChange
5517
+ savePriorities
5493
5518
  };
5494
5519
  };
5495
5520
 
5496
5521
  // src/widget/basic/download-file-field/controller.ts
5497
- import { useId, useState as useState10 } from "react";
5522
+ import { useId, useState as useState11 } from "react";
5498
5523
  var downloadFileController = () => {
5499
5524
  const inputId = useId();
5500
- const [file, setFile] = useState10(null);
5525
+ const [file, setFile] = useState11(null);
5501
5526
  const handleFileChange = (e) => {
5502
5527
  setFile(e.target.files[0]);
5503
5528
  };
@@ -6429,11 +6454,11 @@ var dateFieldController = (props) => {
6429
6454
  };
6430
6455
 
6431
6456
  // src/widget/basic/copy-link-button/controller.ts
6432
- import { useState as useState11 } from "react";
6457
+ import { useState as useState12 } from "react";
6433
6458
  import { copyTextToClipboard } from "@fctc/interface-logic/utils";
6434
6459
  var copyLinkButtonController = (props) => {
6435
6460
  const { value, defaultValue } = props;
6436
- const [isCopied, setIsCopied] = useState11(false);
6461
+ const [isCopied, setIsCopied] = useState12(false);
6437
6462
  const handleCopyToClipboard = async (value2) => {
6438
6463
  await copyTextToClipboard(value2);
6439
6464
  setIsCopied(true);
@@ -6452,11 +6477,11 @@ import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils
6452
6477
  var colorFieldController = (props) => {
6453
6478
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
6454
6479
  const { env } = (0, provider_exports.useEnv)();
6455
- const { useSave: useSave3 } = (0, provider_exports.useService)();
6480
+ const { useSave: useSave2 } = (0, provider_exports.useService)();
6456
6481
  const _context = { ...evalJSONContext7(actionData?.context) || {} };
6457
6482
  const contextObject = { ...env.context, ..._context };
6458
6483
  const idDefault = isForm ? idForm : formValues?.id;
6459
- const { mutate: onSave } = useSave3();
6484
+ const { mutate: onSave } = useSave2();
6460
6485
  const savePickColor = async (colorObject) => {
6461
6486
  const { id } = colorObject;
6462
6487
  if (value === id) return;
@@ -6481,14 +6506,14 @@ var colorFieldController = (props) => {
6481
6506
  };
6482
6507
 
6483
6508
  // src/widget/basic/binary-field/controller.ts
6484
- import { useEffect as useEffect12, useId as useId2, useRef as useRef4, useState as useState12 } from "react";
6509
+ import { useEffect as useEffect12, useId as useId2, useRef as useRef4, useState as useState13 } from "react";
6485
6510
  import { isBase64Image } from "@fctc/interface-logic/utils";
6486
6511
  var binaryFieldController = (props) => {
6487
6512
  const { name, methods, readonly = false, value } = props;
6488
6513
  const inputId = useId2();
6489
- const [selectedImage, setSelectedImage] = useState12(null);
6490
- const [initialImage, setInitialImage] = useState12(value || null);
6491
- const [isInsideTable, setIsInsideTable] = useState12(false);
6514
+ const [selectedImage, setSelectedImage] = useState13(null);
6515
+ const [initialImage, setInitialImage] = useState13(value || null);
6516
+ const [isInsideTable, setIsInsideTable] = useState13(false);
6492
6517
  const { setValue } = methods;
6493
6518
  const binaryRef = useRef4(null);
6494
6519
  const convertUrlToBase64 = async (url) => {
@@ -6578,108 +6603,41 @@ var binaryFieldController = (props) => {
6578
6603
  };
6579
6604
  };
6580
6605
 
6581
- // src/widget/advance/table/table-body/controller.ts
6582
- import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
6583
- import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
6584
- var tableBodyController = (props) => {
6585
- const {
6586
- checkedAll,
6587
- checkboxRef,
6588
- setIsAutoSelect,
6589
- selectedRowKeys,
6590
- row,
6591
- isAutoSelect,
6592
- selectedRowKeysRef,
6593
- onClickRow
6594
- } = props;
6595
- const appDispatch = useAppDispatch5();
6596
- const checked = useMemo12(() => {
6597
- if (!row?.id) return false;
6598
- if (selectedRowKeys?.includes(row.id)) {
6599
- return true;
6600
- }
6601
- return checkedAll;
6602
- }, [row?.id, selectedRowKeys, checkedAll]);
6603
- const handleCheckBoxSingle = (event) => {
6604
- event.stopPropagation();
6605
- if (checkedAll) {
6606
- checkboxRef.current = "uncheck";
6607
- setIsAutoSelect(true);
6608
- return;
6609
- }
6610
- const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
6611
- console.log("newSelectedRowKeys", newSelectedRowKeys);
6612
- appDispatch(setSelectedRowKeys(newSelectedRowKeys));
6613
- };
6614
- const handleClickRow = (col, row2) => {
6615
- onClickRow(col, row2);
6616
- };
6617
- useEffect13(() => {
6618
- if (!row?.id) return;
6619
- if (isAutoSelect) {
6620
- if (checkboxRef?.current === "uncheck") {
6621
- const filtered = selectedRowKeysRef.current.filter(
6622
- (id) => id !== row.id
6623
- );
6624
- selectedRowKeysRef.current = filtered;
6625
- appDispatch(setSelectedRowKeys(filtered));
6626
- } else {
6627
- const unique = Array.from(
6628
- /* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
6629
- );
6630
- selectedRowKeysRef.current = unique;
6631
- appDispatch(setSelectedRowKeys(unique));
6632
- }
6633
- }
6634
- }, [isAutoSelect]);
6635
- useEffect13(() => {
6636
- if (!checkedAll) {
6637
- checkboxRef.current = "enabled";
6638
- false;
6639
- }
6640
- }, [checkedAll]);
6641
- return {
6642
- handleCheckBoxSingle,
6643
- checked,
6644
- handleClickRow
6645
- };
6646
- };
6647
-
6648
6606
  // src/widget/advance/table/table-head/controller.ts
6649
6607
  import {
6650
- useAppDispatch as useAppDispatch6,
6608
+ useAppDispatch as useAppDispatch5,
6651
6609
  useAppSelector as useAppSelector4,
6652
6610
  selectSearch as selectSearch3,
6653
- setSelectedRowKeys as setSelectedRowKeys2
6611
+ setSelectedRowKeys
6654
6612
  } from "@fctc/interface-logic/store";
6655
6613
  var tableHeadController = (props) => {
6656
6614
  const { typeTable, rows, selectedRowKeysRef } = props;
6657
- const appDispatch = useAppDispatch6();
6615
+ const appDispatch = useAppDispatch5();
6658
6616
  const { groupByDomain } = useAppSelector4(selectSearch3);
6659
6617
  const handleCheckBoxAll = (event) => {
6660
6618
  if (event?.target?.checked && typeTable === "list") {
6661
6619
  const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
6662
- appDispatch(setSelectedRowKeys2(allRowKeys));
6620
+ appDispatch(setSelectedRowKeys(allRowKeys));
6663
6621
  } else if (event?.target?.checked && typeTable === "group") {
6664
6622
  const rowsIDs = document.querySelectorAll("tr[data-row-id]");
6665
6623
  const ids = Array.from(rowsIDs)?.map(
6666
6624
  (row) => Number(row?.getAttribute("data-row-id"))
6667
6625
  );
6668
6626
  if (ids?.length > 0) {
6669
- appDispatch(setSelectedRowKeys2(ids));
6627
+ appDispatch(setSelectedRowKeys(ids));
6670
6628
  } else {
6671
6629
  const sum = countSum(
6672
6630
  rows,
6673
6631
  typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
6674
6632
  );
6675
6633
  const keys = Array.from({ length: sum }, (_) => void 0);
6676
- appDispatch(setSelectedRowKeys2(keys));
6634
+ appDispatch(setSelectedRowKeys(keys));
6677
6635
  }
6678
6636
  if (selectedRowKeysRef) {
6679
6637
  selectedRowKeysRef.current = [];
6680
6638
  }
6681
6639
  } else {
6682
- appDispatch(setSelectedRowKeys2([]));
6640
+ appDispatch(setSelectedRowKeys([]));
6683
6641
  }
6684
6642
  };
6685
6643
  return {
@@ -6688,7 +6646,7 @@ var tableHeadController = (props) => {
6688
6646
  };
6689
6647
 
6690
6648
  // src/widget/advance/table/table-view/controller.ts
6691
- import { useEffect as useEffect14, useMemo as useMemo13, useRef as useRef5, useState as useState13 } from "react";
6649
+ import { useEffect as useEffect13, useMemo as useMemo12, useRef as useRef5, useState as useState14 } from "react";
6692
6650
  import {
6693
6651
  useAppSelector as useAppSelector5,
6694
6652
  selectSearch as selectSearch4,
@@ -6696,8 +6654,8 @@ import {
6696
6654
  } from "@fctc/interface-logic/store";
6697
6655
  import { domainHelper } from "@fctc/interface-logic/utils";
6698
6656
  var tableController = ({ data }) => {
6699
- const [rows, setRows] = useState13(data.records || []);
6700
- const [columns, setColumns] = useState13([]);
6657
+ const [rows, setRows] = useState14(data.records || []);
6658
+ const [columns, setColumns] = useState14([]);
6701
6659
  const dataModelFields = data.fields?.map((field) => {
6702
6660
  return {
6703
6661
  ...data.dataModel?.[field?.name],
@@ -6725,7 +6683,7 @@ var tableController = ({ data }) => {
6725
6683
  return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
6726
6684
  });
6727
6685
  };
6728
- useEffect14(() => {
6686
+ useEffect13(() => {
6729
6687
  setRows(transformData(data.records || null));
6730
6688
  }, [data.records]);
6731
6689
  const handleGetColumns = () => {
@@ -6746,7 +6704,7 @@ var tableController = ({ data }) => {
6746
6704
  }
6747
6705
  return cols;
6748
6706
  };
6749
- useEffect14(() => {
6707
+ useEffect13(() => {
6750
6708
  const columns2 = handleGetColumns();
6751
6709
  setColumns(columns2);
6752
6710
  }, [data.records]);
@@ -6771,7 +6729,7 @@ var tableController = ({ data }) => {
6771
6729
  };
6772
6730
 
6773
6731
  // src/widget/advance/table/table-group/controller.ts
6774
- import { useEffect as useEffect15, useMemo as useMemo14, useState as useState14 } from "react";
6732
+ import { useEffect as useEffect14, useMemo as useMemo13, useState as useState15 } from "react";
6775
6733
  import {
6776
6734
  useOdooDataTransform,
6777
6735
  useGetListData as useGetListData2
@@ -6780,8 +6738,8 @@ import {
6780
6738
  useAppSelector as useAppSelector6,
6781
6739
  selectSearch as selectSearch5,
6782
6740
  selectList as selectList4,
6783
- useAppDispatch as useAppDispatch7,
6784
- setSelectedRowKeys as setSelectedRowKeys3
6741
+ useAppDispatch as useAppDispatch6,
6742
+ setSelectedRowKeys as setSelectedRowKeys2
6785
6743
  } from "@fctc/interface-logic/store";
6786
6744
 
6787
6745
  // src/environment.ts
@@ -6810,18 +6768,18 @@ var tableGroupController = (props) => {
6810
6768
  setIsAutoSelect,
6811
6769
  selectedRowKeysRef
6812
6770
  } = props;
6813
- const [pageGroup, setPageGroup] = useState14(0);
6771
+ const [pageGroup, setPageGroup] = useState15(0);
6814
6772
  const { groupByDomain, selectedTags } = useAppSelector6(selectSearch5);
6815
6773
  const { selectedRowKeys } = useAppSelector6(selectList4);
6816
- const appDispatch = useAppDispatch7();
6774
+ const appDispatch = useAppDispatch6();
6817
6775
  const { toDataJS } = useOdooDataTransform();
6818
6776
  const initVal = toDataJS(row, viewData, model);
6819
- const [isShowGroup, setIsShowGroup] = useState14(false);
6820
- const [colEmptyGroup, setColEmptyGroup] = useState14({
6777
+ const [isShowGroup, setIsShowGroup] = useState15(false);
6778
+ const [colEmptyGroup, setColEmptyGroup] = useState15({
6821
6779
  fromStart: 1,
6822
6780
  fromEnd: 1
6823
6781
  });
6824
- const processedData = useMemo14(() => {
6782
+ const processedData = useMemo13(() => {
6825
6783
  const calculateColSpanEmpty = () => {
6826
6784
  const startIndex = columns.findIndex(
6827
6785
  (col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
@@ -6836,7 +6794,7 @@ var tableGroupController = (props) => {
6836
6794
  };
6837
6795
  return calculateColSpanEmpty();
6838
6796
  }, [columns, row]);
6839
- const shouldFetchData = useMemo14(() => {
6797
+ const shouldFetchData = useMemo13(() => {
6840
6798
  return !!isShowGroup;
6841
6799
  }, [isShowGroup]);
6842
6800
  const enabled = shouldFetchData && !!processedData;
@@ -6876,7 +6834,7 @@ var tableGroupController = (props) => {
6876
6834
  }
6877
6835
  });
6878
6836
  const leftPadding = level > 1 ? level * 8 + "px" : "0px";
6879
- useEffect15(() => {
6837
+ useEffect14(() => {
6880
6838
  if (isShowGroup && selectedTags?.length > 0) {
6881
6839
  setIsShowGroup(false);
6882
6840
  }
@@ -6899,24 +6857,24 @@ var tableGroupController = (props) => {
6899
6857
  const filteredIds = selectedRowKeys.filter(
6900
6858
  (id) => !ids.includes(id)
6901
6859
  );
6902
- appDispatch(setSelectedRowKeys3(filteredIds));
6860
+ appDispatch(setSelectedRowKeys2(filteredIds));
6903
6861
  } else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
6904
6862
  const clonedKeys = [...selectedRowKeys];
6905
- appDispatch(setSelectedRowKeys3([...clonedKeys, -1]));
6906
- setTimeout(() => appDispatch(setSelectedRowKeys3(clonedKeys)), 500);
6863
+ appDispatch(setSelectedRowKeys2([...clonedKeys, -1]));
6864
+ setTimeout(() => appDispatch(setSelectedRowKeys2(clonedKeys)), 500);
6907
6865
  } else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
6908
6866
  const filteredKeys = selectedRowKeys.filter((id) => id > -1);
6909
- appDispatch(setSelectedRowKeys3(filteredKeys));
6867
+ appDispatch(setSelectedRowKeys2(filteredKeys));
6910
6868
  }
6911
6869
  toggleShowGroup();
6912
6870
  };
6913
- useEffect15(() => {
6871
+ useEffect14(() => {
6914
6872
  if (!isQueryFetched || !rowsGroup || !checkedAll || allIdsNull || typeTableGroup === "group") {
6915
6873
  return;
6916
6874
  }
6917
6875
  const clonedKeys = [...selectedRowKeys];
6918
- setSelectedRowKeys3([...clonedKeys, -1]);
6919
- setTimeout(() => setSelectedRowKeys3(clonedKeys), 500);
6876
+ setSelectedRowKeys2([...clonedKeys, -1]);
6877
+ setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
6920
6878
  }, [isQueryFetched]);
6921
6879
  return {
6922
6880
  handleExpandChildGroup,
@@ -6958,7 +6916,7 @@ import {
6958
6916
  evalJSONDomain as evalJSONDomain7,
6959
6917
  validateAndParseDate
6960
6918
  } from "@fctc/interface-logic/utils";
6961
- import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
6919
+ import { useCallback as useCallback3, useEffect as useEffect15, useState as useState16 } from "react";
6962
6920
  var searchController = ({
6963
6921
  viewData,
6964
6922
  model,
@@ -6967,12 +6925,12 @@ var searchController = ({
6967
6925
  fieldsList
6968
6926
  }) => {
6969
6927
  const { env } = (0, provider_exports.useEnv)();
6970
- const [filterBy, setFilterBy] = useState15(null);
6971
- const [searchBy, setSearchBy] = useState15(null);
6972
- const [groupBy, setGroupBy] = useState15(null);
6973
- const [selectedTags, setSelectedTags] = useState15(null);
6974
- const [searchString, setSearchString] = useState15("");
6975
- const [searchMap, setSearchMap] = useState15({});
6928
+ const [filterBy, setFilterBy] = useState16(null);
6929
+ const [searchBy, setSearchBy] = useState16(null);
6930
+ const [groupBy, setGroupBy] = useState16(null);
6931
+ const [selectedTags, setSelectedTags] = useState16(null);
6932
+ const [searchString, setSearchString] = useState16("");
6933
+ const [searchMap, setSearchMap] = useState16({});
6976
6934
  const actionContext = typeof context === "string" ? evalJSONContext8(context) : context;
6977
6935
  const contextSearch = { ...env.context, ...actionContext };
6978
6936
  const domainAction = domain ? Array.isArray(domain) ? [...domain] : evalJSONDomain7(domain, contextSearch) : [];
@@ -7019,7 +6977,7 @@ var searchController = ({
7019
6977
  }
7020
6978
  }
7021
6979
  };
7022
- useEffect16(() => {
6980
+ useEffect15(() => {
7023
6981
  fetchData();
7024
6982
  }, [model, viewData]);
7025
6983
  const onChangeSearchInput = (search_string) => {
@@ -7164,7 +7122,7 @@ var searchController = ({
7164
7122
  },
7165
7123
  [searchMap]
7166
7124
  );
7167
- useEffect16(() => {
7125
+ useEffect15(() => {
7168
7126
  setTagSearch(searchMap);
7169
7127
  }, [searchMap]);
7170
7128
  const handleAddTagSearch = (tag) => {
@@ -7235,7 +7193,6 @@ export {
7235
7193
  priorityFieldController,
7236
7194
  searchController,
7237
7195
  statusDropdownController,
7238
- tableBodyController,
7239
7196
  tableController,
7240
7197
  tableGroupController,
7241
7198
  tableHeadController