This commit is contained in:
Vanessa 2023-10-21 23:49:28 +08:00
parent bbb1abb7c6
commit af35b8ba57
17 changed files with 37 additions and 43 deletions

View File

@ -6,7 +6,6 @@ import {setStorageVal, writeText} from "../protyle/util/compatibility";
import {getAllModels} from "../layout/getAll"; import {getAllModels} from "../layout/getAll";
import {focusByRange} from "../protyle/util/selection"; import {focusByRange} from "../protyle/util/selection";
import {Constants} from "../constants"; import {Constants} from "../constants";
import {showMessage} from "../dialog/message";
export const initAnno = (element: HTMLElement, pdf: any, pdfConfig: any) => { export const initAnno = (element: HTMLElement, pdf: any, pdfConfig: any) => {
getConfig(pdf); getConfig(pdf);

View File

@ -14,7 +14,6 @@ import {webViewerPageNumberChanged} from "./pdf/app";
import {fetchPost} from "../util/fetch"; import {fetchPost} from "../util/fetch";
import {setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility"; import {setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility";
import {App} from "../index"; import {App} from "../index";
import {showMessage} from "../dialog/message";
export class Asset extends Model { export class Asset extends Model {
public path: string; public path: string;

View File

@ -309,11 +309,11 @@ export const bazaar = {
if (["icons", "themes"].includes(bazaarType)) { if (["icons", "themes"].includes(bazaarType)) {
showSwitch = true; showSwitch = true;
} }
const counterElement = contentElement.parentElement.querySelector(".counter") const counterElement = contentElement.parentElement.querySelector(".counter");
if (response.data.packages.length === 0) { if (response.data.packages.length === 0) {
counterElement.classList.add("fn__none") counterElement.classList.add("fn__none");
} else { } else {
counterElement.classList.remove("fn__none") counterElement.classList.remove("fn__none");
counterElement.textContent = response.data.packages.length; counterElement.textContent = response.data.packages.length;
response.data.packages.forEach((item: IBazaarItem) => { response.data.packages.forEach((item: IBazaarItem) => {
const dataObj = { const dataObj = {

View File

@ -19,7 +19,6 @@ import {pushBack} from "../util/backForward";
import {Asset} from "../asset"; import {Asset} from "../asset";
import {Layout} from "../layout"; import {Layout} from "../layout";
import {hasClosestBlock, hasClosestByAttribute, hasClosestByClassName,} from "../protyle/util/hasClosest"; import {hasClosestBlock, hasClosestByAttribute, hasClosestByClassName,} from "../protyle/util/hasClosest";
import {setTitle} from "../dialog/processSystem";
import {zoomOut} from "../menus/protyle"; import {zoomOut} from "../menus/protyle";
import {countBlockWord, countSelectWord} from "../layout/status"; import {countBlockWord, countSelectWord} from "../layout/status";
import {showMessage} from "../dialog/message"; import {showMessage} from "../dialog/message";

View File

@ -1616,7 +1616,7 @@ export class Gutter {
click: () => { click: () => {
this.genClick(nodeElements, protyle, (e: HTMLElement) => { this.genClick(nodeElements, protyle, (e: HTMLElement) => {
if (e.classList.contains("av")) { if (e.classList.contains("av")) {
e.style.margin = "" e.style.margin = "";
resizeAV(e); resizeAV(e);
} else { } else {
e.style.textAlign = "left"; e.style.textAlign = "left";

View File

@ -65,7 +65,7 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle
const gutterElement = hasClosestByClassName(event.target, "av__gutters"); const gutterElement = hasClosestByClassName(event.target, "av__gutters");
if (gutterElement) { if (gutterElement) {
const gutterRect = gutterElement.getBoundingClientRect() const gutterRect = gutterElement.getBoundingClientRect();
avContextmenu(protyle, gutterElement.parentElement, { avContextmenu(protyle, gutterElement.parentElement, {
x: gutterRect.left, x: gutterRect.left,
y: gutterRect.bottom, y: gutterRect.bottom,
@ -262,7 +262,7 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi
icon: "iconTrashcan", icon: "iconTrashcan",
label: window.siyuan.languages.delete, label: window.siyuan.languages.delete,
click() { click() {
const avID = blockElement.getAttribute("data-av-id") const avID = blockElement.getAttribute("data-av-id");
const undoOperations: IOperation[] = []; const undoOperations: IOperation[] = [];
rowElements.forEach(item => { rowElements.forEach(item => {
undoOperations.push({ undoOperations.push({
@ -271,8 +271,8 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi
previousID: item.previousElementSibling?.getAttribute("data-id") || "", previousID: item.previousElementSibling?.getAttribute("data-id") || "",
srcIDs: [item.getAttribute("data-id")], srcIDs: [item.getAttribute("data-id")],
isDetached: item.querySelector('.av__cell[data-detached="true"]') ? true : false, isDetached: item.querySelector('.av__cell[data-detached="true"]') ? true : false,
}) });
}) });
transaction(protyle, [{ transaction(protyle, [{
action: "removeAttrViewBlock", action: "removeAttrViewBlock",
srcIDs: blockIds, srcIDs: blockIds,
@ -349,7 +349,7 @@ export const updateAVName = (protyle: IProtyle, blockElement: Element) => {
if (newData === nameElement.dataset.title.trim()) { if (newData === nameElement.dataset.title.trim()) {
return; return;
} }
const newUpdated = dayjs().format("YYYYMMDDHHmmss") const newUpdated = dayjs().format("YYYYMMDDHHmmss");
transaction(protyle, [{ transaction(protyle, [{
action: "setAttrViewName", action: "setAttrViewName",
id: avId, id: avId,

View File

@ -355,7 +355,7 @@ export const cellScrollIntoView = (blockElement: HTMLElement, cellRect: DOMRect,
avScrollElement.scrollLeft = avScrollElement.scrollLeft + cellRect.right - avScrollRect.right; avScrollElement.scrollLeft = avScrollElement.scrollLeft + cellRect.right - avScrollRect.right;
} }
} }
const avHeaderRect = blockElement.querySelector(".av__header").getBoundingClientRect() const avHeaderRect = blockElement.querySelector(".av__header").getBoundingClientRect();
if (avHeaderRect.bottom > cellRect.top) { if (avHeaderRect.bottom > cellRect.top) {
const contentElement = hasClosestByClassName(blockElement, "protyle-content", true); const contentElement = hasClosestByClassName(blockElement, "protyle-content", true);
if (contentElement) { if (contentElement) {
@ -370,7 +370,7 @@ export const cellScrollIntoView = (blockElement: HTMLElement, cellRect: DOMRect,
} }
} }
} }
} };
export const popTextCell = (protyle: IProtyle, cellElements: HTMLElement[], type?: TAVCol) => { export const popTextCell = (protyle: IProtyle, cellElements: HTMLElement[], type?: TAVCol) => {
if (!type) { if (!type) {
@ -385,7 +385,7 @@ export const popTextCell = (protyle: IProtyle, cellElements: HTMLElement[], type
const blockElement = hasClosestBlock(cellElements[0]); const blockElement = hasClosestBlock(cellElements[0]);
let cellRect = cellElements[0].getBoundingClientRect(); let cellRect = cellElements[0].getBoundingClientRect();
if (blockElement) { if (blockElement) {
cellScrollIntoView(blockElement, cellRect) cellScrollIntoView(blockElement, cellRect);
} }
cellRect = cellElements[0].getBoundingClientRect(); cellRect = cellElements[0].getBoundingClientRect();
let html = ""; let html = "";

View File

@ -1,4 +1,3 @@
import {hasClosestBlock} from "../../util/hasClosest";
import {Menu} from "../../../plugin/Menu"; import {Menu} from "../../../plugin/Menu";
import {transaction} from "../../wysiwyg/transaction"; import {transaction} from "../../wysiwyg/transaction";
import {fetchPost} from "../../../util/fetch"; import {fetchPost} from "../../../util/fetch";

View File

@ -28,13 +28,13 @@ export const avKeydown = (event: KeyboardEvent, nodeElement: HTMLElement, protyl
event.preventDefault(); event.preventDefault();
return true; return true;
} }
let newCellElement let newCellElement;
if (event.key === "ArrowLeft") { if (event.key === "ArrowLeft") {
const previousRowElement = selectCellElement.parentElement.previousElementSibling const previousRowElement = selectCellElement.parentElement.previousElementSibling;
if (selectCellElement.previousElementSibling && selectCellElement.previousElementSibling.classList.contains("av__cell")) { if (selectCellElement.previousElementSibling && selectCellElement.previousElementSibling.classList.contains("av__cell")) {
newCellElement = selectCellElement.previousElementSibling newCellElement = selectCellElement.previousElementSibling;
} else if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) { } else if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) {
newCellElement = previousRowElement.lastElementChild.previousElementSibling newCellElement = previousRowElement.lastElementChild.previousElementSibling;
} }
if (newCellElement) { if (newCellElement) {
selectCellElement.classList.remove("av__cell--select"); selectCellElement.classList.remove("av__cell--select");
@ -45,11 +45,11 @@ export const avKeydown = (event: KeyboardEvent, nodeElement: HTMLElement, protyl
return true; return true;
} }
if (event.key === "ArrowRight") { if (event.key === "ArrowRight") {
const nextRowElement = selectCellElement.parentElement.nextElementSibling const nextRowElement = selectCellElement.parentElement.nextElementSibling;
if (selectCellElement.nextElementSibling && selectCellElement.nextElementSibling.classList.contains("av__cell")) { if (selectCellElement.nextElementSibling && selectCellElement.nextElementSibling.classList.contains("av__cell")) {
newCellElement = selectCellElement.nextElementSibling newCellElement = selectCellElement.nextElementSibling;
} else if (nextRowElement && !nextRowElement.classList.contains("av__row--footer")) { } else if (nextRowElement && !nextRowElement.classList.contains("av__row--footer")) {
newCellElement = nextRowElement.querySelector(".av__cell") newCellElement = nextRowElement.querySelector(".av__cell");
} }
if (newCellElement) { if (newCellElement) {
selectCellElement.classList.remove("av__cell--select"); selectCellElement.classList.remove("av__cell--select");
@ -60,9 +60,9 @@ export const avKeydown = (event: KeyboardEvent, nodeElement: HTMLElement, protyl
return true; return true;
} }
if (event.key === "ArrowUp") { if (event.key === "ArrowUp") {
const previousRowElement = selectCellElement.parentElement.previousElementSibling const previousRowElement = selectCellElement.parentElement.previousElementSibling;
if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) { if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) {
newCellElement = previousRowElement.querySelector(`.av__cell[data-col-id="${selectCellElement.dataset.colId}"]`) newCellElement = previousRowElement.querySelector(`.av__cell[data-col-id="${selectCellElement.dataset.colId}"]`);
} }
if (newCellElement) { if (newCellElement) {
selectCellElement.classList.remove("av__cell--select"); selectCellElement.classList.remove("av__cell--select");
@ -73,9 +73,9 @@ export const avKeydown = (event: KeyboardEvent, nodeElement: HTMLElement, protyl
return true; return true;
} }
if (event.key === "ArrowDown") { if (event.key === "ArrowDown") {
const nextRowElement = selectCellElement.parentElement.nextElementSibling const nextRowElement = selectCellElement.parentElement.nextElementSibling;
if (nextRowElement && !nextRowElement.classList.contains("av__row--footer")) { if (nextRowElement && !nextRowElement.classList.contains("av__row--footer")) {
newCellElement = nextRowElement.querySelector(`.av__cell[data-col-id="${selectCellElement.dataset.colId}"]`) newCellElement = nextRowElement.querySelector(`.av__cell[data-col-id="${selectCellElement.dataset.colId}"]`);
} }
if (newCellElement) { if (newCellElement) {
selectCellElement.classList.remove("av__cell--select"); selectCellElement.classList.remove("av__cell--select");
@ -111,30 +111,30 @@ export const avKeydown = (event: KeyboardEvent, nodeElement: HTMLElement, protyl
} }
// TODO event.shiftKey // TODO event.shiftKey
if (event.key === "ArrowUp") { if (event.key === "ArrowUp") {
const previousRowElement = selectRowElements[0].previousElementSibling const previousRowElement = selectRowElements[0].previousElementSibling;
selectRow(selectRowElements[0].querySelector(".av__firstcol"), "unselectAll"); selectRow(selectRowElements[0].querySelector(".av__firstcol"), "unselectAll");
if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) { if (previousRowElement && !previousRowElement.classList.contains("av__row--header")) {
selectRow(previousRowElement.querySelector(".av__firstcol"), "select"); selectRow(previousRowElement.querySelector(".av__firstcol"), "select");
cellScrollIntoView(nodeElement, previousRowElement.getBoundingClientRect(), true); cellScrollIntoView(nodeElement, previousRowElement.getBoundingClientRect(), true);
} else { } else {
nodeElement.classList.add("protyle-wysiwyg--select") nodeElement.classList.add("protyle-wysiwyg--select");
} }
event.preventDefault(); event.preventDefault();
return true; return true;
} }
if (event.key === "ArrowDown") { if (event.key === "ArrowDown") {
const nextRowElement = selectRowElements[selectRowElements.length - 1].nextElementSibling const nextRowElement = selectRowElements[selectRowElements.length - 1].nextElementSibling;
selectRow(selectRowElements[0].querySelector(".av__firstcol"), "unselectAll"); selectRow(selectRowElements[0].querySelector(".av__firstcol"), "unselectAll");
if (nextRowElement && !nextRowElement.classList.contains("av__row--add")) { if (nextRowElement && !nextRowElement.classList.contains("av__row--add")) {
selectRow(nextRowElement.querySelector(".av__firstcol"), "select"); selectRow(nextRowElement.querySelector(".av__firstcol"), "select");
cellScrollIntoView(nodeElement, nextRowElement.getBoundingClientRect(), true); cellScrollIntoView(nodeElement, nextRowElement.getBoundingClientRect(), true);
} else { } else {
nodeElement.classList.add("protyle-wysiwyg--select") nodeElement.classList.add("protyle-wysiwyg--select");
} }
event.preventDefault(); event.preventDefault();
return true; return true;
} }
} }
return false; return false;
} };

View File

@ -219,7 +219,7 @@ ${cell.color ? `color:${cell.color};` : ""}">${text}</div>`;
if (newCellElement) { if (newCellElement) {
newCellElement.classList.add("av__cell--select"); newCellElement.classList.add("av__cell--select");
} }
focusBlock(e) focusBlock(e);
} }
if (cb) { if (cb) {
cb(); cb();

View File

@ -27,7 +27,7 @@ export const selectRow = (checkElement: Element, type: "toggle" | "select" | "un
} }
focusBlock(hasClosestBlock(rowElement) as HTMLElement); focusBlock(hasClosestBlock(rowElement) as HTMLElement);
updateHeader(rowElement); updateHeader(rowElement);
} };
export const updateHeader = (rowElement: HTMLElement) => { export const updateHeader = (rowElement: HTMLElement) => {
const blockElement = hasClosestBlock(rowElement); const blockElement = hasClosestBlock(rowElement);

View File

@ -1,7 +1,6 @@
import {ToolbarItem} from "./ToolbarItem"; import {ToolbarItem} from "./ToolbarItem";
import {linkMenu} from "../../menus/protyle"; import {linkMenu} from "../../menus/protyle";
import {hasClosestBlock, hasClosestByAttribute} from "../util/hasClosest"; import {hasClosestBlock, hasClosestByAttribute} from "../util/hasClosest";
import {focusByRange, focusByWbr} from "../util/selection";
import {readText} from "../util/compatibility"; import {readText} from "../util/compatibility";
import {Constants} from "../../constants"; import {Constants} from "../../constants";

View File

@ -1,4 +1,3 @@
import {setTitle} from "../../dialog/processSystem";
import {Constants} from "../../constants"; import {Constants} from "../../constants";
import {hideElements} from "../ui/hideElements"; import {hideElements} from "../ui/hideElements";
import {fetchPost} from "../../util/fetch"; import {fetchPost} from "../../util/fetch";

View File

@ -52,7 +52,7 @@ export const resize = (protyle: IProtyle) => {
export const resizeAV = (item: HTMLElement) => { export const resizeAV = (item: HTMLElement) => {
if (!item.classList.contains("av") || item.getAttribute("data-render") !== "true") { if (!item.classList.contains("av") || item.getAttribute("data-render") !== "true") {
return return;
} }
if (item.style.width.endsWith("%") || item.style.margin) { if (item.style.width.endsWith("%") || item.style.margin) {
const avHeaderElement = item.firstElementChild.firstElementChild as HTMLElement; const avHeaderElement = item.firstElementChild.firstElementChild as HTMLElement;
@ -63,7 +63,7 @@ export const resizeAV = (item: HTMLElement) => {
avBodyElement.style.paddingRight = ""; avBodyElement.style.paddingRight = "";
item.style.alignSelf = ""; item.style.alignSelf = "";
if (!item.style.width.endsWith("%")) { if (!item.style.width.endsWith("%")) {
item.style.width = "" item.style.width = "";
item.style.maxWidth = "100%"; item.style.maxWidth = "100%";
} }
} else { } else {
@ -81,4 +81,4 @@ export const resizeAV = (item: HTMLElement) => {
item.style.maxWidth = ""; item.style.maxWidth = "";
} }
} }
} };

View File

@ -1341,7 +1341,7 @@ export class WYSIWYG {
} }
const nodeElement = hasClosestBlock(target); const nodeElement = hasClosestBlock(target);
const avRowElement = hasClosestByClassName(target, "av__row") const avRowElement = hasClosestByClassName(target, "av__row");
if (avRowElement && avContextmenu(protyle, avRowElement, { if (avRowElement && avContextmenu(protyle, avRowElement, {
x: event.clientX, x: event.clientX,
y: avRowElement.getBoundingClientRect().bottom, y: avRowElement.getBoundingClientRect().bottom,

View File

@ -1176,7 +1176,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
} }
updateBatchTransaction(selectElements, protyle, (e: HTMLElement) => { updateBatchTransaction(selectElements, protyle, (e: HTMLElement) => {
if (e.classList.contains("av")) { if (e.classList.contains("av")) {
e.style.margin = "" e.style.margin = "";
resizeAV(e); resizeAV(e);
} else { } else {
e.style.textAlign = "left"; e.style.textAlign = "left";
@ -1198,7 +1198,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
} }
updateBatchTransaction(selectElements, protyle, (e: HTMLElement) => { updateBatchTransaction(selectElements, protyle, (e: HTMLElement) => {
if (e.classList.contains("av")) { if (e.classList.contains("av")) {
e.style.margin = "0 auto" e.style.margin = "0 auto";
resizeAV(e); resizeAV(e);
} else { } else {
e.style.textAlign = "center"; e.style.textAlign = "center";

View File

@ -716,7 +716,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, isUndo:
} else if (operation.action === "doUpdateUpdated") { } else if (operation.action === "doUpdateUpdated") {
updateElements.forEach(item => { updateElements.forEach(item => {
item.setAttribute("updated", operation.data); item.setAttribute("updated", operation.data);
}) });
} }
}; };