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