@fctc/widget-logic 1.8.4 → 1.8.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
@@ -6191,43 +6191,24 @@ var tableGroupController = (props) => {
6191
6191
  };
6192
6192
 
6193
6193
  // src/widget/advance/search/controller.ts
6194
- var import_moment = __toESM(require_moment());
6195
6194
  import { SearchType } from "@fctc/interface-logic/constants";
6196
- import {
6197
- domainHelper as domainHelper2,
6198
- evalJSONContext as evalJSONContext4,
6199
- evalJSONDomain as evalJSONDomain4,
6200
- validateAndParseDate
6201
- } from "@fctc/interface-logic/utils";
6195
+ import { domainHelper as domainHelper2 } from "@fctc/interface-logic/utils";
6202
6196
  import { useCallback as useCallback3, useEffect as useEffect14, useState as useState10 } from "react";
6203
-
6204
- // src/provider.ts
6205
- var provider_exports = {};
6206
- __reExport(provider_exports, provider_star);
6207
- import * as provider_star from "@fctc/interface-logic/provider";
6208
-
6209
- // src/widget/advance/search/controller.ts
6210
6197
  var searchController = ({
6211
6198
  viewData,
6212
6199
  actionData,
6213
6200
  fieldsList,
6214
- setDomain
6201
+ contextSearch,
6202
+ setSearchMap,
6203
+ searchMap
6215
6204
  }) => {
6216
- const { env } = (0, provider_exports.useEnv)();
6217
- const { context } = actionData || {};
6218
- const actionContext = typeof context === "string" ? evalJSONContext4(context) : context;
6219
- const contextSearch = { ...env.context, ...actionContext };
6220
6205
  const [filterBy, setFilterBy] = useState10(null);
6221
6206
  const [searchBy, setSearchBy] = useState10(null);
6222
6207
  const [groupBy, setGroupBy] = useState10(null);
6223
6208
  const [selectedTags, setSelectedTags] = useState10(null);
6224
6209
  const [searchString, setSearchString] = useState10("");
6225
- const [searchMap, setSearchMap] = useState10({});
6226
- const [isReadyFormatDomain, setIsReadyFormatDomain] = useState10(false);
6227
- const [didInit, setDidInit] = useState10(false);
6228
6210
  const aid = actionData?.id;
6229
6211
  const model = actionData?.res_model;
6230
- const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain4(actionData?.domain, contextSearch) : [];
6231
6212
  const clearSearch = () => {
6232
6213
  setFilterBy([]);
6233
6214
  setGroupBy([]);
@@ -6337,16 +6318,16 @@ var searchController = ({
6337
6318
  const contexts = [];
6338
6319
  let groupValues = [];
6339
6320
  objValues?.forEach((objValue) => {
6340
- const { context: context2, value, active, groupIndex: groupIndex2, isDefault } = objValue;
6321
+ const { context, value, active, groupIndex: groupIndex2, isDefault } = objValue;
6341
6322
  const indexAppend = groupIndex2 != null ? groupIndex2 : viewData?.views?.search?.filters_by?.length ?? 0;
6342
6323
  contexts.push(
6343
- ...Array.isArray(context2?.group_by) ? context2.group_by.map((item) => ({ group_by: item })) : [context2]
6324
+ ...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({ group_by: item })) : [context]
6344
6325
  );
6345
6326
  groupValues[indexAppend] = {
6346
6327
  contexts: [
6347
- ...Array.isArray(context2?.group_by) ? context2.group_by.map((item) => ({
6328
+ ...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({
6348
6329
  group_by: item
6349
- })) : [context2]
6330
+ })) : [context]
6350
6331
  ],
6351
6332
  strings: isDefault ? [value] : [...groupValues[indexAppend]?.strings ?? [], value]
6352
6333
  };
@@ -6376,51 +6357,6 @@ var searchController = ({
6376
6357
  setSelectedTags(null);
6377
6358
  setTagSearch(searchMap);
6378
6359
  }, [searchMap]);
6379
- const formatDomain = () => {
6380
- if (domainAction) {
6381
- const domain = [];
6382
- if (domainAction?.length > 0) {
6383
- if (Object.keys(searchMap).length > 0) {
6384
- domain.push("&");
6385
- }
6386
- domainAction.forEach((domainItem) => {
6387
- domain.push(domainItem);
6388
- });
6389
- }
6390
- Object.keys(searchMap).forEach((key, keyIndex, keys) => {
6391
- if (!key?.includes(SearchType.GROUP)) {
6392
- if (keys.length > 1 && keyIndex < keys.length - 1) {
6393
- domain.push("&");
6394
- }
6395
- const valuesOfKey = searchMap[key];
6396
- valuesOfKey.forEach((value, index) => {
6397
- if (index < valuesOfKey.length - 1) {
6398
- domain.push("|");
6399
- }
6400
- if (value.domain) {
6401
- domain.push(...value.domain);
6402
- return;
6403
- }
6404
- let valueDomainItem = value?.value;
6405
- if (value?.modelType === "date") {
6406
- valueDomainItem = validateAndParseDate(value?.value);
6407
- } else if (value?.modelType === "datetime") {
6408
- if (value?.operator === "<=" || value?.operator === "<") {
6409
- const parsedDate = validateAndParseDate(value?.value, true);
6410
- const hasTime = (0, import_moment.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
6411
- valueDomainItem = hasTime ? (0, import_moment.default)(parsedDate).format("YYYY-MM-DD HH:mm:ss") : (0, import_moment.default)(parsedDate).add(1, "day").subtract(1, "second").format("YYYY-MM-DD HH:mm:ss");
6412
- } else {
6413
- valueDomainItem = validateAndParseDate(value?.value, true);
6414
- }
6415
- }
6416
- const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
6417
- domain.push([value.name, operator, valueDomainItem]);
6418
- });
6419
- }
6420
- });
6421
- return [...domain];
6422
- }
6423
- };
6424
6360
  const handleAddTagSearch = (tag) => {
6425
6361
  const {
6426
6362
  domain,
@@ -6428,7 +6364,7 @@ var searchController = ({
6428
6364
  value,
6429
6365
  type,
6430
6366
  title,
6431
- context: context2,
6367
+ context,
6432
6368
  active,
6433
6369
  dataIndex
6434
6370
  } = tag;
@@ -6436,13 +6372,13 @@ var searchController = ({
6436
6372
  if (type === SearchType.FILTER) {
6437
6373
  addSearchItems(`${SearchType.FILTER}_${groupIndex}`, {
6438
6374
  ...tag,
6439
- domain: domain ? domainFormat.toList(context2) : null
6375
+ domain: domain ? domainFormat.toList(context) : null
6440
6376
  });
6441
6377
  } else if (type === SearchType.SEARCH) {
6442
6378
  addSearchItems(`${SearchType.SEARCH}_${String(dataIndex)}`, {
6443
6379
  ...tag,
6444
6380
  domain: domain ? domainFormat.toList({
6445
- ...context2,
6381
+ ...context,
6446
6382
  self: value
6447
6383
  }) : null
6448
6384
  });
@@ -6450,73 +6386,12 @@ var searchController = ({
6450
6386
  addSearchItems(`${SearchType.GROUP}`, {
6451
6387
  ...tag,
6452
6388
  domain: domain ? domainFormat.toList({
6453
- context: context2,
6389
+ context,
6454
6390
  self: value
6455
6391
  }) : null
6456
6392
  });
6457
6393
  }
6458
6394
  };
6459
- useEffect14(() => {
6460
- if (isReadyFormatDomain) {
6461
- (0, store_exports.setPage)(0);
6462
- (0, store_exports.setSelectedRowKeys)([]);
6463
- const containSearchFilter = selectedTags?.length > 0 && selectedTags?.find(
6464
- (item) => item?.type === SearchType.FILTER || item?.type === SearchType.SEARCH || item?.type === SearchType.GROUP
6465
- );
6466
- if (containSearchFilter || Array.isArray(selectedTags) && selectedTags?.length === 0) {
6467
- setDomain(formatDomain());
6468
- }
6469
- }
6470
- return () => {
6471
- setDidInit(false);
6472
- setIsReadyFormatDomain(false);
6473
- };
6474
- }, [selectedTags, isReadyFormatDomain]);
6475
- useEffect14(() => {
6476
- if (didInit || selectedTags?.length > 0 || !fieldsList || fieldsList?.length === 0)
6477
- return;
6478
- const searchDefaults = Object.entries(actionContext || {}).filter(
6479
- ([key]) => key.startsWith("search_default_")
6480
- );
6481
- const hasGroupBy = viewData?.views?.search?.filters_by?.length > 0;
6482
- if (searchDefaults.length === 0 && !hasGroupBy) {
6483
- setIsReadyFormatDomain(true);
6484
- setDidInit(true);
6485
- return;
6486
- }
6487
- const updatedFilter = filterBy?.map((item) => {
6488
- const matched = searchDefaults.find(
6489
- ([key]) => key.split("search_default_")[1] === item.name
6490
- );
6491
- if (matched && !item.active) {
6492
- handleAddTagSearch?.({
6493
- name: item?.name,
6494
- value: item?.string ?? item?.help,
6495
- domain: item?.domain,
6496
- groupIndex: item?.group_index,
6497
- type: SearchType.FILTER
6498
- });
6499
- return { ...item, active: true };
6500
- }
6501
- return item;
6502
- });
6503
- if (updatedFilter) setFilterBy(updatedFilter);
6504
- if (hasGroupBy) {
6505
- viewData?.views?.search?.filters_by?.forEach((item, idx) => {
6506
- const groupCtx = evalJSONContext4(item?.context);
6507
- handleAddTagSearch?.({
6508
- name: item?.name,
6509
- value: item?.display_name,
6510
- type: SearchType.GROUP,
6511
- context: groupCtx,
6512
- groupIndex: idx,
6513
- isDefault: true
6514
- });
6515
- });
6516
- setDidInit(true);
6517
- }
6518
- setIsReadyFormatDomain(true);
6519
- }, [aid, fieldsList]);
6520
6395
  return {
6521
6396
  groupBy,
6522
6397
  searchBy,
@@ -6542,11 +6417,11 @@ import {
6542
6417
  selectSearch as selectSearch6,
6543
6418
  setFirstDomain,
6544
6419
  setViewDataStore,
6545
- setPage as setPage2,
6420
+ setPage,
6546
6421
  setGroupByDomain
6547
6422
  } from "@fctc/interface-logic/store";
6548
6423
  import {
6549
- evalJSONContext as evalJSONContext5,
6424
+ evalJSONContext as evalJSONContext4,
6550
6425
  formatSortingString as formatSortingString2
6551
6426
  } from "@fctc/interface-logic/utils";
6552
6427
  var many2manyFieldController = (props) => {
@@ -6557,7 +6432,7 @@ var many2manyFieldController = (props) => {
6557
6432
  tab,
6558
6433
  model,
6559
6434
  aid,
6560
- setSelectedRowKeys: setSelectedRowKeys5,
6435
+ setSelectedRowKeys: setSelectedRowKeys4,
6561
6436
  fields,
6562
6437
  setFields,
6563
6438
  groupByDomain,
@@ -6611,7 +6486,7 @@ var many2manyFieldController = (props) => {
6611
6486
  return null;
6612
6487
  }, [modelInstance]);
6613
6488
  const default_order = viewResponse && viewResponse?.views?.list?.default_order;
6614
- const optionsObject = tab?.options ? evalJSONContext5(tab?.options) : (options ? evalJSONContext5(options) : {}) || {};
6489
+ const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
6615
6490
  const fetchData = async () => {
6616
6491
  try {
6617
6492
  setDomainMany2Many(domain);
@@ -6627,7 +6502,7 @@ var many2manyFieldController = (props) => {
6627
6502
  [`${aid}_${relation}_popupmany2many`]: modalData
6628
6503
  });
6629
6504
  }
6630
- appDispatch(setPage2(0));
6505
+ appDispatch(setPage(0));
6631
6506
  } catch (err) {
6632
6507
  console.log(err);
6633
6508
  }
@@ -6668,8 +6543,8 @@ var many2manyFieldController = (props) => {
6668
6543
  ...prevFields,
6669
6544
  [`${aid}_${relation}_popupmany2many`]: null
6670
6545
  }));
6671
- appDispatch(setPage2(0));
6672
- setSelectedRowKeys5([]);
6546
+ appDispatch(setPage(0));
6547
+ setSelectedRowKeys4([]);
6673
6548
  setDomainMany2Many(null);
6674
6549
  setIsLoadedData(false);
6675
6550
  };
@@ -6723,7 +6598,7 @@ import { useMemo as useMemo14 } from "react";
6723
6598
  import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
6724
6599
  import { getEnv as getEnv9 } from "@fctc/interface-logic/environment";
6725
6600
  import { useGetSelection as useGetSelection3 } from "@fctc/interface-logic/hooks";
6726
- import { evalJSONContext as evalJSONContext6, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
6601
+ import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
6727
6602
  var many2manyTagsController = (props) => {
6728
6603
  const {
6729
6604
  relation,
@@ -6735,9 +6610,9 @@ var many2manyTagsController = (props) => {
6735
6610
  } = props;
6736
6611
  const isUser = relation === "res.users" || relation === "res.partner";
6737
6612
  const env = getEnv9();
6738
- const addtionalFields = optionsFields ? evalJSONContext6(optionsFields) : null;
6613
+ const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
6739
6614
  const domainObject = useMemo14(
6740
- () => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
6615
+ () => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
6741
6616
  [domain, formValues]
6742
6617
  );
6743
6618
  const data = {
@@ -6782,7 +6657,7 @@ var many2manyTagsController = (props) => {
6782
6657
  import { useState as useState12 } from "react";
6783
6658
  import { useGetListData as useGetListData4, useChangeStatus } from "@fctc/interface-logic/hooks";
6784
6659
  import { useAppSelector as useAppSelector8, selectEnv as selectEnv2 } from "@fctc/interface-logic/store";
6785
- import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
6660
+ import { evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
6786
6661
  var durationController = (props) => {
6787
6662
  const {
6788
6663
  relation,
@@ -6806,7 +6681,7 @@ var durationController = (props) => {
6806
6681
  const listDataProps = {
6807
6682
  model: relation,
6808
6683
  specification,
6809
- domain: evalJSONDomain6(domain, JSON.parse(JSON.stringify(formValues))),
6684
+ domain: evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues))),
6810
6685
  limit: 10,
6811
6686
  offset: 0,
6812
6687
  fields: "",
@@ -6854,7 +6729,7 @@ var durationController = (props) => {
6854
6729
 
6855
6730
  // src/widget/basic/priority-field/controller.ts
6856
6731
  import { useSave as useSave2 } from "@fctc/interface-logic/hooks";
6857
- import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils";
6732
+ import { evalJSONContext as evalJSONContext6 } from "@fctc/interface-logic/utils";
6858
6733
  var priorityFieldController = (props) => {
6859
6734
  const {
6860
6735
  value,
@@ -6869,7 +6744,7 @@ var priorityFieldController = (props) => {
6869
6744
  viewData,
6870
6745
  context
6871
6746
  } = props;
6872
- const _context = { ...evalJSONContext7(actionData?.context) };
6747
+ const _context = { ...evalJSONContext6(actionData?.context) };
6873
6748
  const contextObject = { ...context, ..._context };
6874
6749
  const defaultPriority = parseInt(value) + 1;
6875
6750
  const label = viewData?.models?.[model]?.[name ?? ""]?.string ?? name;
@@ -7175,7 +7050,7 @@ var downLoadBinaryController = (props) => {
7175
7050
  };
7176
7051
 
7177
7052
  // src/widget/basic/date-field/controller.ts
7178
- var import_moment2 = __toESM(require_moment());
7053
+ var import_moment = __toESM(require_moment());
7179
7054
  var DURATIONS = {
7180
7055
  PAST: "past",
7181
7056
  NOW: "now",
@@ -7202,8 +7077,8 @@ var dateFieldController = (props) => {
7202
7077
  const formatDate = showTime ? "DD/MM/YYYY HH:mm:ss" : "DD/MM/YYYY";
7203
7078
  const formatDateParse = showTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
7204
7079
  const fieldForCustom = widget === "datetime_custom" || widget === "date_custom";
7205
- const minNowValue = fieldForCustom && (min === DURATIONS.NOW ? true : typeof min === "string" && Object.keys(formValues)?.includes(min) && formValues?.[min] ? (0, import_moment2.default)(formValues?.[min], formatDateParse).add(7, "hours") : null);
7206
- const maxNowValue = fieldForCustom && (max === DURATIONS.NOW ? true : typeof max === "string" && Object.keys(formValues)?.includes(max) && formValues?.[max] ? (0, import_moment2.default)(formValues?.[max], formatDateParse).add(7, "hours") : null);
7080
+ const minNowValue = fieldForCustom && (min === DURATIONS.NOW ? true : typeof min === "string" && Object.keys(formValues)?.includes(min) && formValues?.[min] ? (0, import_moment.default)(formValues?.[min], formatDateParse).add(7, "hours") : null);
7081
+ const maxNowValue = fieldForCustom && (max === DURATIONS.NOW ? true : typeof max === "string" && Object.keys(formValues)?.includes(max) && formValues?.[max] ? (0, import_moment.default)(formValues?.[max], formatDateParse).add(7, "hours") : null);
7207
7082
  const years = range(
7208
7083
  minNowValue ? (/* @__PURE__ */ new Date()).getFullYear() : 1990,
7209
7084
  (/* @__PURE__ */ new Date()).getFullYear() + 4,
@@ -7238,8 +7113,8 @@ var dateFieldController = (props) => {
7238
7113
  "December"
7239
7114
  ];
7240
7115
  const customValidateMinMax = (date) => {
7241
- const selected = (0, import_moment2.default)(date, formatDateParse);
7242
- const now = (0, import_moment2.default)();
7116
+ const selected = (0, import_moment.default)(date, formatDateParse);
7117
+ const now = (0, import_moment.default)();
7243
7118
  const compareSelected = showTime ? selected : selected.clone().startOf("day");
7244
7119
  const compareNow = showTime ? now : now.clone().startOf("day");
7245
7120
  if (minNowValue) {
@@ -7247,7 +7122,7 @@ var dateFieldController = (props) => {
7247
7122
  return `${i18n_default.t("please_enter")} ${string} ${i18n_default.t(
7248
7123
  "greater_or_equal_now"
7249
7124
  )}`;
7250
- } else if (import_moment2.default.isMoment(minNowValue)) {
7125
+ } else if (import_moment.default.isMoment(minNowValue)) {
7251
7126
  const compareMin = showTime ? minNowValue : minNowValue.clone().startOf("day");
7252
7127
  if (compareSelected.isBefore(compareMin)) {
7253
7128
  const fieldRelationDate = viewData?.models?.[model]?.[min ?? ""];
@@ -7261,7 +7136,7 @@ var dateFieldController = (props) => {
7261
7136
  return `${i18n_default.t("please_enter")} ${string} ${i18n_default.t(
7262
7137
  "less_or_equal_now"
7263
7138
  )}`;
7264
- } else if (import_moment2.default.isMoment(maxNowValue)) {
7139
+ } else if (import_moment.default.isMoment(maxNowValue)) {
7265
7140
  const compareMax = showTime ? maxNowValue : maxNowValue.clone().startOf("day");
7266
7141
  if (compareSelected.isAfter(compareMax)) {
7267
7142
  const fieldRelationDate = viewData?.models?.[model]?.[max ?? ""];
@@ -7308,11 +7183,11 @@ var copyLinkButtonController = (props) => {
7308
7183
  // src/widget/basic/color-field/color-controller.ts
7309
7184
  import { getEnv as getEnv10 } from "@fctc/interface-logic/environment";
7310
7185
  import { useSave as useSave3 } from "@fctc/interface-logic/hooks";
7311
- import { evalJSONContext as evalJSONContext8 } from "@fctc/interface-logic/utils";
7186
+ import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils";
7312
7187
  var colorFieldController = (props) => {
7313
7188
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
7314
7189
  const env = getEnv10();
7315
- const _context = { ...evalJSONContext8(actionData?.context) || {} };
7190
+ const _context = { ...evalJSONContext7(actionData?.context) || {} };
7316
7191
  const contextObject = { ...env.context, ..._context };
7317
7192
  const idDefault = isForm ? idForm : formValues?.id;
7318
7193
  const { mutate: onSave } = useSave3();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/widget-logic",
3
- "version": "1.8.4",
3
+ "version": "1.8.5",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",