@fctc/widget-logic 2.2.2 → 2.2.3
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.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +271 -153
- package/dist/index.mjs +264 -142
- package/dist/types.d.mts +0 -2
- package/dist/types.d.ts +0 -2
- package/dist/widget.d.mts +46 -49
- package/dist/widget.d.ts +46 -49
- package/dist/widget.js +271 -153
- package/dist/widget.mjs +263 -142
- package/package.json +96 -96
package/dist/index.js
CHANGED
|
@@ -4068,6 +4068,7 @@ __export(index_exports, {
|
|
|
4068
4068
|
searchController: () => searchController,
|
|
4069
4069
|
setStorageItemAsync: () => setStorageItemAsync,
|
|
4070
4070
|
statusDropdownController: () => statusDropdownController,
|
|
4071
|
+
tableBodyController: () => tableBodyController,
|
|
4071
4072
|
tableController: () => tableController,
|
|
4072
4073
|
tableGroupController: () => tableGroupController,
|
|
4073
4074
|
tableHeadController: () => tableHeadController,
|
|
@@ -5289,7 +5290,6 @@ var many2oneFieldController = (props) => {
|
|
|
5289
5290
|
options: fieldOptions,
|
|
5290
5291
|
showDetail
|
|
5291
5292
|
} = props;
|
|
5292
|
-
const { env } = (0, provider_exports.useEnv)();
|
|
5293
5293
|
const [options, setOptions] = (0, import_react15.useState)([]);
|
|
5294
5294
|
const [inputValue, setInputValue] = (0, import_react15.useState)("");
|
|
5295
5295
|
const [debouncedInputValue] = useDebounce(inputValue, 1e3);
|
|
@@ -5299,14 +5299,15 @@ var many2oneFieldController = (props) => {
|
|
|
5299
5299
|
const [domainObject, setDomainObject] = (0, import_react15.useState)(null);
|
|
5300
5300
|
const actionData = sessionStorageUtils.getActionData();
|
|
5301
5301
|
const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
|
|
5302
|
+
const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
|
|
5302
5303
|
const initValue = methods?.getValues(name);
|
|
5303
5304
|
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
5304
5305
|
const contextObject = {
|
|
5305
5306
|
...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
|
|
5306
5307
|
...fieldContext,
|
|
5307
|
-
...
|
|
5308
|
+
...context
|
|
5308
5309
|
};
|
|
5309
|
-
const { useGetSelection:
|
|
5310
|
+
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
5310
5311
|
const data = {
|
|
5311
5312
|
model: relation,
|
|
5312
5313
|
domain: domainObject,
|
|
@@ -5322,7 +5323,7 @@ var many2oneFieldController = (props) => {
|
|
|
5322
5323
|
data: dataOfSelection,
|
|
5323
5324
|
refetch,
|
|
5324
5325
|
isFetching
|
|
5325
|
-
} =
|
|
5326
|
+
} = useGetSelection3({
|
|
5326
5327
|
data,
|
|
5327
5328
|
queryKey,
|
|
5328
5329
|
enabled: false
|
|
@@ -5476,49 +5477,52 @@ var many2oneButtonController = (props) => {
|
|
|
5476
5477
|
|
|
5477
5478
|
// src/widget/basic/many2many-field/controller.ts
|
|
5478
5479
|
var import_react16 = require("react");
|
|
5480
|
+
var import_store8 = require("@fctc/interface-logic/store");
|
|
5479
5481
|
var import_utils7 = require("@fctc/interface-logic/utils");
|
|
5480
5482
|
var many2manyFieldController = (props) => {
|
|
5481
5483
|
const {
|
|
5482
5484
|
relation,
|
|
5483
5485
|
domain,
|
|
5484
5486
|
context,
|
|
5485
|
-
options,
|
|
5486
5487
|
tab,
|
|
5487
|
-
|
|
5488
|
+
model,
|
|
5489
|
+
aid,
|
|
5490
|
+
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5491
|
+
fields,
|
|
5492
|
+
setFields,
|
|
5488
5493
|
groupByDomain,
|
|
5489
|
-
|
|
5490
|
-
|
|
5494
|
+
page,
|
|
5495
|
+
options,
|
|
5496
|
+
sessionStorageUtils
|
|
5491
5497
|
} = props;
|
|
5498
|
+
const appDispatch = (0, import_store8.useAppDispatch)();
|
|
5499
|
+
const actionData = sessionStorageUtils.getActionData();
|
|
5500
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5501
|
+
const [order, setOrder] = (0, import_react16.useState)();
|
|
5502
|
+
const [isLoadedData, setIsLoadedData] = (0, import_react16.useState)(false);
|
|
5503
|
+
const [domainMany2Many, setDomainMany2Many] = (0, import_react16.useState)(domain);
|
|
5492
5504
|
const { env } = (0, provider_exports.useEnv)();
|
|
5493
5505
|
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5494
|
-
const [order, setOrder] = (0, import_react16.useState)();
|
|
5495
|
-
const [page, setPage] = (0, import_react16.useState)(0);
|
|
5496
|
-
const [domainMany2Many, setDomainMany2Many] = (0, import_react16.useState)(null);
|
|
5497
|
-
const [debouncedPage] = useDebounce(page, 500);
|
|
5498
|
-
const contextObject = {
|
|
5499
|
-
...env.context,
|
|
5500
|
-
...context || {}
|
|
5501
|
-
};
|
|
5502
5506
|
const viewParams = {
|
|
5503
5507
|
model: relation,
|
|
5504
5508
|
views: [
|
|
5505
5509
|
[false, "list"],
|
|
5506
5510
|
[false, "search"]
|
|
5507
5511
|
],
|
|
5508
|
-
context
|
|
5512
|
+
context
|
|
5509
5513
|
};
|
|
5510
|
-
const { data: viewResponse } = useGetView2(viewParams,
|
|
5514
|
+
const { data: viewResponse } = useGetView2(viewParams, actionData);
|
|
5511
5515
|
const baseModel = (0, import_react16.useMemo)(
|
|
5512
5516
|
() => ({
|
|
5513
5517
|
name: String(relation),
|
|
5514
5518
|
view: viewResponse || {},
|
|
5515
|
-
actContext:
|
|
5519
|
+
actContext: context,
|
|
5516
5520
|
fields: [
|
|
5517
5521
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5518
5522
|
...tab?.fields ? tab.fields : []
|
|
5519
5523
|
]
|
|
5520
5524
|
}),
|
|
5521
|
-
[
|
|
5525
|
+
[model, viewResponse]
|
|
5522
5526
|
);
|
|
5523
5527
|
const initModel = (0, hooks_exports.useModel)();
|
|
5524
5528
|
const modelInstance = (0, import_react16.useMemo)(() => {
|
|
@@ -5537,15 +5541,26 @@ var many2manyFieldController = (props) => {
|
|
|
5537
5541
|
const optionsObject = tab?.options ? (0, import_utils7.evalJSONContext)(tab?.options) : (options ? (0, import_utils7.evalJSONContext)(options) : {}) || {};
|
|
5538
5542
|
const fetchData = async () => {
|
|
5539
5543
|
try {
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5544
|
+
setDomainMany2Many(domain);
|
|
5545
|
+
appDispatch((0, import_store8.setFirstDomain)(domain));
|
|
5546
|
+
appDispatch((0, import_store8.setViewDataStore)(viewResponse));
|
|
5547
|
+
const modalData = viewResponse?.views?.list?.fields.map((field) => ({
|
|
5548
|
+
...viewResponse?.models?.[String(model)]?.[field?.name],
|
|
5549
|
+
...field
|
|
5550
|
+
}));
|
|
5551
|
+
if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
|
|
5552
|
+
setFields({
|
|
5553
|
+
...fields,
|
|
5554
|
+
[`${aid}_${relation}_popupmany2many`]: modalData
|
|
5555
|
+
});
|
|
5556
|
+
}
|
|
5557
|
+
appDispatch((0, import_store8.setPage)(0));
|
|
5543
5558
|
} catch (err) {
|
|
5544
5559
|
console.log(err);
|
|
5545
5560
|
}
|
|
5546
5561
|
};
|
|
5547
5562
|
const queryKey = [
|
|
5548
|
-
`view-${relation}`,
|
|
5563
|
+
`view-${relation}-${aid}`,
|
|
5549
5564
|
specification,
|
|
5550
5565
|
domainMany2Many,
|
|
5551
5566
|
debouncedPage,
|
|
@@ -5558,16 +5573,16 @@ var many2manyFieldController = (props) => {
|
|
|
5558
5573
|
domain: domainMany2Many,
|
|
5559
5574
|
offset: debouncedPage * 10,
|
|
5560
5575
|
limit: 10,
|
|
5561
|
-
context
|
|
5576
|
+
context,
|
|
5562
5577
|
fields: groupByDomain?.fields,
|
|
5563
5578
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5564
5579
|
sort: order ? order : default_order ? (0, import_utils7.formatSortingString)(default_order) : ""
|
|
5565
5580
|
};
|
|
5566
|
-
const enabled =
|
|
5581
|
+
const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5567
5582
|
const {
|
|
5568
5583
|
data: dataResponse,
|
|
5569
|
-
isLoading,
|
|
5570
|
-
isFetched,
|
|
5584
|
+
isLoading: isDataLoading,
|
|
5585
|
+
isFetched: isDataResponseFetched,
|
|
5571
5586
|
isPlaceholderData
|
|
5572
5587
|
} = useGetListData3(data, queryKey, enabled);
|
|
5573
5588
|
(0, import_react16.useEffect)(() => {
|
|
@@ -5575,56 +5590,75 @@ var many2manyFieldController = (props) => {
|
|
|
5575
5590
|
fetchData();
|
|
5576
5591
|
}
|
|
5577
5592
|
return () => {
|
|
5578
|
-
|
|
5579
|
-
|
|
5593
|
+
appDispatch((0, import_store8.setGroupByDomain)(null));
|
|
5594
|
+
setFields((prevFields) => ({
|
|
5595
|
+
...prevFields,
|
|
5596
|
+
[`${aid}_${relation}_popupmany2many`]: null
|
|
5597
|
+
}));
|
|
5598
|
+
appDispatch((0, import_store8.setPage)(0));
|
|
5599
|
+
setSelectedRowKeys4([]);
|
|
5580
5600
|
setDomainMany2Many(null);
|
|
5601
|
+
setIsLoadedData(false);
|
|
5581
5602
|
};
|
|
5582
5603
|
}, [viewResponse]);
|
|
5583
|
-
const { rows, columns, typeTable
|
|
5604
|
+
const { rows, columns, typeTable } = tableController({
|
|
5584
5605
|
data: {
|
|
5585
|
-
fields: viewResponse?.views?.list?.fields,
|
|
5606
|
+
fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
|
|
5586
5607
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5587
5608
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5588
|
-
context:
|
|
5609
|
+
context: { ...env.context, ...context },
|
|
5589
5610
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5590
5611
|
}
|
|
5591
5612
|
});
|
|
5592
|
-
const
|
|
5593
|
-
|
|
5594
|
-
model: relation
|
|
5595
|
-
context
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5613
|
+
const dataFormView = {
|
|
5614
|
+
id: null,
|
|
5615
|
+
model: relation,
|
|
5616
|
+
context
|
|
5617
|
+
};
|
|
5618
|
+
const {
|
|
5619
|
+
refetch,
|
|
5620
|
+
data: dataFormViewResponse,
|
|
5621
|
+
isSuccess
|
|
5622
|
+
} = useGetFormView({
|
|
5623
|
+
data: dataFormView,
|
|
5624
|
+
queryKey: [`form-view-action-${relation}`],
|
|
5625
|
+
enabled: false
|
|
5602
5626
|
});
|
|
5627
|
+
(0, import_react16.useEffect)(() => {
|
|
5628
|
+
if (isSuccess && dataFormViewResponse) {
|
|
5629
|
+
sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
|
|
5630
|
+
window.location.href = `/form/menu?model=${relation}`;
|
|
5631
|
+
}
|
|
5632
|
+
}, [isSuccess]);
|
|
5633
|
+
(0, import_react16.useEffect)(() => {
|
|
5634
|
+
if (domainMany2Many && !isLoadedData) {
|
|
5635
|
+
setIsLoadedData(true);
|
|
5636
|
+
}
|
|
5637
|
+
}, [domainMany2Many]);
|
|
5603
5638
|
const handleCreateNewOnPage = async () => {
|
|
5639
|
+
try {
|
|
5640
|
+
refetch();
|
|
5641
|
+
} catch (error) {
|
|
5642
|
+
console.log(error);
|
|
5643
|
+
}
|
|
5604
5644
|
};
|
|
5605
5645
|
return {
|
|
5606
5646
|
handleCreateNewOnPage,
|
|
5607
5647
|
optionsObject,
|
|
5608
|
-
totalRows: dataResponse?.length ?? 0,
|
|
5609
5648
|
rows,
|
|
5610
5649
|
columns,
|
|
5611
|
-
onToggleColumnOptional,
|
|
5612
5650
|
typeTable,
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
isPlaceholderData
|
|
5616
|
-
setPage,
|
|
5617
|
-
page,
|
|
5618
|
-
viewData: viewResponse,
|
|
5619
|
-
domain: domainMany2Many,
|
|
5620
|
-
setDomain: setDomainMany2Many,
|
|
5621
|
-
searchController: searchControllers
|
|
5651
|
+
isDataLoading,
|
|
5652
|
+
isDataResponseFetched,
|
|
5653
|
+
isPlaceholderData
|
|
5622
5654
|
};
|
|
5623
5655
|
};
|
|
5624
5656
|
|
|
5625
5657
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5626
5658
|
var import_react17 = require("react");
|
|
5627
5659
|
var import_constants4 = require("@fctc/interface-logic/constants");
|
|
5660
|
+
var import_environment8 = require("@fctc/interface-logic/environment");
|
|
5661
|
+
var import_hooks15 = require("@fctc/interface-logic/hooks");
|
|
5628
5662
|
var import_utils8 = require("@fctc/interface-logic/utils");
|
|
5629
5663
|
var many2manyTagsController = (props) => {
|
|
5630
5664
|
const {
|
|
@@ -5636,8 +5670,7 @@ var many2manyTagsController = (props) => {
|
|
|
5636
5670
|
placeholderNoOption
|
|
5637
5671
|
} = props;
|
|
5638
5672
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
5639
|
-
const
|
|
5640
|
-
const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
|
|
5673
|
+
const env = (0, import_environment8.getEnv)();
|
|
5641
5674
|
const addtionalFields = optionsFields ? (0, import_utils8.evalJSONContext)(optionsFields) : null;
|
|
5642
5675
|
const domainObject = (0, import_react17.useMemo)(
|
|
5643
5676
|
() => (0, import_utils8.evalJSONDomain)(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
@@ -5656,7 +5689,7 @@ var many2manyTagsController = (props) => {
|
|
|
5656
5689
|
enabled: true,
|
|
5657
5690
|
context: env.context
|
|
5658
5691
|
};
|
|
5659
|
-
const { data: dataOfSelection } =
|
|
5692
|
+
const { data: dataOfSelection } = (0, import_hooks15.useGetSelection)({
|
|
5660
5693
|
data,
|
|
5661
5694
|
queryKey: [`data_${relation}`, domainObject]
|
|
5662
5695
|
});
|
|
@@ -5676,6 +5709,7 @@ var many2manyTagsController = (props) => {
|
|
|
5676
5709
|
options,
|
|
5677
5710
|
customNoOptionsMessage,
|
|
5678
5711
|
tranfer,
|
|
5712
|
+
dataOfSelection,
|
|
5679
5713
|
isUser
|
|
5680
5714
|
};
|
|
5681
5715
|
};
|
|
@@ -5684,7 +5718,7 @@ var many2manyTagsController = (props) => {
|
|
|
5684
5718
|
var import_react18 = require("react");
|
|
5685
5719
|
var import_utils9 = require("@fctc/interface-logic/utils");
|
|
5686
5720
|
var durationController = (props) => {
|
|
5687
|
-
const { relation, domain, formValues, name, id, model, onRefetch
|
|
5721
|
+
const { relation, domain, formValues, name, id, model, onRefetch } = props;
|
|
5688
5722
|
const specification = {
|
|
5689
5723
|
id: 0,
|
|
5690
5724
|
name: "",
|
|
@@ -5708,11 +5742,7 @@ var durationController = (props) => {
|
|
|
5708
5742
|
},
|
|
5709
5743
|
sort: ""
|
|
5710
5744
|
};
|
|
5711
|
-
const { data: dataResponse } = useGetListData3(
|
|
5712
|
-
listDataProps,
|
|
5713
|
-
queryKey,
|
|
5714
|
-
enabled
|
|
5715
|
-
);
|
|
5745
|
+
const { data: dataResponse } = useGetListData3(listDataProps, queryKey);
|
|
5716
5746
|
const { mutate: fetchChangeStatus } = useChangeStatus();
|
|
5717
5747
|
const handleClick = async (stage_id) => {
|
|
5718
5748
|
setDisabled(true);
|
|
@@ -5748,28 +5778,41 @@ var durationController = (props) => {
|
|
|
5748
5778
|
};
|
|
5749
5779
|
|
|
5750
5780
|
// src/widget/basic/priority-field/controller.ts
|
|
5781
|
+
var import_hooks16 = require("@fctc/interface-logic/hooks");
|
|
5751
5782
|
var import_utils10 = require("@fctc/interface-logic/utils");
|
|
5752
5783
|
var priorityFieldController = (props) => {
|
|
5753
|
-
const {
|
|
5784
|
+
const {
|
|
5785
|
+
value,
|
|
5786
|
+
isForm,
|
|
5787
|
+
name,
|
|
5788
|
+
methods,
|
|
5789
|
+
onChange,
|
|
5790
|
+
model,
|
|
5791
|
+
selection,
|
|
5792
|
+
id,
|
|
5793
|
+
actionData,
|
|
5794
|
+
viewData,
|
|
5795
|
+
context
|
|
5796
|
+
} = props;
|
|
5754
5797
|
const _context = { ...(0, import_utils10.evalJSONContext)(actionData?.context) };
|
|
5755
5798
|
const contextObject = { ...context, ..._context };
|
|
5756
|
-
const
|
|
5757
|
-
const
|
|
5799
|
+
const defaultPriority = parseInt(value) + 1;
|
|
5800
|
+
const label = viewData?.models?.[model]?.[name ?? ""]?.string ?? name;
|
|
5801
|
+
const { mutateAsync: fetchSave } = (0, import_hooks16.useSave)();
|
|
5758
5802
|
const savePriorities = async ({
|
|
5759
|
-
value,
|
|
5803
|
+
value: value2,
|
|
5760
5804
|
resetPriority
|
|
5761
5805
|
}) => {
|
|
5762
|
-
const priorityValue =
|
|
5806
|
+
const priorityValue = value2 <= 0 ? 0 : value2 - 1;
|
|
5763
5807
|
try {
|
|
5764
5808
|
fetchSave({
|
|
5765
|
-
ids:
|
|
5766
|
-
data: { [
|
|
5767
|
-
model:
|
|
5768
|
-
context: contextObject
|
|
5769
|
-
specification
|
|
5809
|
+
ids: id ? [id] : [],
|
|
5810
|
+
data: { [name ?? ""]: String(priorityValue) },
|
|
5811
|
+
model: model ?? "",
|
|
5812
|
+
context: contextObject
|
|
5770
5813
|
});
|
|
5771
5814
|
if (typeof onChange === "function") {
|
|
5772
|
-
onChange(
|
|
5815
|
+
onChange(name ?? "", String(priorityValue));
|
|
5773
5816
|
}
|
|
5774
5817
|
} catch (error) {
|
|
5775
5818
|
if (resetPriority) {
|
|
@@ -5778,7 +5821,14 @@ var priorityFieldController = (props) => {
|
|
|
5778
5821
|
}
|
|
5779
5822
|
};
|
|
5780
5823
|
return {
|
|
5781
|
-
|
|
5824
|
+
selection,
|
|
5825
|
+
isForm,
|
|
5826
|
+
methods,
|
|
5827
|
+
defaultPriority,
|
|
5828
|
+
savePriorities,
|
|
5829
|
+
label,
|
|
5830
|
+
id,
|
|
5831
|
+
onChange
|
|
5782
5832
|
};
|
|
5783
5833
|
};
|
|
5784
5834
|
|
|
@@ -6741,11 +6791,11 @@ var import_utils12 = require("@fctc/interface-logic/utils");
|
|
|
6741
6791
|
var colorFieldController = (props) => {
|
|
6742
6792
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
6743
6793
|
const { env } = (0, provider_exports.useEnv)();
|
|
6744
|
-
const { useSave:
|
|
6794
|
+
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
6745
6795
|
const _context = { ...(0, import_utils12.evalJSONContext)(actionData?.context) || {} };
|
|
6746
6796
|
const contextObject = { ...env.context, ..._context };
|
|
6747
6797
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
6748
|
-
const { mutate: onSave } =
|
|
6798
|
+
const { mutate: onSave } = useSave3();
|
|
6749
6799
|
const savePickColor = async (colorObject) => {
|
|
6750
6800
|
const { id } = colorObject;
|
|
6751
6801
|
if (value === id) return;
|
|
@@ -6867,36 +6917,103 @@ var binaryFieldController = (props) => {
|
|
|
6867
6917
|
};
|
|
6868
6918
|
};
|
|
6869
6919
|
|
|
6920
|
+
// src/widget/advance/table/table-body/controller.ts
|
|
6921
|
+
var import_store9 = require("@fctc/interface-logic/store");
|
|
6922
|
+
var import_react22 = require("react");
|
|
6923
|
+
var tableBodyController = (props) => {
|
|
6924
|
+
const {
|
|
6925
|
+
checkedAll,
|
|
6926
|
+
checkboxRef,
|
|
6927
|
+
setIsAutoSelect,
|
|
6928
|
+
selectedRowKeys,
|
|
6929
|
+
row,
|
|
6930
|
+
isAutoSelect,
|
|
6931
|
+
selectedRowKeysRef,
|
|
6932
|
+
onClickRow
|
|
6933
|
+
} = props;
|
|
6934
|
+
const appDispatch = (0, import_store9.useAppDispatch)();
|
|
6935
|
+
const checked = (0, import_react22.useMemo)(() => {
|
|
6936
|
+
if (!row?.id) return false;
|
|
6937
|
+
if (selectedRowKeys?.includes(row.id)) {
|
|
6938
|
+
return true;
|
|
6939
|
+
}
|
|
6940
|
+
return checkedAll;
|
|
6941
|
+
}, [row?.id, selectedRowKeys, checkedAll]);
|
|
6942
|
+
const handleCheckBoxSingle = (event) => {
|
|
6943
|
+
event.stopPropagation();
|
|
6944
|
+
if (checkedAll) {
|
|
6945
|
+
checkboxRef.current = "uncheck";
|
|
6946
|
+
setIsAutoSelect(true);
|
|
6947
|
+
return;
|
|
6948
|
+
}
|
|
6949
|
+
const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
|
|
6950
|
+
console.log("newSelectedRowKeys", newSelectedRowKeys);
|
|
6951
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(newSelectedRowKeys));
|
|
6952
|
+
};
|
|
6953
|
+
const handleClickRow = (col, row2) => {
|
|
6954
|
+
onClickRow(col, row2);
|
|
6955
|
+
};
|
|
6956
|
+
(0, import_react22.useEffect)(() => {
|
|
6957
|
+
if (!row?.id) return;
|
|
6958
|
+
if (isAutoSelect) {
|
|
6959
|
+
if (checkboxRef?.current === "uncheck") {
|
|
6960
|
+
const filtered = selectedRowKeysRef.current.filter(
|
|
6961
|
+
(id) => id !== row.id
|
|
6962
|
+
);
|
|
6963
|
+
selectedRowKeysRef.current = filtered;
|
|
6964
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(filtered));
|
|
6965
|
+
} else {
|
|
6966
|
+
const unique = Array.from(
|
|
6967
|
+
/* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
|
|
6968
|
+
);
|
|
6969
|
+
selectedRowKeysRef.current = unique;
|
|
6970
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(unique));
|
|
6971
|
+
}
|
|
6972
|
+
}
|
|
6973
|
+
}, [isAutoSelect]);
|
|
6974
|
+
(0, import_react22.useEffect)(() => {
|
|
6975
|
+
if (!checkedAll) {
|
|
6976
|
+
checkboxRef.current = "enabled";
|
|
6977
|
+
false;
|
|
6978
|
+
}
|
|
6979
|
+
}, [checkedAll]);
|
|
6980
|
+
return {
|
|
6981
|
+
handleCheckBoxSingle,
|
|
6982
|
+
checked,
|
|
6983
|
+
handleClickRow
|
|
6984
|
+
};
|
|
6985
|
+
};
|
|
6986
|
+
|
|
6870
6987
|
// src/widget/advance/table/table-head/controller.ts
|
|
6871
|
-
var
|
|
6988
|
+
var import_store10 = require("@fctc/interface-logic/store");
|
|
6872
6989
|
var tableHeadController = (props) => {
|
|
6873
6990
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6874
|
-
const appDispatch = (0,
|
|
6875
|
-
const { groupByDomain } = (0,
|
|
6991
|
+
const appDispatch = (0, import_store10.useAppDispatch)();
|
|
6992
|
+
const { groupByDomain } = (0, import_store10.useAppSelector)(import_store10.selectSearch);
|
|
6876
6993
|
const handleCheckBoxAll = (event) => {
|
|
6877
6994
|
if (event?.target?.checked && typeTable === "list") {
|
|
6878
6995
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6879
|
-
appDispatch((0,
|
|
6996
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(allRowKeys));
|
|
6880
6997
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6881
6998
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6882
6999
|
const ids = Array.from(rowsIDs)?.map(
|
|
6883
7000
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6884
7001
|
);
|
|
6885
7002
|
if (ids?.length > 0) {
|
|
6886
|
-
appDispatch((0,
|
|
7003
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(ids));
|
|
6887
7004
|
} else {
|
|
6888
7005
|
const sum = countSum(
|
|
6889
7006
|
rows,
|
|
6890
7007
|
typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
|
|
6891
7008
|
);
|
|
6892
7009
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6893
|
-
appDispatch((0,
|
|
7010
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(keys));
|
|
6894
7011
|
}
|
|
6895
7012
|
if (selectedRowKeysRef) {
|
|
6896
7013
|
selectedRowKeysRef.current = [];
|
|
6897
7014
|
}
|
|
6898
7015
|
} else {
|
|
6899
|
-
appDispatch((0,
|
|
7016
|
+
appDispatch((0, import_store10.setSelectedRowKeys)([]));
|
|
6900
7017
|
}
|
|
6901
7018
|
};
|
|
6902
7019
|
return {
|
|
@@ -6905,12 +7022,12 @@ var tableHeadController = (props) => {
|
|
|
6905
7022
|
};
|
|
6906
7023
|
|
|
6907
7024
|
// src/widget/advance/table/table-view/controller.ts
|
|
6908
|
-
var
|
|
6909
|
-
var
|
|
7025
|
+
var import_react23 = require("react");
|
|
7026
|
+
var import_store11 = require("@fctc/interface-logic/store");
|
|
6910
7027
|
var import_utils14 = require("@fctc/interface-logic/utils");
|
|
6911
7028
|
var tableController = ({ data }) => {
|
|
6912
|
-
const [rows, setRows] = (0,
|
|
6913
|
-
const [columns, setColumns] = (0,
|
|
7029
|
+
const [rows, setRows] = (0, import_react23.useState)(data.records || []);
|
|
7030
|
+
const [columns, setColumns] = (0, import_react23.useState)([]);
|
|
6914
7031
|
const dataModelFields = data.fields?.map((field) => {
|
|
6915
7032
|
return {
|
|
6916
7033
|
...data.dataModel?.[field?.name],
|
|
@@ -6938,7 +7055,7 @@ var tableController = ({ data }) => {
|
|
|
6938
7055
|
return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
|
|
6939
7056
|
});
|
|
6940
7057
|
};
|
|
6941
|
-
(0,
|
|
7058
|
+
(0, import_react23.useEffect)(() => {
|
|
6942
7059
|
setRows(transformData(data.records || null));
|
|
6943
7060
|
}, [data.records]);
|
|
6944
7061
|
const handleGetColumns = () => {
|
|
@@ -6959,7 +7076,7 @@ var tableController = ({ data }) => {
|
|
|
6959
7076
|
}
|
|
6960
7077
|
return cols;
|
|
6961
7078
|
};
|
|
6962
|
-
(0,
|
|
7079
|
+
(0, import_react23.useEffect)(() => {
|
|
6963
7080
|
const columns2 = handleGetColumns();
|
|
6964
7081
|
setColumns(columns2);
|
|
6965
7082
|
}, [data.records]);
|
|
@@ -6984,9 +7101,9 @@ var tableController = ({ data }) => {
|
|
|
6984
7101
|
};
|
|
6985
7102
|
|
|
6986
7103
|
// src/widget/advance/table/table-group/controller.ts
|
|
6987
|
-
var
|
|
6988
|
-
var
|
|
6989
|
-
var
|
|
7104
|
+
var import_react24 = require("react");
|
|
7105
|
+
var import_hooks17 = require("@fctc/interface-logic/hooks");
|
|
7106
|
+
var import_store12 = require("@fctc/interface-logic/store");
|
|
6990
7107
|
|
|
6991
7108
|
// src/environment.ts
|
|
6992
7109
|
var environment_exports = {};
|
|
@@ -7013,18 +7130,18 @@ var tableGroupController = (props) => {
|
|
|
7013
7130
|
setIsAutoSelect,
|
|
7014
7131
|
selectedRowKeysRef
|
|
7015
7132
|
} = props;
|
|
7016
|
-
const [pageGroup, setPageGroup] = (0,
|
|
7017
|
-
const { groupByDomain, selectedTags } = (0,
|
|
7018
|
-
const { selectedRowKeys } = (0,
|
|
7019
|
-
const appDispatch = (0,
|
|
7020
|
-
const { toDataJS } = (0,
|
|
7133
|
+
const [pageGroup, setPageGroup] = (0, import_react24.useState)(0);
|
|
7134
|
+
const { groupByDomain, selectedTags } = (0, import_store12.useAppSelector)(import_store12.selectSearch);
|
|
7135
|
+
const { selectedRowKeys } = (0, import_store12.useAppSelector)(import_store12.selectList);
|
|
7136
|
+
const appDispatch = (0, import_store12.useAppDispatch)();
|
|
7137
|
+
const { toDataJS } = (0, import_hooks17.useOdooDataTransform)();
|
|
7021
7138
|
const initVal = toDataJS(row, viewData, model);
|
|
7022
|
-
const [isShowGroup, setIsShowGroup] = (0,
|
|
7023
|
-
const [colEmptyGroup, setColEmptyGroup] = (0,
|
|
7139
|
+
const [isShowGroup, setIsShowGroup] = (0, import_react24.useState)(false);
|
|
7140
|
+
const [colEmptyGroup, setColEmptyGroup] = (0, import_react24.useState)({
|
|
7024
7141
|
fromStart: 1,
|
|
7025
7142
|
fromEnd: 1
|
|
7026
7143
|
});
|
|
7027
|
-
const processedData = (0,
|
|
7144
|
+
const processedData = (0, import_react24.useMemo)(() => {
|
|
7028
7145
|
const calculateColSpanEmpty = () => {
|
|
7029
7146
|
const startIndex = columns.findIndex(
|
|
7030
7147
|
(col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
|
|
@@ -7039,7 +7156,7 @@ var tableGroupController = (props) => {
|
|
|
7039
7156
|
};
|
|
7040
7157
|
return calculateColSpanEmpty();
|
|
7041
7158
|
}, [columns, row]);
|
|
7042
|
-
const shouldFetchData = (0,
|
|
7159
|
+
const shouldFetchData = (0, import_react24.useMemo)(() => {
|
|
7043
7160
|
return !!isShowGroup;
|
|
7044
7161
|
}, [isShowGroup]);
|
|
7045
7162
|
const enabled = shouldFetchData && !!processedData;
|
|
@@ -7064,7 +7181,7 @@ var tableGroupController = (props) => {
|
|
|
7064
7181
|
isPlaceholderData,
|
|
7065
7182
|
isLoading,
|
|
7066
7183
|
isFetching
|
|
7067
|
-
} = (0,
|
|
7184
|
+
} = (0, import_hooks17.useGetListData)(listDataProps, queryKey, enabled);
|
|
7068
7185
|
const {
|
|
7069
7186
|
columns: columnsGroup,
|
|
7070
7187
|
rows: rowsGroup,
|
|
@@ -7079,7 +7196,7 @@ var tableGroupController = (props) => {
|
|
|
7079
7196
|
}
|
|
7080
7197
|
});
|
|
7081
7198
|
const leftPadding = level > 1 ? level * 8 + "px" : "0px";
|
|
7082
|
-
(0,
|
|
7199
|
+
(0, import_react24.useEffect)(() => {
|
|
7083
7200
|
if (isShowGroup && selectedTags?.length > 0) {
|
|
7084
7201
|
setIsShowGroup(false);
|
|
7085
7202
|
}
|
|
@@ -7102,24 +7219,24 @@ var tableGroupController = (props) => {
|
|
|
7102
7219
|
const filteredIds = selectedRowKeys.filter(
|
|
7103
7220
|
(id) => !ids.includes(id)
|
|
7104
7221
|
);
|
|
7105
|
-
appDispatch((0,
|
|
7222
|
+
appDispatch((0, import_store12.setSelectedRowKeys)(filteredIds));
|
|
7106
7223
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
|
|
7107
7224
|
const clonedKeys = [...selectedRowKeys];
|
|
7108
|
-
appDispatch((0,
|
|
7109
|
-
setTimeout(() => appDispatch((0,
|
|
7225
|
+
appDispatch((0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]));
|
|
7226
|
+
setTimeout(() => appDispatch((0, import_store12.setSelectedRowKeys)(clonedKeys)), 500);
|
|
7110
7227
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
7111
7228
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
7112
|
-
appDispatch((0,
|
|
7229
|
+
appDispatch((0, import_store12.setSelectedRowKeys)(filteredKeys));
|
|
7113
7230
|
}
|
|
7114
7231
|
toggleShowGroup();
|
|
7115
7232
|
};
|
|
7116
|
-
(0,
|
|
7233
|
+
(0, import_react24.useEffect)(() => {
|
|
7117
7234
|
if (!isQueryFetched || !rowsGroup || !checkedAll || allIdsNull || typeTableGroup === "group") {
|
|
7118
7235
|
return;
|
|
7119
7236
|
}
|
|
7120
7237
|
const clonedKeys = [...selectedRowKeys];
|
|
7121
|
-
(0,
|
|
7122
|
-
setTimeout(() => (0,
|
|
7238
|
+
(0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]);
|
|
7239
|
+
setTimeout(() => (0, import_store12.setSelectedRowKeys)(clonedKeys), 500);
|
|
7123
7240
|
}, [isQueryFetched]);
|
|
7124
7241
|
return {
|
|
7125
7242
|
handleExpandChildGroup,
|
|
@@ -7156,24 +7273,23 @@ var tableGroupController = (props) => {
|
|
|
7156
7273
|
var import_constants5 = require("@fctc/interface-logic/constants");
|
|
7157
7274
|
var import_utils15 = require("@fctc/interface-logic/utils");
|
|
7158
7275
|
var import_moment2 = __toESM(require_moment());
|
|
7159
|
-
var
|
|
7276
|
+
var import_react25 = require("react");
|
|
7160
7277
|
var searchController = ({
|
|
7161
7278
|
viewData,
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7279
|
+
actionData,
|
|
7280
|
+
fieldsList,
|
|
7281
|
+
contextSearch,
|
|
7282
|
+
setSearchMap,
|
|
7283
|
+
searchMap
|
|
7166
7284
|
}) => {
|
|
7167
|
-
const
|
|
7168
|
-
const [
|
|
7169
|
-
const [
|
|
7170
|
-
const [
|
|
7171
|
-
const [
|
|
7172
|
-
const [
|
|
7173
|
-
const
|
|
7174
|
-
const
|
|
7175
|
-
const contextSearch = { ...env.context, ...actionContext };
|
|
7176
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils15.evalJSONDomain)(domain, contextSearch) : [];
|
|
7285
|
+
const [filterBy, setFilterBy] = (0, import_react25.useState)(null);
|
|
7286
|
+
const [searchBy, setSearchBy] = (0, import_react25.useState)(null);
|
|
7287
|
+
const [groupBy, setGroupBy] = (0, import_react25.useState)(null);
|
|
7288
|
+
const [selectedTags, setSelectedTags] = (0, import_react25.useState)(null);
|
|
7289
|
+
const [searchString, setSearchString] = (0, import_react25.useState)("");
|
|
7290
|
+
const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : (0, import_utils15.evalJSONDomain)(actionData?.domain, contextSearch) : [];
|
|
7291
|
+
const aid = actionData?.id;
|
|
7292
|
+
const model = actionData?.res_model;
|
|
7177
7293
|
const clearSearch = () => {
|
|
7178
7294
|
setFilterBy([]);
|
|
7179
7295
|
setGroupBy([]);
|
|
@@ -7217,9 +7333,10 @@ var searchController = ({
|
|
|
7217
7333
|
}
|
|
7218
7334
|
}
|
|
7219
7335
|
};
|
|
7220
|
-
(0,
|
|
7336
|
+
(0, import_react25.useEffect)(() => {
|
|
7337
|
+
clearSearch();
|
|
7221
7338
|
fetchData();
|
|
7222
|
-
}, [model, viewData]);
|
|
7339
|
+
}, [aid, model, viewData]);
|
|
7223
7340
|
const onChangeSearchInput = (search_string) => {
|
|
7224
7341
|
setSearchString(search_string);
|
|
7225
7342
|
};
|
|
@@ -7256,27 +7373,27 @@ var searchController = ({
|
|
|
7256
7373
|
};
|
|
7257
7374
|
const formatDomain = () => {
|
|
7258
7375
|
if (domainAction) {
|
|
7259
|
-
const
|
|
7376
|
+
const domain = [];
|
|
7260
7377
|
if (domainAction?.length > 0) {
|
|
7261
|
-
if (Object.keys(searchMap).
|
|
7262
|
-
|
|
7378
|
+
if (Object.keys(searchMap).length > 0) {
|
|
7379
|
+
domain.push("&");
|
|
7263
7380
|
}
|
|
7264
7381
|
domainAction.forEach((domainItem) => {
|
|
7265
|
-
|
|
7382
|
+
domain.push(domainItem);
|
|
7266
7383
|
});
|
|
7267
7384
|
}
|
|
7268
7385
|
Object.keys(searchMap).forEach((key, keyIndex, keys) => {
|
|
7269
7386
|
if (!key?.includes(import_constants5.SearchType.GROUP)) {
|
|
7270
7387
|
if (keys.length > 1 && keyIndex < keys.length - 1) {
|
|
7271
|
-
|
|
7388
|
+
domain.push("&");
|
|
7272
7389
|
}
|
|
7273
7390
|
const valuesOfKey = searchMap[key];
|
|
7274
7391
|
valuesOfKey.forEach((value, index) => {
|
|
7275
7392
|
if (index < valuesOfKey.length - 1) {
|
|
7276
|
-
|
|
7393
|
+
domain.push("|");
|
|
7277
7394
|
}
|
|
7278
7395
|
if (value.domain) {
|
|
7279
|
-
|
|
7396
|
+
domain.push(...value.domain);
|
|
7280
7397
|
return;
|
|
7281
7398
|
}
|
|
7282
7399
|
let valueDomainItem = value?.value;
|
|
@@ -7292,14 +7409,14 @@ var searchController = ({
|
|
|
7292
7409
|
}
|
|
7293
7410
|
}
|
|
7294
7411
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
7295
|
-
|
|
7412
|
+
domain.push([value.name, operator, valueDomainItem]);
|
|
7296
7413
|
});
|
|
7297
7414
|
}
|
|
7298
7415
|
});
|
|
7299
|
-
return [...
|
|
7416
|
+
return [...domain];
|
|
7300
7417
|
}
|
|
7301
7418
|
};
|
|
7302
|
-
const setTagSearch = (0,
|
|
7419
|
+
const setTagSearch = (0, import_react25.useCallback)(
|
|
7303
7420
|
(updatedMap) => {
|
|
7304
7421
|
if (!updatedMap) return;
|
|
7305
7422
|
const tagsSearch = Object.entries(updatedMap).map(
|
|
@@ -7327,16 +7444,16 @@ var searchController = ({
|
|
|
7327
7444
|
const contexts = [];
|
|
7328
7445
|
let groupValues = [];
|
|
7329
7446
|
objValues?.forEach((objValue) => {
|
|
7330
|
-
const { context
|
|
7447
|
+
const { context, value, active, groupIndex: groupIndex2, isDefault } = objValue;
|
|
7331
7448
|
const indexAppend = groupIndex2 != null ? groupIndex2 : viewData?.views?.search?.filters_by?.length ?? 0;
|
|
7332
7449
|
contexts.push(
|
|
7333
|
-
...Array.isArray(
|
|
7450
|
+
...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({ group_by: item })) : [context]
|
|
7334
7451
|
);
|
|
7335
7452
|
groupValues[indexAppend] = {
|
|
7336
7453
|
contexts: [
|
|
7337
|
-
...Array.isArray(
|
|
7454
|
+
...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({
|
|
7338
7455
|
group_by: item
|
|
7339
|
-
})) : [
|
|
7456
|
+
})) : [context]
|
|
7340
7457
|
],
|
|
7341
7458
|
strings: isDefault ? [value] : [...groupValues[indexAppend]?.strings ?? [], value]
|
|
7342
7459
|
};
|
|
@@ -7362,39 +7479,40 @@ var searchController = ({
|
|
|
7362
7479
|
},
|
|
7363
7480
|
[searchMap]
|
|
7364
7481
|
);
|
|
7365
|
-
(0,
|
|
7482
|
+
(0, import_react25.useEffect)(() => {
|
|
7483
|
+
setSelectedTags(null);
|
|
7366
7484
|
setTagSearch(searchMap);
|
|
7367
7485
|
}, [searchMap]);
|
|
7368
7486
|
const handleAddTagSearch = (tag) => {
|
|
7369
7487
|
const {
|
|
7370
|
-
domain
|
|
7488
|
+
domain,
|
|
7371
7489
|
groupIndex,
|
|
7372
7490
|
value,
|
|
7373
7491
|
type,
|
|
7374
7492
|
title,
|
|
7375
|
-
context
|
|
7493
|
+
context,
|
|
7376
7494
|
active,
|
|
7377
7495
|
dataIndex
|
|
7378
7496
|
} = tag;
|
|
7379
|
-
const domainFormat = new import_utils15.domainHelper.Domain(
|
|
7497
|
+
const domainFormat = new import_utils15.domainHelper.Domain(domain);
|
|
7380
7498
|
if (type === import_constants5.SearchType.FILTER) {
|
|
7381
7499
|
addSearchItems(`${import_constants5.SearchType.FILTER}_${groupIndex}`, {
|
|
7382
7500
|
...tag,
|
|
7383
|
-
domain:
|
|
7501
|
+
domain: domain ? domainFormat.toList(context) : null
|
|
7384
7502
|
});
|
|
7385
7503
|
} else if (type === import_constants5.SearchType.SEARCH) {
|
|
7386
7504
|
addSearchItems(`${import_constants5.SearchType.SEARCH}_${String(dataIndex)}`, {
|
|
7387
7505
|
...tag,
|
|
7388
|
-
domain:
|
|
7389
|
-
...
|
|
7506
|
+
domain: domain ? domainFormat.toList({
|
|
7507
|
+
...context,
|
|
7390
7508
|
self: value
|
|
7391
7509
|
}) : null
|
|
7392
7510
|
});
|
|
7393
7511
|
} else if (type === import_constants5.SearchType.GROUP) {
|
|
7394
7512
|
addSearchItems(`${import_constants5.SearchType.GROUP}`, {
|
|
7395
7513
|
...tag,
|
|
7396
|
-
domain:
|
|
7397
|
-
context
|
|
7514
|
+
domain: domain ? domainFormat.toList({
|
|
7515
|
+
context,
|
|
7398
7516
|
self: value
|
|
7399
7517
|
}) : null
|
|
7400
7518
|
});
|
|
@@ -7414,8 +7532,7 @@ var searchController = ({
|
|
|
7414
7532
|
removeSearchItems,
|
|
7415
7533
|
onSearchString: onChangeSearchInput,
|
|
7416
7534
|
handleAddTagSearch,
|
|
7417
|
-
domain: formatDomain()
|
|
7418
|
-
context: contextSearch
|
|
7535
|
+
domain: formatDomain()
|
|
7419
7536
|
};
|
|
7420
7537
|
};
|
|
7421
7538
|
|
|
@@ -7480,6 +7597,7 @@ __reExport(index_exports, types_exports, module.exports);
|
|
|
7480
7597
|
searchController,
|
|
7481
7598
|
setStorageItemAsync,
|
|
7482
7599
|
statusDropdownController,
|
|
7600
|
+
tableBodyController,
|
|
7483
7601
|
tableController,
|
|
7484
7602
|
tableGroupController,
|
|
7485
7603
|
tableHeadController,
|