@fctc/widget-logic 2.0.8 → 2.0.9
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 +149 -160
- package/dist/index.mjs +142 -162
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/widget.d.mts +58 -19
- package/dist/widget.d.ts +58 -19
- package/dist/widget.js +149 -160
- package/dist/widget.mjs +142 -162
- package/package.json +1 -1
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,15 +5286,14 @@ 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
|
-
const { useGetSelection:
|
|
5296
|
+
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
5297
5297
|
const data = {
|
|
5298
5298
|
model: relation,
|
|
5299
5299
|
domain: domainObject,
|
|
@@ -5309,7 +5309,7 @@ var many2oneFieldController = (props) => {
|
|
|
5309
5309
|
data: dataOfSelection,
|
|
5310
5310
|
refetch,
|
|
5311
5311
|
isFetching
|
|
5312
|
-
} =
|
|
5312
|
+
} = useGetSelection3({
|
|
5313
5313
|
data,
|
|
5314
5314
|
queryKey,
|
|
5315
5315
|
enabled: false
|
|
@@ -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,43 @@ 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
|
-
|
|
5490
|
-
|
|
5491
|
-
sessionStorageUtils
|
|
5480
|
+
enabled: enabledCallAPI,
|
|
5481
|
+
actionData
|
|
5492
5482
|
} = 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
5483
|
const { env } = (0, provider_exports.useEnv)();
|
|
5500
5484
|
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5485
|
+
const [order, setOrder] = useState8();
|
|
5486
|
+
const [page, setPage] = useState8(0);
|
|
5487
|
+
const [domainMany2Many, setDomainMany2Many] = useState8(null);
|
|
5488
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5489
|
+
const contextObject = {
|
|
5490
|
+
...env.context,
|
|
5491
|
+
...context || {}
|
|
5492
|
+
};
|
|
5501
5493
|
const viewParams = {
|
|
5502
5494
|
model: relation,
|
|
5503
5495
|
views: [
|
|
5504
5496
|
[false, "list"],
|
|
5505
5497
|
[false, "search"]
|
|
5506
5498
|
],
|
|
5507
|
-
context
|
|
5499
|
+
context: contextObject
|
|
5508
5500
|
};
|
|
5509
|
-
const { data: viewResponse } = useGetView2(viewParams,
|
|
5501
|
+
const { data: viewResponse } = useGetView2(viewParams, enabledCallAPI);
|
|
5510
5502
|
const baseModel = useMemo10(
|
|
5511
5503
|
() => ({
|
|
5512
5504
|
name: String(relation),
|
|
5513
5505
|
view: viewResponse || {},
|
|
5514
|
-
actContext:
|
|
5506
|
+
actContext: contextObject,
|
|
5515
5507
|
fields: [
|
|
5516
5508
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5517
5509
|
...tab?.fields ? tab.fields : []
|
|
5518
5510
|
]
|
|
5519
5511
|
}),
|
|
5520
|
-
[
|
|
5512
|
+
[relation, viewResponse]
|
|
5521
5513
|
);
|
|
5522
5514
|
const initModel = (0, hooks_exports.useModel)();
|
|
5523
5515
|
const modelInstance = useMemo10(() => {
|
|
@@ -5536,26 +5528,15 @@ var many2manyFieldController = (props) => {
|
|
|
5536
5528
|
const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
|
|
5537
5529
|
const fetchData = async () => {
|
|
5538
5530
|
try {
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
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));
|
|
5531
|
+
const domainParse = typeof domain === "string" ? evalJSONDomain4(domain, contextObject) : Array.isArray(domain) ? domain : [];
|
|
5532
|
+
setDomainMany2Many(domainParse);
|
|
5533
|
+
setPage(0);
|
|
5553
5534
|
} catch (err) {
|
|
5554
5535
|
console.log(err);
|
|
5555
5536
|
}
|
|
5556
5537
|
};
|
|
5557
5538
|
const queryKey = [
|
|
5558
|
-
`view-${relation}
|
|
5539
|
+
`view-${relation}`,
|
|
5559
5540
|
specification,
|
|
5560
5541
|
domainMany2Many,
|
|
5561
5542
|
debouncedPage,
|
|
@@ -5568,16 +5549,16 @@ var many2manyFieldController = (props) => {
|
|
|
5568
5549
|
domain: domainMany2Many,
|
|
5569
5550
|
offset: debouncedPage * 10,
|
|
5570
5551
|
limit: 10,
|
|
5571
|
-
context,
|
|
5552
|
+
context: contextObject,
|
|
5572
5553
|
fields: groupByDomain?.fields,
|
|
5573
5554
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5574
5555
|
sort: order ? order : default_order ? formatSortingString2(default_order) : ""
|
|
5575
5556
|
};
|
|
5576
|
-
const enabled =
|
|
5557
|
+
const enabled = enabledCallAPI && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5577
5558
|
const {
|
|
5578
5559
|
data: dataResponse,
|
|
5579
|
-
isLoading
|
|
5580
|
-
isFetched
|
|
5560
|
+
isLoading,
|
|
5561
|
+
isFetched,
|
|
5581
5562
|
isPlaceholderData
|
|
5582
5563
|
} = useGetListData3(data, queryKey, enabled);
|
|
5583
5564
|
useEffect11(() => {
|
|
@@ -5585,74 +5566,59 @@ var many2manyFieldController = (props) => {
|
|
|
5585
5566
|
fetchData();
|
|
5586
5567
|
}
|
|
5587
5568
|
return () => {
|
|
5588
|
-
|
|
5589
|
-
setFields((prevFields) => ({
|
|
5590
|
-
...prevFields,
|
|
5591
|
-
[`${aid}_${relation}_popupmany2many`]: null
|
|
5592
|
-
}));
|
|
5593
|
-
appDispatch(setPage(0));
|
|
5569
|
+
setPage(0);
|
|
5594
5570
|
setSelectedRowKeys4([]);
|
|
5595
5571
|
setDomainMany2Many(null);
|
|
5596
|
-
setIsLoadedData(false);
|
|
5597
5572
|
};
|
|
5598
5573
|
}, [viewResponse]);
|
|
5599
|
-
const { rows, columns, typeTable } = tableController({
|
|
5574
|
+
const { rows, columns, typeTable, onToggleColumnOptional } = tableController({
|
|
5600
5575
|
data: {
|
|
5601
|
-
fields:
|
|
5576
|
+
fields: viewResponse?.views?.list?.fields,
|
|
5602
5577
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5603
5578
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5604
|
-
context:
|
|
5579
|
+
context: contextObject,
|
|
5605
5580
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5606
5581
|
}
|
|
5607
5582
|
});
|
|
5608
|
-
const
|
|
5609
|
-
|
|
5610
|
-
model: relation,
|
|
5611
|
-
context
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
data: dataFormView,
|
|
5619
|
-
queryKey: [`form-view-action-${relation}`],
|
|
5620
|
-
enabled: false
|
|
5583
|
+
const searchControllers = searchController({
|
|
5584
|
+
viewData: viewResponse,
|
|
5585
|
+
model: relation ?? "",
|
|
5586
|
+
context: contextObject,
|
|
5587
|
+
domain,
|
|
5588
|
+
fieldsList: [
|
|
5589
|
+
...columns?.filter(
|
|
5590
|
+
(col) => col?.field?.type_co === "field" && col?.optional !== "hide"
|
|
5591
|
+
)?.map((col) => ({ ...col.field })) ?? []
|
|
5592
|
+
]
|
|
5621
5593
|
});
|
|
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
|
-
useEffect11(() => {
|
|
5629
|
-
if (domainMany2Many && !isLoadedData) {
|
|
5630
|
-
setIsLoadedData(true);
|
|
5631
|
-
}
|
|
5632
|
-
}, [domainMany2Many]);
|
|
5633
5594
|
const handleCreateNewOnPage = async () => {
|
|
5634
|
-
try {
|
|
5635
|
-
refetch();
|
|
5636
|
-
} catch (error) {
|
|
5637
|
-
console.log(error);
|
|
5638
|
-
}
|
|
5639
5595
|
};
|
|
5640
5596
|
return {
|
|
5641
5597
|
handleCreateNewOnPage,
|
|
5642
5598
|
optionsObject,
|
|
5599
|
+
totalRows: dataResponse?.length ?? 0,
|
|
5643
5600
|
rows,
|
|
5644
5601
|
columns,
|
|
5602
|
+
onToggleColumnOptional,
|
|
5645
5603
|
typeTable,
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
isPlaceholderData
|
|
5604
|
+
isLoading,
|
|
5605
|
+
isFetched,
|
|
5606
|
+
isPlaceholderData,
|
|
5607
|
+
setPage,
|
|
5608
|
+
page,
|
|
5609
|
+
viewData: viewResponse,
|
|
5610
|
+
domain: domainMany2Many,
|
|
5611
|
+
setDomain: setDomainMany2Many,
|
|
5612
|
+
searchController: searchControllers
|
|
5649
5613
|
};
|
|
5650
5614
|
};
|
|
5651
5615
|
|
|
5652
5616
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5653
5617
|
import { useMemo as useMemo11 } from "react";
|
|
5654
5618
|
import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
|
|
5655
|
-
import {
|
|
5619
|
+
import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
|
|
5620
|
+
import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
|
|
5621
|
+
import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
|
|
5656
5622
|
var many2manyTagsController = (props) => {
|
|
5657
5623
|
const {
|
|
5658
5624
|
relation,
|
|
@@ -5663,11 +5629,10 @@ var many2manyTagsController = (props) => {
|
|
|
5663
5629
|
placeholderNoOption
|
|
5664
5630
|
} = props;
|
|
5665
5631
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
5666
|
-
const
|
|
5667
|
-
const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
|
|
5632
|
+
const env = getEnv7();
|
|
5668
5633
|
const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
|
|
5669
5634
|
const domainObject = useMemo11(
|
|
5670
|
-
() =>
|
|
5635
|
+
() => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
5671
5636
|
[domain, formValues]
|
|
5672
5637
|
);
|
|
5673
5638
|
const data = {
|
|
@@ -5703,15 +5668,16 @@ var many2manyTagsController = (props) => {
|
|
|
5703
5668
|
options,
|
|
5704
5669
|
customNoOptionsMessage,
|
|
5705
5670
|
tranfer,
|
|
5671
|
+
dataOfSelection,
|
|
5706
5672
|
isUser
|
|
5707
5673
|
};
|
|
5708
5674
|
};
|
|
5709
5675
|
|
|
5710
5676
|
// src/widget/basic/status-bar-field/controller.ts
|
|
5711
5677
|
import { useState as useState9 } from "react";
|
|
5712
|
-
import { evalJSONDomain as
|
|
5678
|
+
import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
|
|
5713
5679
|
var durationController = (props) => {
|
|
5714
|
-
const { relation, domain, formValues, name, id, model, onRefetch
|
|
5680
|
+
const { relation, domain, formValues, name, id, model, onRefetch } = props;
|
|
5715
5681
|
const specification = {
|
|
5716
5682
|
id: 0,
|
|
5717
5683
|
name: "",
|
|
@@ -5725,7 +5691,7 @@ var durationController = (props) => {
|
|
|
5725
5691
|
const listDataProps = {
|
|
5726
5692
|
model: relation,
|
|
5727
5693
|
specification,
|
|
5728
|
-
domain:
|
|
5694
|
+
domain: evalJSONDomain6(domain, JSON.parse(JSON.stringify(formValues))),
|
|
5729
5695
|
limit: 10,
|
|
5730
5696
|
offset: 0,
|
|
5731
5697
|
fields: "",
|
|
@@ -5735,11 +5701,7 @@ var durationController = (props) => {
|
|
|
5735
5701
|
},
|
|
5736
5702
|
sort: ""
|
|
5737
5703
|
};
|
|
5738
|
-
const { data: dataResponse } = useGetListData3(
|
|
5739
|
-
listDataProps,
|
|
5740
|
-
queryKey,
|
|
5741
|
-
enabled
|
|
5742
|
-
);
|
|
5704
|
+
const { data: dataResponse } = useGetListData3(listDataProps, queryKey);
|
|
5743
5705
|
const { mutate: fetchChangeStatus } = useChangeStatus();
|
|
5744
5706
|
const handleClick = async (stage_id) => {
|
|
5745
5707
|
setDisabled(true);
|
|
@@ -5775,18 +5737,32 @@ var durationController = (props) => {
|
|
|
5775
5737
|
};
|
|
5776
5738
|
|
|
5777
5739
|
// src/widget/basic/priority-field/controller.ts
|
|
5740
|
+
import { useSave as useSave2 } from "@fctc/interface-logic/hooks";
|
|
5778
5741
|
import { evalJSONContext as evalJSONContext6 } from "@fctc/interface-logic/utils";
|
|
5779
5742
|
var priorityFieldController = (props) => {
|
|
5780
|
-
const {
|
|
5743
|
+
const {
|
|
5744
|
+
value,
|
|
5745
|
+
isForm,
|
|
5746
|
+
name,
|
|
5747
|
+
methods,
|
|
5748
|
+
onChange,
|
|
5749
|
+
model,
|
|
5750
|
+
selection,
|
|
5751
|
+
id,
|
|
5752
|
+
actionData,
|
|
5753
|
+
viewData,
|
|
5754
|
+
context
|
|
5755
|
+
} = props;
|
|
5781
5756
|
const _context = { ...evalJSONContext6(actionData?.context) };
|
|
5782
5757
|
const contextObject = { ...context, ..._context };
|
|
5783
|
-
const
|
|
5758
|
+
const defaultPriority = parseInt(value) + 1;
|
|
5759
|
+
const label = viewData?.models?.[model]?.[name ?? ""]?.string ?? name;
|
|
5784
5760
|
const { mutateAsync: fetchSave } = useSave2();
|
|
5785
5761
|
const savePriorities = async ({
|
|
5786
|
-
value,
|
|
5762
|
+
value: value2,
|
|
5787
5763
|
resetPriority
|
|
5788
5764
|
}) => {
|
|
5789
|
-
const priorityValue =
|
|
5765
|
+
const priorityValue = value2 <= 0 ? 0 : value2 - 1;
|
|
5790
5766
|
try {
|
|
5791
5767
|
fetchSave({
|
|
5792
5768
|
ids: id ? [id] : [],
|
|
@@ -5804,7 +5780,14 @@ var priorityFieldController = (props) => {
|
|
|
5804
5780
|
}
|
|
5805
5781
|
};
|
|
5806
5782
|
return {
|
|
5807
|
-
|
|
5783
|
+
selection,
|
|
5784
|
+
isForm,
|
|
5785
|
+
methods,
|
|
5786
|
+
defaultPriority,
|
|
5787
|
+
savePriorities,
|
|
5788
|
+
label,
|
|
5789
|
+
id,
|
|
5790
|
+
onChange
|
|
5808
5791
|
};
|
|
5809
5792
|
};
|
|
5810
5793
|
|
|
@@ -6767,11 +6750,11 @@ import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils
|
|
|
6767
6750
|
var colorFieldController = (props) => {
|
|
6768
6751
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
6769
6752
|
const { env } = (0, provider_exports.useEnv)();
|
|
6770
|
-
const { useSave:
|
|
6753
|
+
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
6771
6754
|
const _context = { ...evalJSONContext7(actionData?.context) || {} };
|
|
6772
6755
|
const contextObject = { ...env.context, ..._context };
|
|
6773
6756
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
6774
|
-
const { mutate: onSave } =
|
|
6757
|
+
const { mutate: onSave } = useSave3();
|
|
6775
6758
|
const savePickColor = async (colorObject) => {
|
|
6776
6759
|
const { id } = colorObject;
|
|
6777
6760
|
if (value === id) return;
|
|
@@ -6894,25 +6877,20 @@ var binaryFieldController = (props) => {
|
|
|
6894
6877
|
};
|
|
6895
6878
|
|
|
6896
6879
|
// src/widget/advance/table/table-body/controller.ts
|
|
6897
|
-
import {
|
|
6898
|
-
useAppDispatch as useAppDispatch6,
|
|
6899
|
-
setSelectedRowKeys,
|
|
6900
|
-
useAppSelector as useAppSelector4,
|
|
6901
|
-
selectList as selectList3
|
|
6902
|
-
} from "@fctc/interface-logic/store";
|
|
6880
|
+
import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
|
|
6903
6881
|
import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
|
|
6904
6882
|
var tableBodyController = (props) => {
|
|
6905
6883
|
const {
|
|
6906
6884
|
checkedAll,
|
|
6907
6885
|
checkboxRef,
|
|
6908
6886
|
setIsAutoSelect,
|
|
6887
|
+
selectedRowKeys,
|
|
6909
6888
|
row,
|
|
6910
6889
|
isAutoSelect,
|
|
6911
6890
|
selectedRowKeysRef,
|
|
6912
6891
|
onClickRow
|
|
6913
6892
|
} = props;
|
|
6914
|
-
const appDispatch =
|
|
6915
|
-
const { selectedRowKeys } = useAppSelector4(selectList3);
|
|
6893
|
+
const appDispatch = useAppDispatch5();
|
|
6916
6894
|
const checked = useMemo12(() => {
|
|
6917
6895
|
if (!row?.id) return false;
|
|
6918
6896
|
if (selectedRowKeys?.includes(row.id)) {
|
|
@@ -6928,6 +6906,7 @@ var tableBodyController = (props) => {
|
|
|
6928
6906
|
return;
|
|
6929
6907
|
}
|
|
6930
6908
|
const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
|
|
6909
|
+
console.log("newSelectedRowKeys", newSelectedRowKeys);
|
|
6931
6910
|
appDispatch(setSelectedRowKeys(newSelectedRowKeys));
|
|
6932
6911
|
};
|
|
6933
6912
|
const handleClickRow = (col, row2) => {
|
|
@@ -6966,15 +6945,15 @@ var tableBodyController = (props) => {
|
|
|
6966
6945
|
|
|
6967
6946
|
// src/widget/advance/table/table-head/controller.ts
|
|
6968
6947
|
import {
|
|
6969
|
-
useAppDispatch as
|
|
6970
|
-
useAppSelector as
|
|
6948
|
+
useAppDispatch as useAppDispatch6,
|
|
6949
|
+
useAppSelector as useAppSelector4,
|
|
6971
6950
|
selectSearch as selectSearch3,
|
|
6972
6951
|
setSelectedRowKeys as setSelectedRowKeys2
|
|
6973
6952
|
} from "@fctc/interface-logic/store";
|
|
6974
6953
|
var tableHeadController = (props) => {
|
|
6975
6954
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6976
|
-
const appDispatch =
|
|
6977
|
-
const { groupByDomain } =
|
|
6955
|
+
const appDispatch = useAppDispatch6();
|
|
6956
|
+
const { groupByDomain } = useAppSelector4(selectSearch3);
|
|
6978
6957
|
const handleCheckBoxAll = (event) => {
|
|
6979
6958
|
if (event?.target?.checked && typeTable === "list") {
|
|
6980
6959
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
@@ -7009,9 +6988,9 @@ var tableHeadController = (props) => {
|
|
|
7009
6988
|
// src/widget/advance/table/table-view/controller.ts
|
|
7010
6989
|
import { useEffect as useEffect14, useMemo as useMemo13, useRef as useRef5, useState as useState13 } from "react";
|
|
7011
6990
|
import {
|
|
7012
|
-
useAppSelector as
|
|
6991
|
+
useAppSelector as useAppSelector5,
|
|
7013
6992
|
selectSearch as selectSearch4,
|
|
7014
|
-
selectList as
|
|
6993
|
+
selectList as selectList3
|
|
7015
6994
|
} from "@fctc/interface-logic/store";
|
|
7016
6995
|
import { domainHelper } from "@fctc/interface-logic/utils";
|
|
7017
6996
|
var tableController = ({ data }) => {
|
|
@@ -7096,10 +7075,10 @@ import {
|
|
|
7096
7075
|
useGetListData as useGetListData2
|
|
7097
7076
|
} from "@fctc/interface-logic/hooks";
|
|
7098
7077
|
import {
|
|
7099
|
-
useAppSelector as
|
|
7078
|
+
useAppSelector as useAppSelector6,
|
|
7100
7079
|
selectSearch as selectSearch5,
|
|
7101
|
-
selectList as
|
|
7102
|
-
useAppDispatch as
|
|
7080
|
+
selectList as selectList4,
|
|
7081
|
+
useAppDispatch as useAppDispatch7,
|
|
7103
7082
|
setSelectedRowKeys as setSelectedRowKeys3
|
|
7104
7083
|
} from "@fctc/interface-logic/store";
|
|
7105
7084
|
|
|
@@ -7130,9 +7109,9 @@ var tableGroupController = (props) => {
|
|
|
7130
7109
|
selectedRowKeysRef
|
|
7131
7110
|
} = props;
|
|
7132
7111
|
const [pageGroup, setPageGroup] = useState14(0);
|
|
7133
|
-
const { groupByDomain, selectedTags } =
|
|
7134
|
-
const { selectedRowKeys } =
|
|
7135
|
-
const appDispatch =
|
|
7112
|
+
const { groupByDomain, selectedTags } = useAppSelector6(selectSearch5);
|
|
7113
|
+
const { selectedRowKeys } = useAppSelector6(selectList4);
|
|
7114
|
+
const appDispatch = useAppDispatch7();
|
|
7136
7115
|
const { toDataJS } = useOdooDataTransform();
|
|
7137
7116
|
const initVal = toDataJS(row, viewData, model);
|
|
7138
7117
|
const [isShowGroup, setIsShowGroup] = useState14(false);
|
|
@@ -7273,26 +7252,28 @@ var import_moment2 = __toESM(require_moment());
|
|
|
7273
7252
|
import { SearchType } from "@fctc/interface-logic/constants";
|
|
7274
7253
|
import {
|
|
7275
7254
|
domainHelper as domainHelper2,
|
|
7276
|
-
|
|
7255
|
+
evalJSONContext as evalJSONContext8,
|
|
7256
|
+
evalJSONDomain as evalJSONDomain7,
|
|
7277
7257
|
validateAndParseDate
|
|
7278
7258
|
} from "@fctc/interface-logic/utils";
|
|
7279
7259
|
import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
|
|
7280
7260
|
var searchController = ({
|
|
7281
7261
|
viewData,
|
|
7282
|
-
|
|
7283
|
-
|
|
7284
|
-
|
|
7285
|
-
|
|
7286
|
-
searchMap
|
|
7262
|
+
model,
|
|
7263
|
+
domain,
|
|
7264
|
+
context,
|
|
7265
|
+
fieldsList
|
|
7287
7266
|
}) => {
|
|
7267
|
+
const { env } = (0, provider_exports.useEnv)();
|
|
7288
7268
|
const [filterBy, setFilterBy] = useState15(null);
|
|
7289
7269
|
const [searchBy, setSearchBy] = useState15(null);
|
|
7290
7270
|
const [groupBy, setGroupBy] = useState15(null);
|
|
7291
7271
|
const [selectedTags, setSelectedTags] = useState15(null);
|
|
7292
7272
|
const [searchString, setSearchString] = useState15("");
|
|
7293
|
-
const
|
|
7294
|
-
const
|
|
7295
|
-
const
|
|
7273
|
+
const [searchMap, setSearchMap] = useState15({});
|
|
7274
|
+
const actionContext = typeof context === "string" ? evalJSONContext8(context) : context;
|
|
7275
|
+
const contextSearch = { ...env.context, ...actionContext };
|
|
7276
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : evalJSONDomain7(domain, contextSearch) : [];
|
|
7296
7277
|
const clearSearch = () => {
|
|
7297
7278
|
setFilterBy([]);
|
|
7298
7279
|
setGroupBy([]);
|
|
@@ -7337,9 +7318,8 @@ var searchController = ({
|
|
|
7337
7318
|
}
|
|
7338
7319
|
};
|
|
7339
7320
|
useEffect16(() => {
|
|
7340
|
-
clearSearch();
|
|
7341
7321
|
fetchData();
|
|
7342
|
-
}, [
|
|
7322
|
+
}, [model, viewData]);
|
|
7343
7323
|
const onChangeSearchInput = (search_string) => {
|
|
7344
7324
|
setSearchString(search_string);
|
|
7345
7325
|
};
|
|
@@ -7376,27 +7356,27 @@ var searchController = ({
|
|
|
7376
7356
|
};
|
|
7377
7357
|
const formatDomain = () => {
|
|
7378
7358
|
if (domainAction) {
|
|
7379
|
-
const
|
|
7359
|
+
const domain2 = [];
|
|
7380
7360
|
if (domainAction?.length > 0) {
|
|
7381
|
-
if (Object.keys(searchMap).
|
|
7382
|
-
|
|
7361
|
+
if (Object.keys(searchMap).some((key) => !key.includes(SearchType.GROUP))) {
|
|
7362
|
+
domain2.push("&");
|
|
7383
7363
|
}
|
|
7384
7364
|
domainAction.forEach((domainItem) => {
|
|
7385
|
-
|
|
7365
|
+
domain2.push(domainItem);
|
|
7386
7366
|
});
|
|
7387
7367
|
}
|
|
7388
7368
|
Object.keys(searchMap).forEach((key, keyIndex, keys) => {
|
|
7389
7369
|
if (!key?.includes(SearchType.GROUP)) {
|
|
7390
7370
|
if (keys.length > 1 && keyIndex < keys.length - 1) {
|
|
7391
|
-
|
|
7371
|
+
domain2.push("&");
|
|
7392
7372
|
}
|
|
7393
7373
|
const valuesOfKey = searchMap[key];
|
|
7394
7374
|
valuesOfKey.forEach((value, index) => {
|
|
7395
7375
|
if (index < valuesOfKey.length - 1) {
|
|
7396
|
-
|
|
7376
|
+
domain2.push("|");
|
|
7397
7377
|
}
|
|
7398
7378
|
if (value.domain) {
|
|
7399
|
-
|
|
7379
|
+
domain2.push(...value.domain);
|
|
7400
7380
|
return;
|
|
7401
7381
|
}
|
|
7402
7382
|
let valueDomainItem = value?.value;
|
|
@@ -7412,11 +7392,11 @@ var searchController = ({
|
|
|
7412
7392
|
}
|
|
7413
7393
|
}
|
|
7414
7394
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
7415
|
-
|
|
7395
|
+
domain2.push([value.name, operator, valueDomainItem]);
|
|
7416
7396
|
});
|
|
7417
7397
|
}
|
|
7418
7398
|
});
|
|
7419
|
-
return [...
|
|
7399
|
+
return [...domain2];
|
|
7420
7400
|
}
|
|
7421
7401
|
};
|
|
7422
7402
|
const setTagSearch = useCallback3(
|
|
@@ -7447,16 +7427,16 @@ var searchController = ({
|
|
|
7447
7427
|
const contexts = [];
|
|
7448
7428
|
let groupValues = [];
|
|
7449
7429
|
objValues?.forEach((objValue) => {
|
|
7450
|
-
const { context, value, active, groupIndex: groupIndex2, isDefault } = objValue;
|
|
7430
|
+
const { context: context2, value, active, groupIndex: groupIndex2, isDefault } = objValue;
|
|
7451
7431
|
const indexAppend = groupIndex2 != null ? groupIndex2 : viewData?.views?.search?.filters_by?.length ?? 0;
|
|
7452
7432
|
contexts.push(
|
|
7453
|
-
...Array.isArray(
|
|
7433
|
+
...Array.isArray(context2?.group_by) ? context2.group_by.map((item) => ({ group_by: item })) : [context2]
|
|
7454
7434
|
);
|
|
7455
7435
|
groupValues[indexAppend] = {
|
|
7456
7436
|
contexts: [
|
|
7457
|
-
...Array.isArray(
|
|
7437
|
+
...Array.isArray(context2?.group_by) ? context2.group_by.map((item) => ({
|
|
7458
7438
|
group_by: item
|
|
7459
|
-
})) : [
|
|
7439
|
+
})) : [context2]
|
|
7460
7440
|
],
|
|
7461
7441
|
strings: isDefault ? [value] : [...groupValues[indexAppend]?.strings ?? [], value]
|
|
7462
7442
|
};
|
|
@@ -7483,39 +7463,38 @@ var searchController = ({
|
|
|
7483
7463
|
[searchMap]
|
|
7484
7464
|
);
|
|
7485
7465
|
useEffect16(() => {
|
|
7486
|
-
setSelectedTags(null);
|
|
7487
7466
|
setTagSearch(searchMap);
|
|
7488
7467
|
}, [searchMap]);
|
|
7489
7468
|
const handleAddTagSearch = (tag) => {
|
|
7490
7469
|
const {
|
|
7491
|
-
domain,
|
|
7470
|
+
domain: domain2,
|
|
7492
7471
|
groupIndex,
|
|
7493
7472
|
value,
|
|
7494
7473
|
type,
|
|
7495
7474
|
title,
|
|
7496
|
-
context,
|
|
7475
|
+
context: context2,
|
|
7497
7476
|
active,
|
|
7498
7477
|
dataIndex
|
|
7499
7478
|
} = tag;
|
|
7500
|
-
const domainFormat = new domainHelper2.Domain(
|
|
7479
|
+
const domainFormat = new domainHelper2.Domain(domain2);
|
|
7501
7480
|
if (type === SearchType.FILTER) {
|
|
7502
7481
|
addSearchItems(`${SearchType.FILTER}_${groupIndex}`, {
|
|
7503
7482
|
...tag,
|
|
7504
|
-
domain:
|
|
7483
|
+
domain: domain2 ? domainFormat.toList(context2) : null
|
|
7505
7484
|
});
|
|
7506
7485
|
} else if (type === SearchType.SEARCH) {
|
|
7507
7486
|
addSearchItems(`${SearchType.SEARCH}_${String(dataIndex)}`, {
|
|
7508
7487
|
...tag,
|
|
7509
|
-
domain:
|
|
7510
|
-
...
|
|
7488
|
+
domain: domain2 ? domainFormat.toList({
|
|
7489
|
+
...context2,
|
|
7511
7490
|
self: value
|
|
7512
7491
|
}) : null
|
|
7513
7492
|
});
|
|
7514
7493
|
} else if (type === SearchType.GROUP) {
|
|
7515
7494
|
addSearchItems(`${SearchType.GROUP}`, {
|
|
7516
7495
|
...tag,
|
|
7517
|
-
domain:
|
|
7518
|
-
context,
|
|
7496
|
+
domain: domain2 ? domainFormat.toList({
|
|
7497
|
+
context: context2,
|
|
7519
7498
|
self: value
|
|
7520
7499
|
}) : null
|
|
7521
7500
|
});
|
|
@@ -7535,7 +7514,8 @@ var searchController = ({
|
|
|
7535
7514
|
removeSearchItems,
|
|
7536
7515
|
onSearchString: onChangeSearchInput,
|
|
7537
7516
|
handleAddTagSearch,
|
|
7538
|
-
domain: formatDomain()
|
|
7517
|
+
domain: formatDomain(),
|
|
7518
|
+
context: contextSearch
|
|
7539
7519
|
};
|
|
7540
7520
|
};
|
|
7541
7521
|
|
package/dist/types.d.mts
CHANGED