@proveanything/smartlinks-utils-ui 0.11.4 → 0.11.5
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.
|
@@ -993,90 +993,7 @@ var useProductChildren = (args) => {
|
|
|
993
993
|
};
|
|
994
994
|
};
|
|
995
995
|
var EMPTY_RULE_FILTERS = { facetKeys: [], minClauses: null };
|
|
996
|
-
var COMPLEXITY_THRESHOLDS = [3, 5, 10];
|
|
997
996
|
var ruleOf = (r) => r.facetRule ?? null;
|
|
998
|
-
function RuleFilterChips({ source, value, onChange }) {
|
|
999
|
-
const facetKeyEntries = useMemo(() => {
|
|
1000
|
-
const counts = /* @__PURE__ */ new Map();
|
|
1001
|
-
for (const r of source) {
|
|
1002
|
-
const rule = ruleOf(r);
|
|
1003
|
-
if (!rule) continue;
|
|
1004
|
-
for (const c of rule.all ?? []) {
|
|
1005
|
-
counts.set(c.facetKey, (counts.get(c.facetKey) ?? 0) + 1);
|
|
1006
|
-
}
|
|
1007
|
-
}
|
|
1008
|
-
return Array.from(counts.entries()).sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
1009
|
-
}, [source]);
|
|
1010
|
-
const maxClauses = useMemo(() => {
|
|
1011
|
-
let max = 0;
|
|
1012
|
-
for (const r of source) {
|
|
1013
|
-
const rule = ruleOf(r);
|
|
1014
|
-
if (!rule) continue;
|
|
1015
|
-
max = Math.max(max, rule.all?.length ?? 0);
|
|
1016
|
-
}
|
|
1017
|
-
return max;
|
|
1018
|
-
}, [source]);
|
|
1019
|
-
if (facetKeyEntries.length === 0 && maxClauses < 2) return null;
|
|
1020
|
-
const toggleKey = (key) => {
|
|
1021
|
-
const has = value.facetKeys.includes(key);
|
|
1022
|
-
const next = has ? value.facetKeys.filter((k) => k !== key) : [...value.facetKeys, key];
|
|
1023
|
-
onChange({ ...value, facetKeys: next });
|
|
1024
|
-
};
|
|
1025
|
-
const setMin = (n) => onChange({ ...value, minClauses: n });
|
|
1026
|
-
const hasAny = value.facetKeys.length > 0 || value.minClauses != null;
|
|
1027
|
-
return /* @__PURE__ */ jsxs("div", { className: "ra-rule-filters", children: [
|
|
1028
|
-
/* @__PURE__ */ jsx("div", { className: "ra-rule-filters-row", role: "group", "aria-label": "Filter rules by facet", children: facetKeyEntries.map(([key, count]) => {
|
|
1029
|
-
const active = value.facetKeys.includes(key);
|
|
1030
|
-
return /* @__PURE__ */ jsxs(
|
|
1031
|
-
"button",
|
|
1032
|
-
{
|
|
1033
|
-
type: "button",
|
|
1034
|
-
onClick: () => toggleKey(key),
|
|
1035
|
-
className: "ra-rule-filter-chip",
|
|
1036
|
-
"data-active": active ? "true" : "false",
|
|
1037
|
-
"aria-pressed": active,
|
|
1038
|
-
title: `Show rules using ${key}`,
|
|
1039
|
-
children: [
|
|
1040
|
-
/* @__PURE__ */ jsx("span", { className: "ra-rule-filter-chip-label", children: key }),
|
|
1041
|
-
/* @__PURE__ */ jsx("span", { className: "ra-rule-filter-chip-count", children: count })
|
|
1042
|
-
]
|
|
1043
|
-
},
|
|
1044
|
-
key
|
|
1045
|
-
);
|
|
1046
|
-
}) }),
|
|
1047
|
-
maxClauses >= 2 && /* @__PURE__ */ jsx("div", { className: "ra-rule-filters-row", role: "group", "aria-label": "Filter by clause count", children: COMPLEXITY_THRESHOLDS.filter((n) => maxClauses >= n).map((n) => {
|
|
1048
|
-
const active = value.minClauses === n;
|
|
1049
|
-
return /* @__PURE__ */ jsxs(
|
|
1050
|
-
"button",
|
|
1051
|
-
{
|
|
1052
|
-
type: "button",
|
|
1053
|
-
onClick: () => setMin(active ? null : n),
|
|
1054
|
-
className: "ra-rule-filter-chip",
|
|
1055
|
-
"data-tone": "complexity",
|
|
1056
|
-
"data-active": active ? "true" : "false",
|
|
1057
|
-
"aria-pressed": active,
|
|
1058
|
-
title: `Only rules with \u2265 ${n} facets`,
|
|
1059
|
-
children: [
|
|
1060
|
-
"\u2265 ",
|
|
1061
|
-
n,
|
|
1062
|
-
" facets"
|
|
1063
|
-
]
|
|
1064
|
-
},
|
|
1065
|
-
n
|
|
1066
|
-
);
|
|
1067
|
-
}) }),
|
|
1068
|
-
hasAny && /* @__PURE__ */ jsx(
|
|
1069
|
-
"button",
|
|
1070
|
-
{
|
|
1071
|
-
type: "button",
|
|
1072
|
-
onClick: () => onChange(EMPTY_RULE_FILTERS),
|
|
1073
|
-
className: "ra-rule-filter-clear",
|
|
1074
|
-
"aria-label": "Clear rule filters",
|
|
1075
|
-
children: "Clear filters"
|
|
1076
|
-
}
|
|
1077
|
-
)
|
|
1078
|
-
] });
|
|
1079
|
-
}
|
|
1080
997
|
function applyRuleFilters(items, filters) {
|
|
1081
998
|
if (filters.facetKeys.length === 0 && filters.minClauses == null) return items;
|
|
1082
999
|
return items.filter((r) => {
|
|
@@ -8037,7 +7954,6 @@ function RecordsAdminShellInner(props) {
|
|
|
8037
7954
|
filter,
|
|
8038
7955
|
setFilter,
|
|
8039
7956
|
ruleFilters,
|
|
8040
|
-
setRuleFilters,
|
|
8041
7957
|
facetBrowseFilter,
|
|
8042
7958
|
setFacetBrowseFilter,
|
|
8043
7959
|
productBrowse,
|
|
@@ -9332,14 +9248,6 @@ function RecordsAdminShellInner(props) {
|
|
|
9332
9248
|
}
|
|
9333
9249
|
);
|
|
9334
9250
|
})(),
|
|
9335
|
-
isRuleTab && /* @__PURE__ */ jsx(
|
|
9336
|
-
RuleFilterChips,
|
|
9337
|
-
{
|
|
9338
|
-
source: recordList.items,
|
|
9339
|
-
value: ruleFilters,
|
|
9340
|
-
onChange: setRuleFilters
|
|
9341
|
-
}
|
|
9342
|
-
),
|
|
9343
9251
|
isRuleTab && /* @__PURE__ */ jsx(
|
|
9344
9252
|
FacetBrowseFilter,
|
|
9345
9253
|
{
|