fix: remove metric catalog search

This commit is contained in:
wxs
2026-07-17 10:54:41 +08:00
parent c45dca8a13
commit 4768f66c39
2 changed files with 7 additions and 62 deletions
+3 -46
View File
@@ -36,7 +36,6 @@ interface MetricCatalogDom {
metricActions: Record<SpreadFilterMetric, HTMLButtonElement>;
panel: HTMLElement;
root: HTMLElement;
searchInput: HTMLInputElement;
selectedCount: HTMLElement;
}
@@ -301,9 +300,6 @@ export function ensurePluginToolbar(
metricCatalog.closeButton.addEventListener("click", () => {
setMetricCatalogOpen(metricCatalog, false);
});
metricCatalog.searchInput.addEventListener("input", () => {
syncMetricCatalog(toolbarDom);
});
SPREAD_FILTER_DEFINITIONS.forEach(({ metric }) => {
const rule = spreadMetricRules[metric];
@@ -519,13 +515,6 @@ function createMetricCatalog(document: Document): MetricCatalogDom {
panel.hidden = true;
applyMetricCatalogPanelStyles(panel);
const searchInput = document.createElement("input");
searchInput.type = "search";
searchInput.placeholder = "搜索指标";
searchInput.dataset.pluginSpreadMetricCatalogSearch = "input";
searchInput.setAttribute("aria-label", "搜索筛选指标");
applyMetricCatalogSearchStyles(searchInput);
const closeButton = document.createElement("button");
closeButton.type = "button";
closeButton.dataset.pluginSpreadMetricCatalogClose = "button";
@@ -537,7 +526,7 @@ function createMetricCatalog(document: Document): MetricCatalogDom {
const panelHeader = document.createElement("div");
panelHeader.dataset.pluginSpreadMetricCatalogHeader = "root";
applyMetricCatalogHeaderStyles(panelHeader);
panelHeader.append(searchInput, closeButton);
panelHeader.append(closeButton);
const group = document.createElement("div");
group.dataset.pluginSpreadMetricCatalogGroup = "传播表现";
@@ -573,7 +562,6 @@ function createMetricCatalog(document: Document): MetricCatalogDom {
metricActions,
panel,
root,
searchInput,
selectedCount
};
}
@@ -652,9 +640,6 @@ function readMetricCatalogDom(root: HTMLElement): MetricCatalogDom {
root: root.querySelector(
'[data-plugin-spread-metric-catalog="root"]'
) as HTMLElement,
searchInput: root.querySelector(
'[data-plugin-spread-metric-catalog-search="input"]'
) as HTMLInputElement,
selectedCount: root.querySelector(
'[data-plugin-spread-metric-selected-count="text"]'
) as HTMLElement
@@ -800,7 +785,6 @@ export function setToolbarBusyState(
toolbar.exportCustomPagesInput,
toolbar.metricCatalog.addButton,
toolbar.metricCatalog.closeButton,
toolbar.metricCatalog.searchInput,
...Object.values(toolbar.metricCatalog.metricActions),
...Object.values(toolbar.spreadMetricRules).flatMap((rule) => [
rule.detailsButton,
@@ -921,40 +905,22 @@ function syncSpreadFilterNote(toolbar: PluginToolbarDom): void {
}
function syncMetricCatalog(toolbar: PluginToolbarDom): void {
const searchTerm = toolbar.metricCatalog.searchInput.value.trim().toLowerCase();
const enabledCount = Object.values(toolbar.spreadMetricRules).filter(
(rule) => rule.enabledInput.checked
).length;
toolbar.metricCatalog.selectedCount.textContent = `已选 ${enabledCount}`;
SPREAD_FILTER_DEFINITIONS.forEach(({ label, metric }) => {
SPREAD_FILTER_DEFINITIONS.forEach(({ metric }) => {
const action = toolbar.metricCatalog.metricActions[metric];
const isSelected = toolbar.spreadMetricRules[metric].enabledInput.checked;
const item = action.closest(
`[data-plugin-spread-metric-catalog-item="${metric}"]`
) as HTMLElement | null;
action.disabled = isSelected;
action.textContent = isSelected ? "已添加" : "添加";
if (item) {
item.hidden = Boolean(searchTerm) && !label.toLowerCase().includes(searchTerm);
}
});
}
function setMetricCatalogOpen(catalog: MetricCatalogDom, isOpen: boolean): void {
catalog.panel.hidden = !isOpen;
catalog.addButton.setAttribute("aria-expanded", String(isOpen));
if (!isOpen) {
catalog.searchInput.value = "";
Object.values(catalog.metricActions).forEach((action) => {
const item = action.closest("[data-plugin-spread-metric-catalog-item]") as
| HTMLElement
| null;
if (item) {
item.hidden = false;
}
});
}
}
function syncSpreadMetricRuleSecondaryControls(rule: SpreadMetricRuleDom): void {
@@ -1253,16 +1219,7 @@ function applyMetricCatalogPanelStyles(panel: HTMLElement): void {
function applyMetricCatalogHeaderStyles(header: HTMLElement): void {
header.style.display = "flex";
header.style.alignItems = "center";
header.style.gap = "6px";
}
function applyMetricCatalogSearchStyles(input: HTMLInputElement): void {
input.style.width = "100%";
input.style.height = "30px";
input.style.padding = "0 8px";
input.style.border = "1px solid #cbd5e1";
input.style.borderRadius = "5px";
input.style.boxSizing = "border-box";
header.style.justifyContent = "flex-end";
}
function applyMetricCatalogCloseButtonStyles(button: HTMLButtonElement): void {