diff --git a/app/src/protyle/render/av/cell.ts b/app/src/protyle/render/av/cell.ts
index 60f268b69..9befc0520 100644
--- a/app/src/protyle/render/av/cell.ts
+++ b/app/src/protyle/render/av/cell.ts
@@ -86,10 +86,10 @@ export const genCellValue = (colType: TAVCol, value: string | {
}
};
}
- } else if (colType === "text") {
+ } else if (["text", "block", "url"].includes(colType)) {
cellValue = {
type: colType,
- text: {
+ [colType]: {
content: value
}
};
diff --git a/app/src/protyle/render/av/filter.ts b/app/src/protyle/render/av/filter.ts
index d7ce4cab3..224ef8540 100644
--- a/app/src/protyle/render/av/filter.ts
+++ b/app/src/protyle/render/av/filter.ts
@@ -52,7 +52,10 @@ export const setFilter = (options: {
data: IAV,
target: HTMLElement,
}) => {
- const rectTarget = options.target.getBoundingClientRect();
+ let rectTarget = options.target.getBoundingClientRect();
+ if (rectTarget.height === 0) {
+ rectTarget = options.protyle.wysiwyg.element.querySelector(`[data-col-id="${options.target.dataset.colId}"]`).getBoundingClientRect();
+ }
const menu = new Menu("set-filter-" + options.filter.column, () => {
const oldFilters = JSON.parse(JSON.stringify(options.data.view.filters));
const operator = (window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement).value as TAVFilterOperator;
@@ -212,7 +215,7 @@ export const setFilter = (options: {
} else if (["text", "url", "block"].includes(colData.type)) {
menu.addItem({
iconHTML: "",
- label: ``
+ label: ``
});
} else if (colData.type === "number") {
menu.addItem({
@@ -385,17 +388,18 @@ export const getFiltersHTML = (data: IAVTable) => {
} else if ("<=" === filter.operator) {
filterValue = ` ≤ ${filter.value.number.content}`;
}
- } else if (filter.value?.text?.content) {
+ } else if (filter.value?.text?.content || filter.value?.block?.content || filter.value?.url?.content) {
+ const content = filter.value?.text?.content || filter.value?.block?.content || filter.value?.url?.content;
if (["=", "Contains"].includes(filter.operator)) {
- filterValue = `: ${filter.value.text.content}`;
+ filterValue = `: ${content}`;
} else if (filter.operator === "Does not contains") {
- filterValue = ` ${window.siyuan.languages.filterOperatorDoesNotContain} ${filter.value.text.content}`;
+ filterValue = ` ${window.siyuan.languages.filterOperatorDoesNotContain} ${content}`;
} else if (filter.operator === "!=") {
- filterValue = ` ${window.siyuan.languages.filterOperatorIsNot} ${filter.value.text.content}`;
+ filterValue = ` ${window.siyuan.languages.filterOperatorIsNot} ${content}`;
} else if ("Starts with" === filter.operator) {
- filterValue = ` ${window.siyuan.languages.filterOperatorStartsWith} ${filter.value.text.content}`;
+ filterValue = ` ${window.siyuan.languages.filterOperatorStartsWith} ${content}`;
} else if ("Ends with" === filter.operator) {
- filterValue = ` ${window.siyuan.languages.filterOperatorEndsWith} ${filter.value.text.content}`;
+ filterValue = ` ${window.siyuan.languages.filterOperatorEndsWith} ${content}`;
}
}
filterHTML += `
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts
index fda908a49..e80078cc1 100644
--- a/app/src/types/index.d.ts
+++ b/app/src/types/index.d.ts
@@ -930,7 +930,7 @@ interface IAVCellValue {
text?: { content: string },
number?: { content?: number, isNotEmpty: boolean, format?: string, formattedContent?: string },
mSelect?: { content: string, color: string }[]
- block?: { content: string, id: string }
+ block?: { content: string, id?: string }
url?: { content: string }
date?: IAVCellDateValue
}