@sustaina/shared-ui 1.6.2 → 1.6.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 +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +215 -98
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +215 -98
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1925,9 +1925,11 @@ var Navbar = ({
|
|
|
1925
1925
|
subTitle,
|
|
1926
1926
|
headImageURL = "",
|
|
1927
1927
|
headImageURLClassName,
|
|
1928
|
+
tooltipContentClassName = "md:w-[350px] lg:w-[420px]",
|
|
1928
1929
|
tooltipTitle,
|
|
1929
1930
|
tooltipIcon,
|
|
1930
1931
|
tooltipdescription = [],
|
|
1932
|
+
tooltipDescriptionWrapperClassName,
|
|
1931
1933
|
mainButtonText,
|
|
1932
1934
|
mainButtonClassName,
|
|
1933
1935
|
mainButtonDisable = false,
|
|
@@ -1946,17 +1948,17 @@ var Navbar = ({
|
|
|
1946
1948
|
"nav",
|
|
1947
1949
|
{
|
|
1948
1950
|
className: cn(
|
|
1949
|
-
"py-
|
|
1951
|
+
"py-3 px-8 w-full h-16 bg-sus-primary-1 flex items-center justify-between",
|
|
1950
1952
|
className
|
|
1951
1953
|
),
|
|
1952
1954
|
children: [
|
|
1953
1955
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
1954
|
-
headImageURL !== "" ? /* @__PURE__ */ jsx("img", { src: headImageURL, alt: "", className: cn("w-full h-full", headImageURLClassName) }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col
|
|
1955
|
-
isValidElement(title) ? title : /* @__PURE__ */ jsx("h1", { className: "text-white text-
|
|
1956
|
-
isValidElement(subTitle) ? subTitle : /* @__PURE__ */ jsx("h1", { className: "text-white text-
|
|
1956
|
+
headImageURL !== "" ? /* @__PURE__ */ jsx("img", { src: headImageURL, alt: "", className: cn("w-full h-full", headImageURLClassName) }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
1957
|
+
isValidElement(title) ? title : /* @__PURE__ */ jsx("h1", { className: "text-white text-xl font-bold", children: title }),
|
|
1958
|
+
isValidElement(subTitle) ? subTitle : /* @__PURE__ */ jsx("h1", { className: "text-white text-sm font-semibold", children: subTitle })
|
|
1957
1959
|
] }),
|
|
1958
|
-
tooltipTitle && /* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
1959
|
-
/* @__PURE__ */ jsx(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx("button", { className: "text-white hover:opacity-80
|
|
1960
|
+
tooltipTitle && /* @__PURE__ */ jsxs(Tooltip2, { delayDuration: 700, children: [
|
|
1961
|
+
/* @__PURE__ */ jsx(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx("button", { className: "text-white hover:opacity-80", children: /* @__PURE__ */ jsx(InfoIcon_default, { className: "w-4" }) }) }),
|
|
1960
1962
|
/* @__PURE__ */ jsxs(
|
|
1961
1963
|
TooltipContent2,
|
|
1962
1964
|
{
|
|
@@ -1966,11 +1968,12 @@ var Navbar = ({
|
|
|
1966
1968
|
align: "start",
|
|
1967
1969
|
avoidCollisions: false,
|
|
1968
1970
|
className: cn(
|
|
1969
|
-
"bg-background text-foreground border border-black
|
|
1971
|
+
"bg-background text-foreground border border-black",
|
|
1970
1972
|
"transition-all duration-150 ease-out origin-top",
|
|
1971
1973
|
"data-[state=closed]:opacity-0 data-[state=open]:opacity-100",
|
|
1972
1974
|
"data-[state=closed]:scale-95 data-[state=open]:scale-100",
|
|
1973
|
-
{ "mt-5": isDesktop }
|
|
1975
|
+
{ "mt-5": isDesktop },
|
|
1976
|
+
tooltipContentClassName
|
|
1974
1977
|
),
|
|
1975
1978
|
children: [
|
|
1976
1979
|
/* @__PURE__ */ jsxs(
|
|
@@ -1978,7 +1981,10 @@ var Navbar = ({
|
|
|
1978
1981
|
{
|
|
1979
1982
|
role: "tooltip",
|
|
1980
1983
|
"aria-label": tooltipTitle,
|
|
1981
|
-
className: cn(
|
|
1984
|
+
className: cn(
|
|
1985
|
+
"flex flex-col gap-4 max-w-sm text-sm text-gray-700",
|
|
1986
|
+
tooltipDescriptionWrapperClassName
|
|
1987
|
+
),
|
|
1982
1988
|
children: [
|
|
1983
1989
|
tooltipTitle && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
1984
1990
|
isValidElement(tooltipIcon) ? tooltipIcon : /* @__PURE__ */ jsx(Icon3, { size: 32, "aria-hidden": "true" }),
|
|
@@ -2083,6 +2089,7 @@ var ExpandCollapse_default = ExpandCollapse;
|
|
|
2083
2089
|
|
|
2084
2090
|
// src/components/advanceSearch/operatorMap.ts
|
|
2085
2091
|
var OPERATOR_MAP = {
|
|
2092
|
+
uuid: ["equals", "notEquals", "gt", "gte", "lt", "lte"],
|
|
2086
2093
|
text: [
|
|
2087
2094
|
"contains",
|
|
2088
2095
|
"equals",
|
|
@@ -2112,22 +2119,30 @@ function firstOperatorFor(fields, fieldName) {
|
|
|
2112
2119
|
const t3 = getFieldType(fields, fieldName);
|
|
2113
2120
|
return OPERATOR_MAP[t3][0];
|
|
2114
2121
|
}
|
|
2115
|
-
function makeNewRow(
|
|
2116
|
-
const
|
|
2117
|
-
const op = OPERATOR_MAP[first.type][0];
|
|
2122
|
+
function makeNewRow(field) {
|
|
2123
|
+
const op = OPERATOR_MAP[field.type][0];
|
|
2118
2124
|
if (op === "between") {
|
|
2119
2125
|
return {
|
|
2120
2126
|
id: crypto.randomUUID(),
|
|
2121
|
-
fieldName:
|
|
2127
|
+
fieldName: field.name,
|
|
2128
|
+
fieldType: field.type,
|
|
2122
2129
|
operator: "between",
|
|
2123
2130
|
value: "",
|
|
2124
|
-
value2: ""
|
|
2131
|
+
value2: "",
|
|
2132
|
+
multiTableSearch: field.multiTableSearch
|
|
2125
2133
|
};
|
|
2126
2134
|
}
|
|
2127
|
-
return {
|
|
2135
|
+
return {
|
|
2136
|
+
id: crypto.randomUUID(),
|
|
2137
|
+
fieldName: field.name,
|
|
2138
|
+
fieldType: field.type,
|
|
2139
|
+
operator: op,
|
|
2140
|
+
value: "",
|
|
2141
|
+
multiTableSearch: field.multiTableSearch
|
|
2142
|
+
};
|
|
2128
2143
|
}
|
|
2129
2144
|
function useAdvanceSearch({ fields, limitRows }) {
|
|
2130
|
-
const [rows, setRows] = useState([makeNewRow(fields)]);
|
|
2145
|
+
const [rows, setRows] = useState([makeNewRow(fields[0])]);
|
|
2131
2146
|
const updateRows = useCallback((next) => {
|
|
2132
2147
|
setRows(next);
|
|
2133
2148
|
}, []);
|
|
@@ -2140,7 +2155,7 @@ function useAdvanceSearch({ fields, limitRows }) {
|
|
|
2140
2155
|
);
|
|
2141
2156
|
const addRow = useCallback(() => {
|
|
2142
2157
|
if (!limitRows || rows.length < limitRows) {
|
|
2143
|
-
updateRows([...rows, makeNewRow(fields)]);
|
|
2158
|
+
updateRows([...rows, makeNewRow(fields[0])]);
|
|
2144
2159
|
}
|
|
2145
2160
|
}, [rows, fields, updateRows, limitRows]);
|
|
2146
2161
|
const removeRow = useCallback(
|
|
@@ -2156,22 +2171,29 @@ function useAdvanceSearch({ fields, limitRows }) {
|
|
|
2156
2171
|
rows.map((r2) => {
|
|
2157
2172
|
if (r2.id !== id) return r2;
|
|
2158
2173
|
const nextOp = firstOperatorFor(fields, r2.fieldName);
|
|
2159
|
-
return nextOp === "between" ? {
|
|
2174
|
+
return nextOp === "between" ? {
|
|
2175
|
+
id: r2.id,
|
|
2176
|
+
fieldName: r2.fieldName,
|
|
2177
|
+
fieldType: r2.fieldType,
|
|
2178
|
+
operator: "between",
|
|
2179
|
+
value: "",
|
|
2180
|
+
value2: ""
|
|
2181
|
+
} : { id: r2.id, fieldName: r2.fieldName, fieldType: r2.fieldType, operator: nextOp, value: "" };
|
|
2160
2182
|
})
|
|
2161
2183
|
);
|
|
2162
2184
|
},
|
|
2163
2185
|
[rows, fields, updateRows]
|
|
2164
2186
|
);
|
|
2165
2187
|
const clearAllRow = useCallback(() => {
|
|
2166
|
-
updateRows([makeNewRow(fields)]);
|
|
2188
|
+
updateRows([makeNewRow(fields[0])]);
|
|
2167
2189
|
}, [fields, updateRows]);
|
|
2168
2190
|
const changeField = useCallback(
|
|
2169
2191
|
(id, fieldName) => {
|
|
2170
|
-
const nextOp = firstOperatorFor(fields, fieldName);
|
|
2171
2192
|
updateRows(
|
|
2172
2193
|
rows.map((r2) => {
|
|
2173
2194
|
if (r2.id !== id) return r2;
|
|
2174
|
-
|
|
2195
|
+
const newRow = makeNewRow(fields.find((f) => f.name === fieldName) || fields[0]);
|
|
2196
|
+
return { ...newRow, id: r2.id };
|
|
2175
2197
|
})
|
|
2176
2198
|
);
|
|
2177
2199
|
},
|
|
@@ -2183,9 +2205,24 @@ function useAdvanceSearch({ fields, limitRows }) {
|
|
|
2183
2205
|
rows.map((r2) => {
|
|
2184
2206
|
if (r2.id !== id) return r2;
|
|
2185
2207
|
if (operator === "between") {
|
|
2186
|
-
return {
|
|
2208
|
+
return {
|
|
2209
|
+
id: r2.id,
|
|
2210
|
+
fieldName: r2.fieldName,
|
|
2211
|
+
fieldType: r2.fieldType,
|
|
2212
|
+
multiTableSearch: r2.multiTableSearch,
|
|
2213
|
+
operator,
|
|
2214
|
+
value: "",
|
|
2215
|
+
value2: ""
|
|
2216
|
+
};
|
|
2187
2217
|
}
|
|
2188
|
-
return {
|
|
2218
|
+
return {
|
|
2219
|
+
id: r2.id,
|
|
2220
|
+
fieldName: r2.fieldName,
|
|
2221
|
+
fieldType: r2.fieldType,
|
|
2222
|
+
multiTableSearch: r2.multiTableSearch,
|
|
2223
|
+
operator,
|
|
2224
|
+
value: ""
|
|
2225
|
+
};
|
|
2189
2226
|
})
|
|
2190
2227
|
);
|
|
2191
2228
|
},
|
|
@@ -2210,55 +2247,16 @@ function useAdvanceSearch({ fields, limitRows }) {
|
|
|
2210
2247
|
})),
|
|
2211
2248
|
[fields]
|
|
2212
2249
|
);
|
|
2213
|
-
const
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
return { [row.fieldName]: { contains: row.value } };
|
|
2224
|
-
case "beginsWith":
|
|
2225
|
-
return { [row.fieldName]: { startsWith: row.value } };
|
|
2226
|
-
case "endsWith":
|
|
2227
|
-
return { [row.fieldName]: { endsWith: row.value } };
|
|
2228
|
-
case "notEquals":
|
|
2229
|
-
return { [row.fieldName]: { not: row.value } };
|
|
2230
|
-
case "gt":
|
|
2231
|
-
return { [row.fieldName]: { gt: row.value } };
|
|
2232
|
-
case "gte":
|
|
2233
|
-
return { [row.fieldName]: { gte: row.value } };
|
|
2234
|
-
case "lt":
|
|
2235
|
-
return { [row.fieldName]: { lt: row.value } };
|
|
2236
|
-
case "lte":
|
|
2237
|
-
return { [row.fieldName]: { lte: row.value } };
|
|
2238
|
-
case "is":
|
|
2239
|
-
return { [row.fieldName]: row.value };
|
|
2240
|
-
case "isNot":
|
|
2241
|
-
return { [row.fieldName]: { not: row.value } };
|
|
2242
|
-
case "notContains":
|
|
2243
|
-
return { [row.fieldName]: { not: { contains: row.value } } };
|
|
2244
|
-
case "notBeginsWith":
|
|
2245
|
-
return { [row.fieldName]: { not: { startsWith: row.value } } };
|
|
2246
|
-
case "notEndsWith":
|
|
2247
|
-
return { [row.fieldName]: { not: { endsWith: row.value } } };
|
|
2248
|
-
case "containsAny":
|
|
2249
|
-
return { [row.fieldName]: { hasSome: row.value.split(",") } };
|
|
2250
|
-
case "containsAll":
|
|
2251
|
-
return { [row.fieldName]: { hasEvery: row.value.split(",") } };
|
|
2252
|
-
case "containsOnly":
|
|
2253
|
-
return { [row.fieldName]: { equals: row.value.split(",") } };
|
|
2254
|
-
default:
|
|
2255
|
-
return { [row.fieldName]: row.value };
|
|
2256
|
-
}
|
|
2257
|
-
};
|
|
2258
|
-
const buildParam = useMemo(() => {
|
|
2259
|
-
const andConditions = rows.map((r2) => r2.value ? rowToFilter(r2) : null).filter(Boolean);
|
|
2260
|
-
return { AND: andConditions };
|
|
2261
|
-
}, [rows]);
|
|
2250
|
+
const buildFilter = useCallback(
|
|
2251
|
+
(prismaFilter, options) => {
|
|
2252
|
+
return options?.multiTableSearch ? {
|
|
2253
|
+
some: {
|
|
2254
|
+
value: { ...prismaFilter, ...options?.insensitive ? { mode: "insensitive" } : void 0 }
|
|
2255
|
+
}
|
|
2256
|
+
} : prismaFilter;
|
|
2257
|
+
},
|
|
2258
|
+
[]
|
|
2259
|
+
);
|
|
2262
2260
|
return {
|
|
2263
2261
|
rows,
|
|
2264
2262
|
addRow,
|
|
@@ -2270,7 +2268,7 @@ function useAdvanceSearch({ fields, limitRows }) {
|
|
|
2270
2268
|
changeValue,
|
|
2271
2269
|
operatorsForField,
|
|
2272
2270
|
fieldOptions,
|
|
2273
|
-
|
|
2271
|
+
buildFilter
|
|
2274
2272
|
};
|
|
2275
2273
|
}
|
|
2276
2274
|
|
|
@@ -4796,7 +4794,10 @@ var AdvanceSearch = ({
|
|
|
4796
4794
|
onSearch,
|
|
4797
4795
|
onClear
|
|
4798
4796
|
}) => {
|
|
4799
|
-
const fieldsData = useMemo(() =>
|
|
4797
|
+
const fieldsData = useMemo(() => {
|
|
4798
|
+
if (fields.length === 0) throw new Error("fields cannot be an empty array");
|
|
4799
|
+
return fields || [];
|
|
4800
|
+
}, [fields]);
|
|
4800
4801
|
const {
|
|
4801
4802
|
rows,
|
|
4802
4803
|
addRow,
|
|
@@ -4806,7 +4807,8 @@ var AdvanceSearch = ({
|
|
|
4806
4807
|
changeField,
|
|
4807
4808
|
changeOperator,
|
|
4808
4809
|
operatorsForField,
|
|
4809
|
-
fieldOptions
|
|
4810
|
+
fieldOptions,
|
|
4811
|
+
buildFilter
|
|
4810
4812
|
} = useAdvanceSearch({ fields: fieldsData, limitRows });
|
|
4811
4813
|
const form = useForm({
|
|
4812
4814
|
mode: "onSubmit",
|
|
@@ -4818,66 +4820,181 @@ var AdvanceSearch = ({
|
|
|
4818
4820
|
const currentValues = getValues();
|
|
4819
4821
|
const param = {
|
|
4820
4822
|
AND: rows.map((r2) => {
|
|
4821
|
-
|
|
4823
|
+
let val1 = currentValues[`value_${r2.id}`];
|
|
4822
4824
|
const val2 = currentValues[`value2_${r2.id}`];
|
|
4823
4825
|
if (r2.operator === "between") {
|
|
4824
4826
|
if (!val1 || !val2) return null;
|
|
4827
|
+
const start = new Date(val1);
|
|
4828
|
+
start.setHours(0, 0, 0, 0);
|
|
4829
|
+
const end = new Date(val2);
|
|
4830
|
+
end.setHours(23, 59, 59, 59);
|
|
4825
4831
|
return {
|
|
4826
4832
|
[r2.fieldName]: {
|
|
4827
|
-
gte:
|
|
4828
|
-
|
|
4833
|
+
gte: start.toISOString(),
|
|
4834
|
+
lt: end.toISOString()
|
|
4829
4835
|
}
|
|
4830
4836
|
};
|
|
4831
4837
|
}
|
|
4832
4838
|
if (!val1) return null;
|
|
4839
|
+
val1 = r2.fieldType === "number" ? Number(val1) : val1;
|
|
4833
4840
|
switch (r2.operator) {
|
|
4834
4841
|
case "contains":
|
|
4835
|
-
return {
|
|
4842
|
+
return {
|
|
4843
|
+
[r2.fieldName]: buildFilter(
|
|
4844
|
+
{ contains: val1 },
|
|
4845
|
+
{
|
|
4846
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4847
|
+
insensitive: true
|
|
4848
|
+
}
|
|
4849
|
+
)
|
|
4850
|
+
};
|
|
4836
4851
|
case "beginsWith":
|
|
4837
|
-
return {
|
|
4852
|
+
return {
|
|
4853
|
+
[r2.fieldName]: buildFilter(
|
|
4854
|
+
{ startsWith: val1 },
|
|
4855
|
+
{
|
|
4856
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4857
|
+
insensitive: true
|
|
4858
|
+
}
|
|
4859
|
+
)
|
|
4860
|
+
};
|
|
4838
4861
|
case "endsWith":
|
|
4839
|
-
return {
|
|
4862
|
+
return {
|
|
4863
|
+
[r2.fieldName]: buildFilter(
|
|
4864
|
+
{ endsWith: val1 },
|
|
4865
|
+
{
|
|
4866
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4867
|
+
insensitive: true
|
|
4868
|
+
}
|
|
4869
|
+
)
|
|
4870
|
+
};
|
|
4840
4871
|
case "equals":
|
|
4841
|
-
return {
|
|
4872
|
+
return {
|
|
4873
|
+
[r2.fieldName]: buildFilter(
|
|
4874
|
+
{ equals: val1 },
|
|
4875
|
+
{
|
|
4876
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4877
|
+
insensitive: true
|
|
4878
|
+
}
|
|
4879
|
+
)
|
|
4880
|
+
};
|
|
4842
4881
|
case "notEquals":
|
|
4843
|
-
return {
|
|
4882
|
+
return {
|
|
4883
|
+
[r2.fieldName]: buildFilter(
|
|
4884
|
+
{ not: val1 },
|
|
4885
|
+
{
|
|
4886
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4887
|
+
insensitive: true
|
|
4888
|
+
}
|
|
4889
|
+
)
|
|
4890
|
+
};
|
|
4844
4891
|
case "gt":
|
|
4845
|
-
return {
|
|
4892
|
+
return {
|
|
4893
|
+
[r2.fieldName]: buildFilter({ gt: val1 }, { multiTableSearch: r2.multiTableSearch })
|
|
4894
|
+
};
|
|
4846
4895
|
case "gte":
|
|
4847
|
-
return {
|
|
4896
|
+
return {
|
|
4897
|
+
[r2.fieldName]: buildFilter({ gte: val1 }, { multiTableSearch: r2.multiTableSearch })
|
|
4898
|
+
};
|
|
4848
4899
|
case "lt":
|
|
4849
|
-
return {
|
|
4900
|
+
return {
|
|
4901
|
+
[r2.fieldName]: buildFilter({ lt: val1 }, { multiTableSearch: r2.multiTableSearch })
|
|
4902
|
+
};
|
|
4850
4903
|
case "lte":
|
|
4851
|
-
return {
|
|
4904
|
+
return {
|
|
4905
|
+
[r2.fieldName]: buildFilter({ lte: val1 }, { multiTableSearch: r2.multiTableSearch })
|
|
4906
|
+
};
|
|
4852
4907
|
case "is":
|
|
4853
4908
|
return { [r2.fieldName]: val1 };
|
|
4854
4909
|
case "isNot":
|
|
4855
4910
|
return { [r2.fieldName]: { not: val1 } };
|
|
4856
4911
|
case "notContains":
|
|
4857
|
-
return {
|
|
4912
|
+
return {
|
|
4913
|
+
[r2.fieldName]: buildFilter(
|
|
4914
|
+
{ not: { contains: val1 } },
|
|
4915
|
+
{
|
|
4916
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4917
|
+
insensitive: true
|
|
4918
|
+
}
|
|
4919
|
+
)
|
|
4920
|
+
};
|
|
4858
4921
|
case "notBeginsWith":
|
|
4859
|
-
return {
|
|
4922
|
+
return {
|
|
4923
|
+
[r2.fieldName]: buildFilter(
|
|
4924
|
+
{ not: { startsWith: val1 } },
|
|
4925
|
+
{
|
|
4926
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4927
|
+
insensitive: true
|
|
4928
|
+
}
|
|
4929
|
+
)
|
|
4930
|
+
};
|
|
4860
4931
|
case "notEndsWith":
|
|
4861
|
-
return {
|
|
4932
|
+
return {
|
|
4933
|
+
[r2.fieldName]: buildFilter(
|
|
4934
|
+
{ not: { endsWith: val1 } },
|
|
4935
|
+
{
|
|
4936
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4937
|
+
insensitive: true
|
|
4938
|
+
}
|
|
4939
|
+
)
|
|
4940
|
+
};
|
|
4862
4941
|
case "containsAny":
|
|
4863
|
-
return {
|
|
4942
|
+
return {
|
|
4943
|
+
[r2.fieldName]: buildFilter(
|
|
4944
|
+
{ hasSome: String(val1).split(",") },
|
|
4945
|
+
{ multiTableSearch: r2.multiTableSearch }
|
|
4946
|
+
)
|
|
4947
|
+
};
|
|
4864
4948
|
case "containsAll":
|
|
4865
|
-
return {
|
|
4949
|
+
return {
|
|
4950
|
+
[r2.fieldName]: buildFilter(
|
|
4951
|
+
{ hasEvery: String(val1).split(",") },
|
|
4952
|
+
{ multiTableSearch: r2.multiTableSearch }
|
|
4953
|
+
)
|
|
4954
|
+
};
|
|
4866
4955
|
case "containsOnly":
|
|
4867
|
-
return {
|
|
4868
|
-
|
|
4869
|
-
|
|
4956
|
+
return {
|
|
4957
|
+
[r2.fieldName]: buildFilter(
|
|
4958
|
+
{ equals: String(val1).split(",") },
|
|
4959
|
+
{
|
|
4960
|
+
multiTableSearch: r2.multiTableSearch,
|
|
4961
|
+
insensitive: true
|
|
4962
|
+
}
|
|
4963
|
+
)
|
|
4964
|
+
};
|
|
4965
|
+
case "on": {
|
|
4966
|
+
const start = new Date(val1);
|
|
4967
|
+
start.setHours(0, 0, 0, 0);
|
|
4968
|
+
const end = new Date(val1);
|
|
4969
|
+
end.setHours(23, 59, 59, 59);
|
|
4970
|
+
return {
|
|
4971
|
+
[r2.fieldName]: buildFilter(
|
|
4972
|
+
{ gte: start.toISOString(), lt: end.toISOString() },
|
|
4973
|
+
{ multiTableSearch: r2.multiTableSearch }
|
|
4974
|
+
)
|
|
4975
|
+
};
|
|
4976
|
+
}
|
|
4870
4977
|
case "after":
|
|
4871
|
-
return {
|
|
4978
|
+
return {
|
|
4979
|
+
[r2.fieldName]: buildFilter(
|
|
4980
|
+
{ gte: new Date(val1).toISOString() },
|
|
4981
|
+
{ multiTableSearch: r2.multiTableSearch }
|
|
4982
|
+
)
|
|
4983
|
+
};
|
|
4872
4984
|
case "before":
|
|
4873
|
-
return {
|
|
4985
|
+
return {
|
|
4986
|
+
[r2.fieldName]: buildFilter(
|
|
4987
|
+
{ lt: new Date(val1).toISOString() },
|
|
4988
|
+
{ multiTableSearch: r2.multiTableSearch }
|
|
4989
|
+
)
|
|
4990
|
+
};
|
|
4874
4991
|
}
|
|
4875
4992
|
}).filter(Boolean)
|
|
4876
4993
|
};
|
|
4877
4994
|
if (onSearch) {
|
|
4878
4995
|
onSearch(param);
|
|
4879
4996
|
}
|
|
4880
|
-
}, [getValues, rows, onSearch]);
|
|
4997
|
+
}, [buildFilter, getValues, rows, onSearch]);
|
|
4881
4998
|
return /* @__PURE__ */ jsx(
|
|
4882
4999
|
ExpandCollapse_default,
|
|
4883
5000
|
{
|