@fctc/widget-logic 1.9.3 → 1.9.4

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/index.js CHANGED
@@ -5246,6 +5246,7 @@ var many2oneFieldController = (props) => {
5246
5246
  options: fieldOptions,
5247
5247
  showDetail
5248
5248
  } = props;
5249
+ const { env } = (0, provider_exports.useEnv)();
5249
5250
  const [options, setOptions] = (0, import_react14.useState)([]);
5250
5251
  const [inputValue, setInputValue] = (0, import_react14.useState)("");
5251
5252
  const [debouncedInputValue] = useDebounce(inputValue, 1e3);
@@ -5255,13 +5256,12 @@ var many2oneFieldController = (props) => {
5255
5256
  const [domainObject, setDomainObject] = (0, import_react14.useState)(null);
5256
5257
  const actionData = sessionStorageUtils.getActionData();
5257
5258
  const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
5258
- const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
5259
5259
  const initValue = methods?.getValues(name);
5260
5260
  const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
5261
5261
  const contextObject = {
5262
5262
  ...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
5263
5263
  ...fieldContext,
5264
- ...context
5264
+ ...env?.context
5265
5265
  };
5266
5266
  const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
5267
5267
  const data = {
@@ -5433,52 +5433,47 @@ var many2oneButtonController = (props) => {
5433
5433
 
5434
5434
  // src/widget/basic/many2many-field/controller.ts
5435
5435
  var import_react15 = require("react");
5436
- var import_store8 = require("@fctc/interface-logic/store");
5437
5436
  var import_utils6 = require("@fctc/interface-logic/utils");
5438
5437
  var many2manyFieldController = (props) => {
5439
5438
  const {
5440
5439
  relation,
5441
5440
  domain,
5442
5441
  context,
5442
+ options,
5443
5443
  tab,
5444
- model,
5445
- aid,
5446
5444
  setSelectedRowKeys: setSelectedRowKeys4,
5447
- fields,
5448
- setFields,
5449
5445
  groupByDomain,
5450
- page,
5451
- options,
5452
5446
  sessionStorageUtils
5453
5447
  } = props;
5454
- const appDispatch = (0, import_store8.useAppDispatch)();
5455
- const actionData = sessionStorageUtils.getActionData();
5456
- const [debouncedPage] = useDebounce(page, 500);
5457
- const [order, setOrder] = (0, import_react15.useState)();
5458
- const [isLoadedData, setIsLoadedData] = (0, import_react15.useState)(false);
5459
- const [domainMany2Many, setDomainMany2Many] = (0, import_react15.useState)(domain);
5460
5448
  const { env } = (0, provider_exports.useEnv)();
5461
5449
  const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
5450
+ const [order, setOrder] = (0, import_react15.useState)();
5451
+ const [isLoadedData, setIsLoadedData] = (0, import_react15.useState)(false);
5452
+ const [page, setPage] = (0, import_react15.useState)(0);
5453
+ const [domainMany2Many, setDomainMany2Many] = (0, import_react15.useState)(null);
5454
+ const [debouncedPage] = useDebounce(page, 500);
5455
+ const actionData = sessionStorageUtils.getActionData();
5456
+ const contextObject = { ...env.context, ...context };
5462
5457
  const viewParams = {
5463
5458
  model: relation,
5464
5459
  views: [
5465
5460
  [false, "list"],
5466
5461
  [false, "search"]
5467
5462
  ],
5468
- context
5463
+ context: contextObject
5469
5464
  };
5470
5465
  const { data: viewResponse } = useGetView2(viewParams, actionData);
5471
5466
  const baseModel = (0, import_react15.useMemo)(
5472
5467
  () => ({
5473
5468
  name: String(relation),
5474
5469
  view: viewResponse || {},
5475
- actContext: context,
5470
+ actContext: contextObject,
5476
5471
  fields: [
5477
5472
  ...Object.values(viewResponse?.views?.list?.fields ?? {}),
5478
5473
  ...tab?.fields ? tab.fields : []
5479
5474
  ]
5480
5475
  }),
5481
- [model, viewResponse]
5476
+ [relation, viewResponse]
5482
5477
  );
5483
5478
  const initModel = (0, hooks_exports.useModel)();
5484
5479
  const modelInstance = (0, import_react15.useMemo)(() => {
@@ -5497,26 +5492,15 @@ var many2manyFieldController = (props) => {
5497
5492
  const optionsObject = tab?.options ? (0, import_utils6.evalJSONContext)(tab?.options) : (options ? (0, import_utils6.evalJSONContext)(options) : {}) || {};
5498
5493
  const fetchData = async () => {
5499
5494
  try {
5500
- setDomainMany2Many(domain);
5501
- appDispatch((0, import_store8.setFirstDomain)(domain));
5502
- appDispatch((0, import_store8.setViewDataStore)(viewResponse));
5503
- const modalData = viewResponse?.views?.list?.fields.map((field) => ({
5504
- ...viewResponse?.models?.[String(model)]?.[field?.name],
5505
- ...field
5506
- }));
5507
- if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
5508
- setFields({
5509
- ...fields,
5510
- [`${aid}_${relation}_popupmany2many`]: modalData
5511
- });
5512
- }
5513
- appDispatch((0, import_store8.setPage)(0));
5495
+ const domainParse = typeof domain === "string" ? (0, import_utils6.evalJSONDomain)(domain, contextObject) : Array.isArray(domain) ? domain : [];
5496
+ setDomainMany2Many(domainParse);
5497
+ setPage(0);
5514
5498
  } catch (err) {
5515
5499
  console.log(err);
5516
5500
  }
5517
5501
  };
5518
5502
  const queryKey = [
5519
- `view-${relation}-${aid}`,
5503
+ `view-${relation}`,
5520
5504
  specification,
5521
5505
  domainMany2Many,
5522
5506
  debouncedPage,
@@ -5529,7 +5513,7 @@ var many2manyFieldController = (props) => {
5529
5513
  domain: domainMany2Many,
5530
5514
  offset: debouncedPage * 10,
5531
5515
  limit: 10,
5532
- context,
5516
+ context: contextObject,
5533
5517
  fields: groupByDomain?.fields,
5534
5518
  groupby: [groupByDomain?.contexts[0]?.group_by],
5535
5519
  sort: order ? order : default_order ? (0, import_utils6.formatSortingString)(default_order) : ""
@@ -5537,8 +5521,8 @@ var many2manyFieldController = (props) => {
5537
5521
  const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
5538
5522
  const {
5539
5523
  data: dataResponse,
5540
- isLoading: isDataLoading,
5541
- isFetched: isDataResponseFetched,
5524
+ isLoading,
5525
+ isFetched,
5542
5526
  isPlaceholderData
5543
5527
  } = useGetListData3(data, queryKey, enabled);
5544
5528
  (0, import_react15.useEffect)(() => {
@@ -5546,12 +5530,7 @@ var many2manyFieldController = (props) => {
5546
5530
  fetchData();
5547
5531
  }
5548
5532
  return () => {
5549
- appDispatch((0, import_store8.setGroupByDomain)(null));
5550
- setFields((prevFields) => ({
5551
- ...prevFields,
5552
- [`${aid}_${relation}_popupmany2many`]: null
5553
- }));
5554
- appDispatch((0, import_store8.setPage)(0));
5533
+ setPage(0);
5555
5534
  setSelectedRowKeys4([]);
5556
5535
  setDomainMany2Many(null);
5557
5536
  setIsLoadedData(false);
@@ -5559,44 +5538,19 @@ var many2manyFieldController = (props) => {
5559
5538
  }, [viewResponse]);
5560
5539
  const { rows, columns, typeTable } = tableController({
5561
5540
  data: {
5562
- fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
5541
+ fields: viewResponse?.views?.list?.fields,
5563
5542
  records: dataResponse?.records ?? dataResponse?.groups,
5564
5543
  dataModel: viewResponse?.models?.[String(relation)],
5565
- context: { ...env.context, ...context },
5544
+ context: contextObject,
5566
5545
  typeTable: dataResponse?.groups ? "group" : "list"
5567
5546
  }
5568
5547
  });
5569
- const dataFormView = {
5570
- id: null,
5571
- model: relation,
5572
- context
5573
- };
5574
- const {
5575
- refetch,
5576
- data: dataFormViewResponse,
5577
- isSuccess
5578
- } = useGetFormView({
5579
- data: dataFormView,
5580
- queryKey: [`form-view-action-${relation}`],
5581
- enabled: false
5582
- });
5583
- (0, import_react15.useEffect)(() => {
5584
- if (isSuccess && dataFormViewResponse) {
5585
- sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
5586
- window.location.href = `/form/menu?model=${relation}`;
5587
- }
5588
- }, [isSuccess]);
5589
5548
  (0, import_react15.useEffect)(() => {
5590
5549
  if (domainMany2Many && !isLoadedData) {
5591
5550
  setIsLoadedData(true);
5592
5551
  }
5593
5552
  }, [domainMany2Many]);
5594
5553
  const handleCreateNewOnPage = async () => {
5595
- try {
5596
- refetch();
5597
- } catch (error) {
5598
- console.log(error);
5599
- }
5600
5554
  };
5601
5555
  return {
5602
5556
  handleCreateNewOnPage,
@@ -5604,9 +5558,13 @@ var many2manyFieldController = (props) => {
5604
5558
  rows,
5605
5559
  columns,
5606
5560
  typeTable,
5607
- isDataLoading,
5608
- isDataResponseFetched,
5609
- isPlaceholderData
5561
+ isLoading,
5562
+ isFetched,
5563
+ isPlaceholderData,
5564
+ setPage,
5565
+ page,
5566
+ domain: domainMany2Many,
5567
+ setDomain: setDomainMany2Many
5610
5568
  };
5611
5569
  };
5612
5570
 
@@ -6874,7 +6832,7 @@ var binaryFieldController = (props) => {
6874
6832
  };
6875
6833
 
6876
6834
  // src/widget/advance/table/table-body/controller.ts
6877
- var import_store9 = require("@fctc/interface-logic/store");
6835
+ var import_store8 = require("@fctc/interface-logic/store");
6878
6836
  var import_react21 = require("react");
6879
6837
  var tableBodyController = (props) => {
6880
6838
  const {
@@ -6887,7 +6845,7 @@ var tableBodyController = (props) => {
6887
6845
  selectedRowKeysRef,
6888
6846
  onClickRow
6889
6847
  } = props;
6890
- const appDispatch = (0, import_store9.useAppDispatch)();
6848
+ const appDispatch = (0, import_store8.useAppDispatch)();
6891
6849
  const checked = (0, import_react21.useMemo)(() => {
6892
6850
  if (!row?.id) return false;
6893
6851
  if (selectedRowKeys?.includes(row.id)) {
@@ -6904,7 +6862,7 @@ var tableBodyController = (props) => {
6904
6862
  }
6905
6863
  const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
6906
6864
  console.log("newSelectedRowKeys", newSelectedRowKeys);
6907
- appDispatch((0, import_store9.setSelectedRowKeys)(newSelectedRowKeys));
6865
+ appDispatch((0, import_store8.setSelectedRowKeys)(newSelectedRowKeys));
6908
6866
  };
6909
6867
  const handleClickRow = (col, row2) => {
6910
6868
  onClickRow(col, row2);
@@ -6917,13 +6875,13 @@ var tableBodyController = (props) => {
6917
6875
  (id) => id !== row.id
6918
6876
  );
6919
6877
  selectedRowKeysRef.current = filtered;
6920
- appDispatch((0, import_store9.setSelectedRowKeys)(filtered));
6878
+ appDispatch((0, import_store8.setSelectedRowKeys)(filtered));
6921
6879
  } else {
6922
6880
  const unique = Array.from(
6923
6881
  /* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
6924
6882
  );
6925
6883
  selectedRowKeysRef.current = unique;
6926
- appDispatch((0, import_store9.setSelectedRowKeys)(unique));
6884
+ appDispatch((0, import_store8.setSelectedRowKeys)(unique));
6927
6885
  }
6928
6886
  }
6929
6887
  }, [isAutoSelect]);
@@ -6941,35 +6899,35 @@ var tableBodyController = (props) => {
6941
6899
  };
6942
6900
 
6943
6901
  // src/widget/advance/table/table-head/controller.ts
6944
- var import_store10 = require("@fctc/interface-logic/store");
6902
+ var import_store9 = require("@fctc/interface-logic/store");
6945
6903
  var tableHeadController = (props) => {
6946
6904
  const { typeTable, rows, selectedRowKeysRef } = props;
6947
- const appDispatch = (0, import_store10.useAppDispatch)();
6948
- const { groupByDomain } = (0, import_store10.useAppSelector)(import_store10.selectSearch);
6905
+ const appDispatch = (0, import_store9.useAppDispatch)();
6906
+ const { groupByDomain } = (0, import_store9.useAppSelector)(import_store9.selectSearch);
6949
6907
  const handleCheckBoxAll = (event) => {
6950
6908
  if (event?.target?.checked && typeTable === "list") {
6951
6909
  const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
6952
- appDispatch((0, import_store10.setSelectedRowKeys)(allRowKeys));
6910
+ appDispatch((0, import_store9.setSelectedRowKeys)(allRowKeys));
6953
6911
  } else if (event?.target?.checked && typeTable === "group") {
6954
6912
  const rowsIDs = document.querySelectorAll("tr[data-row-id]");
6955
6913
  const ids = Array.from(rowsIDs)?.map(
6956
6914
  (row) => Number(row?.getAttribute("data-row-id"))
6957
6915
  );
6958
6916
  if (ids?.length > 0) {
6959
- appDispatch((0, import_store10.setSelectedRowKeys)(ids));
6917
+ appDispatch((0, import_store9.setSelectedRowKeys)(ids));
6960
6918
  } else {
6961
6919
  const sum = countSum(
6962
6920
  rows,
6963
6921
  typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
6964
6922
  );
6965
6923
  const keys = Array.from({ length: sum }, (_) => void 0);
6966
- appDispatch((0, import_store10.setSelectedRowKeys)(keys));
6924
+ appDispatch((0, import_store9.setSelectedRowKeys)(keys));
6967
6925
  }
6968
6926
  if (selectedRowKeysRef) {
6969
6927
  selectedRowKeysRef.current = [];
6970
6928
  }
6971
6929
  } else {
6972
- appDispatch((0, import_store10.setSelectedRowKeys)([]));
6930
+ appDispatch((0, import_store9.setSelectedRowKeys)([]));
6973
6931
  }
6974
6932
  };
6975
6933
  return {
@@ -6979,7 +6937,7 @@ var tableHeadController = (props) => {
6979
6937
 
6980
6938
  // src/widget/advance/table/table-view/controller.ts
6981
6939
  var import_react22 = require("react");
6982
- var import_store11 = require("@fctc/interface-logic/store");
6940
+ var import_store10 = require("@fctc/interface-logic/store");
6983
6941
  var import_utils13 = require("@fctc/interface-logic/utils");
6984
6942
  var tableController = ({ data }) => {
6985
6943
  const [rows, setRows] = (0, import_react22.useState)(data.records || []);
@@ -7059,7 +7017,7 @@ var tableController = ({ data }) => {
7059
7017
  // src/widget/advance/table/table-group/controller.ts
7060
7018
  var import_react23 = require("react");
7061
7019
  var import_hooks16 = require("@fctc/interface-logic/hooks");
7062
- var import_store12 = require("@fctc/interface-logic/store");
7020
+ var import_store11 = require("@fctc/interface-logic/store");
7063
7021
 
7064
7022
  // src/environment.ts
7065
7023
  var environment_exports = {};
@@ -7087,9 +7045,9 @@ var tableGroupController = (props) => {
7087
7045
  selectedRowKeysRef
7088
7046
  } = props;
7089
7047
  const [pageGroup, setPageGroup] = (0, import_react23.useState)(0);
7090
- const { groupByDomain, selectedTags } = (0, import_store12.useAppSelector)(import_store12.selectSearch);
7091
- const { selectedRowKeys } = (0, import_store12.useAppSelector)(import_store12.selectList);
7092
- const appDispatch = (0, import_store12.useAppDispatch)();
7048
+ const { groupByDomain, selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
7049
+ const { selectedRowKeys } = (0, import_store11.useAppSelector)(import_store11.selectList);
7050
+ const appDispatch = (0, import_store11.useAppDispatch)();
7093
7051
  const { toDataJS } = (0, import_hooks16.useOdooDataTransform)();
7094
7052
  const initVal = toDataJS(row, viewData, model);
7095
7053
  const [isShowGroup, setIsShowGroup] = (0, import_react23.useState)(false);
@@ -7175,14 +7133,14 @@ var tableGroupController = (props) => {
7175
7133
  const filteredIds = selectedRowKeys.filter(
7176
7134
  (id) => !ids.includes(id)
7177
7135
  );
7178
- appDispatch((0, import_store12.setSelectedRowKeys)(filteredIds));
7136
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredIds));
7179
7137
  } else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
7180
7138
  const clonedKeys = [...selectedRowKeys];
7181
- appDispatch((0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]));
7182
- setTimeout(() => appDispatch((0, import_store12.setSelectedRowKeys)(clonedKeys)), 500);
7139
+ appDispatch((0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]));
7140
+ setTimeout(() => appDispatch((0, import_store11.setSelectedRowKeys)(clonedKeys)), 500);
7183
7141
  } else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
7184
7142
  const filteredKeys = selectedRowKeys.filter((id) => id > -1);
7185
- appDispatch((0, import_store12.setSelectedRowKeys)(filteredKeys));
7143
+ appDispatch((0, import_store11.setSelectedRowKeys)(filteredKeys));
7186
7144
  }
7187
7145
  toggleShowGroup();
7188
7146
  };
@@ -7191,8 +7149,8 @@ var tableGroupController = (props) => {
7191
7149
  return;
7192
7150
  }
7193
7151
  const clonedKeys = [...selectedRowKeys];
7194
- (0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]);
7195
- setTimeout(() => (0, import_store12.setSelectedRowKeys)(clonedKeys), 500);
7152
+ (0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]);
7153
+ setTimeout(() => (0, import_store11.setSelectedRowKeys)(clonedKeys), 500);
7196
7154
  }, [isQueryFetched]);
7197
7155
  return {
7198
7156
  handleExpandChildGroup,
package/dist/index.mjs CHANGED
@@ -5276,6 +5276,7 @@ var many2oneFieldController = (props) => {
5276
5276
  options: fieldOptions,
5277
5277
  showDetail
5278
5278
  } = props;
5279
+ const { env } = (0, provider_exports.useEnv)();
5279
5280
  const [options, setOptions] = useState7([]);
5280
5281
  const [inputValue, setInputValue] = useState7("");
5281
5282
  const [debouncedInputValue] = useDebounce(inputValue, 1e3);
@@ -5285,13 +5286,12 @@ var many2oneFieldController = (props) => {
5285
5286
  const [domainObject, setDomainObject] = useState7(null);
5286
5287
  const actionData = sessionStorageUtils.getActionData();
5287
5288
  const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
5288
- const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
5289
5289
  const initValue = methods?.getValues(name);
5290
5290
  const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
5291
5291
  const contextObject = {
5292
5292
  ...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
5293
5293
  ...fieldContext,
5294
- ...context
5294
+ ...env?.context
5295
5295
  };
5296
5296
  const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
5297
5297
  const data = {
@@ -5463,15 +5463,9 @@ var many2oneButtonController = (props) => {
5463
5463
 
5464
5464
  // src/widget/basic/many2many-field/controller.ts
5465
5465
  import { useEffect as useEffect11, useMemo as useMemo10, useState as useState8 } from "react";
5466
- import {
5467
- useAppDispatch as useAppDispatch5,
5468
- setFirstDomain,
5469
- setViewDataStore,
5470
- setPage,
5471
- setGroupByDomain
5472
- } from "@fctc/interface-logic/store";
5473
5466
  import {
5474
5467
  evalJSONContext as evalJSONContext4,
5468
+ evalJSONDomain as evalJSONDomain4,
5475
5469
  formatSortingString as formatSortingString2
5476
5470
  } from "@fctc/interface-logic/utils";
5477
5471
  var many2manyFieldController = (props) => {
@@ -5479,45 +5473,41 @@ var many2manyFieldController = (props) => {
5479
5473
  relation,
5480
5474
  domain,
5481
5475
  context,
5476
+ options,
5482
5477
  tab,
5483
- model,
5484
- aid,
5485
5478
  setSelectedRowKeys: setSelectedRowKeys4,
5486
- fields,
5487
- setFields,
5488
5479
  groupByDomain,
5489
- page,
5490
- options,
5491
5480
  sessionStorageUtils
5492
5481
  } = props;
5493
- const appDispatch = useAppDispatch5();
5494
- const actionData = sessionStorageUtils.getActionData();
5495
- const [debouncedPage] = useDebounce(page, 500);
5496
- const [order, setOrder] = useState8();
5497
- const [isLoadedData, setIsLoadedData] = useState8(false);
5498
- const [domainMany2Many, setDomainMany2Many] = useState8(domain);
5499
5482
  const { env } = (0, provider_exports.useEnv)();
5500
5483
  const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
5484
+ const [order, setOrder] = useState8();
5485
+ const [isLoadedData, setIsLoadedData] = useState8(false);
5486
+ const [page, setPage] = useState8(0);
5487
+ const [domainMany2Many, setDomainMany2Many] = useState8(null);
5488
+ const [debouncedPage] = useDebounce(page, 500);
5489
+ const actionData = sessionStorageUtils.getActionData();
5490
+ const contextObject = { ...env.context, ...context };
5501
5491
  const viewParams = {
5502
5492
  model: relation,
5503
5493
  views: [
5504
5494
  [false, "list"],
5505
5495
  [false, "search"]
5506
5496
  ],
5507
- context
5497
+ context: contextObject
5508
5498
  };
5509
5499
  const { data: viewResponse } = useGetView2(viewParams, actionData);
5510
5500
  const baseModel = useMemo10(
5511
5501
  () => ({
5512
5502
  name: String(relation),
5513
5503
  view: viewResponse || {},
5514
- actContext: context,
5504
+ actContext: contextObject,
5515
5505
  fields: [
5516
5506
  ...Object.values(viewResponse?.views?.list?.fields ?? {}),
5517
5507
  ...tab?.fields ? tab.fields : []
5518
5508
  ]
5519
5509
  }),
5520
- [model, viewResponse]
5510
+ [relation, viewResponse]
5521
5511
  );
5522
5512
  const initModel = (0, hooks_exports.useModel)();
5523
5513
  const modelInstance = useMemo10(() => {
@@ -5536,26 +5526,15 @@ var many2manyFieldController = (props) => {
5536
5526
  const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
5537
5527
  const fetchData = async () => {
5538
5528
  try {
5539
- setDomainMany2Many(domain);
5540
- appDispatch(setFirstDomain(domain));
5541
- appDispatch(setViewDataStore(viewResponse));
5542
- const modalData = viewResponse?.views?.list?.fields.map((field) => ({
5543
- ...viewResponse?.models?.[String(model)]?.[field?.name],
5544
- ...field
5545
- }));
5546
- if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
5547
- setFields({
5548
- ...fields,
5549
- [`${aid}_${relation}_popupmany2many`]: modalData
5550
- });
5551
- }
5552
- appDispatch(setPage(0));
5529
+ const domainParse = typeof domain === "string" ? evalJSONDomain4(domain, contextObject) : Array.isArray(domain) ? domain : [];
5530
+ setDomainMany2Many(domainParse);
5531
+ setPage(0);
5553
5532
  } catch (err) {
5554
5533
  console.log(err);
5555
5534
  }
5556
5535
  };
5557
5536
  const queryKey = [
5558
- `view-${relation}-${aid}`,
5537
+ `view-${relation}`,
5559
5538
  specification,
5560
5539
  domainMany2Many,
5561
5540
  debouncedPage,
@@ -5568,7 +5547,7 @@ var many2manyFieldController = (props) => {
5568
5547
  domain: domainMany2Many,
5569
5548
  offset: debouncedPage * 10,
5570
5549
  limit: 10,
5571
- context,
5550
+ context: contextObject,
5572
5551
  fields: groupByDomain?.fields,
5573
5552
  groupby: [groupByDomain?.contexts[0]?.group_by],
5574
5553
  sort: order ? order : default_order ? formatSortingString2(default_order) : ""
@@ -5576,8 +5555,8 @@ var many2manyFieldController = (props) => {
5576
5555
  const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
5577
5556
  const {
5578
5557
  data: dataResponse,
5579
- isLoading: isDataLoading,
5580
- isFetched: isDataResponseFetched,
5558
+ isLoading,
5559
+ isFetched,
5581
5560
  isPlaceholderData
5582
5561
  } = useGetListData3(data, queryKey, enabled);
5583
5562
  useEffect11(() => {
@@ -5585,12 +5564,7 @@ var many2manyFieldController = (props) => {
5585
5564
  fetchData();
5586
5565
  }
5587
5566
  return () => {
5588
- appDispatch(setGroupByDomain(null));
5589
- setFields((prevFields) => ({
5590
- ...prevFields,
5591
- [`${aid}_${relation}_popupmany2many`]: null
5592
- }));
5593
- appDispatch(setPage(0));
5567
+ setPage(0);
5594
5568
  setSelectedRowKeys4([]);
5595
5569
  setDomainMany2Many(null);
5596
5570
  setIsLoadedData(false);
@@ -5598,44 +5572,19 @@ var many2manyFieldController = (props) => {
5598
5572
  }, [viewResponse]);
5599
5573
  const { rows, columns, typeTable } = tableController({
5600
5574
  data: {
5601
- fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
5575
+ fields: viewResponse?.views?.list?.fields,
5602
5576
  records: dataResponse?.records ?? dataResponse?.groups,
5603
5577
  dataModel: viewResponse?.models?.[String(relation)],
5604
- context: { ...env.context, ...context },
5578
+ context: contextObject,
5605
5579
  typeTable: dataResponse?.groups ? "group" : "list"
5606
5580
  }
5607
5581
  });
5608
- const dataFormView = {
5609
- id: null,
5610
- model: relation,
5611
- context
5612
- };
5613
- const {
5614
- refetch,
5615
- data: dataFormViewResponse,
5616
- isSuccess
5617
- } = useGetFormView({
5618
- data: dataFormView,
5619
- queryKey: [`form-view-action-${relation}`],
5620
- enabled: false
5621
- });
5622
- useEffect11(() => {
5623
- if (isSuccess && dataFormViewResponse) {
5624
- sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
5625
- window.location.href = `/form/menu?model=${relation}`;
5626
- }
5627
- }, [isSuccess]);
5628
5582
  useEffect11(() => {
5629
5583
  if (domainMany2Many && !isLoadedData) {
5630
5584
  setIsLoadedData(true);
5631
5585
  }
5632
5586
  }, [domainMany2Many]);
5633
5587
  const handleCreateNewOnPage = async () => {
5634
- try {
5635
- refetch();
5636
- } catch (error) {
5637
- console.log(error);
5638
- }
5639
5588
  };
5640
5589
  return {
5641
5590
  handleCreateNewOnPage,
@@ -5643,9 +5592,13 @@ var many2manyFieldController = (props) => {
5643
5592
  rows,
5644
5593
  columns,
5645
5594
  typeTable,
5646
- isDataLoading,
5647
- isDataResponseFetched,
5648
- isPlaceholderData
5595
+ isLoading,
5596
+ isFetched,
5597
+ isPlaceholderData,
5598
+ setPage,
5599
+ page,
5600
+ domain: domainMany2Many,
5601
+ setDomain: setDomainMany2Many
5649
5602
  };
5650
5603
  };
5651
5604
 
@@ -5654,7 +5607,7 @@ import { useMemo as useMemo11 } from "react";
5654
5607
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
5655
5608
  import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
5656
5609
  import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
5657
- import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
5610
+ import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
5658
5611
  var many2manyTagsController = (props) => {
5659
5612
  const {
5660
5613
  relation,
@@ -5668,7 +5621,7 @@ var many2manyTagsController = (props) => {
5668
5621
  const env = getEnv7();
5669
5622
  const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
5670
5623
  const domainObject = useMemo11(
5671
- () => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
5624
+ () => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
5672
5625
  [domain, formValues]
5673
5626
  );
5674
5627
  const data = {
@@ -5711,7 +5664,7 @@ var many2manyTagsController = (props) => {
5711
5664
 
5712
5665
  // src/widget/basic/status-bar-field/controller.ts
5713
5666
  import { useState as useState9 } from "react";
5714
- import { evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
5667
+ import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
5715
5668
  var durationController = (props) => {
5716
5669
  const { relation, domain, formValues, name, id, model, onRefetch } = props;
5717
5670
  const specification = {
@@ -5727,7 +5680,7 @@ var durationController = (props) => {
5727
5680
  const listDataProps = {
5728
5681
  model: relation,
5729
5682
  specification,
5730
- domain: evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues))),
5683
+ domain: evalJSONDomain6(domain, JSON.parse(JSON.stringify(formValues))),
5731
5684
  limit: 10,
5732
5685
  offset: 0,
5733
5686
  fields: "",
@@ -6913,7 +6866,7 @@ var binaryFieldController = (props) => {
6913
6866
  };
6914
6867
 
6915
6868
  // src/widget/advance/table/table-body/controller.ts
6916
- import { useAppDispatch as useAppDispatch6, setSelectedRowKeys } from "@fctc/interface-logic/store";
6869
+ import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
6917
6870
  import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
6918
6871
  var tableBodyController = (props) => {
6919
6872
  const {
@@ -6926,7 +6879,7 @@ var tableBodyController = (props) => {
6926
6879
  selectedRowKeysRef,
6927
6880
  onClickRow
6928
6881
  } = props;
6929
- const appDispatch = useAppDispatch6();
6882
+ const appDispatch = useAppDispatch5();
6930
6883
  const checked = useMemo12(() => {
6931
6884
  if (!row?.id) return false;
6932
6885
  if (selectedRowKeys?.includes(row.id)) {
@@ -6981,14 +6934,14 @@ var tableBodyController = (props) => {
6981
6934
 
6982
6935
  // src/widget/advance/table/table-head/controller.ts
6983
6936
  import {
6984
- useAppDispatch as useAppDispatch7,
6937
+ useAppDispatch as useAppDispatch6,
6985
6938
  useAppSelector as useAppSelector4,
6986
6939
  selectSearch as selectSearch3,
6987
6940
  setSelectedRowKeys as setSelectedRowKeys2
6988
6941
  } from "@fctc/interface-logic/store";
6989
6942
  var tableHeadController = (props) => {
6990
6943
  const { typeTable, rows, selectedRowKeysRef } = props;
6991
- const appDispatch = useAppDispatch7();
6944
+ const appDispatch = useAppDispatch6();
6992
6945
  const { groupByDomain } = useAppSelector4(selectSearch3);
6993
6946
  const handleCheckBoxAll = (event) => {
6994
6947
  if (event?.target?.checked && typeTable === "list") {
@@ -7114,7 +7067,7 @@ import {
7114
7067
  useAppSelector as useAppSelector6,
7115
7068
  selectSearch as selectSearch5,
7116
7069
  selectList as selectList4,
7117
- useAppDispatch as useAppDispatch8,
7070
+ useAppDispatch as useAppDispatch7,
7118
7071
  setSelectedRowKeys as setSelectedRowKeys3
7119
7072
  } from "@fctc/interface-logic/store";
7120
7073
 
@@ -7147,7 +7100,7 @@ var tableGroupController = (props) => {
7147
7100
  const [pageGroup, setPageGroup] = useState14(0);
7148
7101
  const { groupByDomain, selectedTags } = useAppSelector6(selectSearch5);
7149
7102
  const { selectedRowKeys } = useAppSelector6(selectList4);
7150
- const appDispatch = useAppDispatch8();
7103
+ const appDispatch = useAppDispatch7();
7151
7104
  const { toDataJS } = useOdooDataTransform();
7152
7105
  const initVal = toDataJS(row, viewData, model);
7153
7106
  const [isShowGroup, setIsShowGroup] = useState14(false);
@@ -7288,7 +7241,7 @@ var import_moment2 = __toESM(require_moment());
7288
7241
  import { SearchType } from "@fctc/interface-logic/constants";
7289
7242
  import {
7290
7243
  domainHelper as domainHelper2,
7291
- evalJSONDomain as evalJSONDomain6,
7244
+ evalJSONDomain as evalJSONDomain7,
7292
7245
  validateAndParseDate
7293
7246
  } from "@fctc/interface-logic/utils";
7294
7247
  import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
@@ -7305,7 +7258,7 @@ var searchController = ({
7305
7258
  const [groupBy, setGroupBy] = useState15(null);
7306
7259
  const [selectedTags, setSelectedTags] = useState15(null);
7307
7260
  const [searchString, setSearchString] = useState15("");
7308
- const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain6(actionData?.domain, contextSearch) : [];
7261
+ const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain7(actionData?.domain, contextSearch) : [];
7309
7262
  const aid = actionData?.id;
7310
7263
  const model = actionData?.res_model;
7311
7264
  const clearSearch = () => {