@charlesgomes/leafcode-shared-lib-react 1.0.82 → 1.0.84
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 +16 -10
- package/dist/index.d.ts +16 -10
- package/dist/index.js +389 -265
- package/dist/index.mjs +386 -264
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -55,7 +55,9 @@ __export(index_exports, {
|
|
|
55
55
|
getDefaultFilterMatchOptionsString: () => getDefaultFilterMatchOptionsString,
|
|
56
56
|
getDefaultFilterMatchOptionsStringArray: () => getDefaultFilterMatchOptionsStringArray,
|
|
57
57
|
getNullable: () => getNullable,
|
|
58
|
+
getNullableCollection: () => getNullableCollection,
|
|
58
59
|
getUrlParams: () => getUrlParams,
|
|
60
|
+
isSpecialMatchMode: () => isSpecialMatchMode,
|
|
59
61
|
mapPrimeToBackendFilters: () => mapPrimeToBackendFilters
|
|
60
62
|
});
|
|
61
63
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -1195,7 +1197,7 @@ function DynamicColumns({
|
|
|
1195
1197
|
size: "small",
|
|
1196
1198
|
onClick: () => {
|
|
1197
1199
|
const constraint = options.filterModel.constraints[0];
|
|
1198
|
-
if (constraint.matchMode === "empty" || constraint.matchMode === "notEmpty") {
|
|
1200
|
+
if (constraint.matchMode === "empty" || constraint.matchMode === "notEmpty" || constraint.matchMode !== "any" || constraint.matchMode !== "none") {
|
|
1199
1201
|
constraint.value = true;
|
|
1200
1202
|
}
|
|
1201
1203
|
options.filterApplyCallback(constraint.value, 0);
|
|
@@ -1759,268 +1761,9 @@ function DataTableAdvancedFilter({
|
|
|
1759
1761
|
// src/components/DataTableAdvancedFilter/FilterTemplates.tsx
|
|
1760
1762
|
var import_react_select2 = __toESM(require("react-select"));
|
|
1761
1763
|
var import_moment2 = __toESM(require("moment"));
|
|
1762
|
-
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1763
|
-
var DateFilterTemplate = (options, mask) => {
|
|
1764
|
-
const matchMode = options.filterModel?.matchMode;
|
|
1765
|
-
const isSpecial = matchMode === "empty" || matchMode === "notEmpty";
|
|
1766
|
-
const parsedValue = typeof options.filterModel?.value === "string" ? /* @__PURE__ */ new Date(options.filterModel.value + "T00:00:00") : null;
|
|
1767
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1768
|
-
import_calendar.Calendar,
|
|
1769
|
-
{
|
|
1770
|
-
value: parsedValue,
|
|
1771
|
-
onChange: (e) => {
|
|
1772
|
-
const date = e.value;
|
|
1773
|
-
if (!date) {
|
|
1774
|
-
options.filterCallback(null, options.index);
|
|
1775
|
-
return;
|
|
1776
|
-
}
|
|
1777
|
-
const valueToFilter = mask ? mask(date) : `${date.getFullYear()}-${String(
|
|
1778
|
-
date.getMonth() + 1
|
|
1779
|
-
).padStart(2, "0")}-${String(
|
|
1780
|
-
date.getDate()
|
|
1781
|
-
).padStart(2, "0")}`;
|
|
1782
|
-
options.filterCallback(valueToFilter, options.index);
|
|
1783
|
-
},
|
|
1784
|
-
dateFormat: "dd/mm/yy",
|
|
1785
|
-
placeholder: "dd/mm/yyyy",
|
|
1786
|
-
mask: "99/99/9999",
|
|
1787
|
-
inputClassName: "p-column-filter"
|
|
1788
|
-
}
|
|
1789
|
-
) });
|
|
1790
|
-
};
|
|
1791
|
-
var DateTimeFilterTemplate = (options, mask) => {
|
|
1792
|
-
const matchMode = options.filterModel?.matchMode;
|
|
1793
|
-
const isSpecial = matchMode === "empty" || matchMode === "notEmpty";
|
|
1794
|
-
const value = options.filterModel?.value ? (0, import_moment2.default)(options.filterModel.value).toDate() : null;
|
|
1795
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1796
|
-
import_calendar.Calendar,
|
|
1797
|
-
{
|
|
1798
|
-
value,
|
|
1799
|
-
showTime: true,
|
|
1800
|
-
showSeconds: true,
|
|
1801
|
-
hourFormat: "24",
|
|
1802
|
-
dateFormat: "dd/mm/yy",
|
|
1803
|
-
placeholder: "dd/mm/yyyy 00:00:00",
|
|
1804
|
-
readOnlyInput: true,
|
|
1805
|
-
inputClassName: "p-column-filter",
|
|
1806
|
-
onChange: (e) => {
|
|
1807
|
-
const selectedDate = e.value;
|
|
1808
|
-
if (!selectedDate) {
|
|
1809
|
-
options.filterCallback(null, options.index);
|
|
1810
|
-
return;
|
|
1811
|
-
}
|
|
1812
|
-
const formatted = mask ? mask(selectedDate) : (0, import_moment2.default)(selectedDate).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]");
|
|
1813
|
-
options.filterCallback(formatted, options.index);
|
|
1814
|
-
}
|
|
1815
|
-
}
|
|
1816
|
-
) });
|
|
1817
|
-
};
|
|
1818
|
-
var ValueFilterTemplate = (options, mask) => {
|
|
1819
|
-
const parsedValue = options.value !== null && options.value !== void 0 ? centsToReal(options.value) : null;
|
|
1820
|
-
const handleChange = (e) => {
|
|
1821
|
-
const rawValue = e.value;
|
|
1822
|
-
if (rawValue === null || rawValue === void 0) {
|
|
1823
|
-
options.filterCallback(null, options.index);
|
|
1824
|
-
return;
|
|
1825
|
-
}
|
|
1826
|
-
const valueToFilter = mask ? mask(rawValue) : rawValue;
|
|
1827
|
-
options.filterCallback(String(valueToFilter), options.index);
|
|
1828
|
-
};
|
|
1829
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1830
|
-
import_inputnumber.InputNumber,
|
|
1831
|
-
{
|
|
1832
|
-
value: parsedValue,
|
|
1833
|
-
placeholder: "R$ 0,00",
|
|
1834
|
-
onValueChange: handleChange,
|
|
1835
|
-
mode: "currency",
|
|
1836
|
-
currency: "BRL",
|
|
1837
|
-
locale: "pt-BR",
|
|
1838
|
-
inputClassName: "custom-input"
|
|
1839
|
-
}
|
|
1840
|
-
);
|
|
1841
|
-
};
|
|
1842
|
-
var SelectFilterTemplate = (options, isLanguagePtBr = true, items = []) => {
|
|
1843
|
-
const selectOptions = items.length > 0 ? items : [
|
|
1844
|
-
{ label: isLanguagePtBr ? "Sim" : "Yes", value: true },
|
|
1845
|
-
{ label: isLanguagePtBr ? "N\xE3o" : "No", value: false }
|
|
1846
|
-
];
|
|
1847
|
-
const matchMode = options.filterModel?.matchMode;
|
|
1848
|
-
const isSpecial = matchMode === "empty" || matchMode === "notEmpty";
|
|
1849
|
-
const currentValue = selectOptions.find(
|
|
1850
|
-
(opt) => opt.value === options.filterModel?.value
|
|
1851
|
-
) || null;
|
|
1852
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1853
|
-
import_react_select2.default,
|
|
1854
|
-
{
|
|
1855
|
-
options: selectOptions,
|
|
1856
|
-
value: currentValue,
|
|
1857
|
-
onChange: (selected) => {
|
|
1858
|
-
options.filterCallback(
|
|
1859
|
-
selected ? selected.value : null,
|
|
1860
|
-
options.index
|
|
1861
|
-
// 🔥 ESSENCIAL
|
|
1862
|
-
);
|
|
1863
|
-
},
|
|
1864
|
-
placeholder: isLanguagePtBr ? "Selecione..." : "Select...",
|
|
1865
|
-
isClearable: true,
|
|
1866
|
-
isSearchable: false,
|
|
1867
|
-
className: "custom-select-filtro",
|
|
1868
|
-
classNamePrefix: "custom-select-filtro"
|
|
1869
|
-
}
|
|
1870
|
-
) });
|
|
1871
|
-
};
|
|
1872
|
-
var CustomFilterElement = (options, isLanguagePtBr = true) => {
|
|
1873
|
-
const matchMode = options.filterModel?.matchMode;
|
|
1874
|
-
const isSpecial = matchMode === "empty" || matchMode === "notEmpty";
|
|
1875
|
-
return !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1876
|
-
import_inputtext.InputText,
|
|
1877
|
-
{
|
|
1878
|
-
value: options.filterModel?.value ?? "",
|
|
1879
|
-
placeholder: isLanguagePtBr ? "Pesquisar" : "Search",
|
|
1880
|
-
onChange: (e) => {
|
|
1881
|
-
options.filterCallback(
|
|
1882
|
-
e.target.value || null,
|
|
1883
|
-
options.index
|
|
1884
|
-
);
|
|
1885
|
-
},
|
|
1886
|
-
className: "p-column-filter"
|
|
1887
|
-
}
|
|
1888
|
-
);
|
|
1889
|
-
};
|
|
1890
|
-
|
|
1891
|
-
// src/components/DataTableAdvancedFilter/filterModes.ts
|
|
1892
|
-
var import_api3 = require("primereact/api");
|
|
1893
|
-
var customMatchModes = {
|
|
1894
|
-
notStartsWith: "notStartsWith",
|
|
1895
|
-
notEndsWith: "notEndsWith",
|
|
1896
|
-
empty: "empty",
|
|
1897
|
-
notEmpty: "notEmpty",
|
|
1898
|
-
dateBeforeAndEquals: "dateBeforeAndEquals",
|
|
1899
|
-
dateAfterAndEquals: "dateAfterAndEquals"
|
|
1900
|
-
};
|
|
1901
|
-
var getDefaultFilterMatchOptionsString = (isLanguagePtBr = true, isNullable = true) => {
|
|
1902
|
-
const baseOptions = [
|
|
1903
|
-
{
|
|
1904
|
-
label: isLanguagePtBr ? "Cont\xE9m" : "Contains",
|
|
1905
|
-
value: import_api3.FilterMatchMode.CONTAINS
|
|
1906
|
-
},
|
|
1907
|
-
{
|
|
1908
|
-
label: isLanguagePtBr ? "N\xE3o cont\xE9m" : "Does not contain",
|
|
1909
|
-
value: import_api3.FilterMatchMode.NOT_CONTAINS
|
|
1910
|
-
},
|
|
1911
|
-
{
|
|
1912
|
-
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
1913
|
-
value: import_api3.FilterMatchMode.EQUALS
|
|
1914
|
-
},
|
|
1915
|
-
{
|
|
1916
|
-
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
1917
|
-
value: import_api3.FilterMatchMode.NOT_EQUALS
|
|
1918
|
-
},
|
|
1919
|
-
{
|
|
1920
|
-
label: isLanguagePtBr ? "Come\xE7a com" : "Starts with",
|
|
1921
|
-
value: import_api3.FilterMatchMode.STARTS_WITH
|
|
1922
|
-
},
|
|
1923
|
-
{
|
|
1924
|
-
label: isLanguagePtBr ? "N\xE3o come\xE7a com" : "Does not start with",
|
|
1925
|
-
value: customMatchModes.notStartsWith
|
|
1926
|
-
},
|
|
1927
|
-
{
|
|
1928
|
-
label: isLanguagePtBr ? "Termina com" : "Ends with",
|
|
1929
|
-
value: import_api3.FilterMatchMode.ENDS_WITH
|
|
1930
|
-
},
|
|
1931
|
-
{
|
|
1932
|
-
label: isLanguagePtBr ? "N\xE3o termina com" : "Does not end with",
|
|
1933
|
-
value: customMatchModes.notEndsWith
|
|
1934
|
-
}
|
|
1935
|
-
];
|
|
1936
|
-
return isNullable ? [...baseOptions, ...getNullable(isLanguagePtBr)] : baseOptions;
|
|
1937
|
-
};
|
|
1938
|
-
var getDefaultFilterMatchOptionsNumber = (isLanguagePtBr = true, isNullable = true) => {
|
|
1939
|
-
const baseOptions = [
|
|
1940
|
-
{
|
|
1941
|
-
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
1942
|
-
value: import_api3.FilterMatchMode.EQUALS
|
|
1943
|
-
},
|
|
1944
|
-
{
|
|
1945
|
-
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
1946
|
-
value: import_api3.FilterMatchMode.NOT_EQUALS
|
|
1947
|
-
},
|
|
1948
|
-
{
|
|
1949
|
-
label: isLanguagePtBr ? "Menor que" : "Less than",
|
|
1950
|
-
value: import_api3.FilterMatchMode.LESS_THAN
|
|
1951
|
-
},
|
|
1952
|
-
{
|
|
1953
|
-
label: isLanguagePtBr ? "Menor ou igual a" : "Less than or equal to",
|
|
1954
|
-
value: import_api3.FilterMatchMode.LESS_THAN_OR_EQUAL_TO
|
|
1955
|
-
},
|
|
1956
|
-
{
|
|
1957
|
-
label: isLanguagePtBr ? "Maior que" : "Greater than",
|
|
1958
|
-
value: import_api3.FilterMatchMode.GREATER_THAN
|
|
1959
|
-
},
|
|
1960
|
-
{
|
|
1961
|
-
label: isLanguagePtBr ? "Maior ou igual a" : "Greater than or equal to",
|
|
1962
|
-
value: import_api3.FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
|
|
1963
|
-
}
|
|
1964
|
-
];
|
|
1965
|
-
return isNullable ? [...baseOptions, ...getNullable(isLanguagePtBr)] : baseOptions;
|
|
1966
|
-
};
|
|
1967
|
-
var getDefaultFilterMatchOptionsStringArray = (isLanguagePtBr = true) => [
|
|
1968
|
-
{
|
|
1969
|
-
label: isLanguagePtBr ? "Cont\xE9m" : "Contains",
|
|
1970
|
-
value: import_api3.FilterMatchMode.CONTAINS
|
|
1971
|
-
},
|
|
1972
|
-
{
|
|
1973
|
-
label: isLanguagePtBr ? "N\xE3o cont\xE9m" : "Does not contain",
|
|
1974
|
-
value: import_api3.FilterMatchMode.NOT_CONTAINS
|
|
1975
|
-
}
|
|
1976
|
-
];
|
|
1977
|
-
var getDefaultFilterMatchOptionsDate = (isLanguagePtBr, isNullable = true) => {
|
|
1978
|
-
const baseOptions = [
|
|
1979
|
-
{
|
|
1980
|
-
label: isLanguagePtBr ? "Data anterior a" : "Date before",
|
|
1981
|
-
value: import_api3.FilterMatchMode.DATE_BEFORE
|
|
1982
|
-
},
|
|
1983
|
-
{
|
|
1984
|
-
label: isLanguagePtBr ? "Data anterior ou igual a" : "Date prior to or equal to",
|
|
1985
|
-
value: customMatchModes.dateBeforeAndEquals
|
|
1986
|
-
},
|
|
1987
|
-
{
|
|
1988
|
-
label: isLanguagePtBr ? "Data posterior a" : "Date after",
|
|
1989
|
-
value: import_api3.FilterMatchMode.DATE_AFTER
|
|
1990
|
-
},
|
|
1991
|
-
{
|
|
1992
|
-
label: isLanguagePtBr ? "Data posterior ou igual a" : "Date later than or equal to",
|
|
1993
|
-
value: customMatchModes.dateAfterAndEquals
|
|
1994
|
-
}
|
|
1995
|
-
];
|
|
1996
|
-
return isNullable ? [...baseOptions, ...getNullable(isLanguagePtBr)] : baseOptions;
|
|
1997
|
-
};
|
|
1998
|
-
var getDefaultFilterMatchOptionsEnum = (isLanguagePtBr, isNullable = true) => {
|
|
1999
|
-
const baseOptions = [
|
|
2000
|
-
{
|
|
2001
|
-
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
2002
|
-
value: import_api3.FilterMatchMode.EQUALS
|
|
2003
|
-
},
|
|
2004
|
-
{
|
|
2005
|
-
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
2006
|
-
value: import_api3.FilterMatchMode.NOT_EQUALS
|
|
2007
|
-
}
|
|
2008
|
-
];
|
|
2009
|
-
return isNullable ? [...baseOptions, ...getNullable(isLanguagePtBr)] : baseOptions;
|
|
2010
|
-
};
|
|
2011
|
-
var getNullable = (isLanguagePtBr) => [
|
|
2012
|
-
{
|
|
2013
|
-
label: isLanguagePtBr ? "Vazio" : "Empty",
|
|
2014
|
-
value: customMatchModes.empty
|
|
2015
|
-
},
|
|
2016
|
-
{
|
|
2017
|
-
label: isLanguagePtBr ? "N\xE3o Vazio" : "NotEmpty",
|
|
2018
|
-
value: customMatchModes.notEmpty
|
|
2019
|
-
}
|
|
2020
|
-
];
|
|
2021
1764
|
|
|
2022
1765
|
// src/components/DataTableAdvancedFilter/utils/DataTableUtils.tsx
|
|
2023
|
-
var
|
|
1766
|
+
var import_api3 = require("primereact/api");
|
|
2024
1767
|
var mapMatchMode = (mode) => {
|
|
2025
1768
|
switch (mode) {
|
|
2026
1769
|
case "startsWith":
|
|
@@ -2053,6 +1796,12 @@ var mapMatchMode = (mode) => {
|
|
|
2053
1796
|
};
|
|
2054
1797
|
var buildFilterPayload = (fieldName, matchMode, rawValue) => {
|
|
2055
1798
|
const normalized = normalizeFilterValue(rawValue);
|
|
1799
|
+
if (matchMode === "any") {
|
|
1800
|
+
return { __collectionOperator: "any" };
|
|
1801
|
+
}
|
|
1802
|
+
if (matchMode === "none") {
|
|
1803
|
+
return { __collectionOperator: "none" };
|
|
1804
|
+
}
|
|
2056
1805
|
if (matchMode === "empty") {
|
|
2057
1806
|
return {
|
|
2058
1807
|
field: fieldName,
|
|
@@ -2168,7 +1917,13 @@ var mapPrimeToBackendFilters = (filters, globalFilterFields) => {
|
|
|
2168
1917
|
}
|
|
2169
1918
|
return;
|
|
2170
1919
|
}
|
|
2171
|
-
const constraints = Array.isArray(config.constraints) ? config.constraints.filter((c) =>
|
|
1920
|
+
const constraints = Array.isArray(config.constraints) ? config.constraints.filter((c) => {
|
|
1921
|
+
if (isSpecialMatchMode(c.matchMode)) {
|
|
1922
|
+
return true;
|
|
1923
|
+
}
|
|
1924
|
+
const normalized = normalizeFilterValue(c.value);
|
|
1925
|
+
return normalized !== null || normalized === "__NULL__";
|
|
1926
|
+
}) : [];
|
|
2172
1927
|
if (!constraints.length) return;
|
|
2173
1928
|
const colOperator = config.operator === "or" ? "or" : "and";
|
|
2174
1929
|
if (config.collection === "campos" && config.fieldId) {
|
|
@@ -2187,6 +1942,18 @@ var mapPrimeToBackendFilters = (filters, globalFilterFields) => {
|
|
|
2187
1942
|
).filter(Boolean);
|
|
2188
1943
|
if (!columnPayloads.length) return;
|
|
2189
1944
|
if (config.collection) {
|
|
1945
|
+
const collectionExistence = columnPayloads.find(
|
|
1946
|
+
(p) => p.__collectionOperator
|
|
1947
|
+
);
|
|
1948
|
+
if (collectionExistence) {
|
|
1949
|
+
const rootNode = buildCollectionExistenceNode(config.collection);
|
|
1950
|
+
if (collectionExistence.__collectionOperator === "none") {
|
|
1951
|
+
finalAnd.push({ not: rootNode });
|
|
1952
|
+
} else {
|
|
1953
|
+
finalAnd.push(rootNode);
|
|
1954
|
+
}
|
|
1955
|
+
return;
|
|
1956
|
+
}
|
|
2190
1957
|
const rootCollections = [];
|
|
2191
1958
|
columnPayloads.forEach((payload) => {
|
|
2192
1959
|
pushIntoCollectionTree(
|
|
@@ -2219,6 +1986,7 @@ function pushIntoCollectionTree(root, collectionPath, fieldName, payloadBase) {
|
|
|
2219
1986
|
const collections = collectionPath.split(".");
|
|
2220
1987
|
let current = root;
|
|
2221
1988
|
collections.forEach((collection) => {
|
|
1989
|
+
var _a;
|
|
2222
1990
|
let node = current.find(
|
|
2223
1991
|
(n) => n.collection === collection && n.any
|
|
2224
1992
|
);
|
|
@@ -2229,6 +1997,8 @@ function pushIntoCollectionTree(root, collectionPath, fieldName, payloadBase) {
|
|
|
2229
1997
|
};
|
|
2230
1998
|
current.push(node);
|
|
2231
1999
|
}
|
|
2000
|
+
node.any ?? (node.any = {});
|
|
2001
|
+
(_a = node.any).or ?? (_a.or = []);
|
|
2232
2002
|
current = node.any.or;
|
|
2233
2003
|
});
|
|
2234
2004
|
current.push({
|
|
@@ -2240,15 +2010,15 @@ function getMatchModeByTipo(tipo) {
|
|
|
2240
2010
|
switch (tipo) {
|
|
2241
2011
|
case "NumeroInteiro":
|
|
2242
2012
|
case "NumeroDecimal":
|
|
2243
|
-
return
|
|
2013
|
+
return import_api3.FilterMatchMode.EQUALS;
|
|
2244
2014
|
default:
|
|
2245
|
-
return
|
|
2015
|
+
return import_api3.FilterMatchMode.CONTAINS;
|
|
2246
2016
|
}
|
|
2247
2017
|
}
|
|
2248
2018
|
function buildDynamicCampoFilters(campos) {
|
|
2249
2019
|
return campos?.reduce((acc, campo) => {
|
|
2250
2020
|
acc[`${campo.id}`] = {
|
|
2251
|
-
operator:
|
|
2021
|
+
operator: import_api3.FilterOperator.AND,
|
|
2252
2022
|
constraints: [
|
|
2253
2023
|
{
|
|
2254
2024
|
value: null,
|
|
@@ -2263,6 +2033,27 @@ function buildDynamicCampoFilters(campos) {
|
|
|
2263
2033
|
return acc;
|
|
2264
2034
|
}, {});
|
|
2265
2035
|
}
|
|
2036
|
+
function buildCollectionExistenceNode(collectionPath) {
|
|
2037
|
+
const collections = collectionPath.split(".");
|
|
2038
|
+
let root = null;
|
|
2039
|
+
let current = null;
|
|
2040
|
+
collections.forEach((collection) => {
|
|
2041
|
+
const node = {
|
|
2042
|
+
collection,
|
|
2043
|
+
any: {}
|
|
2044
|
+
};
|
|
2045
|
+
if (!root) {
|
|
2046
|
+
root = node;
|
|
2047
|
+
} else {
|
|
2048
|
+
if (!current.any.or) {
|
|
2049
|
+
current.any.or = [];
|
|
2050
|
+
}
|
|
2051
|
+
current.any.or.push(node);
|
|
2052
|
+
}
|
|
2053
|
+
current = node;
|
|
2054
|
+
});
|
|
2055
|
+
return root;
|
|
2056
|
+
}
|
|
2266
2057
|
var getUrlParams = (sortFieldInitial, sortOrderInitial) => {
|
|
2267
2058
|
const params = new URLSearchParams(
|
|
2268
2059
|
typeof window !== "undefined" ? window.location.search : ""
|
|
@@ -2332,6 +2123,337 @@ function resolveMatchMode(constraintMatchMode, rawValue) {
|
|
|
2332
2123
|
}
|
|
2333
2124
|
return constraintMatchMode;
|
|
2334
2125
|
}
|
|
2126
|
+
var SPECIAL_MATCH_MODES = /* @__PURE__ */ new Set([
|
|
2127
|
+
"empty",
|
|
2128
|
+
"notEmpty",
|
|
2129
|
+
"any",
|
|
2130
|
+
"none"
|
|
2131
|
+
]);
|
|
2132
|
+
var isSpecialMatchMode = (matchMode) => !!matchMode && SPECIAL_MATCH_MODES.has(matchMode);
|
|
2133
|
+
|
|
2134
|
+
// src/components/DataTableAdvancedFilter/FilterTemplates.tsx
|
|
2135
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
2136
|
+
var DateFilterTemplate = (options, mask) => {
|
|
2137
|
+
const matchMode = options.filterModel?.matchMode;
|
|
2138
|
+
const value = options.filterModel?.value;
|
|
2139
|
+
const isSpecial = isSpecialMatchMode(matchMode);
|
|
2140
|
+
if (!isSpecial && value === true) {
|
|
2141
|
+
options.filterCallback(
|
|
2142
|
+
"",
|
|
2143
|
+
options.index
|
|
2144
|
+
);
|
|
2145
|
+
}
|
|
2146
|
+
const parsedValue = typeof options.filterModel?.value === "string" ? /* @__PURE__ */ new Date(options.filterModel.value + "T00:00:00") : null;
|
|
2147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2148
|
+
import_calendar.Calendar,
|
|
2149
|
+
{
|
|
2150
|
+
value: parsedValue,
|
|
2151
|
+
onChange: (e) => {
|
|
2152
|
+
const date = e.value;
|
|
2153
|
+
if (!date) {
|
|
2154
|
+
options.filterCallback(null, options.index);
|
|
2155
|
+
return;
|
|
2156
|
+
}
|
|
2157
|
+
const valueToFilter = mask ? mask(date) : `${date.getFullYear()}-${String(
|
|
2158
|
+
date.getMonth() + 1
|
|
2159
|
+
).padStart(2, "0")}-${String(
|
|
2160
|
+
date.getDate()
|
|
2161
|
+
).padStart(2, "0")}`;
|
|
2162
|
+
options.filterCallback(valueToFilter, options.index);
|
|
2163
|
+
},
|
|
2164
|
+
dateFormat: "dd/mm/yy",
|
|
2165
|
+
placeholder: "dd/mm/yyyy",
|
|
2166
|
+
mask: "99/99/9999",
|
|
2167
|
+
inputClassName: "p-column-filter"
|
|
2168
|
+
}
|
|
2169
|
+
) });
|
|
2170
|
+
};
|
|
2171
|
+
var DateTimeFilterTemplate = (options, mask) => {
|
|
2172
|
+
const matchMode = options.filterModel?.matchMode;
|
|
2173
|
+
const value = options.filterModel?.value ? (0, import_moment2.default)(options.filterModel.value).toDate() : null;
|
|
2174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecialMatchMode(matchMode) && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2175
|
+
import_calendar.Calendar,
|
|
2176
|
+
{
|
|
2177
|
+
value,
|
|
2178
|
+
showTime: true,
|
|
2179
|
+
showSeconds: true,
|
|
2180
|
+
hourFormat: "24",
|
|
2181
|
+
dateFormat: "dd/mm/yy",
|
|
2182
|
+
placeholder: "dd/mm/yyyy 00:00:00",
|
|
2183
|
+
readOnlyInput: true,
|
|
2184
|
+
inputClassName: "p-column-filter",
|
|
2185
|
+
onChange: (e) => {
|
|
2186
|
+
const selectedDate = e.value;
|
|
2187
|
+
if (!selectedDate) {
|
|
2188
|
+
options.filterCallback(null, options.index);
|
|
2189
|
+
return;
|
|
2190
|
+
}
|
|
2191
|
+
const formatted = mask ? mask(selectedDate) : (0, import_moment2.default)(selectedDate).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]");
|
|
2192
|
+
options.filterCallback(formatted, options.index);
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
) });
|
|
2196
|
+
};
|
|
2197
|
+
var ValueFilterTemplate = (options, mask) => {
|
|
2198
|
+
const parsedValue = options.value !== null && options.value !== void 0 ? centsToReal(options.value) : null;
|
|
2199
|
+
const handleChange = (e) => {
|
|
2200
|
+
const rawValue = e.value;
|
|
2201
|
+
if (rawValue === null || rawValue === void 0) {
|
|
2202
|
+
options.filterCallback(null, options.index);
|
|
2203
|
+
return;
|
|
2204
|
+
}
|
|
2205
|
+
const valueToFilter = mask ? mask(rawValue) : rawValue;
|
|
2206
|
+
options.filterCallback(String(valueToFilter), options.index);
|
|
2207
|
+
};
|
|
2208
|
+
const matchMode = options.filterModel?.matchMode;
|
|
2209
|
+
const value = options.filterModel?.value;
|
|
2210
|
+
const isSpecial = isSpecialMatchMode(matchMode);
|
|
2211
|
+
if (!isSpecial && value === true) {
|
|
2212
|
+
options.filterCallback(
|
|
2213
|
+
"",
|
|
2214
|
+
options.index
|
|
2215
|
+
);
|
|
2216
|
+
}
|
|
2217
|
+
return !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2218
|
+
import_inputnumber.InputNumber,
|
|
2219
|
+
{
|
|
2220
|
+
value: parsedValue,
|
|
2221
|
+
placeholder: "R$ 0,00",
|
|
2222
|
+
onValueChange: handleChange,
|
|
2223
|
+
mode: "currency",
|
|
2224
|
+
currency: "BRL",
|
|
2225
|
+
locale: "pt-BR",
|
|
2226
|
+
inputClassName: "custom-input"
|
|
2227
|
+
}
|
|
2228
|
+
);
|
|
2229
|
+
};
|
|
2230
|
+
var SelectFilterTemplate = (options, isLanguagePtBr = true, items = []) => {
|
|
2231
|
+
const selectOptions = items.length > 0 ? items : [
|
|
2232
|
+
{ label: isLanguagePtBr ? "Sim" : "Yes", value: true },
|
|
2233
|
+
{ label: isLanguagePtBr ? "N\xE3o" : "No", value: false }
|
|
2234
|
+
];
|
|
2235
|
+
const matchMode = options.filterModel?.matchMode;
|
|
2236
|
+
const value = options.filterModel?.value;
|
|
2237
|
+
const isSpecial = isSpecialMatchMode(matchMode);
|
|
2238
|
+
if (!isSpecial && value === true) {
|
|
2239
|
+
options.filterCallback(
|
|
2240
|
+
"",
|
|
2241
|
+
options.index
|
|
2242
|
+
);
|
|
2243
|
+
}
|
|
2244
|
+
const currentValue = selectOptions.find(
|
|
2245
|
+
(opt) => opt.value === options.filterModel?.value
|
|
2246
|
+
) || null;
|
|
2247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2248
|
+
import_react_select2.default,
|
|
2249
|
+
{
|
|
2250
|
+
options: selectOptions,
|
|
2251
|
+
value: currentValue,
|
|
2252
|
+
onChange: (selected) => {
|
|
2253
|
+
options.filterCallback(
|
|
2254
|
+
selected ? selected.value : null,
|
|
2255
|
+
options.index
|
|
2256
|
+
);
|
|
2257
|
+
},
|
|
2258
|
+
placeholder: isLanguagePtBr ? "Selecione..." : "Select...",
|
|
2259
|
+
isClearable: true,
|
|
2260
|
+
isSearchable: false,
|
|
2261
|
+
className: "custom-select-filtro",
|
|
2262
|
+
classNamePrefix: "custom-select-filtro"
|
|
2263
|
+
}
|
|
2264
|
+
) });
|
|
2265
|
+
};
|
|
2266
|
+
var CustomFilterElement = (options, isLanguagePtBr = true) => {
|
|
2267
|
+
const matchMode = options.filterModel?.matchMode;
|
|
2268
|
+
const value = options.filterModel?.value;
|
|
2269
|
+
const isSpecial = isSpecialMatchMode(matchMode);
|
|
2270
|
+
if (!isSpecial && value === true) {
|
|
2271
|
+
options.filterCallback(
|
|
2272
|
+
"",
|
|
2273
|
+
options.index
|
|
2274
|
+
);
|
|
2275
|
+
}
|
|
2276
|
+
return !isSpecial && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2277
|
+
import_inputtext.InputText,
|
|
2278
|
+
{
|
|
2279
|
+
value: options.filterModel?.value ?? "",
|
|
2280
|
+
placeholder: isLanguagePtBr ? "Pesquisar" : "Search",
|
|
2281
|
+
onChange: (e) => {
|
|
2282
|
+
options.filterCallback(
|
|
2283
|
+
e.target.value || null,
|
|
2284
|
+
options.index
|
|
2285
|
+
);
|
|
2286
|
+
},
|
|
2287
|
+
className: "p-column-filter"
|
|
2288
|
+
}
|
|
2289
|
+
);
|
|
2290
|
+
};
|
|
2291
|
+
|
|
2292
|
+
// src/components/DataTableAdvancedFilter/filterModes.ts
|
|
2293
|
+
var import_api4 = require("primereact/api");
|
|
2294
|
+
var customMatchModes = {
|
|
2295
|
+
notStartsWith: "notStartsWith",
|
|
2296
|
+
notEndsWith: "notEndsWith",
|
|
2297
|
+
empty: "empty",
|
|
2298
|
+
notEmpty: "notEmpty",
|
|
2299
|
+
dateBeforeAndEquals: "dateBeforeAndEquals",
|
|
2300
|
+
dateAfterAndEquals: "dateAfterAndEquals",
|
|
2301
|
+
any: "any",
|
|
2302
|
+
none: "none"
|
|
2303
|
+
};
|
|
2304
|
+
var getDefaultFilterMatchOptionsString = (isLanguagePtBr = true, isNullable = true, isCollection = false) => {
|
|
2305
|
+
const baseOptions = [
|
|
2306
|
+
{
|
|
2307
|
+
label: isLanguagePtBr ? "Cont\xE9m" : "Contains",
|
|
2308
|
+
value: import_api4.FilterMatchMode.CONTAINS
|
|
2309
|
+
},
|
|
2310
|
+
{
|
|
2311
|
+
label: isLanguagePtBr ? "N\xE3o cont\xE9m" : "Does not contain",
|
|
2312
|
+
value: import_api4.FilterMatchMode.NOT_CONTAINS
|
|
2313
|
+
},
|
|
2314
|
+
{
|
|
2315
|
+
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
2316
|
+
value: import_api4.FilterMatchMode.EQUALS
|
|
2317
|
+
},
|
|
2318
|
+
{
|
|
2319
|
+
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
2320
|
+
value: import_api4.FilterMatchMode.NOT_EQUALS
|
|
2321
|
+
},
|
|
2322
|
+
{
|
|
2323
|
+
label: isLanguagePtBr ? "Come\xE7a com" : "Starts with",
|
|
2324
|
+
value: import_api4.FilterMatchMode.STARTS_WITH
|
|
2325
|
+
},
|
|
2326
|
+
{
|
|
2327
|
+
label: isLanguagePtBr ? "N\xE3o come\xE7a com" : "Does not start with",
|
|
2328
|
+
value: customMatchModes.notStartsWith
|
|
2329
|
+
},
|
|
2330
|
+
{
|
|
2331
|
+
label: isLanguagePtBr ? "Termina com" : "Ends with",
|
|
2332
|
+
value: import_api4.FilterMatchMode.ENDS_WITH
|
|
2333
|
+
},
|
|
2334
|
+
{
|
|
2335
|
+
label: isLanguagePtBr ? "N\xE3o termina com" : "Does not end with",
|
|
2336
|
+
value: customMatchModes.notEndsWith
|
|
2337
|
+
}
|
|
2338
|
+
];
|
|
2339
|
+
return [
|
|
2340
|
+
...baseOptions,
|
|
2341
|
+
...isCollection ? getNullableCollection(isLanguagePtBr) : [],
|
|
2342
|
+
...isNullable ? getNullable(isLanguagePtBr) : []
|
|
2343
|
+
];
|
|
2344
|
+
};
|
|
2345
|
+
var getDefaultFilterMatchOptionsNumber = (isLanguagePtBr = true, isNullable = true, isCollection = false) => {
|
|
2346
|
+
const baseOptions = [
|
|
2347
|
+
{
|
|
2348
|
+
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
2349
|
+
value: import_api4.FilterMatchMode.EQUALS
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
2353
|
+
value: import_api4.FilterMatchMode.NOT_EQUALS
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
label: isLanguagePtBr ? "Menor que" : "Less than",
|
|
2357
|
+
value: import_api4.FilterMatchMode.LESS_THAN
|
|
2358
|
+
},
|
|
2359
|
+
{
|
|
2360
|
+
label: isLanguagePtBr ? "Menor ou igual a" : "Less than or equal to",
|
|
2361
|
+
value: import_api4.FilterMatchMode.LESS_THAN_OR_EQUAL_TO
|
|
2362
|
+
},
|
|
2363
|
+
{
|
|
2364
|
+
label: isLanguagePtBr ? "Maior que" : "Greater than",
|
|
2365
|
+
value: import_api4.FilterMatchMode.GREATER_THAN
|
|
2366
|
+
},
|
|
2367
|
+
{
|
|
2368
|
+
label: isLanguagePtBr ? "Maior ou igual a" : "Greater than or equal to",
|
|
2369
|
+
value: import_api4.FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
|
|
2370
|
+
}
|
|
2371
|
+
];
|
|
2372
|
+
return [
|
|
2373
|
+
...baseOptions,
|
|
2374
|
+
...isCollection ? getNullableCollection(isLanguagePtBr) : [],
|
|
2375
|
+
...isNullable ? getNullable(isLanguagePtBr) : []
|
|
2376
|
+
];
|
|
2377
|
+
};
|
|
2378
|
+
var getDefaultFilterMatchOptionsStringArray = (isLanguagePtBr = true, isNullable = true, isCollection = false) => {
|
|
2379
|
+
const baseOptions = [
|
|
2380
|
+
{
|
|
2381
|
+
label: isLanguagePtBr ? "Cont\xE9m" : "Contains",
|
|
2382
|
+
value: import_api4.FilterMatchMode.CONTAINS
|
|
2383
|
+
},
|
|
2384
|
+
{
|
|
2385
|
+
label: isLanguagePtBr ? "N\xE3o cont\xE9m" : "Does not contain",
|
|
2386
|
+
value: import_api4.FilterMatchMode.NOT_CONTAINS
|
|
2387
|
+
}
|
|
2388
|
+
];
|
|
2389
|
+
return [
|
|
2390
|
+
...baseOptions,
|
|
2391
|
+
...isCollection ? getNullableCollection(isLanguagePtBr) : [],
|
|
2392
|
+
...isNullable ? getNullable(isLanguagePtBr) : []
|
|
2393
|
+
];
|
|
2394
|
+
};
|
|
2395
|
+
var getDefaultFilterMatchOptionsDate = (isLanguagePtBr, isNullable = true, isCollection = false) => {
|
|
2396
|
+
const baseOptions = [
|
|
2397
|
+
{
|
|
2398
|
+
label: isLanguagePtBr ? "Data anterior a" : "Date before",
|
|
2399
|
+
value: import_api4.FilterMatchMode.DATE_BEFORE
|
|
2400
|
+
},
|
|
2401
|
+
{
|
|
2402
|
+
label: isLanguagePtBr ? "Data anterior ou igual a" : "Date prior to or equal to",
|
|
2403
|
+
value: customMatchModes.dateBeforeAndEquals
|
|
2404
|
+
},
|
|
2405
|
+
{
|
|
2406
|
+
label: isLanguagePtBr ? "Data posterior a" : "Date after",
|
|
2407
|
+
value: import_api4.FilterMatchMode.DATE_AFTER
|
|
2408
|
+
},
|
|
2409
|
+
{
|
|
2410
|
+
label: isLanguagePtBr ? "Data posterior ou igual a" : "Date later than or equal to",
|
|
2411
|
+
value: customMatchModes.dateAfterAndEquals
|
|
2412
|
+
}
|
|
2413
|
+
];
|
|
2414
|
+
return [
|
|
2415
|
+
...baseOptions,
|
|
2416
|
+
...isCollection ? getNullableCollection(isLanguagePtBr) : [],
|
|
2417
|
+
...isNullable ? getNullable(isLanguagePtBr) : []
|
|
2418
|
+
];
|
|
2419
|
+
};
|
|
2420
|
+
var getDefaultFilterMatchOptionsEnum = (isLanguagePtBr, isNullable = true, isCollection = false) => {
|
|
2421
|
+
const baseOptions = [
|
|
2422
|
+
{
|
|
2423
|
+
label: isLanguagePtBr ? "Igual" : "Equals",
|
|
2424
|
+
value: import_api4.FilterMatchMode.EQUALS
|
|
2425
|
+
},
|
|
2426
|
+
{
|
|
2427
|
+
label: isLanguagePtBr ? "Diferente" : "Not equals",
|
|
2428
|
+
value: import_api4.FilterMatchMode.NOT_EQUALS
|
|
2429
|
+
}
|
|
2430
|
+
];
|
|
2431
|
+
return [
|
|
2432
|
+
...baseOptions,
|
|
2433
|
+
...isCollection ? getNullableCollection(isLanguagePtBr) : [],
|
|
2434
|
+
...isNullable ? getNullable(isLanguagePtBr) : []
|
|
2435
|
+
];
|
|
2436
|
+
};
|
|
2437
|
+
var getNullable = (isLanguagePtBr) => [
|
|
2438
|
+
{
|
|
2439
|
+
label: isLanguagePtBr ? "Vazio" : "Empty",
|
|
2440
|
+
value: customMatchModes.empty
|
|
2441
|
+
},
|
|
2442
|
+
{
|
|
2443
|
+
label: isLanguagePtBr ? "N\xE3o Vazio" : "NotEmpty",
|
|
2444
|
+
value: customMatchModes.notEmpty
|
|
2445
|
+
}
|
|
2446
|
+
];
|
|
2447
|
+
var getNullableCollection = (isLanguagePtBr) => [
|
|
2448
|
+
{
|
|
2449
|
+
label: isLanguagePtBr ? "Algum" : "Any",
|
|
2450
|
+
value: customMatchModes.any
|
|
2451
|
+
},
|
|
2452
|
+
{
|
|
2453
|
+
label: isLanguagePtBr ? "Nenhum" : "None",
|
|
2454
|
+
value: customMatchModes.none
|
|
2455
|
+
}
|
|
2456
|
+
];
|
|
2335
2457
|
|
|
2336
2458
|
// src/index.tsx
|
|
2337
2459
|
var import_api5 = require("primereact/api");
|
|
@@ -2362,6 +2484,8 @@ var import_api5 = require("primereact/api");
|
|
|
2362
2484
|
getDefaultFilterMatchOptionsString,
|
|
2363
2485
|
getDefaultFilterMatchOptionsStringArray,
|
|
2364
2486
|
getNullable,
|
|
2487
|
+
getNullableCollection,
|
|
2365
2488
|
getUrlParams,
|
|
2489
|
+
isSpecialMatchMode,
|
|
2366
2490
|
mapPrimeToBackendFilters
|
|
2367
2491
|
});
|