本文整理汇总了TypeScript中wed/dloc.DLoc类的典型用法代码示例。如果您正苦于以下问题:TypeScript DLoc类的具体用法?TypeScript DLoc怎么用?TypeScript DLoc使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DLoc类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: describe
describe("(parent - child positions)", () => {
let parentBefore: DLoc;
let parentAfter: DLoc;
before(() => {
parentBefore = DLoc.mustMakeDLoc(root, p.parentNode, 0);
parentAfter = parentBefore.makeWithOffset(1);
// We want to check that we are looking at the p element we think
// we are looking at.
assert.equal(parentBefore.node.childNodes[0], p);
});
it("returns -1 if this is a parent position before other", () => {
assert.equal(parentBefore.compare(loc), -1);
});
it("returns 1 if this is a parent position after other", () => {
assert.equal(parentAfter.compare(loc), 1);
});
it("returns 1 if this is a child position after other", () => {
assert.equal(loc.compare(parentBefore), 1);
});
it("returns -1 if this is a child position before other", () => {
assert.equal(loc.compare(parentAfter), -1);
});
});
示例2: beforeEach
beforeEach(() => {
dataRoot = editor.dataRoot;
caretManager = editor.caretManager;
ps = Array.from(dataRoot.querySelectorAll("body p"));
firstBodyP = ps[0];
firstBodyPLocation = caretManager.mustFromDataLocation(
DLoc.mustMakeDLoc(dataRoot, firstBodyP, 0));
caretManager.setCaret(firstBodyPLocation);
// First 3 text characters in the 5th paragraph (at index 4).
const pFiveStart = DLoc.mustMakeDLoc(dataRoot, ps[4].firstChild, 0);
pFiveFirstThree = new DLocRange(
caretManager.mustFromDataLocation(pFiveStart),
caretManager.mustFromDataLocation(pFiveStart.makeWithOffset(3)));
expect(pFiveFirstThree.mustMakeDOMRange().toString()).to.equal("abc");
pFiveFirstFour = new DLocRange(
caretManager.mustFromDataLocation(pFiveStart),
caretManager.mustFromDataLocation(pFiveStart.makeWithOffset(4)));
expect(pFiveFirstFour.mustMakeDOMRange().toString()).to.equal("abcd");
const pSevenStart = DLoc.mustMakeDLoc(dataRoot, ps[6].firstChild, 0);
pSevenFirstThree = new DLocRange(
caretManager.mustFromDataLocation(pSevenStart),
caretManager.mustFromDataLocation(pSevenStart.makeWithOffset(3)));
expect(pSevenFirstThree.mustMakeDOMRange().toString()).to.equal("abc");
// This is the first "abc" found when doing a TEXT search.
firstABCText = new DLocRange(
caretManager.mustFromDataLocation(ps[3].firstChild!.firstChild!, 0),
caretManager.mustFromDataLocation(ps[3].lastChild!, 1));
});
示例3: before
before(() => {
parentBefore = DLoc.mustMakeDLoc(root, p.parentNode, 0);
parentAfter = parentBefore.makeWithOffset(1);
// We want to check that we are looking at the p element we think
// we are looking at.
assert.equal(parentBefore.node.childNodes[0], p);
});
示例4: it
it("returns false when the two ranges differ in end positions", () => {
const range = new DLocRange(loc, loc);
const range2 = new DLocRange(DLoc.mustMakeDLoc(root, a, 0),
DLoc.mustMakeDLoc(root, a, 1));
assert.isTrue(range.start.equals(range2.start));
assert.isFalse(range.end.equals(range2.end));
assert.isFalse(range.equals(range2));
});
示例5: before
before(() => {
guiRoot = editor.guiRoot;
dataRoot = editor.dataRoot;
caretManager = editor.caretManager;
docScope = editor.caretManager.docDLocRange;
ps = Array.from(editor.dataRoot.querySelectorAll("body p"));
firstBodyP = ps[0];
firstBodyPLocation = caretManager.mustFromDataLocation(
DLoc.mustMakeDLoc(dataRoot, firstBodyP, 0));
// First 3 text characters in the 5th paragraph (at index 4).
const pFiveStart = DLoc.mustMakeDLoc(dataRoot, ps[4].firstChild, 0);
pFiveFirstThree = new DLocRange(
caretManager.mustFromDataLocation(pFiveStart),
caretManager.mustFromDataLocation(pFiveStart.makeWithOffset(3)));
expect(pFiveFirstThree.mustMakeDOMRange().toString()).to.equal("abc");
pFiveFirstFour = new DLocRange(
caretManager.mustFromDataLocation(pFiveStart),
caretManager.mustFromDataLocation(pFiveStart.makeWithOffset(4)));
expect(pFiveFirstFour.mustMakeDOMRange().toString()).to.equal("abcd");
const pSevenStart = DLoc.mustMakeDLoc(dataRoot, ps[6].firstChild, 0);
pSevenFirstThree = new DLocRange(
caretManager.mustFromDataLocation(pSevenStart),
caretManager.mustFromDataLocation(pSevenStart.makeWithOffset(3)));
expect(pSevenFirstThree.mustMakeDOMRange().toString()).to.equal("abc");
// This is the first "abc" found when doing a TEXT search.
firstABCText = new DLocRange(
caretManager.mustFromDataLocation(ps[3].firstChild!.firstChild!, 0),
caretManager.mustFromDataLocation(ps[3].lastChild!, 1));
// This is the first "abcd" found when doing a TEXT search.
firstABCDText = new DLocRange(
caretManager.mustFromDataLocation(ps[3].firstChild!.firstChild!, 0),
caretManager.mustFromDataLocation(ps[3].lastChild!, 2));
const rend = ps[7].getAttributeNode("rend")!;
firstABCAttribute = new DLocRange(
caretManager.mustFromDataLocation(rend, 0),
caretManager.mustFromDataLocation(rend, 3));
firstABCDAttribute = new DLocRange(
caretManager.mustFromDataLocation(rend, 0),
caretManager.mustFromDataLocation(rend, 4));
secondABCAttribute = new DLocRange(
caretManager.mustFromDataLocation(rend, 4),
caretManager.mustFromDataLocation(rend, 7));
});
示例6: itNoIE
itNoIE("proper caret position for elements that span lines", () => {
const p = editor.dataRoot.querySelectorAll("body>p")[5];
// Check that we are testing what we want to test. The end label for the hi
// element must be on the next line. If we don't have that condition yet,
// we modify the document to create the condition we want.
let textLoc: DLoc;
let hi: Element;
// This is extremely high on purpose. We don't want to have an arbitrarily
// low number that will cause issues *sometimes*.
let tries = 1000;
let satisfied = false;
// tslint:disable-next-line:no-constant-condition
while (true) {
tries--;
textLoc = caretManager.fromDataLocation(p.lastChild!, 2)!;
assert.equal(textLoc.node.nodeType, Node.TEXT_NODE);
const his =
(textLoc.node.parentNode as Element).getElementsByClassName("hi");
hi = his[his.length - 1];
const startRect = firstGUI(hi)!.getBoundingClientRect();
const endRect = lastGUI(hi)!.getBoundingClientRect();
if (endRect.top > startRect.top + startRect.height) {
satisfied = true;
break;
}
if (tries === 0) {
break;
}
editor.dataUpdater.insertText(editor.toDataNode(hi)!, 0, "AA");
}
assert.isTrue(satisfied,
"PRECONDITION FAILED: the test is unable to establish the \
necessary precondition");
hi.scrollIntoView(true);
const event = new $.Event("mousedown");
event.target = textLoc.node.parentNode as Element;
const { range } = textLoc.makeRange(textLoc.make(textLoc.node, 3))!;
const { top, bottom, left } = range.getBoundingClientRect();
event.clientX = left;
event.clientY = (top + bottom) / 2;
event.pageX = event.clientX + editor.window.document.body.scrollLeft;
event.pageY = event.clientY + editor.window.document.body.scrollTop;
event.which = 1; // First mouse button.
editor.$guiRoot.trigger(event);
caretCheck(editor, textLoc.node, textLoc.offset,
"the caret should be in the text node");
});