@fctc/widget-logic 1.9.3 → 1.9.5

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
@@ -4978,6 +4978,7 @@ var many2oneFieldController = (props) => {
4978
4978
  options: fieldOptions,
4979
4979
  showDetail
4980
4980
  } = props;
4981
+ const { env } = (0, provider_exports.useEnv)();
4981
4982
  const [options, setOptions] = useState7([]);
4982
4983
  const [inputValue, setInputValue] = useState7("");
4983
4984
  const [debouncedInputValue] = useDebounce(inputValue, 1e3);
@@ -4987,13 +4988,12 @@ var many2oneFieldController = (props) => {
4987
4988
  const [domainObject, setDomainObject] = useState7(null);
4988
4989
  const actionData = sessionStorageUtils.getActionData();
4989
4990
  const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
4990
- const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
4991
4991
  const initValue = methods?.getValues(name);
4992
4992
  const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
4993
4993
  const contextObject = {
4994
4994
  ...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
4995
4995
  ...fieldContext,
4996
- ...context
4996
+ ...env?.context
4997
4997
  };
4998
4998
  const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
4999
4999
  const data = {
@@ -5165,15 +5165,9 @@ var many2oneButtonController = (props) => {
5165
5165
 
5166
5166
  // src/widget/basic/many2many-field/controller.ts
5167
5167
  import { useEffect as useEffect11, useMemo as useMemo10, useState as useState8 } from "react";
5168
- import {
5169
- useAppDispatch as useAppDispatch5,
5170
- setFirstDomain,
5171
- setViewDataStore,
5172
- setPage,
5173
- setGroupByDomain
5174
- } from "@fctc/interface-logic/store";
5175
5168
  import {
5176
5169
  evalJSONContext as evalJSONContext4,
5170
+ evalJSONDomain as evalJSONDomain4,
5177
5171
  formatSortingString as formatSortingString2
5178
5172
  } from "@fctc/interface-logic/utils";
5179
5173
  var many2manyFieldController = (props) => {
@@ -5181,45 +5175,43 @@ var many2manyFieldController = (props) => {
5181
5175
  relation,
5182
5176
  domain,
5183
5177
  context,
5178
+ options,
5184
5179
  tab,
5185
- model,
5186
- aid,
5187
5180
  setSelectedRowKeys: setSelectedRowKeys4,
5188
- fields,
5189
- setFields,
5190
5181
  groupByDomain,
5191
- page,
5192
- options,
5193
- sessionStorageUtils
5182
+ enabled: enabledCallAPI
5194
5183
  } = props;
5195
- const appDispatch = useAppDispatch5();
5196
- const actionData = sessionStorageUtils.getActionData();
5197
- const [debouncedPage] = useDebounce(page, 500);
5198
- const [order, setOrder] = useState8();
5199
- const [isLoadedData, setIsLoadedData] = useState8(false);
5200
- const [domainMany2Many, setDomainMany2Many] = useState8(domain);
5201
5184
  const { env } = (0, provider_exports.useEnv)();
5202
5185
  const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
5186
+ const [order, setOrder] = useState8();
5187
+ const [isLoadedData, setIsLoadedData] = useState8(false);
5188
+ const [page, setPage] = useState8(0);
5189
+ const [domainMany2Many, setDomainMany2Many] = useState8(null);
5190
+ const [debouncedPage] = useDebounce(page, 500);
5191
+ const contextObject = {
5192
+ ...env.context,
5193
+ ...context || {}
5194
+ };
5203
5195
  const viewParams = {
5204
5196
  model: relation,
5205
5197
  views: [
5206
5198
  [false, "list"],
5207
5199
  [false, "search"]
5208
5200
  ],
5209
- context
5201
+ context: contextObject
5210
5202
  };
5211
- const { data: viewResponse } = useGetView2(viewParams, actionData);
5203
+ const { data: viewResponse } = useGetView2(viewParams, enabledCallAPI);
5212
5204
  const baseModel = useMemo10(
5213
5205
  () => ({
5214
5206
  name: String(relation),
5215
5207
  view: viewResponse || {},
5216
- actContext: context,
5208
+ actContext: contextObject,
5217
5209
  fields: [
5218
5210
  ...Object.values(viewResponse?.views?.list?.fields ?? {}),
5219
5211
  ...tab?.fields ? tab.fields : []
5220
5212
  ]
5221
5213
  }),
5222
- [model, viewResponse]
5214
+ [relation, viewResponse]
5223
5215
  );
5224
5216
  const initModel = (0, hooks_exports.useModel)();
5225
5217
  const modelInstance = useMemo10(() => {
@@ -5238,26 +5230,15 @@ var many2manyFieldController = (props) => {
5238
5230
  const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
5239
5231
  const fetchData = async () => {
5240
5232
  try {
5241
- setDomainMany2Many(domain);
5242
- appDispatch(setFirstDomain(domain));
5243
- appDispatch(setViewDataStore(viewResponse));
5244
- const modalData = viewResponse?.views?.list?.fields.map((field) => ({
5245
- ...viewResponse?.models?.[String(model)]?.[field?.name],
5246
- ...field
5247
- }));
5248
- if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
5249
- setFields({
5250
- ...fields,
5251
- [`${aid}_${relation}_popupmany2many`]: modalData
5252
- });
5253
- }
5254
- appDispatch(setPage(0));
5233
+ const domainParse = typeof domain === "string" ? evalJSONDomain4(domain, contextObject) : Array.isArray(domain) ? domain : [];
5234
+ setDomainMany2Many(domainParse);
5235
+ setPage(0);
5255
5236
  } catch (err) {
5256
5237
  console.log(err);
5257
5238
  }
5258
5239
  };
5259
5240
  const queryKey = [
5260
- `view-${relation}-${aid}`,
5241
+ `view-${relation}`,
5261
5242
  specification,
5262
5243
  domainMany2Many,
5263
5244
  debouncedPage,
@@ -5270,16 +5251,16 @@ var many2manyFieldController = (props) => {
5270
5251
  domain: domainMany2Many,
5271
5252
  offset: debouncedPage * 10,
5272
5253
  limit: 10,
5273
- context,
5254
+ context: contextObject,
5274
5255
  fields: groupByDomain?.fields,
5275
5256
  groupby: [groupByDomain?.contexts[0]?.group_by],
5276
5257
  sort: order ? order : default_order ? formatSortingString2(default_order) : ""
5277
5258
  };
5278
- const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
5259
+ const enabled = enabledCallAPI && isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
5279
5260
  const {
5280
5261
  data: dataResponse,
5281
- isLoading: isDataLoading,
5282
- isFetched: isDataResponseFetched,
5262
+ isLoading,
5263
+ isFetched,
5283
5264
  isPlaceholderData
5284
5265
  } = useGetListData3(data, queryKey, enabled);
5285
5266
  useEffect11(() => {
@@ -5287,12 +5268,7 @@ var many2manyFieldController = (props) => {
5287
5268
  fetchData();
5288
5269
  }
5289
5270
  return () => {
5290
- appDispatch(setGroupByDomain(null));
5291
- setFields((prevFields) => ({
5292
- ...prevFields,
5293
- [`${aid}_${relation}_popupmany2many`]: null
5294
- }));
5295
- appDispatch(setPage(0));
5271
+ setPage(0);
5296
5272
  setSelectedRowKeys4([]);
5297
5273
  setDomainMany2Many(null);
5298
5274
  setIsLoadedData(false);
@@ -5300,44 +5276,19 @@ var many2manyFieldController = (props) => {
5300
5276
  }, [viewResponse]);
5301
5277
  const { rows, columns, typeTable } = tableController({
5302
5278
  data: {
5303
- fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
5279
+ fields: viewResponse?.views?.list?.fields,
5304
5280
  records: dataResponse?.records ?? dataResponse?.groups,
5305
5281
  dataModel: viewResponse?.models?.[String(relation)],
5306
- context: { ...env.context, ...context },
5282
+ context: contextObject,
5307
5283
  typeTable: dataResponse?.groups ? "group" : "list"
5308
5284
  }
5309
5285
  });
5310
- const dataFormView = {
5311
- id: null,
5312
- model: relation,
5313
- context
5314
- };
5315
- const {
5316
- refetch,
5317
- data: dataFormViewResponse,
5318
- isSuccess
5319
- } = useGetFormView({
5320
- data: dataFormView,
5321
- queryKey: [`form-view-action-${relation}`],
5322
- enabled: false
5323
- });
5324
- useEffect11(() => {
5325
- if (isSuccess && dataFormViewResponse) {
5326
- sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
5327
- window.location.href = `/form/menu?model=${relation}`;
5328
- }
5329
- }, [isSuccess]);
5330
5286
  useEffect11(() => {
5331
5287
  if (domainMany2Many && !isLoadedData) {
5332
5288
  setIsLoadedData(true);
5333
5289
  }
5334
5290
  }, [domainMany2Many]);
5335
5291
  const handleCreateNewOnPage = async () => {
5336
- try {
5337
- refetch();
5338
- } catch (error) {
5339
- console.log(error);
5340
- }
5341
5292
  };
5342
5293
  return {
5343
5294
  handleCreateNewOnPage,
@@ -5345,9 +5296,13 @@ var many2manyFieldController = (props) => {
5345
5296
  rows,
5346
5297
  columns,
5347
5298
  typeTable,
5348
- isDataLoading,
5349
- isDataResponseFetched,
5350
- isPlaceholderData
5299
+ isLoading,
5300
+ isFetched,
5301
+ isPlaceholderData,
5302
+ setPage,
5303
+ page,
5304
+ domain: domainMany2Many,
5305
+ setDomain: setDomainMany2Many
5351
5306
  };
5352
5307
  };
5353
5308
 
@@ -5356,7 +5311,7 @@ import { useMemo as useMemo11 } from "react";
5356
5311
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
5357
5312
  import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
5358
5313
  import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
5359
- import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
5314
+ import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
5360
5315
  var many2manyTagsController = (props) => {
5361
5316
  const {
5362
5317
  relation,
@@ -5370,7 +5325,7 @@ var many2manyTagsController = (props) => {
5370
5325
  const env = getEnv7();
5371
5326
  const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
5372
5327
  const domainObject = useMemo11(
5373
- () => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
5328
+ () => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
5374
5329
  [domain, formValues]
5375
5330
  );
5376
5331
  const data = {
@@ -5413,7 +5368,7 @@ var many2manyTagsController = (props) => {
5413
5368
 
5414
5369
  // src/widget/basic/status-bar-field/controller.ts
5415
5370
  import { useState as useState9 } from "react";
5416
- import { evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
5371
+ import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
5417
5372
  var durationController = (props) => {
5418
5373
  const { relation, domain, formValues, name, id, model, onRefetch } = props;
5419
5374
  const specification = {
@@ -5429,7 +5384,7 @@ var durationController = (props) => {
5429
5384
  const listDataProps = {
5430
5385
  model: relation,
5431
5386
  specification,
5432
- domain: evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues))),
5387
+ domain: evalJSONDomain6(domain, JSON.parse(JSON.stringify(formValues))),
5433
5388
  limit: 10,
5434
5389
  offset: 0,
5435
5390
  fields: "",
@@ -6615,7 +6570,7 @@ var binaryFieldController = (props) => {
6615
6570
  };
6616
6571
 
6617
6572
  // src/widget/advance/table/table-body/controller.ts
6618
- import { useAppDispatch as useAppDispatch6, setSelectedRowKeys } from "@fctc/interface-logic/store";
6573
+ import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
6619
6574
  import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
6620
6575
  var tableBodyController = (props) => {
6621
6576
  const {
@@ -6628,7 +6583,7 @@ var tableBodyController = (props) => {
6628
6583
  selectedRowKeysRef,
6629
6584
  onClickRow
6630
6585
  } = props;
6631
- const appDispatch = useAppDispatch6();
6586
+ const appDispatch = useAppDispatch5();
6632
6587
  const checked = useMemo12(() => {
6633
6588
  if (!row?.id) return false;
6634
6589
  if (selectedRowKeys?.includes(row.id)) {
@@ -6683,14 +6638,14 @@ var tableBodyController = (props) => {
6683
6638
 
6684
6639
  // src/widget/advance/table/table-head/controller.ts
6685
6640
  import {
6686
- useAppDispatch as useAppDispatch7,
6641
+ useAppDispatch as useAppDispatch6,
6687
6642
  useAppSelector as useAppSelector4,
6688
6643
  selectSearch as selectSearch3,
6689
6644
  setSelectedRowKeys as setSelectedRowKeys2
6690
6645
  } from "@fctc/interface-logic/store";
6691
6646
  var tableHeadController = (props) => {
6692
6647
  const { typeTable, rows, selectedRowKeysRef } = props;
6693
- const appDispatch = useAppDispatch7();
6648
+ const appDispatch = useAppDispatch6();
6694
6649
  const { groupByDomain } = useAppSelector4(selectSearch3);
6695
6650
  const handleCheckBoxAll = (event) => {
6696
6651
  if (event?.target?.checked && typeTable === "list") {
@@ -6816,7 +6771,7 @@ import {
6816
6771
  useAppSelector as useAppSelector6,
6817
6772
  selectSearch as selectSearch5,
6818
6773
  selectList as selectList4,
6819
- useAppDispatch as useAppDispatch8,
6774
+ useAppDispatch as useAppDispatch7,
6820
6775
  setSelectedRowKeys as setSelectedRowKeys3
6821
6776
  } from "@fctc/interface-logic/store";
6822
6777
 
@@ -6849,7 +6804,7 @@ var tableGroupController = (props) => {
6849
6804
  const [pageGroup, setPageGroup] = useState14(0);
6850
6805
  const { groupByDomain, selectedTags } = useAppSelector6(selectSearch5);
6851
6806
  const { selectedRowKeys } = useAppSelector6(selectList4);
6852
- const appDispatch = useAppDispatch8();
6807
+ const appDispatch = useAppDispatch7();
6853
6808
  const { toDataJS } = useOdooDataTransform();
6854
6809
  const initVal = toDataJS(row, viewData, model);
6855
6810
  const [isShowGroup, setIsShowGroup] = useState14(false);
@@ -6990,7 +6945,7 @@ var import_moment2 = __toESM(require_moment());
6990
6945
  import { SearchType } from "@fctc/interface-logic/constants";
6991
6946
  import {
6992
6947
  domainHelper as domainHelper2,
6993
- evalJSONDomain as evalJSONDomain6,
6948
+ evalJSONDomain as evalJSONDomain7,
6994
6949
  validateAndParseDate
6995
6950
  } from "@fctc/interface-logic/utils";
6996
6951
  import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
@@ -7007,7 +6962,7 @@ var searchController = ({
7007
6962
  const [groupBy, setGroupBy] = useState15(null);
7008
6963
  const [selectedTags, setSelectedTags] = useState15(null);
7009
6964
  const [searchString, setSearchString] = useState15("");
7010
- const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain6(actionData?.domain, contextSearch) : [];
6965
+ const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain7(actionData?.domain, contextSearch) : [];
7011
6966
  const aid = actionData?.id;
7012
6967
  const model = actionData?.res_model;
7013
6968
  const clearSearch = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/widget-logic",
3
- "version": "1.9.3",
3
+ "version": "1.9.5",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",