本文整理汇总了TypeScript中tinymce/core/api/dom/TreeWalker.next函数的典型用法代码示例。如果您正苦于以下问题:TypeScript next函数的具体用法?TypeScript next怎么用?TypeScript next使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了next函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: TreeWalker
const findBlockPattern = (dom: DOMUtils, patterns: BlockPattern[], rng: Range): Option<BlockPattern> => {
const block = dom.getParent(rng.startContainer, dom.isBlock);
if (!(dom.is(block, 'p') && isElement(block))) {
return Option.none();
}
const walker = new TreeWalker(block, block);
let node: Node;
let firstTextNode: Text;
while ((node = walker.next())) {
if (isText(node)) {
firstTextNode = node;
break;
}
}
if (!firstTextNode) {
return Option.none();
}
const pattern = findPattern(patterns, firstTextNode.data);
if (!pattern) {
return Option.none();
}
if (Tools.trim(block.textContent).length === pattern.start.length) {
return Option.none();
}
return Option.some(pattern);
};
示例2: function
const applyBlockFormat = function (editor, patterns) {
let selection, dom, container, firstTextNode, node, format, textBlockElm, pattern, walker, rng, offset;
selection = editor.selection;
dom = editor.dom;
if (!selection.isCollapsed()) {
return;
}
textBlockElm = dom.getParent(selection.getStart(), 'p');
if (textBlockElm) {
walker = new TreeWalker(textBlockElm, textBlockElm);
while ((node = walker.next())) {
if (node.nodeType === 3) {
firstTextNode = node;
break;
}
}
if (firstTextNode) {
pattern = Patterns.findPattern(patterns, firstTextNode.data);
if (!pattern) {
return;
}
rng = selection.getRng(true);
container = rng.startContainer;
offset = rng.startOffset;
if (firstTextNode === container) {
offset = Math.max(0, offset - pattern.start.length);
}
if (Tools.trim(firstTextNode.data).length === pattern.start.length) {
return;
}
if (pattern.format) {
format = editor.formatter.get(pattern.format);
if (format && format[0].block) {
firstTextNode.deleteData(0, pattern.start.length);
editor.formatter.apply(pattern.format, {}, firstTextNode);
rng.setStart(container, offset);
rng.collapse(true);
selection.setRng(rng);
}
}
if (pattern.cmd) {
editor.undoManager.transact(function () {
firstTextNode.deleteData(0, pattern.start.length);
editor.execCommand(pattern.cmd);
});
}
}
}
};
示例3: function
suite.test('next', function () {
const walker = new TreeWalker(nodes[0], viewBlock.get());
let actualNodes;
actualNodes = [walker.current()];
while ((walker.next())) {
actualNodes.push(walker.current());
}
LegacyUnit.equal(compareNodeLists(nodes, actualNodes), true, 'Should be the same');
});
示例4: TreeWalker
const isCollapsed = (start: Node, end: Node, root: HTMLElement) => {
const walker = new TreeWalker(start, root);
while (walker.next()) {
const node = walker.current();
if (isText(node) && node.data.length === 0) {
continue;
}
return node === end;
}
return false;
};
示例5: function
const getSelectedElements = function (rootElm, startNode, endNode) {
let walker, node;
const elms = [];
walker = new TreeWalker(startNode, rootElm);
for (node = startNode; node; node = walker.next()) {
if (node.nodeType === 1) {
elms.push(node);
}
if (node === endNode) {
break;
}
}
return elms;
};
示例6: TreeWalker
const getText = (node: Node, schema: Schema): string => {
const blockElements: SchemaMap = schema.getBlockElements();
const shortEndedElements: SchemaMap = schema.getShortEndedElements();
const whiteSpaceElements = schema.getWhiteSpaceElements();
const isSeparator = (node: Node) => (
blockElements[node.nodeName] || shortEndedElements[node.nodeName] || whiteSpaceElements[node.nodeName]
);
let txt = '';
const treeWalker = new TreeWalker(node, node);
while ((node = treeWalker.next())) {
if (node.nodeType === 3) {
txt += (node as CharacterData).data;
} else if (txt.length !== 0 && isSeparator(node)) {
txt += ' ';
}
}
return txt;
};
示例7: function
const findNextCaretContainer = function (editor, rng, isForward, root) {
let node = rng.startContainer;
const offset = rng.startOffset;
let nonEmptyBlocks, walker;
if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) {
return node;
}
nonEmptyBlocks = editor.schema.getNonEmptyElements();
if (node.nodeType === 1) {
node = RangeUtils.getNode(node, offset);
}
walker = new TreeWalker(node, root);
// Delete at <li>|<br></li> then jump over the bogus br
if (isForward) {
if (NodeType.isBogusBr(editor.dom, node)) {
walker.next();
}
}
while ((node = walker[isForward ? 'next' : 'prev2']())) {
if (node.nodeName === 'LI' && !node.hasChildNodes()) {
return node;
}
if (nonEmptyBlocks[node.nodeName]) {
return node;
}
if (node.nodeType === 3 && node.data.length > 0) {
return node;
}
}
};