synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
78 lines (77 loc) • 1.91 kB
JavaScript
import { jsx as F } from "react/jsx-runtime";
import { noop as p, isEqual as d, isEmpty as V } from "lodash-es";
import { useMemo as s } from "react";
import v from "../widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js";
function S(l, e) {
l.columnDef.meta?.enableMultipleSelect ? l.setFilterValue((t) => t ? [...t, e] : [e]) : l.setFilterValue([e]);
}
function y(l, e) {
l.setFilterValue((t) => {
if (t) {
const n = [
...t.filter((o) => !d(o, e))
];
if (!V(n))
return n;
}
return null;
});
}
function A(l) {
if (l) {
const e = Array.from(l.values()).some(
(t) => t != 0
);
return Array.from(l.entries()).map(
(t) => ({
value: t[0],
count: e ? t[1] : void 0
})
);
}
return [];
}
function M(l) {
const { column: e, title: t } = l, n = e.columnDef.meta?.enableMultipleSelect || !1, o = e.getFilterValue(), i = s(
() => o || [],
[o]
), u = e.getFacetedUniqueValues(), c = s(
() => A(u).map(
(r) => {
let a = r.value;
e.columnDef?.meta?.getDisplayText && (a = e.columnDef.meta.getDisplayText(r.value));
const m = !!(i || []).find(
(f) => f === r.value
);
return { ...r, displayText: a, isSelected: m };
}
),
[e, i, u]
);
return /* @__PURE__ */ F(
v,
{
facetTitle: t,
facetValues: c,
filterIsActive: e.getIsFiltered(),
containerAs: "Dropdown",
dropdownType: "Icon",
defaultShowAllValues: !0,
onAddValueToSelection: (r) => {
S(e, r);
},
onRemoveValueFromSelection: (r) => {
y(e, r);
},
onRemoveAllFacetSelections: () => {
e.setFilterValue(null);
},
onHoverOverValue: p,
canMultiSelect: n
}
);
}
export {
M as ColumnHeaderEnumFilter
};
//# sourceMappingURL=ColumnHeaderEnumFilter.js.map