@fctc/widget-logic 2.4.5 → 2.4.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 +37 -32
- package/dist/index.mjs +23 -18
- package/dist/widget.d.mts +6 -6
- package/dist/widget.d.ts +6 -6
- package/dist/widget.js +35 -30
- package/dist/widget.mjs +21 -16
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4908,7 +4908,7 @@ var useListData = ({
|
|
|
4908
4908
|
const [mode, setMode] = (0, import_react14.useState)("month");
|
|
4909
4909
|
const [type, setType] = (0, import_react14.useState)("list");
|
|
4910
4910
|
const [currentDate, setCurrentDate] = (0, import_react14.useState)(/* @__PURE__ */ new Date());
|
|
4911
|
-
const [selectedRowKeys,
|
|
4911
|
+
const [selectedRowKeys, setSelectedRowKeys2] = (0, import_react14.useState)([]);
|
|
4912
4912
|
const [debouncedPage] = useDebounce(page, 500);
|
|
4913
4913
|
const [debouncedDomain] = useDebounce(domain, 500);
|
|
4914
4914
|
const { specification } = useGetSpecification({
|
|
@@ -4976,7 +4976,7 @@ var useListData = ({
|
|
|
4976
4976
|
setPageLimit,
|
|
4977
4977
|
setGroupByList,
|
|
4978
4978
|
setCurrentDate,
|
|
4979
|
-
setSelectedRowKeys:
|
|
4979
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
4980
4980
|
}
|
|
4981
4981
|
};
|
|
4982
4982
|
};
|
|
@@ -5489,7 +5489,7 @@ var many2manyFieldController = (props) => {
|
|
|
5489
5489
|
context,
|
|
5490
5490
|
options,
|
|
5491
5491
|
tab,
|
|
5492
|
-
setSelectedRowKeys:
|
|
5492
|
+
setSelectedRowKeys: setSelectedRowKeys2,
|
|
5493
5493
|
groupByDomain,
|
|
5494
5494
|
enabled: enabledCallAPI,
|
|
5495
5495
|
actionData
|
|
@@ -5581,7 +5581,7 @@ var many2manyFieldController = (props) => {
|
|
|
5581
5581
|
}
|
|
5582
5582
|
return () => {
|
|
5583
5583
|
setPage(0);
|
|
5584
|
-
|
|
5584
|
+
setSelectedRowKeys2([]);
|
|
5585
5585
|
setDomainMany2Many(null);
|
|
5586
5586
|
};
|
|
5587
5587
|
}, [viewResponse]);
|
|
@@ -6873,11 +6873,16 @@ var binaryFieldController = (props) => {
|
|
|
6873
6873
|
};
|
|
6874
6874
|
|
|
6875
6875
|
// src/widget/advance/table/table-head/controller.ts
|
|
6876
|
-
var import_store2 = require("@fctc/interface-logic/store");
|
|
6877
6876
|
var import_react23 = require("react");
|
|
6878
6877
|
var tableHeadController = (props) => {
|
|
6879
|
-
const {
|
|
6880
|
-
|
|
6878
|
+
const {
|
|
6879
|
+
typeTable,
|
|
6880
|
+
rows,
|
|
6881
|
+
tableRef,
|
|
6882
|
+
groupByList,
|
|
6883
|
+
selectedRowKeys,
|
|
6884
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6885
|
+
} = props;
|
|
6881
6886
|
const { rowIds: recordIds } = useGetRowIds(tableRef);
|
|
6882
6887
|
const selectedRowKeysRef = (0, import_react23.useRef)(recordIds);
|
|
6883
6888
|
const isGroupTable = typeTable === "group";
|
|
@@ -6903,27 +6908,27 @@ var tableHeadController = (props) => {
|
|
|
6903
6908
|
const handleCheckBoxAll = (event) => {
|
|
6904
6909
|
if (event?.target?.checked && typeTable === "list") {
|
|
6905
6910
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6906
|
-
|
|
6911
|
+
setSelectedRowKeys2(allRowKeys);
|
|
6907
6912
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6908
6913
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6909
6914
|
const ids = Array.from(rowsIDs)?.map(
|
|
6910
6915
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6911
6916
|
);
|
|
6912
6917
|
if (ids?.length > 0) {
|
|
6913
|
-
|
|
6918
|
+
setSelectedRowKeys2(ids);
|
|
6914
6919
|
} else {
|
|
6915
6920
|
const sum = countSum(
|
|
6916
6921
|
rows,
|
|
6917
6922
|
typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0
|
|
6918
6923
|
);
|
|
6919
6924
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6920
|
-
|
|
6925
|
+
setSelectedRowKeys2(keys);
|
|
6921
6926
|
}
|
|
6922
6927
|
if (selectedRowKeysRef) {
|
|
6923
6928
|
selectedRowKeysRef.current = [];
|
|
6924
6929
|
}
|
|
6925
6930
|
} else {
|
|
6926
|
-
|
|
6931
|
+
setSelectedRowKeys2([]);
|
|
6927
6932
|
}
|
|
6928
6933
|
};
|
|
6929
6934
|
return {
|
|
@@ -6935,7 +6940,7 @@ var tableHeadController = (props) => {
|
|
|
6935
6940
|
|
|
6936
6941
|
// src/widget/advance/table/table-view/controller.ts
|
|
6937
6942
|
var import_react24 = require("react");
|
|
6938
|
-
var
|
|
6943
|
+
var import_utils16 = require("@fctc/interface-logic/utils");
|
|
6939
6944
|
var tableController = ({ data }) => {
|
|
6940
6945
|
const [rows, setRows] = (0, import_react24.useState)(null);
|
|
6941
6946
|
const [columns, setColumns] = (0, import_react24.useState)(null);
|
|
@@ -6973,7 +6978,7 @@ var tableController = ({ data }) => {
|
|
|
6973
6978
|
let cols = [];
|
|
6974
6979
|
try {
|
|
6975
6980
|
cols = mergeFields?.filter((item) => {
|
|
6976
|
-
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ?
|
|
6981
|
+
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils16.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils16.domainHelper.matchDomains(data.context, item?.invisible) : false);
|
|
6977
6982
|
})?.map((field) => {
|
|
6978
6983
|
return {
|
|
6979
6984
|
name: field?.name,
|
|
@@ -7024,7 +7029,7 @@ var tableController = ({ data }) => {
|
|
|
7024
7029
|
|
|
7025
7030
|
// src/widget/advance/table/table-group/controller.ts
|
|
7026
7031
|
var import_react25 = require("react");
|
|
7027
|
-
var
|
|
7032
|
+
var import_store2 = require("@fctc/interface-logic/store");
|
|
7028
7033
|
var tableGroupController = (props) => {
|
|
7029
7034
|
const { env } = (0, provider_exports.useEnv)();
|
|
7030
7035
|
const { useGetListData: useGetListData2 } = (0, provider_exports.useService)();
|
|
@@ -7038,10 +7043,10 @@ var tableGroupController = (props) => {
|
|
|
7038
7043
|
context,
|
|
7039
7044
|
checkedAll,
|
|
7040
7045
|
groupByList,
|
|
7041
|
-
setSelectedRowKeys:
|
|
7046
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
7042
7047
|
} = props;
|
|
7043
7048
|
const [pageGroup, setPageGroup] = (0, import_react25.useState)(0);
|
|
7044
|
-
const { selectedRowKeys } = (0,
|
|
7049
|
+
const { selectedRowKeys } = (0, import_store2.useAppSelector)(import_store2.selectList);
|
|
7045
7050
|
const [isShowGroup, setIsShowGroup] = (0, import_react25.useState)(false);
|
|
7046
7051
|
const [colEmptyGroup, setColEmptyGroup] = (0, import_react25.useState)({
|
|
7047
7052
|
fromStart: 1,
|
|
@@ -7120,15 +7125,15 @@ var tableGroupController = (props) => {
|
|
|
7120
7125
|
const filteredIds = selectedRowKeys.filter(
|
|
7121
7126
|
(id) => !ids.includes(id)
|
|
7122
7127
|
);
|
|
7123
|
-
|
|
7128
|
+
setSelectedRowKeys2(filteredIds);
|
|
7124
7129
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull) {
|
|
7125
7130
|
const clonedKeys = [...selectedRowKeys];
|
|
7126
|
-
|
|
7127
|
-
setTimeout(() =>
|
|
7131
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
7132
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
7128
7133
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
7129
7134
|
console.log("abc");
|
|
7130
7135
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
7131
|
-
|
|
7136
|
+
setSelectedRowKeys2(filteredKeys);
|
|
7132
7137
|
}
|
|
7133
7138
|
toggleShowGroup();
|
|
7134
7139
|
};
|
|
@@ -7137,8 +7142,8 @@ var tableGroupController = (props) => {
|
|
|
7137
7142
|
return;
|
|
7138
7143
|
}
|
|
7139
7144
|
const clonedKeys = [...selectedRowKeys];
|
|
7140
|
-
|
|
7141
|
-
setTimeout(() =>
|
|
7145
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
7146
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
7142
7147
|
}, [isDataGroupFetched]);
|
|
7143
7148
|
return {
|
|
7144
7149
|
onExpandChildGroup,
|
|
@@ -7158,7 +7163,7 @@ var tableGroupController = (props) => {
|
|
|
7158
7163
|
|
|
7159
7164
|
// src/widget/advance/search/controller.ts
|
|
7160
7165
|
var import_constants3 = require("@fctc/interface-logic/constants");
|
|
7161
|
-
var
|
|
7166
|
+
var import_utils18 = require("@fctc/interface-logic/utils");
|
|
7162
7167
|
var import_moment2 = __toESM(require_moment());
|
|
7163
7168
|
var import_react26 = require("react");
|
|
7164
7169
|
var searchController = ({
|
|
@@ -7175,9 +7180,9 @@ var searchController = ({
|
|
|
7175
7180
|
const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
|
|
7176
7181
|
const [searchString, setSearchString] = (0, import_react26.useState)("");
|
|
7177
7182
|
const [searchMap, setSearchMap] = (0, import_react26.useState)({});
|
|
7178
|
-
const actionContext = typeof context === "string" ? (0,
|
|
7183
|
+
const actionContext = typeof context === "string" ? (0, import_utils18.evalJSONContext)(context) : context;
|
|
7179
7184
|
const contextSearch = { ...env.context, ...actionContext };
|
|
7180
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0,
|
|
7185
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils18.evalJSONDomain)(domain, contextSearch) : [];
|
|
7181
7186
|
const clearSearch = () => {
|
|
7182
7187
|
setFilterBy([]);
|
|
7183
7188
|
setGroupBy([]);
|
|
@@ -7192,7 +7197,7 @@ var searchController = ({
|
|
|
7192
7197
|
const dataModel = viewData?.models?.[model];
|
|
7193
7198
|
const searchViews = viewData?.views?.search;
|
|
7194
7199
|
const searchByItems = searchViews?.search_by?.filter(
|
|
7195
|
-
(item) => !
|
|
7200
|
+
(item) => !import_utils18.domainHelper.matchDomains(contextSearch, item.invisible)
|
|
7196
7201
|
)?.map(
|
|
7197
7202
|
({ string, name, filter_domain, operator, widget }, index) => ({
|
|
7198
7203
|
dataIndex: index,
|
|
@@ -7205,10 +7210,10 @@ var searchController = ({
|
|
|
7205
7210
|
})
|
|
7206
7211
|
);
|
|
7207
7212
|
const filterByItems = searchViews?.filter_by.filter((item) => {
|
|
7208
|
-
return !
|
|
7213
|
+
return !import_utils18.domainHelper.matchDomains(contextSearch, item?.invisible);
|
|
7209
7214
|
})?.map((item) => ({ ...item, active: false }));
|
|
7210
7215
|
const groupByItems = searchViews?.group_by.filter(
|
|
7211
|
-
(item) => !
|
|
7216
|
+
(item) => !import_utils18.domainHelper.matchDomains(contextSearch, item?.invisible)
|
|
7212
7217
|
).map((item) => ({
|
|
7213
7218
|
...item,
|
|
7214
7219
|
string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
|
|
@@ -7285,14 +7290,14 @@ var searchController = ({
|
|
|
7285
7290
|
}
|
|
7286
7291
|
let valueDomainItem = value?.value;
|
|
7287
7292
|
if (value?.modelType === "date") {
|
|
7288
|
-
valueDomainItem = (0,
|
|
7293
|
+
valueDomainItem = (0, import_utils18.validateAndParseDate)(value?.value);
|
|
7289
7294
|
} else if (value?.modelType === "datetime") {
|
|
7290
7295
|
if (value?.operator === "<=" || value?.operator === "<") {
|
|
7291
|
-
const parsedDate = (0,
|
|
7296
|
+
const parsedDate = (0, import_utils18.validateAndParseDate)(value?.value, true);
|
|
7292
7297
|
const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
|
|
7293
7298
|
valueDomainItem = hasTime ? (0, import_moment2.default)(parsedDate).format("YYYY-MM-DD HH:mm:ss") : (0, import_moment2.default)(parsedDate).add(1, "day").subtract(1, "second").format("YYYY-MM-DD HH:mm:ss");
|
|
7294
7299
|
} else {
|
|
7295
|
-
valueDomainItem = (0,
|
|
7300
|
+
valueDomainItem = (0, import_utils18.validateAndParseDate)(value?.value, true);
|
|
7296
7301
|
}
|
|
7297
7302
|
}
|
|
7298
7303
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
@@ -7371,7 +7376,7 @@ var searchController = ({
|
|
|
7371
7376
|
}, [searchMap]);
|
|
7372
7377
|
const handleAddTagSearch = (tag) => {
|
|
7373
7378
|
const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
|
|
7374
|
-
const domainFormat = new
|
|
7379
|
+
const domainFormat = new import_utils18.domainHelper.Domain(domain2);
|
|
7375
7380
|
if (type === import_constants3.SearchType.FILTER) {
|
|
7376
7381
|
addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
|
|
7377
7382
|
...tag,
|
package/dist/index.mjs
CHANGED
|
@@ -4987,7 +4987,7 @@ var useListData = ({
|
|
|
4987
4987
|
const [mode, setMode] = useState5("month");
|
|
4988
4988
|
const [type, setType] = useState5("list");
|
|
4989
4989
|
const [currentDate, setCurrentDate] = useState5(/* @__PURE__ */ new Date());
|
|
4990
|
-
const [selectedRowKeys,
|
|
4990
|
+
const [selectedRowKeys, setSelectedRowKeys2] = useState5([]);
|
|
4991
4991
|
const [debouncedPage] = useDebounce(page, 500);
|
|
4992
4992
|
const [debouncedDomain] = useDebounce(domain, 500);
|
|
4993
4993
|
const { specification } = useGetSpecification({
|
|
@@ -5055,7 +5055,7 @@ var useListData = ({
|
|
|
5055
5055
|
setPageLimit,
|
|
5056
5056
|
setGroupByList,
|
|
5057
5057
|
setCurrentDate,
|
|
5058
|
-
setSelectedRowKeys:
|
|
5058
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
5059
5059
|
}
|
|
5060
5060
|
};
|
|
5061
5061
|
};
|
|
@@ -5574,7 +5574,7 @@ var many2manyFieldController = (props) => {
|
|
|
5574
5574
|
context,
|
|
5575
5575
|
options,
|
|
5576
5576
|
tab,
|
|
5577
|
-
setSelectedRowKeys:
|
|
5577
|
+
setSelectedRowKeys: setSelectedRowKeys2,
|
|
5578
5578
|
groupByDomain,
|
|
5579
5579
|
enabled: enabledCallAPI,
|
|
5580
5580
|
actionData
|
|
@@ -5666,7 +5666,7 @@ var many2manyFieldController = (props) => {
|
|
|
5666
5666
|
}
|
|
5667
5667
|
return () => {
|
|
5668
5668
|
setPage(0);
|
|
5669
|
-
|
|
5669
|
+
setSelectedRowKeys2([]);
|
|
5670
5670
|
setDomainMany2Many(null);
|
|
5671
5671
|
};
|
|
5672
5672
|
}, [viewResponse]);
|
|
@@ -6958,11 +6958,16 @@ var binaryFieldController = (props) => {
|
|
|
6958
6958
|
};
|
|
6959
6959
|
|
|
6960
6960
|
// src/widget/advance/table/table-head/controller.ts
|
|
6961
|
-
import { useAppDispatch, setSelectedRowKeys } from "@fctc/interface-logic/store";
|
|
6962
6961
|
import { useMemo as useMemo11, useRef as useRef5 } from "react";
|
|
6963
6962
|
var tableHeadController = (props) => {
|
|
6964
|
-
const {
|
|
6965
|
-
|
|
6963
|
+
const {
|
|
6964
|
+
typeTable,
|
|
6965
|
+
rows,
|
|
6966
|
+
tableRef,
|
|
6967
|
+
groupByList,
|
|
6968
|
+
selectedRowKeys,
|
|
6969
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6970
|
+
} = props;
|
|
6966
6971
|
const { rowIds: recordIds } = useGetRowIds(tableRef);
|
|
6967
6972
|
const selectedRowKeysRef = useRef5(recordIds);
|
|
6968
6973
|
const isGroupTable = typeTable === "group";
|
|
@@ -6988,27 +6993,27 @@ var tableHeadController = (props) => {
|
|
|
6988
6993
|
const handleCheckBoxAll = (event) => {
|
|
6989
6994
|
if (event?.target?.checked && typeTable === "list") {
|
|
6990
6995
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6991
|
-
|
|
6996
|
+
setSelectedRowKeys2(allRowKeys);
|
|
6992
6997
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6993
6998
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6994
6999
|
const ids = Array.from(rowsIDs)?.map(
|
|
6995
7000
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6996
7001
|
);
|
|
6997
7002
|
if (ids?.length > 0) {
|
|
6998
|
-
|
|
7003
|
+
setSelectedRowKeys2(ids);
|
|
6999
7004
|
} else {
|
|
7000
7005
|
const sum = countSum(
|
|
7001
7006
|
rows,
|
|
7002
7007
|
typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0
|
|
7003
7008
|
);
|
|
7004
7009
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
7005
|
-
|
|
7010
|
+
setSelectedRowKeys2(keys);
|
|
7006
7011
|
}
|
|
7007
7012
|
if (selectedRowKeysRef) {
|
|
7008
7013
|
selectedRowKeysRef.current = [];
|
|
7009
7014
|
}
|
|
7010
7015
|
} else {
|
|
7011
|
-
|
|
7016
|
+
setSelectedRowKeys2([]);
|
|
7012
7017
|
}
|
|
7013
7018
|
};
|
|
7014
7019
|
return {
|
|
@@ -7126,7 +7131,7 @@ var tableGroupController = (props) => {
|
|
|
7126
7131
|
context,
|
|
7127
7132
|
checkedAll,
|
|
7128
7133
|
groupByList,
|
|
7129
|
-
setSelectedRowKeys:
|
|
7134
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
7130
7135
|
} = props;
|
|
7131
7136
|
const [pageGroup, setPageGroup] = useState14(0);
|
|
7132
7137
|
const { selectedRowKeys } = useAppSelector2(selectList);
|
|
@@ -7208,15 +7213,15 @@ var tableGroupController = (props) => {
|
|
|
7208
7213
|
const filteredIds = selectedRowKeys.filter(
|
|
7209
7214
|
(id) => !ids.includes(id)
|
|
7210
7215
|
);
|
|
7211
|
-
|
|
7216
|
+
setSelectedRowKeys2(filteredIds);
|
|
7212
7217
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull) {
|
|
7213
7218
|
const clonedKeys = [...selectedRowKeys];
|
|
7214
|
-
|
|
7215
|
-
setTimeout(() =>
|
|
7219
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
7220
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
7216
7221
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
7217
7222
|
console.log("abc");
|
|
7218
7223
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
7219
|
-
|
|
7224
|
+
setSelectedRowKeys2(filteredKeys);
|
|
7220
7225
|
}
|
|
7221
7226
|
toggleShowGroup();
|
|
7222
7227
|
};
|
|
@@ -7225,8 +7230,8 @@ var tableGroupController = (props) => {
|
|
|
7225
7230
|
return;
|
|
7226
7231
|
}
|
|
7227
7232
|
const clonedKeys = [...selectedRowKeys];
|
|
7228
|
-
|
|
7229
|
-
setTimeout(() =>
|
|
7233
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
7234
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
7230
7235
|
}, [isDataGroupFetched]);
|
|
7231
7236
|
return {
|
|
7232
7237
|
onExpandChildGroup,
|
package/dist/widget.d.mts
CHANGED
|
@@ -200,6 +200,12 @@ declare const binaryFieldController: (props: IInputFieldProps) => {
|
|
|
200
200
|
getImageBase64WithMimeType: (base64: any) => string | null;
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
+
declare const tableHeadController: (props: any) => {
|
|
204
|
+
handleCheckBoxAll: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
205
|
+
checkedAll: any;
|
|
206
|
+
selectedRowKeysRef: react.MutableRefObject<any[]>;
|
|
207
|
+
};
|
|
208
|
+
|
|
203
209
|
interface ITableHeadProps {
|
|
204
210
|
typeTable: string;
|
|
205
211
|
rows: any[];
|
|
@@ -208,12 +214,6 @@ interface ITableHeadProps {
|
|
|
208
214
|
selectedRowKeys: any;
|
|
209
215
|
}
|
|
210
216
|
|
|
211
|
-
declare const tableHeadController: (props: ITableHeadProps) => {
|
|
212
|
-
handleCheckBoxAll: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
213
|
-
checkedAll: any;
|
|
214
|
-
selectedRowKeysRef: react.MutableRefObject<any[]>;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
217
|
interface ITableProps {
|
|
218
218
|
data: {
|
|
219
219
|
fields: any[];
|
package/dist/widget.d.ts
CHANGED
|
@@ -200,6 +200,12 @@ declare const binaryFieldController: (props: IInputFieldProps) => {
|
|
|
200
200
|
getImageBase64WithMimeType: (base64: any) => string | null;
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
+
declare const tableHeadController: (props: any) => {
|
|
204
|
+
handleCheckBoxAll: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
205
|
+
checkedAll: any;
|
|
206
|
+
selectedRowKeysRef: react.MutableRefObject<any[]>;
|
|
207
|
+
};
|
|
208
|
+
|
|
203
209
|
interface ITableHeadProps {
|
|
204
210
|
typeTable: string;
|
|
205
211
|
rows: any[];
|
|
@@ -208,12 +214,6 @@ interface ITableHeadProps {
|
|
|
208
214
|
selectedRowKeys: any;
|
|
209
215
|
}
|
|
210
216
|
|
|
211
|
-
declare const tableHeadController: (props: ITableHeadProps) => {
|
|
212
|
-
handleCheckBoxAll: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
213
|
-
checkedAll: any;
|
|
214
|
-
selectedRowKeysRef: react.MutableRefObject<any[]>;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
217
|
interface ITableProps {
|
|
218
218
|
data: {
|
|
219
219
|
fields: any[];
|
package/dist/widget.js
CHANGED
|
@@ -4644,7 +4644,7 @@ var many2manyFieldController = (props) => {
|
|
|
4644
4644
|
context,
|
|
4645
4645
|
options,
|
|
4646
4646
|
tab,
|
|
4647
|
-
setSelectedRowKeys:
|
|
4647
|
+
setSelectedRowKeys: setSelectedRowKeys2,
|
|
4648
4648
|
groupByDomain,
|
|
4649
4649
|
enabled: enabledCallAPI,
|
|
4650
4650
|
actionData
|
|
@@ -4736,7 +4736,7 @@ var many2manyFieldController = (props) => {
|
|
|
4736
4736
|
}
|
|
4737
4737
|
return () => {
|
|
4738
4738
|
setPage(0);
|
|
4739
|
-
|
|
4739
|
+
setSelectedRowKeys2([]);
|
|
4740
4740
|
setDomainMany2Many(null);
|
|
4741
4741
|
};
|
|
4742
4742
|
}, [viewResponse]);
|
|
@@ -6028,11 +6028,16 @@ var binaryFieldController = (props) => {
|
|
|
6028
6028
|
};
|
|
6029
6029
|
|
|
6030
6030
|
// src/widget/advance/table/table-head/controller.ts
|
|
6031
|
-
var import_store2 = require("@fctc/interface-logic/store");
|
|
6032
6031
|
var import_react23 = require("react");
|
|
6033
6032
|
var tableHeadController = (props) => {
|
|
6034
|
-
const {
|
|
6035
|
-
|
|
6033
|
+
const {
|
|
6034
|
+
typeTable,
|
|
6035
|
+
rows,
|
|
6036
|
+
tableRef,
|
|
6037
|
+
groupByList,
|
|
6038
|
+
selectedRowKeys,
|
|
6039
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6040
|
+
} = props;
|
|
6036
6041
|
const { rowIds: recordIds } = useGetRowIds(tableRef);
|
|
6037
6042
|
const selectedRowKeysRef = (0, import_react23.useRef)(recordIds);
|
|
6038
6043
|
const isGroupTable = typeTable === "group";
|
|
@@ -6058,27 +6063,27 @@ var tableHeadController = (props) => {
|
|
|
6058
6063
|
const handleCheckBoxAll = (event) => {
|
|
6059
6064
|
if (event?.target?.checked && typeTable === "list") {
|
|
6060
6065
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6061
|
-
|
|
6066
|
+
setSelectedRowKeys2(allRowKeys);
|
|
6062
6067
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6063
6068
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6064
6069
|
const ids = Array.from(rowsIDs)?.map(
|
|
6065
6070
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6066
6071
|
);
|
|
6067
6072
|
if (ids?.length > 0) {
|
|
6068
|
-
|
|
6073
|
+
setSelectedRowKeys2(ids);
|
|
6069
6074
|
} else {
|
|
6070
6075
|
const sum = countSum(
|
|
6071
6076
|
rows,
|
|
6072
6077
|
typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0
|
|
6073
6078
|
);
|
|
6074
6079
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6075
|
-
|
|
6080
|
+
setSelectedRowKeys2(keys);
|
|
6076
6081
|
}
|
|
6077
6082
|
if (selectedRowKeysRef) {
|
|
6078
6083
|
selectedRowKeysRef.current = [];
|
|
6079
6084
|
}
|
|
6080
6085
|
} else {
|
|
6081
|
-
|
|
6086
|
+
setSelectedRowKeys2([]);
|
|
6082
6087
|
}
|
|
6083
6088
|
};
|
|
6084
6089
|
return {
|
|
@@ -6090,7 +6095,7 @@ var tableHeadController = (props) => {
|
|
|
6090
6095
|
|
|
6091
6096
|
// src/widget/advance/table/table-view/controller.ts
|
|
6092
6097
|
var import_react24 = require("react");
|
|
6093
|
-
var
|
|
6098
|
+
var import_utils16 = require("@fctc/interface-logic/utils");
|
|
6094
6099
|
var tableController = ({ data }) => {
|
|
6095
6100
|
const [rows, setRows] = (0, import_react24.useState)(null);
|
|
6096
6101
|
const [columns, setColumns] = (0, import_react24.useState)(null);
|
|
@@ -6128,7 +6133,7 @@ var tableController = ({ data }) => {
|
|
|
6128
6133
|
let cols = [];
|
|
6129
6134
|
try {
|
|
6130
6135
|
cols = mergeFields?.filter((item) => {
|
|
6131
|
-
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ?
|
|
6136
|
+
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils16.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils16.domainHelper.matchDomains(data.context, item?.invisible) : false);
|
|
6132
6137
|
})?.map((field) => {
|
|
6133
6138
|
return {
|
|
6134
6139
|
name: field?.name,
|
|
@@ -6179,7 +6184,7 @@ var tableController = ({ data }) => {
|
|
|
6179
6184
|
|
|
6180
6185
|
// src/widget/advance/table/table-group/controller.ts
|
|
6181
6186
|
var import_react25 = require("react");
|
|
6182
|
-
var
|
|
6187
|
+
var import_store2 = require("@fctc/interface-logic/store");
|
|
6183
6188
|
var tableGroupController = (props) => {
|
|
6184
6189
|
const { env } = (0, provider_exports.useEnv)();
|
|
6185
6190
|
const { useGetListData: useGetListData2 } = (0, provider_exports.useService)();
|
|
@@ -6193,10 +6198,10 @@ var tableGroupController = (props) => {
|
|
|
6193
6198
|
context,
|
|
6194
6199
|
checkedAll,
|
|
6195
6200
|
groupByList,
|
|
6196
|
-
setSelectedRowKeys:
|
|
6201
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6197
6202
|
} = props;
|
|
6198
6203
|
const [pageGroup, setPageGroup] = (0, import_react25.useState)(0);
|
|
6199
|
-
const { selectedRowKeys } = (0,
|
|
6204
|
+
const { selectedRowKeys } = (0, import_store2.useAppSelector)(import_store2.selectList);
|
|
6200
6205
|
const [isShowGroup, setIsShowGroup] = (0, import_react25.useState)(false);
|
|
6201
6206
|
const [colEmptyGroup, setColEmptyGroup] = (0, import_react25.useState)({
|
|
6202
6207
|
fromStart: 1,
|
|
@@ -6275,15 +6280,15 @@ var tableGroupController = (props) => {
|
|
|
6275
6280
|
const filteredIds = selectedRowKeys.filter(
|
|
6276
6281
|
(id) => !ids.includes(id)
|
|
6277
6282
|
);
|
|
6278
|
-
|
|
6283
|
+
setSelectedRowKeys2(filteredIds);
|
|
6279
6284
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull) {
|
|
6280
6285
|
const clonedKeys = [...selectedRowKeys];
|
|
6281
|
-
|
|
6282
|
-
setTimeout(() =>
|
|
6286
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
6287
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
6283
6288
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
6284
6289
|
console.log("abc");
|
|
6285
6290
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
6286
|
-
|
|
6291
|
+
setSelectedRowKeys2(filteredKeys);
|
|
6287
6292
|
}
|
|
6288
6293
|
toggleShowGroup();
|
|
6289
6294
|
};
|
|
@@ -6292,8 +6297,8 @@ var tableGroupController = (props) => {
|
|
|
6292
6297
|
return;
|
|
6293
6298
|
}
|
|
6294
6299
|
const clonedKeys = [...selectedRowKeys];
|
|
6295
|
-
|
|
6296
|
-
setTimeout(() =>
|
|
6300
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
6301
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
6297
6302
|
}, [isDataGroupFetched]);
|
|
6298
6303
|
return {
|
|
6299
6304
|
onExpandChildGroup,
|
|
@@ -6313,7 +6318,7 @@ var tableGroupController = (props) => {
|
|
|
6313
6318
|
|
|
6314
6319
|
// src/widget/advance/search/controller.ts
|
|
6315
6320
|
var import_constants3 = require("@fctc/interface-logic/constants");
|
|
6316
|
-
var
|
|
6321
|
+
var import_utils18 = require("@fctc/interface-logic/utils");
|
|
6317
6322
|
var import_moment2 = __toESM(require_moment());
|
|
6318
6323
|
var import_react26 = require("react");
|
|
6319
6324
|
var searchController = ({
|
|
@@ -6330,9 +6335,9 @@ var searchController = ({
|
|
|
6330
6335
|
const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
|
|
6331
6336
|
const [searchString, setSearchString] = (0, import_react26.useState)("");
|
|
6332
6337
|
const [searchMap, setSearchMap] = (0, import_react26.useState)({});
|
|
6333
|
-
const actionContext = typeof context === "string" ? (0,
|
|
6338
|
+
const actionContext = typeof context === "string" ? (0, import_utils18.evalJSONContext)(context) : context;
|
|
6334
6339
|
const contextSearch = { ...env.context, ...actionContext };
|
|
6335
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0,
|
|
6340
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils18.evalJSONDomain)(domain, contextSearch) : [];
|
|
6336
6341
|
const clearSearch = () => {
|
|
6337
6342
|
setFilterBy([]);
|
|
6338
6343
|
setGroupBy([]);
|
|
@@ -6347,7 +6352,7 @@ var searchController = ({
|
|
|
6347
6352
|
const dataModel = viewData?.models?.[model];
|
|
6348
6353
|
const searchViews = viewData?.views?.search;
|
|
6349
6354
|
const searchByItems = searchViews?.search_by?.filter(
|
|
6350
|
-
(item) => !
|
|
6355
|
+
(item) => !import_utils18.domainHelper.matchDomains(contextSearch, item.invisible)
|
|
6351
6356
|
)?.map(
|
|
6352
6357
|
({ string, name, filter_domain, operator, widget }, index) => ({
|
|
6353
6358
|
dataIndex: index,
|
|
@@ -6360,10 +6365,10 @@ var searchController = ({
|
|
|
6360
6365
|
})
|
|
6361
6366
|
);
|
|
6362
6367
|
const filterByItems = searchViews?.filter_by.filter((item) => {
|
|
6363
|
-
return !
|
|
6368
|
+
return !import_utils18.domainHelper.matchDomains(contextSearch, item?.invisible);
|
|
6364
6369
|
})?.map((item) => ({ ...item, active: false }));
|
|
6365
6370
|
const groupByItems = searchViews?.group_by.filter(
|
|
6366
|
-
(item) => !
|
|
6371
|
+
(item) => !import_utils18.domainHelper.matchDomains(contextSearch, item?.invisible)
|
|
6367
6372
|
).map((item) => ({
|
|
6368
6373
|
...item,
|
|
6369
6374
|
string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
|
|
@@ -6440,14 +6445,14 @@ var searchController = ({
|
|
|
6440
6445
|
}
|
|
6441
6446
|
let valueDomainItem = value?.value;
|
|
6442
6447
|
if (value?.modelType === "date") {
|
|
6443
|
-
valueDomainItem = (0,
|
|
6448
|
+
valueDomainItem = (0, import_utils18.validateAndParseDate)(value?.value);
|
|
6444
6449
|
} else if (value?.modelType === "datetime") {
|
|
6445
6450
|
if (value?.operator === "<=" || value?.operator === "<") {
|
|
6446
|
-
const parsedDate = (0,
|
|
6451
|
+
const parsedDate = (0, import_utils18.validateAndParseDate)(value?.value, true);
|
|
6447
6452
|
const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
|
|
6448
6453
|
valueDomainItem = hasTime ? (0, import_moment2.default)(parsedDate).format("YYYY-MM-DD HH:mm:ss") : (0, import_moment2.default)(parsedDate).add(1, "day").subtract(1, "second").format("YYYY-MM-DD HH:mm:ss");
|
|
6449
6454
|
} else {
|
|
6450
|
-
valueDomainItem = (0,
|
|
6455
|
+
valueDomainItem = (0, import_utils18.validateAndParseDate)(value?.value, true);
|
|
6451
6456
|
}
|
|
6452
6457
|
}
|
|
6453
6458
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
@@ -6526,7 +6531,7 @@ var searchController = ({
|
|
|
6526
6531
|
}, [searchMap]);
|
|
6527
6532
|
const handleAddTagSearch = (tag) => {
|
|
6528
6533
|
const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
|
|
6529
|
-
const domainFormat = new
|
|
6534
|
+
const domainFormat = new import_utils18.domainHelper.Domain(domain2);
|
|
6530
6535
|
if (type === import_constants3.SearchType.FILTER) {
|
|
6531
6536
|
addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
|
|
6532
6537
|
...tag,
|
package/dist/widget.mjs
CHANGED
|
@@ -4706,7 +4706,7 @@ var many2manyFieldController = (props) => {
|
|
|
4706
4706
|
context,
|
|
4707
4707
|
options,
|
|
4708
4708
|
tab,
|
|
4709
|
-
setSelectedRowKeys:
|
|
4709
|
+
setSelectedRowKeys: setSelectedRowKeys2,
|
|
4710
4710
|
groupByDomain,
|
|
4711
4711
|
enabled: enabledCallAPI,
|
|
4712
4712
|
actionData
|
|
@@ -4798,7 +4798,7 @@ var many2manyFieldController = (props) => {
|
|
|
4798
4798
|
}
|
|
4799
4799
|
return () => {
|
|
4800
4800
|
setPage(0);
|
|
4801
|
-
|
|
4801
|
+
setSelectedRowKeys2([]);
|
|
4802
4802
|
setDomainMany2Many(null);
|
|
4803
4803
|
};
|
|
4804
4804
|
}, [viewResponse]);
|
|
@@ -6090,11 +6090,16 @@ var binaryFieldController = (props) => {
|
|
|
6090
6090
|
};
|
|
6091
6091
|
|
|
6092
6092
|
// src/widget/advance/table/table-head/controller.ts
|
|
6093
|
-
import { useAppDispatch, setSelectedRowKeys } from "@fctc/interface-logic/store";
|
|
6094
6093
|
import { useMemo as useMemo11, useRef as useRef5 } from "react";
|
|
6095
6094
|
var tableHeadController = (props) => {
|
|
6096
|
-
const {
|
|
6097
|
-
|
|
6095
|
+
const {
|
|
6096
|
+
typeTable,
|
|
6097
|
+
rows,
|
|
6098
|
+
tableRef,
|
|
6099
|
+
groupByList,
|
|
6100
|
+
selectedRowKeys,
|
|
6101
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6102
|
+
} = props;
|
|
6098
6103
|
const { rowIds: recordIds } = useGetRowIds(tableRef);
|
|
6099
6104
|
const selectedRowKeysRef = useRef5(recordIds);
|
|
6100
6105
|
const isGroupTable = typeTable === "group";
|
|
@@ -6120,27 +6125,27 @@ var tableHeadController = (props) => {
|
|
|
6120
6125
|
const handleCheckBoxAll = (event) => {
|
|
6121
6126
|
if (event?.target?.checked && typeTable === "list") {
|
|
6122
6127
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6123
|
-
|
|
6128
|
+
setSelectedRowKeys2(allRowKeys);
|
|
6124
6129
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6125
6130
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6126
6131
|
const ids = Array.from(rowsIDs)?.map(
|
|
6127
6132
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6128
6133
|
);
|
|
6129
6134
|
if (ids?.length > 0) {
|
|
6130
|
-
|
|
6135
|
+
setSelectedRowKeys2(ids);
|
|
6131
6136
|
} else {
|
|
6132
6137
|
const sum = countSum(
|
|
6133
6138
|
rows,
|
|
6134
6139
|
typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0
|
|
6135
6140
|
);
|
|
6136
6141
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6137
|
-
|
|
6142
|
+
setSelectedRowKeys2(keys);
|
|
6138
6143
|
}
|
|
6139
6144
|
if (selectedRowKeysRef) {
|
|
6140
6145
|
selectedRowKeysRef.current = [];
|
|
6141
6146
|
}
|
|
6142
6147
|
} else {
|
|
6143
|
-
|
|
6148
|
+
setSelectedRowKeys2([]);
|
|
6144
6149
|
}
|
|
6145
6150
|
};
|
|
6146
6151
|
return {
|
|
@@ -6258,7 +6263,7 @@ var tableGroupController = (props) => {
|
|
|
6258
6263
|
context,
|
|
6259
6264
|
checkedAll,
|
|
6260
6265
|
groupByList,
|
|
6261
|
-
setSelectedRowKeys:
|
|
6266
|
+
setSelectedRowKeys: setSelectedRowKeys2
|
|
6262
6267
|
} = props;
|
|
6263
6268
|
const [pageGroup, setPageGroup] = useState14(0);
|
|
6264
6269
|
const { selectedRowKeys } = useAppSelector2(selectList);
|
|
@@ -6340,15 +6345,15 @@ var tableGroupController = (props) => {
|
|
|
6340
6345
|
const filteredIds = selectedRowKeys.filter(
|
|
6341
6346
|
(id) => !ids.includes(id)
|
|
6342
6347
|
);
|
|
6343
|
-
|
|
6348
|
+
setSelectedRowKeys2(filteredIds);
|
|
6344
6349
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull) {
|
|
6345
6350
|
const clonedKeys = [...selectedRowKeys];
|
|
6346
|
-
|
|
6347
|
-
setTimeout(() =>
|
|
6351
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
6352
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
6348
6353
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
6349
6354
|
console.log("abc");
|
|
6350
6355
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
6351
|
-
|
|
6356
|
+
setSelectedRowKeys2(filteredKeys);
|
|
6352
6357
|
}
|
|
6353
6358
|
toggleShowGroup();
|
|
6354
6359
|
};
|
|
@@ -6357,8 +6362,8 @@ var tableGroupController = (props) => {
|
|
|
6357
6362
|
return;
|
|
6358
6363
|
}
|
|
6359
6364
|
const clonedKeys = [...selectedRowKeys];
|
|
6360
|
-
|
|
6361
|
-
setTimeout(() =>
|
|
6365
|
+
setSelectedRowKeys2([...clonedKeys, -1]);
|
|
6366
|
+
setTimeout(() => setSelectedRowKeys2(clonedKeys), 500);
|
|
6362
6367
|
}, [isDataGroupFetched]);
|
|
6363
6368
|
return {
|
|
6364
6369
|
onExpandChildGroup,
|