本文整理汇总了TypeScript中@ephox/sugar.Traverse.nextSibling方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Traverse.nextSibling方法的具体用法?TypeScript Traverse.nextSibling怎么用?TypeScript Traverse.nextSibling使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@ephox/sugar.Traverse
的用法示例。
在下文中一共展示了Traverse.nextSibling方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
const deleteNormalized = function (elm, afterDeletePosOpt) {
return Options.liftN([Traverse.prevSibling(elm), Traverse.nextSibling(elm), afterDeletePosOpt], function (prev, next, afterDeletePos) {
let offset;
const prevNode = prev.dom();
const nextNode = next.dom();
if (NodeType.isText(prevNode) && NodeType.isText(nextNode)) {
offset = prevNode.data.length;
prevNode.appendData(nextNode.data);
Remove.remove(next);
Remove.remove(elm);
if (afterDeletePos.container() === nextNode) {
return new CaretPosition(prevNode, offset);
} else {
return afterDeletePos;
}
} else {
Remove.remove(elm);
return afterDeletePos;
}
}).orThunk(function () {
Remove.remove(elm);
return afterDeletePosOpt;
});
};
示例2:
Logger.t('Editor element properties', Step.sync(function () {
const body = Element.fromDom(document.body);
const targetElement = SelectorFind.descendant(body, '#' + editor.id).getOrDie('No elm');
const editorElement = Traverse.nextSibling(targetElement).getOrDie('No elm');
Assertions.assertDomEq('Should be expected element', editorElement, Element.fromDom(editor.editorContainer));
Assertions.assertDomEq('Should be expected element', editorElement, Element.fromDom(editor.contentAreaContainer));
Assertions.assertDomEq('Should be expected element', targetElement, Element.fromDom(editor.getElement()));
}))
示例3:
Logger.t('Editor element properties', Step.sync(function () {
const body = Element.fromDom(document.body);
const targetElement = SelectorFind.descendant(body, '#' + editor.id).getOrDie('No elm');
const nextElement = Traverse.nextSibling(targetElement);
Assertions.assertEq('Should be null since inline has no editorContainer', null, editor.editorContainer);
Assertions.assertDomEq('Should be expected editor body element', targetElement, Element.fromDom(editor.getBody()));
Assertions.assertDomEq('Should be expected editor target element', targetElement, Element.fromDom(editor.getElement()));
Assertions.assertEq('Should be undefined for inline mode', undefined, editor.contentAreaContainer);
Assertions.assertEq('Should be no element after target', true, nextElement.isNone());
}))
示例4:
Logger.t('Editor element properties', Step.sync(function () {
const body = Element.fromDom(document.body);
const targetElement = SelectorFind.descendant(body, '#' + editor.id).getOrDie('No elm');
const nextElement = Traverse.nextSibling(targetElement);
// TODO FIXME this seems like an odd exception
Assertions.assertEq('Should be null since inline without a theme does not set editorContainer', null, editor.editorContainer);
Assertions.assertDomEq('Should be expected editor body element', targetElement, Element.fromDom(editor.getBody()));
Assertions.assertDomEq('Should be expected editor target element', targetElement, Element.fromDom(editor.getElement()));
Assertions.assertDomEq('Editor.contentAreaContainer should equal target element', targetElement, Element.fromDom(editor.contentAreaContainer));
Assertions.assertEq('Should be no element after target', true, nextElement.isNone());
}))
示例5: CaretPosition
const deleteNormalized = (elm: Element, afterDeletePosOpt: Option<CaretPosition>, normalizeWhitespace?: boolean): Option<CaretPosition> => {
const prevTextOpt = Traverse.prevSibling(elm).filter((e) => NodeType.isText(e.dom()));
const nextTextOpt = Traverse.nextSibling(elm).filter((e) => NodeType.isText(e.dom()));
// Delete the element
Remove.remove(elm);
// Merge and normalize any prev/next text nodes, so that they are merged and don't lose meaningful whitespace
// eg. <p>a <span></span> b</p> -> <p>a &nsbp;b</p> or <p><span></span> a</p> -> <p> a</a>
return Options.liftN([ prevTextOpt, nextTextOpt, afterDeletePosOpt ], (prev, next, pos) => {
const prevNode = prev.dom(), nextNode = next.dom();
const offset = prevNode.data.length;
MergeText.mergeTextNodes(prevNode, nextNode, normalizeWhitespace);
// Update the cursor position if required
return pos.container() === nextNode ? CaretPosition(prevNode, offset) : pos;
}).orThunk(() => {
if (normalizeWhitespace) {
prevTextOpt.each((elm) => MergeText.normalizeWhitespaceBefore(elm.dom(), elm.dom().length));
nextTextOpt.each((elm) => MergeText.normalizeWhitespaceAfter(elm.dom(), 0));
}
return afterDeletePosOpt;
});
};
示例6:
Chain.binder((elem) => Traverse.nextSibling(elem).fold(() => Result.error('Replaced element has no next sibling'), Result.value)),