@zero-library/common 2.4.3 → 2.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +44 -9
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +44 -9
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -2476,6 +2476,7 @@ var HorizontalRule = TiptapHorizontalRule__default.default.extend({
|
|
|
2476
2476
|
// src/components/MarkdownEditor/pageNo/constant.ts
|
|
2477
2477
|
var PAGE_NO_TAG = "page-no";
|
|
2478
2478
|
var PAGE_NO_KEY = "PageNo";
|
|
2479
|
+
var SCROLL_TOP_OFFSET = 80;
|
|
2479
2480
|
|
|
2480
2481
|
// src/components/MarkdownEditor/pageNo/pageNoMark.ts
|
|
2481
2482
|
var pageNoMark_default = core.Node.create({
|
|
@@ -2605,7 +2606,7 @@ var PageNoExtension = core.Extension.create({
|
|
|
2605
2606
|
pageNos.forEach((node) => {
|
|
2606
2607
|
const rect = node.getBoundingClientRect();
|
|
2607
2608
|
const top = rect.top - containerTop;
|
|
2608
|
-
if (Math.abs(top) <=
|
|
2609
|
+
if (Math.abs(top) <= SCROLL_TOP_OFFSET) {
|
|
2609
2610
|
closestNode = node;
|
|
2610
2611
|
closestTopDiff = 0;
|
|
2611
2612
|
} else if (top < 0 && top > closestTopDiff) {
|
|
@@ -3670,13 +3671,45 @@ function scrollEditorViewToPosInNextFrame(view, pos, options) {
|
|
|
3670
3671
|
const { align = "start", behavior = "auto", offset: offset3 = 0 } = options || {};
|
|
3671
3672
|
requestAnimationFrame(() => {
|
|
3672
3673
|
try {
|
|
3673
|
-
const result = view.domAtPos(pos);
|
|
3674
|
-
if (!result) return;
|
|
3675
|
-
const el = result.node.nodeType === Node.TEXT_NODE ? result.node.parentElement : result.node;
|
|
3676
|
-
if (!el) return;
|
|
3677
3674
|
const scrollParent = getScrollParent(view.dom);
|
|
3675
|
+
if (!scrollParent) return;
|
|
3678
3676
|
const parentRect = scrollParent.getBoundingClientRect();
|
|
3679
|
-
|
|
3677
|
+
if (!parentRect.height) return;
|
|
3678
|
+
let el = null;
|
|
3679
|
+
const nodeDom = view.nodeDOM?.(pos);
|
|
3680
|
+
if (nodeDom) {
|
|
3681
|
+
el = nodeDom.nodeType === Node.TEXT_NODE ? nodeDom.parentElement : nodeDom;
|
|
3682
|
+
}
|
|
3683
|
+
if (!el) {
|
|
3684
|
+
const result = view.domAtPos(pos);
|
|
3685
|
+
if (result) {
|
|
3686
|
+
if (result.node.nodeType === Node.TEXT_NODE) {
|
|
3687
|
+
el = result.node.parentElement;
|
|
3688
|
+
} else {
|
|
3689
|
+
const container = result.node;
|
|
3690
|
+
const nodeAtOffset = container.childNodes?.[result.offset];
|
|
3691
|
+
const nodeBeforeOffset = container.childNodes?.[result.offset - 1];
|
|
3692
|
+
if (nodeAtOffset?.nodeType === Node.ELEMENT_NODE) {
|
|
3693
|
+
el = nodeAtOffset;
|
|
3694
|
+
} else if (nodeBeforeOffset?.nodeType === Node.ELEMENT_NODE) {
|
|
3695
|
+
el = nodeBeforeOffset;
|
|
3696
|
+
} else {
|
|
3697
|
+
el = container;
|
|
3698
|
+
}
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
}
|
|
3702
|
+
let targetRect = null;
|
|
3703
|
+
if (el) {
|
|
3704
|
+
targetRect = el.getBoundingClientRect();
|
|
3705
|
+
} else {
|
|
3706
|
+
try {
|
|
3707
|
+
const coords = view.coordsAtPos(pos);
|
|
3708
|
+
targetRect = new DOMRect(coords.left, coords.top, coords.right - coords.left, coords.bottom - coords.top);
|
|
3709
|
+
} catch {
|
|
3710
|
+
return;
|
|
3711
|
+
}
|
|
3712
|
+
}
|
|
3680
3713
|
let delta = 0;
|
|
3681
3714
|
if (align === "start") {
|
|
3682
3715
|
delta = targetRect.top - parentRect.top;
|
|
@@ -3685,8 +3718,10 @@ function scrollEditorViewToPosInNextFrame(view, pos, options) {
|
|
|
3685
3718
|
} else if (align === "end") {
|
|
3686
3719
|
delta = targetRect.bottom - parentRect.bottom;
|
|
3687
3720
|
}
|
|
3721
|
+
const maxTop = Math.max(0, scrollParent.scrollHeight - scrollParent.clientHeight);
|
|
3722
|
+
const nextTop = Math.max(0, Math.min(scrollParent.scrollTop + delta - offset3, maxTop));
|
|
3688
3723
|
scrollParent.scrollTo({
|
|
3689
|
-
top:
|
|
3724
|
+
top: nextTop,
|
|
3690
3725
|
behavior
|
|
3691
3726
|
});
|
|
3692
3727
|
} catch (e) {
|
|
@@ -8532,7 +8567,7 @@ var usePageNo = (pageNoConfig) => {
|
|
|
8532
8567
|
const setPageNoEditor = (newEditor) => {
|
|
8533
8568
|
setEditor(newEditor);
|
|
8534
8569
|
};
|
|
8535
|
-
const onPageChange = useDebounce_default((pageNo =
|
|
8570
|
+
const onPageChange = useDebounce_default((pageNo = 1) => {
|
|
8536
8571
|
lastScrollToPageNoRef.current = pageNo;
|
|
8537
8572
|
pageNoConfig?.onScrollPage?.(pageNo);
|
|
8538
8573
|
}, 300);
|
|
@@ -8561,7 +8596,7 @@ var usePageNo = (pageNoConfig) => {
|
|
|
8561
8596
|
const tryScroll = () => {
|
|
8562
8597
|
const foundPos = findTargetPos();
|
|
8563
8598
|
if (!isNullOrUnDef(foundPos)) {
|
|
8564
|
-
scrollEditorViewToPosInNextFrame(editor.view, foundPos, { align: "start",
|
|
8599
|
+
scrollEditorViewToPosInNextFrame(editor.view, foundPos, { align: "start", offset: SCROLL_TOP_OFFSET });
|
|
8565
8600
|
return;
|
|
8566
8601
|
}
|
|
8567
8602
|
tries += 1;
|