@fctc/widget-logic 1.9.4 → 1.9.6
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 +101 -55
- package/dist/index.mjs +96 -45
- package/dist/widget.d.mts +3 -6
- package/dist/widget.d.ts +3 -6
- package/dist/widget.js +101 -55
- package/dist/widget.mjs +96 -45
- package/package.json +1 -1
package/dist/widget.js
CHANGED
|
@@ -4972,7 +4972,6 @@ var many2oneFieldController = (props) => {
|
|
|
4972
4972
|
options: fieldOptions,
|
|
4973
4973
|
showDetail
|
|
4974
4974
|
} = props;
|
|
4975
|
-
const { env } = (0, provider_exports.useEnv)();
|
|
4976
4975
|
const [options, setOptions] = (0, import_react14.useState)([]);
|
|
4977
4976
|
const [inputValue, setInputValue] = (0, import_react14.useState)("");
|
|
4978
4977
|
const [debouncedInputValue] = useDebounce(inputValue, 1e3);
|
|
@@ -4982,12 +4981,13 @@ var many2oneFieldController = (props) => {
|
|
|
4982
4981
|
const [domainObject, setDomainObject] = (0, import_react14.useState)(null);
|
|
4983
4982
|
const actionData = sessionStorageUtils.getActionData();
|
|
4984
4983
|
const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
|
|
4984
|
+
const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
|
|
4985
4985
|
const initValue = methods?.getValues(name);
|
|
4986
4986
|
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
4987
4987
|
const contextObject = {
|
|
4988
4988
|
...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
|
|
4989
4989
|
...fieldContext,
|
|
4990
|
-
...
|
|
4990
|
+
...context
|
|
4991
4991
|
};
|
|
4992
4992
|
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
4993
4993
|
const data = {
|
|
@@ -5159,47 +5159,52 @@ var many2oneButtonController = (props) => {
|
|
|
5159
5159
|
|
|
5160
5160
|
// src/widget/basic/many2many-field/controller.ts
|
|
5161
5161
|
var import_react15 = require("react");
|
|
5162
|
+
var import_store8 = require("@fctc/interface-logic/store");
|
|
5162
5163
|
var import_utils6 = require("@fctc/interface-logic/utils");
|
|
5163
5164
|
var many2manyFieldController = (props) => {
|
|
5164
5165
|
const {
|
|
5165
5166
|
relation,
|
|
5166
5167
|
domain,
|
|
5167
5168
|
context,
|
|
5168
|
-
options,
|
|
5169
5169
|
tab,
|
|
5170
|
+
model,
|
|
5171
|
+
aid,
|
|
5170
5172
|
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5173
|
+
fields,
|
|
5174
|
+
setFields,
|
|
5171
5175
|
groupByDomain,
|
|
5176
|
+
page,
|
|
5177
|
+
options,
|
|
5172
5178
|
sessionStorageUtils
|
|
5173
5179
|
} = props;
|
|
5174
|
-
const
|
|
5175
|
-
const
|
|
5180
|
+
const appDispatch = (0, import_store8.useAppDispatch)();
|
|
5181
|
+
const actionData = sessionStorageUtils.getActionData();
|
|
5182
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5176
5183
|
const [order, setOrder] = (0, import_react15.useState)();
|
|
5177
5184
|
const [isLoadedData, setIsLoadedData] = (0, import_react15.useState)(false);
|
|
5178
|
-
const [
|
|
5179
|
-
const
|
|
5180
|
-
const
|
|
5181
|
-
const actionData = sessionStorageUtils.getActionData();
|
|
5182
|
-
const contextObject = { ...env.context, ...context };
|
|
5185
|
+
const [domainMany2Many, setDomainMany2Many] = (0, import_react15.useState)(domain);
|
|
5186
|
+
const { env } = (0, provider_exports.useEnv)();
|
|
5187
|
+
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5183
5188
|
const viewParams = {
|
|
5184
5189
|
model: relation,
|
|
5185
5190
|
views: [
|
|
5186
5191
|
[false, "list"],
|
|
5187
5192
|
[false, "search"]
|
|
5188
5193
|
],
|
|
5189
|
-
context
|
|
5194
|
+
context
|
|
5190
5195
|
};
|
|
5191
5196
|
const { data: viewResponse } = useGetView2(viewParams, actionData);
|
|
5192
5197
|
const baseModel = (0, import_react15.useMemo)(
|
|
5193
5198
|
() => ({
|
|
5194
5199
|
name: String(relation),
|
|
5195
5200
|
view: viewResponse || {},
|
|
5196
|
-
actContext:
|
|
5201
|
+
actContext: context,
|
|
5197
5202
|
fields: [
|
|
5198
5203
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5199
5204
|
...tab?.fields ? tab.fields : []
|
|
5200
5205
|
]
|
|
5201
5206
|
}),
|
|
5202
|
-
[
|
|
5207
|
+
[model, viewResponse]
|
|
5203
5208
|
);
|
|
5204
5209
|
const initModel = (0, hooks_exports.useModel)();
|
|
5205
5210
|
const modelInstance = (0, import_react15.useMemo)(() => {
|
|
@@ -5218,15 +5223,26 @@ var many2manyFieldController = (props) => {
|
|
|
5218
5223
|
const optionsObject = tab?.options ? (0, import_utils6.evalJSONContext)(tab?.options) : (options ? (0, import_utils6.evalJSONContext)(options) : {}) || {};
|
|
5219
5224
|
const fetchData = async () => {
|
|
5220
5225
|
try {
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5226
|
+
setDomainMany2Many(domain);
|
|
5227
|
+
appDispatch((0, import_store8.setFirstDomain)(domain));
|
|
5228
|
+
appDispatch((0, import_store8.setViewDataStore)(viewResponse));
|
|
5229
|
+
const modalData = viewResponse?.views?.list?.fields.map((field) => ({
|
|
5230
|
+
...viewResponse?.models?.[String(model)]?.[field?.name],
|
|
5231
|
+
...field
|
|
5232
|
+
}));
|
|
5233
|
+
if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
|
|
5234
|
+
setFields({
|
|
5235
|
+
...fields,
|
|
5236
|
+
[`${aid}_${relation}_popupmany2many`]: modalData
|
|
5237
|
+
});
|
|
5238
|
+
}
|
|
5239
|
+
appDispatch((0, import_store8.setPage)(0));
|
|
5224
5240
|
} catch (err) {
|
|
5225
5241
|
console.log(err);
|
|
5226
5242
|
}
|
|
5227
5243
|
};
|
|
5228
5244
|
const queryKey = [
|
|
5229
|
-
`view-${relation}`,
|
|
5245
|
+
`view-${relation}-${aid}`,
|
|
5230
5246
|
specification,
|
|
5231
5247
|
domainMany2Many,
|
|
5232
5248
|
debouncedPage,
|
|
@@ -5239,7 +5255,7 @@ var many2manyFieldController = (props) => {
|
|
|
5239
5255
|
domain: domainMany2Many,
|
|
5240
5256
|
offset: debouncedPage * 10,
|
|
5241
5257
|
limit: 10,
|
|
5242
|
-
context
|
|
5258
|
+
context,
|
|
5243
5259
|
fields: groupByDomain?.fields,
|
|
5244
5260
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5245
5261
|
sort: order ? order : default_order ? (0, import_utils6.formatSortingString)(default_order) : ""
|
|
@@ -5247,8 +5263,8 @@ var many2manyFieldController = (props) => {
|
|
|
5247
5263
|
const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5248
5264
|
const {
|
|
5249
5265
|
data: dataResponse,
|
|
5250
|
-
isLoading,
|
|
5251
|
-
isFetched,
|
|
5266
|
+
isLoading: isDataLoading,
|
|
5267
|
+
isFetched: isDataResponseFetched,
|
|
5252
5268
|
isPlaceholderData
|
|
5253
5269
|
} = useGetListData3(data, queryKey, enabled);
|
|
5254
5270
|
(0, import_react15.useEffect)(() => {
|
|
@@ -5256,7 +5272,12 @@ var many2manyFieldController = (props) => {
|
|
|
5256
5272
|
fetchData();
|
|
5257
5273
|
}
|
|
5258
5274
|
return () => {
|
|
5259
|
-
|
|
5275
|
+
appDispatch((0, import_store8.setGroupByDomain)(null));
|
|
5276
|
+
setFields((prevFields) => ({
|
|
5277
|
+
...prevFields,
|
|
5278
|
+
[`${aid}_${relation}_popupmany2many`]: null
|
|
5279
|
+
}));
|
|
5280
|
+
appDispatch((0, import_store8.setPage)(0));
|
|
5260
5281
|
setSelectedRowKeys4([]);
|
|
5261
5282
|
setDomainMany2Many(null);
|
|
5262
5283
|
setIsLoadedData(false);
|
|
@@ -5264,19 +5285,44 @@ var many2manyFieldController = (props) => {
|
|
|
5264
5285
|
}, [viewResponse]);
|
|
5265
5286
|
const { rows, columns, typeTable } = tableController({
|
|
5266
5287
|
data: {
|
|
5267
|
-
fields: viewResponse?.views?.list?.fields,
|
|
5288
|
+
fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
|
|
5268
5289
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5269
5290
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5270
|
-
context:
|
|
5291
|
+
context: { ...env.context, ...context },
|
|
5271
5292
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5272
5293
|
}
|
|
5273
5294
|
});
|
|
5295
|
+
const dataFormView = {
|
|
5296
|
+
id: null,
|
|
5297
|
+
model: relation,
|
|
5298
|
+
context
|
|
5299
|
+
};
|
|
5300
|
+
const {
|
|
5301
|
+
refetch,
|
|
5302
|
+
data: dataFormViewResponse,
|
|
5303
|
+
isSuccess
|
|
5304
|
+
} = useGetFormView({
|
|
5305
|
+
data: dataFormView,
|
|
5306
|
+
queryKey: [`form-view-action-${relation}`],
|
|
5307
|
+
enabled: false
|
|
5308
|
+
});
|
|
5309
|
+
(0, import_react15.useEffect)(() => {
|
|
5310
|
+
if (isSuccess && dataFormViewResponse) {
|
|
5311
|
+
sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
|
|
5312
|
+
window.location.href = `/form/menu?model=${relation}`;
|
|
5313
|
+
}
|
|
5314
|
+
}, [isSuccess]);
|
|
5274
5315
|
(0, import_react15.useEffect)(() => {
|
|
5275
5316
|
if (domainMany2Many && !isLoadedData) {
|
|
5276
5317
|
setIsLoadedData(true);
|
|
5277
5318
|
}
|
|
5278
5319
|
}, [domainMany2Many]);
|
|
5279
5320
|
const handleCreateNewOnPage = async () => {
|
|
5321
|
+
try {
|
|
5322
|
+
refetch();
|
|
5323
|
+
} catch (error) {
|
|
5324
|
+
console.log(error);
|
|
5325
|
+
}
|
|
5280
5326
|
};
|
|
5281
5327
|
return {
|
|
5282
5328
|
handleCreateNewOnPage,
|
|
@@ -5284,13 +5330,9 @@ var many2manyFieldController = (props) => {
|
|
|
5284
5330
|
rows,
|
|
5285
5331
|
columns,
|
|
5286
5332
|
typeTable,
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
isPlaceholderData
|
|
5290
|
-
setPage,
|
|
5291
|
-
page,
|
|
5292
|
-
domain: domainMany2Many,
|
|
5293
|
-
setDomain: setDomainMany2Many
|
|
5333
|
+
isDataLoading,
|
|
5334
|
+
isDataResponseFetched,
|
|
5335
|
+
isPlaceholderData
|
|
5294
5336
|
};
|
|
5295
5337
|
};
|
|
5296
5338
|
|
|
@@ -5358,7 +5400,7 @@ var many2manyTagsController = (props) => {
|
|
|
5358
5400
|
var import_react17 = require("react");
|
|
5359
5401
|
var import_utils8 = require("@fctc/interface-logic/utils");
|
|
5360
5402
|
var durationController = (props) => {
|
|
5361
|
-
const { relation, domain, formValues, name, id, model, onRefetch } = props;
|
|
5403
|
+
const { relation, domain, formValues, name, id, model, onRefetch, enabled } = props;
|
|
5362
5404
|
const specification = {
|
|
5363
5405
|
id: 0,
|
|
5364
5406
|
name: "",
|
|
@@ -5382,7 +5424,11 @@ var durationController = (props) => {
|
|
|
5382
5424
|
},
|
|
5383
5425
|
sort: ""
|
|
5384
5426
|
};
|
|
5385
|
-
const { data: dataResponse } = useGetListData3(
|
|
5427
|
+
const { data: dataResponse } = useGetListData3(
|
|
5428
|
+
listDataProps,
|
|
5429
|
+
queryKey,
|
|
5430
|
+
enabled
|
|
5431
|
+
);
|
|
5386
5432
|
const { mutate: fetchChangeStatus } = useChangeStatus();
|
|
5387
5433
|
const handleClick = async (stage_id) => {
|
|
5388
5434
|
setDisabled(true);
|
|
@@ -6558,7 +6604,7 @@ var binaryFieldController = (props) => {
|
|
|
6558
6604
|
};
|
|
6559
6605
|
|
|
6560
6606
|
// src/widget/advance/table/table-body/controller.ts
|
|
6561
|
-
var
|
|
6607
|
+
var import_store9 = require("@fctc/interface-logic/store");
|
|
6562
6608
|
var import_react21 = require("react");
|
|
6563
6609
|
var tableBodyController = (props) => {
|
|
6564
6610
|
const {
|
|
@@ -6571,7 +6617,7 @@ var tableBodyController = (props) => {
|
|
|
6571
6617
|
selectedRowKeysRef,
|
|
6572
6618
|
onClickRow
|
|
6573
6619
|
} = props;
|
|
6574
|
-
const appDispatch = (0,
|
|
6620
|
+
const appDispatch = (0, import_store9.useAppDispatch)();
|
|
6575
6621
|
const checked = (0, import_react21.useMemo)(() => {
|
|
6576
6622
|
if (!row?.id) return false;
|
|
6577
6623
|
if (selectedRowKeys?.includes(row.id)) {
|
|
@@ -6588,7 +6634,7 @@ var tableBodyController = (props) => {
|
|
|
6588
6634
|
}
|
|
6589
6635
|
const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
|
|
6590
6636
|
console.log("newSelectedRowKeys", newSelectedRowKeys);
|
|
6591
|
-
appDispatch((0,
|
|
6637
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(newSelectedRowKeys));
|
|
6592
6638
|
};
|
|
6593
6639
|
const handleClickRow = (col, row2) => {
|
|
6594
6640
|
onClickRow(col, row2);
|
|
@@ -6601,13 +6647,13 @@ var tableBodyController = (props) => {
|
|
|
6601
6647
|
(id) => id !== row.id
|
|
6602
6648
|
);
|
|
6603
6649
|
selectedRowKeysRef.current = filtered;
|
|
6604
|
-
appDispatch((0,
|
|
6650
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(filtered));
|
|
6605
6651
|
} else {
|
|
6606
6652
|
const unique = Array.from(
|
|
6607
6653
|
/* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
|
|
6608
6654
|
);
|
|
6609
6655
|
selectedRowKeysRef.current = unique;
|
|
6610
|
-
appDispatch((0,
|
|
6656
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(unique));
|
|
6611
6657
|
}
|
|
6612
6658
|
}
|
|
6613
6659
|
}, [isAutoSelect]);
|
|
@@ -6625,35 +6671,35 @@ var tableBodyController = (props) => {
|
|
|
6625
6671
|
};
|
|
6626
6672
|
|
|
6627
6673
|
// src/widget/advance/table/table-head/controller.ts
|
|
6628
|
-
var
|
|
6674
|
+
var import_store10 = require("@fctc/interface-logic/store");
|
|
6629
6675
|
var tableHeadController = (props) => {
|
|
6630
6676
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6631
|
-
const appDispatch = (0,
|
|
6632
|
-
const { groupByDomain } = (0,
|
|
6677
|
+
const appDispatch = (0, import_store10.useAppDispatch)();
|
|
6678
|
+
const { groupByDomain } = (0, import_store10.useAppSelector)(import_store10.selectSearch);
|
|
6633
6679
|
const handleCheckBoxAll = (event) => {
|
|
6634
6680
|
if (event?.target?.checked && typeTable === "list") {
|
|
6635
6681
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6636
|
-
appDispatch((0,
|
|
6682
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(allRowKeys));
|
|
6637
6683
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6638
6684
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6639
6685
|
const ids = Array.from(rowsIDs)?.map(
|
|
6640
6686
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6641
6687
|
);
|
|
6642
6688
|
if (ids?.length > 0) {
|
|
6643
|
-
appDispatch((0,
|
|
6689
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(ids));
|
|
6644
6690
|
} else {
|
|
6645
6691
|
const sum = countSum(
|
|
6646
6692
|
rows,
|
|
6647
6693
|
typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
|
|
6648
6694
|
);
|
|
6649
6695
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6650
|
-
appDispatch((0,
|
|
6696
|
+
appDispatch((0, import_store10.setSelectedRowKeys)(keys));
|
|
6651
6697
|
}
|
|
6652
6698
|
if (selectedRowKeysRef) {
|
|
6653
6699
|
selectedRowKeysRef.current = [];
|
|
6654
6700
|
}
|
|
6655
6701
|
} else {
|
|
6656
|
-
appDispatch((0,
|
|
6702
|
+
appDispatch((0, import_store10.setSelectedRowKeys)([]));
|
|
6657
6703
|
}
|
|
6658
6704
|
};
|
|
6659
6705
|
return {
|
|
@@ -6663,7 +6709,7 @@ var tableHeadController = (props) => {
|
|
|
6663
6709
|
|
|
6664
6710
|
// src/widget/advance/table/table-view/controller.ts
|
|
6665
6711
|
var import_react22 = require("react");
|
|
6666
|
-
var
|
|
6712
|
+
var import_store11 = require("@fctc/interface-logic/store");
|
|
6667
6713
|
var import_utils13 = require("@fctc/interface-logic/utils");
|
|
6668
6714
|
var tableController = ({ data }) => {
|
|
6669
6715
|
const [rows, setRows] = (0, import_react22.useState)(data.records || []);
|
|
@@ -6743,7 +6789,7 @@ var tableController = ({ data }) => {
|
|
|
6743
6789
|
// src/widget/advance/table/table-group/controller.ts
|
|
6744
6790
|
var import_react23 = require("react");
|
|
6745
6791
|
var import_hooks16 = require("@fctc/interface-logic/hooks");
|
|
6746
|
-
var
|
|
6792
|
+
var import_store12 = require("@fctc/interface-logic/store");
|
|
6747
6793
|
|
|
6748
6794
|
// src/environment.ts
|
|
6749
6795
|
var environment_exports = {};
|
|
@@ -6771,9 +6817,9 @@ var tableGroupController = (props) => {
|
|
|
6771
6817
|
selectedRowKeysRef
|
|
6772
6818
|
} = props;
|
|
6773
6819
|
const [pageGroup, setPageGroup] = (0, import_react23.useState)(0);
|
|
6774
|
-
const { groupByDomain, selectedTags } = (0,
|
|
6775
|
-
const { selectedRowKeys } = (0,
|
|
6776
|
-
const appDispatch = (0,
|
|
6820
|
+
const { groupByDomain, selectedTags } = (0, import_store12.useAppSelector)(import_store12.selectSearch);
|
|
6821
|
+
const { selectedRowKeys } = (0, import_store12.useAppSelector)(import_store12.selectList);
|
|
6822
|
+
const appDispatch = (0, import_store12.useAppDispatch)();
|
|
6777
6823
|
const { toDataJS } = (0, import_hooks16.useOdooDataTransform)();
|
|
6778
6824
|
const initVal = toDataJS(row, viewData, model);
|
|
6779
6825
|
const [isShowGroup, setIsShowGroup] = (0, import_react23.useState)(false);
|
|
@@ -6859,14 +6905,14 @@ var tableGroupController = (props) => {
|
|
|
6859
6905
|
const filteredIds = selectedRowKeys.filter(
|
|
6860
6906
|
(id) => !ids.includes(id)
|
|
6861
6907
|
);
|
|
6862
|
-
appDispatch((0,
|
|
6908
|
+
appDispatch((0, import_store12.setSelectedRowKeys)(filteredIds));
|
|
6863
6909
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
|
|
6864
6910
|
const clonedKeys = [...selectedRowKeys];
|
|
6865
|
-
appDispatch((0,
|
|
6866
|
-
setTimeout(() => appDispatch((0,
|
|
6911
|
+
appDispatch((0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]));
|
|
6912
|
+
setTimeout(() => appDispatch((0, import_store12.setSelectedRowKeys)(clonedKeys)), 500);
|
|
6867
6913
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
6868
6914
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
6869
|
-
appDispatch((0,
|
|
6915
|
+
appDispatch((0, import_store12.setSelectedRowKeys)(filteredKeys));
|
|
6870
6916
|
}
|
|
6871
6917
|
toggleShowGroup();
|
|
6872
6918
|
};
|
|
@@ -6875,8 +6921,8 @@ var tableGroupController = (props) => {
|
|
|
6875
6921
|
return;
|
|
6876
6922
|
}
|
|
6877
6923
|
const clonedKeys = [...selectedRowKeys];
|
|
6878
|
-
(0,
|
|
6879
|
-
setTimeout(() => (0,
|
|
6924
|
+
(0, import_store12.setSelectedRowKeys)([...clonedKeys, -1]);
|
|
6925
|
+
setTimeout(() => (0, import_store12.setSelectedRowKeys)(clonedKeys), 500);
|
|
6880
6926
|
}, [isQueryFetched]);
|
|
6881
6927
|
return {
|
|
6882
6928
|
handleExpandChildGroup,
|