From dffd12477e9d6b889736432b1473b2af280591b2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 18 Sep 2025 20:49:01 +0800 Subject: [PATCH 1/5] :bug: https://github.com/siyuan-note/siyuan/issues/15875 Signed-off-by: Daniel <845765@qq.com> --- app/src/protyle/util/paste.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/protyle/util/paste.ts b/app/src/protyle/util/paste.ts index 54e15c8ac..c3f3549e6 100644 --- a/app/src/protyle/util/paste.ts +++ b/app/src/protyle/util/paste.ts @@ -473,7 +473,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven const textHTMLLowercase = textHTML.toLowerCase(); if (textPlain && "" !== textPlain.trim() && (textHTML.startsWith(" textHTMLLowercase.indexOf("class=\"katex") && 0 > textHTMLLowercase.indexOf("class=\"math") && - 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && + 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && 0 > textHTMLLowercase.indexOf("") && From f747739fd5dd6fe3a70bf47fe599e0ba8f936b1f Mon Sep 17 00:00:00 2001 From: Achuan-2 Date: Thu, 18 Sep 2025 21:14:18 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E2=9C=A8=20=E5=85=B3=E8=81=94=E5=88=97?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=80=E9=94=AE=E5=A4=8D=E5=88=B6=E7=8E=B0?= =?UTF-8?q?=E6=9C=89=E5=85=B3=E8=81=94=20(#15876)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/ar_SA.json | 1 + app/appearance/langs/de_DE.json | 1 + app/appearance/langs/en_US.json | 1 + app/appearance/langs/es_ES.json | 1 + app/appearance/langs/fr_FR.json | 1 + app/appearance/langs/he_IL.json | 1 + app/appearance/langs/it_IT.json | 1 + app/appearance/langs/ja_JP.json | 1 + app/appearance/langs/pl_PL.json | 1 + app/appearance/langs/pt_BR.json | 1 + app/appearance/langs/ru_RU.json | 1 + app/appearance/langs/zh_CHT.json | 1 + app/appearance/langs/zh_CN.json | 1 + app/src/protyle/render/av/relation.ts | 63 ++++++++++++++++++++++++++- 14 files changed, 74 insertions(+), 2 deletions(-) diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 031410725..bdefc8dab 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -177,6 +177,7 @@ "thisDatabase": "قاعدة البيانات هذه", "relatedTo": "الربط بـ", "relation": "ربط", + "relatedItems": "العناصر المرتبطة", "rollup": "القيمة المحتسبة", "rollupProperty": "الخاصية", "rollupCalc": "الحساب بـ", diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index 144e55559..819056bc2 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -177,6 +177,7 @@ "thisDatabase": "Diese Datenbank", "relatedTo": "Verbindung zu", "relation": "Beziehung", + "relatedItems": "Verknüpfte Einträge", "rollup": "Rollup", "rollupProperty": "Eigenschaft", "rollupCalc": "Berechnen", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 8f8185d44..7947ab32b 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -177,6 +177,7 @@ "thisDatabase": "This database", "relatedTo": "Relation to", "relation": "Relation", + "relatedItems": "Related Items", "rollup": "Rollup", "rollupProperty": "Property", "rollupCalc": "Calculate", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index b05f57216..632da1e4a 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -177,6 +177,7 @@ "thisDatabase": "Esta base de datos", "relatedTo": "Relación con", "relation": "Relación", + "relatedItems": "Elementos relacionados", "rollup": "Acumular", "rollupProperty": "Propiedad", "rollupCalc": "Calcular", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index f740c6caa..fbfdefecb 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -177,6 +177,7 @@ "thisDatabase": "Cette base de données", "relatedTo": " Relation avec ", "relation": "Relation", + "relatedItems": "Éléments liés", "rollup": "Rollup", "rollupProperty": "Propriété", "rollupCalc": "Calculer", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index fbaed8cdc..27aa75cf4 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -177,6 +177,7 @@ "thisDatabase": "בסיס הנתונים הזה", "relatedTo": "קשר ל", "relation": "קשר", + "relatedItems": "פריטים קשורים", "rollup": "סיכום", "rollupProperty": "מאפיין", "rollupCalc": "חישוב", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index 75922bfc0..8ed125a4b 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -177,6 +177,7 @@ "thisDatabase": "Questo database", "relatedTo": "Relazionato a", "relation": "Relazione", + "relatedItems": "Elementi correlati", "rollup": "Rollup", "rollupProperty": "Proprietà", "rollupCalc": "Calcola", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index 894872b15..b0e1faa0a 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -177,6 +177,7 @@ "thisDatabase": "現在のデータベース", "relatedTo": "関連付け", "relation": "関連", + "relatedItems": "関連項目", "rollup": "集計", "rollupProperty": "属性", "rollupCalc": "計算方法", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index 3554eafa8..ee2e55f0e 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -177,6 +177,7 @@ "thisDatabase": "Ta baza danych", "relatedTo": "Powiązane z", "relation": "Relacja", + "relatedItems": "Powiązane elementy", "rollup": "Skumuluje", "rollupProperty": "Właściwość", "rollupCalc": "Oblicz", diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json index 3931df5b2..b684bdb9a 100644 --- a/app/appearance/langs/pt_BR.json +++ b/app/appearance/langs/pt_BR.json @@ -177,6 +177,7 @@ "thisDatabase": "Este banco de dados", "relatedTo": "Relacionado a", "relation": "Relação", + "relatedItems": "Itens relacionados", "rollup": "Rollup", "rollupProperty": "Propriedade", "rollupCalc": "Calcular", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index e6ee2bd65..9f0c2e67a 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -177,6 +177,7 @@ "thisDatabase": "Эта база данных", "relatedTo": "Связано с", "relation": "Связь", + "relatedItems": "Связанные элементы", "rollup": "Свод", "rollupProperty": "Свойство", "rollupCalc": "Вычислить", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index d45a75c53..06fd737de 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -177,6 +177,7 @@ "thisDatabase": "目前資料庫", "relatedTo": "關聯至", "relation": "關聯", + "relatedItems": "已關聯條目", "rollup": "匯總", "rollupProperty": "總計欄位", "rollupCalc": "彙總方式", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 425d9bafd..292a763bd 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -177,6 +177,7 @@ "thisDatabase": "当前数据库", "relatedTo": "关联至", "relation": "关联", + "relatedItems": "已关联条目", "rollup": "汇总", "rollupProperty": "汇总字段", "rollupCalc": "汇总方式", diff --git a/app/src/protyle/render/av/relation.ts b/app/src/protyle/render/av/relation.ts index bf8544a50..d35a36d12 100644 --- a/app/src/protyle/render/av/relation.ts +++ b/app/src/protyle/render/av/relation.ts @@ -13,6 +13,8 @@ import {getFieldsByData, getViewName} from "./view"; import {getColId} from "./col"; import {getFieldIdByCellElement} from "./row"; import {isMobile} from "../../../util/functions"; +import {showMessage} from "../../../dialog/message"; +import {writeText} from "../../util/compatibility"; interface IAVItem { avID: string; @@ -249,6 +251,19 @@ export const toggleUpdateRelationBtn = (menuItemsElement: HTMLElement, avId: str } }; +const genRelatedItemsHeader = (hasRelatedItems: boolean) => { + if (!hasRelatedItems) { + return ""; + } + return `
+ ${window.siyuan.languages.relatedItems || "已关联条目"} + + +
`; +}; + const genSelectItemHTML = (options: { type: "selected" | "empty" | "unselect", id?: string, @@ -313,7 +328,8 @@ draggable="true">${genSelectItemHTML({ }); } }); - menuElement.querySelector(".b3-menu__items").innerHTML = `${selectHTML} + const hasRelatedItems = selectHTML.trim() !== ""; + menuElement.querySelector(".b3-menu__items").innerHTML = `${genRelatedItemsHeader(hasRelatedItems)}${selectHTML} ${html} ${keyword ? genSelectItemHTML({ @@ -361,7 +377,8 @@ draggable="true">${genSelectItemHTML({ }); } }); - options.menuElement.querySelector(".b3-menu__items").innerHTML = `${selectHTML} + const hasRelatedItems = selectHTML.trim() !== ""; + options.menuElement.querySelector(".b3-menu__items").innerHTML = `${genRelatedItemsHeader(hasRelatedItems)}${selectHTML} ${html || genSelectItemHTML({type: "empty"})}`; const cellRect = options.cellElements[options.cellElements.length - 1].getBoundingClientRect(); @@ -396,6 +413,48 @@ ${html || genSelectItemHTML({type: "empty"})}`; event.stopPropagation(); filterItem(options.menuElement, options.cellElements[0], inputElement.value); }); + + // 添加复制按钮的点击事件 + const copyRelatedItemsHandler = (event: Event) => { + const target = event.target as HTMLElement; + if (target.closest('[data-type="copyRelatedItems"]')) { + event.preventDefault(); + event.stopPropagation(); + + const relationItems = options.cellElements[0].querySelectorAll(".av__cell--relation"); + const blockRefs: string[] = []; + + relationItems.forEach((relationItem: HTMLElement) => { + const item = relationItem.querySelector(".av__celltext") as HTMLElement; + if (item) { + const text = item.textContent || window.siyuan.languages.untitled; + if (item.dataset.id) { + // 有 ID 的条目,生成块引用 + const blockRef = `((${item.dataset.id} "${text}"))`; + blockRefs.push(blockRef); + } else { + // 没有 ID 的条目,直接使用纯文本 + blockRefs.push(text); + } + } + }); + + if (blockRefs.length > 0) { + let copyText: string; + if (blockRefs.length === 1) { + // 单个条目,直接复制 + copyText = blockRefs[0]; + } else { + // 多个条目,复制为列表 + copyText = blockRefs.map(ref => `- ${ref}`).join("\n"); + } + writeText(copyText); + showMessage(window.siyuan.languages.copied || "已复制"); + } + } + }; + + listElement.addEventListener("click", copyRelatedItemsHandler); }); }; From ea781d30edd5ecae536c1e0209fe5025575728f9 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 18 Sep 2025 22:02:13 +0800 Subject: [PATCH 3/5] :art: Improve font loading https://github.com/siyuan-note/siyuan/issues/15879 Signed-off-by: Daniel <845765@qq.com> --- kernel/util/font.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/kernel/util/font.go b/kernel/util/font.go index 643beee7d..2047afdda 100644 --- a/kernel/util/font.go +++ b/kernel/util/font.go @@ -103,6 +103,10 @@ func existFont(family string, fonts []*Font) bool { func parseTTCFontFamily(fontPath string) (ret []string) { defer logging.Recover() + if strings.Contains(fontPath, "Alibaba") { + logging.LogInfo(fontPath) + } + data, err := os.ReadFile(fontPath) if err != nil { //logging.LogErrorf("read font file [%s] failed: %s", fontPath, err) @@ -121,15 +125,23 @@ func parseTTCFontFamily(fontPath string) (ret []string) { continue } - family, _ := font.Name(nil, ttc.NameIDFamily) - if "" == family { - family, _ = font.Name(nil, ttc.NameIDTypographicFamily) - } + family, _ := font.Name(nil, ttc.NameIDFull) family = strings.TrimSpace(family) - if "" == family || strings.HasPrefix(family, ".") { - continue + if "" != family && !strings.HasPrefix(family, ".") { + ret = append(ret, family) + } + + family, _ := font.Name(nil, ttc.NameIDFamily) + family = strings.TrimSpace(family) + if "" != family && !strings.HasPrefix(family, ".") { + ret = append(ret, family) + } + + family, _ = font.Name(nil, ttc.NameIDTypographicFamily) + family = strings.TrimSpace(family) + if "" != family && !strings.HasPrefix(family, ".") { + ret = append(ret, family) } - ret = append(ret, family) } ret = gulu.Str.RemoveDuplicatedElem(ret) return From d372e871f4a020bbff8a9b7ec421e466abcbdb86 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 18 Sep 2025 23:10:06 +0800 Subject: [PATCH 4/5] :art: Improve font loading https://github.com/siyuan-note/siyuan/issues/15879 Signed-off-by: Daniel <845765@qq.com> --- kernel/util/font.go | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/kernel/util/font.go b/kernel/util/font.go index 2047afdda..3b9b6df71 100644 --- a/kernel/util/font.go +++ b/kernel/util/font.go @@ -103,10 +103,6 @@ func existFont(family string, fonts []*Font) bool { func parseTTCFontFamily(fontPath string) (ret []string) { defer logging.Recover() - if strings.Contains(fontPath, "Alibaba") { - logging.LogInfo(fontPath) - } - data, err := os.ReadFile(fontPath) if err != nil { //logging.LogErrorf("read font file [%s] failed: %s", fontPath, err) @@ -131,7 +127,7 @@ func parseTTCFontFamily(fontPath string) (ret []string) { ret = append(ret, family) } - family, _ := font.Name(nil, ttc.NameIDFamily) + family, _ = font.Name(nil, ttc.NameIDFamily) family = strings.TrimSpace(family) if "" != family && !strings.HasPrefix(family, ".") { ret = append(ret, family) @@ -162,35 +158,38 @@ func parseTTFFontFamily(fontPath string) (ret string) { return } + if strings.Contains(fontPath, "04") { + logging.LogInfo(fontPath) + } + t, err := font.NameTable() if err != nil { logging.LogErrorf("get font [%s] name table failed: %s", fontPath, err) return } + var family, subfamily string for _, e := range t.List() { - if sfnt.NameFontFamily != e.NameID && sfnt.NamePreferredFamily != e.NameID { - continue - } - - if sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID { + if sfnt.NameFontFamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) { v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value) - if err != nil { - return "" + if err == nil { + family = strings.TrimSpace(string(v)) } - val := string(v) - if sfnt.NameFontFamily == e.NameID && "" != val { - ret = val - } - if sfnt.NamePreferredFamily == e.NameID && "" != val { - ret = val + } + if sfnt.NameFontSubfamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) { + v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value) + if err == nil { + subfamily = strings.TrimSpace(string(v)) } } } - ret = strings.TrimSpace(ret) - if strings.HasPrefix(ret, ".") { - return "" + if family != "" && !strings.HasPrefix(family, ".") { + if subfamily != "" && !strings.Contains(subfamily, "<") && !strings.EqualFold(subfamily, "Regular") { + ret = family + " " + subfamily // 例如 "PingFang SC Bold" + } else { + ret = family + } } return } From 7cc61ba65094c5b6ecc8ce9770c6f4bb8510ca70 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Thu, 18 Sep 2025 23:21:19 +0800 Subject: [PATCH 5/5] :art: https://github.com/siyuan-note/siyuan/pull/15876 --- app/src/protyle/render/av/relation.ts | 93 +++++++++++---------------- 1 file changed, 36 insertions(+), 57 deletions(-) diff --git a/app/src/protyle/render/av/relation.ts b/app/src/protyle/render/av/relation.ts index d35a36d12..a08082359 100644 --- a/app/src/protyle/render/av/relation.ts +++ b/app/src/protyle/render/av/relation.ts @@ -251,17 +251,15 @@ export const toggleUpdateRelationBtn = (menuItemsElement: HTMLElement, avId: str } }; -const genRelatedItemsHeader = (hasRelatedItems: boolean) => { - if (!hasRelatedItems) { - return ""; +const updateCopyRelatedItems = (menuElement: Element) => { + const inputElement = menuElement.querySelector(".b3-form__icona .b3-text-field"); + if (menuElement.querySelector(".b3-menu__icon.fn__grab")) { + inputElement.nextElementSibling.classList.remove("fn__none"); + inputElement.classList.add("b3-form__icona-input"); + } else { + inputElement.nextElementSibling.classList.add("fn__none"); + inputElement.classList.remove("b3-form__icona-input"); } - return `
- ${window.siyuan.languages.relatedItems || "已关联条目"} - - -
`; }; const genSelectItemHTML = (options: { @@ -328,8 +326,7 @@ draggable="true">${genSelectItemHTML({ }); } }); - const hasRelatedItems = selectHTML.trim() !== ""; - menuElement.querySelector(".b3-menu__items").innerHTML = `${genRelatedItemsHeader(hasRelatedItems)}${selectHTML} + menuElement.querySelector(".b3-menu__items").innerHTML = `${selectHTML} ${html} ${keyword ? genSelectItemHTML({ @@ -338,6 +335,7 @@ ${keyword ? genSelectItemHTML({ text: menuElement.querySelector(".popover__block").outerHTML }) : (html ? "" : genSelectItemHTML({type: "empty"}))}`; menuElement.querySelector(".b3-menu__items .b3-menu__item:not(.fn__none)").classList.add("b3-menu__item--current"); + updateCopyRelatedItems(menuElement); }); }; @@ -377,8 +375,7 @@ draggable="true">${genSelectItemHTML({ }); } }); - const hasRelatedItems = selectHTML.trim() !== ""; - options.menuElement.querySelector(".b3-menu__items").innerHTML = `${genRelatedItemsHeader(hasRelatedItems)}${selectHTML} + options.menuElement.querySelector(".b3-menu__items").innerHTML = `${selectHTML} ${html || genSelectItemHTML({type: "empty"})}`; const cellRect = options.cellElements[options.cellElements.length - 1].getBoundingClientRect(); @@ -386,7 +383,7 @@ ${html || genSelectItemHTML({type: "empty"})}`; options.menuElement.querySelector(".b3-menu__items .b3-menu__item:not(.fn__none)").classList.add("b3-menu__item--current"); const inputElement = options.menuElement.querySelector("input"); inputElement.focus(); - const databaseName = inputElement.parentElement.querySelector(".popover__block"); + const databaseName = inputElement.parentElement.parentElement.querySelector(".popover__block"); databaseName.innerHTML = Lute.EscapeHTMLStr(response.data.name); databaseName.setAttribute("data-id", response.data.blockIDs[0]); const listElement = options.menuElement.querySelector(".b3-menu__items"); @@ -413,48 +410,26 @@ ${html || genSelectItemHTML({type: "empty"})}`; event.stopPropagation(); filterItem(options.menuElement, options.cellElements[0], inputElement.value); }); - - // 添加复制按钮的点击事件 - const copyRelatedItemsHandler = (event: Event) => { - const target = event.target as HTMLElement; - if (target.closest('[data-type="copyRelatedItems"]')) { - event.preventDefault(); - event.stopPropagation(); - - const relationItems = options.cellElements[0].querySelectorAll(".av__cell--relation"); - const blockRefs: string[] = []; - - relationItems.forEach((relationItem: HTMLElement) => { - const item = relationItem.querySelector(".av__celltext") as HTMLElement; - if (item) { - const text = item.textContent || window.siyuan.languages.untitled; - if (item.dataset.id) { - // 有 ID 的条目,生成块引用 - const blockRef = `((${item.dataset.id} "${text}"))`; - blockRefs.push(blockRef); - } else { - // 没有 ID 的条目,直接使用纯文本 - blockRefs.push(text); - } - } - }); - - if (blockRefs.length > 0) { - let copyText: string; - if (blockRefs.length === 1) { - // 单个条目,直接复制 - copyText = blockRefs[0]; - } else { - // 多个条目,复制为列表 - copyText = blockRefs.map(ref => `- ${ref}`).join("\n"); - } - writeText(copyText); - showMessage(window.siyuan.languages.copied || "已复制"); + updateCopyRelatedItems(options.menuElement) + options.menuElement.querySelector('[data-type="copyRelatedItems"]').addEventListener("click", () => { + let copyText = ""; + const selectedElements = options.menuElement.querySelectorAll('.b3-menu__item[draggable="true"]'); + selectedElements.forEach((item: HTMLElement) => { + if (selectedElements.length > 1) { + copyText += "* "; } + const textElement = item.querySelector(".b3-menu__label") as HTMLElement; + if (!textElement.dataset.id || textElement.dataset.id === "undefined") { + copyText += textElement.textContent + "\n"; + } else { + copyText += `((${textElement.dataset.id} "${textElement.textContent}"))\n`; + } + }); + if (copyText) { + writeText(copyText.trimEnd()); + showMessage(window.siyuan.languages.copied); } - }; - - listElement.addEventListener("click", copyRelatedItemsHandler); + }); }); }; @@ -469,9 +444,12 @@ export const getRelationHTML = (data: IAV, cellElements?: HTMLElement[]) => { if (colRelationData && colRelationData.avID) { return `
- +
+ + +
- +
@@ -598,4 +576,5 @@ class="${target.className} ariaLabel" draggable="true">${genSelectItemHTML({ } } updateCellsValue(protyle, nodeElement, newValue, cellElements); + updateCopyRelatedItems(menuElement); };