Vanessa 2024-02-27 16:59:25 +08:00
parent 6abfbd52e6
commit 70d126fce7
5 changed files with 24 additions and 20 deletions

View file

@ -424,6 +424,10 @@
overflow: hidden; overflow: hidden;
} }
&__icon.fn__grab {
color: var(--b3-theme-on-surface-light);
}
&__item { &__item {
transition: margin .2s cubic-bezier(0, 0, .2, 1) 0ms; transition: margin .2s cubic-bezier(0, 0, .2, 1) 0ms;
} }
@ -436,7 +440,8 @@
cursor: auto; cursor: auto;
} }
&__item:not([data-type="nobg"]):hover { &__item:not([data-type="nobg"]):hover,
&__item--current:not([data-type="nobg"]) {
background-color: var(--b3-list-hover); background-color: var(--b3-list-hover);
} }
} }

View file

@ -112,12 +112,15 @@ export const getEditHTML = (options: {
<span class="b3-menu__accelerator" style="margin-left: 0">${getColNameByType(colData.type)}</span> <span class="b3-menu__accelerator" style="margin-left: 0">${getColNameByType(colData.type)}</span>
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg> <svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
</button>`; </button>`;
if (["mSelect", "select"].includes(colData.type) && colData.options && colData.options.length > 0) { if (["mSelect", "select"].includes(colData.type)) {
html += `<button class="b3-menu__separator"></button> html += `<button class="b3-menu__separator"></button>
<button class="b3-menu__item"> <button class="b3-menu__item" data-type="nobg">
<svg class="b3-menu__icon" style=""><use xlink:href="#iconAdd"></use></svg> <svg class="b3-menu__icon" style=""><use xlink:href="#iconAdd"></use></svg>
<span class="b3-menu__label" style="padding: 4px;display: flex"><input data-type="addOption" class="b3-text-field fn__block fn__size200" type="text" placeholder="Enter ${window.siyuan.languages.addAttr}"></span> <span class="b3-menu__label" style="padding: 4px;display: flex"><input data-type="addOption" class="b3-text-field fn__block fn__size200" type="text" placeholder="Enter ${window.siyuan.languages.addAttr}"></span>
</button>`; </button>`;
if (!colData.options) {
colData.options = [];
}
colData.options.forEach(item => { colData.options.forEach(item => {
html += `<button class="b3-menu__item${html ? "" : " b3-menu__item--current"}" draggable="true" data-name="${item.name}" data-color="${item.color}"> html += `<button class="b3-menu__item${html ? "" : " b3-menu__item--current"}" draggable="true" data-name="${item.name}" data-color="${item.color}">
<svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg> <svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg>
@ -464,7 +467,7 @@ const addAttrViewColAnimation = (options: {
previousElement.insertAdjacentHTML("afterend", html); previousElement.insertAdjacentHTML("afterend", html);
}); });
} else { } else {
const nodeId= options.blockElement.getAttribute("data-node-id"); const nodeId = options.blockElement.getAttribute("data-node-id");
options.blockElement.querySelector(".fn__hr").insertAdjacentHTML("beforebegin", `<div class="block__icons av__row" data-id="${nodeId}" data-col-id="${options.id}"> options.blockElement.querySelector(".fn__hr").insertAdjacentHTML("beforebegin", `<div class="block__icons av__row" data-id="${nodeId}" data-col-id="${options.id}">
<div class="block__icon" draggable="true"><svg><use xlink:href="#iconDrag"></use></svg></div> <div class="block__icon" draggable="true"><svg><use xlink:href="#iconDrag"></use></svg></div>
<div class="block__logo ariaLabel" data-type="editCol" data-position="parentW" aria-label="${getColNameByType(options.type)}"> <div class="block__logo ariaLabel" data-type="editCol" data-position="parentW" aria-label="${getColNameByType(options.type)}">

View file

@ -1119,11 +1119,9 @@ const getPropertiesHTML = (data: IAVTable) => {
if (item.hidden) { if (item.hidden) {
hideHTML += `<button class="b3-menu__item" draggable="true" data-id="${item.id}"> hideHTML += `<button class="b3-menu__item" draggable="true" data-id="${item.id}">
<svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg> <svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg>
<div class="fn__flex-1"> <div class="b3-menu__label fn__flex">
<span class="b3-chip"> ${item.icon ? unicode2Emoji(item.icon, "b3-menu__icon", true) : `<svg class="b3-menu__icon"><use xlink:href="#${getColIconByType(item.type)}"></use></svg>`}
${item.icon ? unicode2Emoji(item.icon, "icon", true) : `<svg class="icon"><use xlink:href="#${getColIconByType(item.type)}"></use></svg>`} ${item.name}
<span class="fn__ellipsis">${item.name}</span>
</span>
</div> </div>
<svg class="b3-menu__action" data-type="showCol"><use xlink:href="#iconEyeoff"></use></svg> <svg class="b3-menu__action" data-type="showCol"><use xlink:href="#iconEyeoff"></use></svg>
<svg class="b3-menu__action" data-type="editCol"><use xlink:href="#iconEdit"></use></svg> <svg class="b3-menu__action" data-type="editCol"><use xlink:href="#iconEdit"></use></svg>
@ -1131,11 +1129,9 @@ const getPropertiesHTML = (data: IAVTable) => {
} else { } else {
showHTML += `<button class="b3-menu__item" draggable="true" data-id="${item.id}"> showHTML += `<button class="b3-menu__item" draggable="true" data-id="${item.id}">
<svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg> <svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg>
<div class="fn__flex-1"> <div class="b3-menu__label fn__flex">
<span class="b3-chip"> ${item.icon ? unicode2Emoji(item.icon, "b3-menu__icon", true) : `<svg class="b3-menu__icon"><use xlink:href="#${getColIconByType(item.type)}"></use></svg>`}
${item.icon ? unicode2Emoji(item.icon, "icon", true) : `<svg class="icon"><use xlink:href="#${getColIconByType(item.type)}"></use></svg>`} ${item.name}
<span class="fn__ellipsis">${item.name}</span>
</span>
</div> </div>
<svg class="b3-menu__action${item.type === "block" ? " fn__none" : ""}" data-type="hideCol"><use xlink:href="#iconEye"></use></svg> <svg class="b3-menu__action${item.type === "block" ? " fn__none" : ""}" data-type="hideCol"><use xlink:href="#iconEye"></use></svg>
<svg class="b3-menu__action${item.type === "block" ? " fn__none" : ""}" data-type="editCol"><use xlink:href="#iconEdit"></use></svg> <svg class="b3-menu__action${item.type === "block" ? " fn__none" : ""}" data-type="editCol"><use xlink:href="#iconEdit"></use></svg>

View file

@ -169,6 +169,8 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value)}</div>`;
<div class="fn__space"></div> <div class="fn__space"></div>
<span data-type="av-switcher" class="block__icon${response.data.views.length > 0 ? "" : " fn__none"}"> <span data-type="av-switcher" class="block__icon${response.data.views.length > 0 ? "" : " fn__none"}">
<svg><use xlink:href="#iconDown"></use></svg> <svg><use xlink:href="#iconDown"></use></svg>
<span class="fn__space"></span>
<small>${response.data.views.length}</small>
</span> </span>
<div class="fn__space"></div> <div class="fn__space"></div>
<span data-type="av-filter" class="block__icon${data.filters.length > 0 ? " block__icon--active" : ""}"> <span data-type="av-filter" class="block__icon${data.filters.length > 0 ? " block__icon--active" : ""}">

View file

@ -166,13 +166,11 @@ export const getViewHTML = (data: IAVTable) => {
export const getSwitcherHTML = (views: IAVView[], viewId: string) => { export const getSwitcherHTML = (views: IAVView[], viewId: string) => {
let html = ""; let html = "";
views.forEach((item) => { views.forEach((item) => {
html += `<button draggable="true" class="b3-menu__item" data-id="${item.id}"> html += `<button draggable="true" class="b3-menu__item${item.id === viewId ? " b3-menu__item--current" : ""}" data-id="${item.id}">
<svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg> <svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg>
<div class="fn__flex-1" data-type="av-view-switch"> <div class="b3-menu__label fn__flex" data-type="av-view-switch">
<span class="b3-chip${item.id === viewId ? " b3-chip--primary" : ""}"> ${item.icon ? unicode2Emoji(item.icon, "b3-menu__icon", true) : '<svg class="b3-menu__icon"><use xlink:href="#iconTable"></use></svg>'}
${item.icon ? unicode2Emoji(item.icon, "icon", true) : '<svg class="icon"><use xlink:href="#iconTable"></use></svg>'} ${item.name}
<span class="fn__ellipsis">${item.name}</span>
</span>
</div> </div>
<svg class="b3-menu__action" data-type="av-view-edit"><use xlink:href="#iconEdit"></use></svg> <svg class="b3-menu__action" data-type="av-view-edit"><use xlink:href="#iconEdit"></use></svg>
</button>`; </button>`;