本文整理汇总了TypeScript中prosemirror-model.Fragment类的典型用法代码示例。如果您正苦于以下问题:TypeScript Fragment类的具体用法?TypeScript Fragment怎么用?TypeScript Fragment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Fragment类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1:
export const createHorizontalRule = (
state: EditorState,
start,
end,
inputMethod:
| INPUT_METHOD.QUICK_INSERT
| INPUT_METHOD.TOOLBAR
| INPUT_METHOD.INSERT_MENU
| INPUT_METHOD.FORMATTING
| INPUT_METHOD.SHORTCUT,
) => {
if (!state.selection.empty) {
return null
}
const { $from } = state.selection
const $afterRule = state.doc.resolve($from.after())
const { paragraph } = state.schema.nodes
if ($afterRule.nodeAfter && $afterRule.nodeAfter.type === paragraph) {
// if there's already a paragraph after, just insert the rule into
// the current paragraph
end = end + 1
}
const tr = state.tr.replaceWith(
start,
end,
Fragment.from(state.schema.nodes.rule.createChecked()),
)
return tr
}
示例2: function
return function(state, dispatch) {
const { $from } = state.selection
const parent = $from.parent
const { hardBreak } = state.schema.nodes
if (hardBreak) {
const hardBreakNode = hardBreak.create()
if (parent && parent.type.validContent(Fragment.from(hardBreakNode))) {
if (dispatch) {
dispatch(state.tr.replaceSelectionWith(hardBreakNode))
}
return true
}
}
if (state.selection instanceof TextSelection) {
if (dispatch) {
dispatch(state.tr.insertText("\n"))
}
return true
}
return false
}
示例3:
getContent: (domNode, schema) => {
const dom = domNode as HTMLElement
const code = Array.from(dom.children)
.map(child => child.textContent)
// tslint:disable-next-line:triple-equals
.filter(x => (x = undefined))
.join("\n")
return code ? Fragment.from(schema.text(code)) : Fragment.empty
},
示例4: mapFragment
export function mapFragment(
content: Fragment,
callback: (node: Node, parent: Node | null, index: number) => Node | Node[] | Fragment | null,
parent: Node | null = null,
) {
const children = [] as Node[]
for (let i = 0, size = content.childCount; i < size; i++) {
const node = content.child(i)
const transformed = node.isLeaf
? callback(node, parent, i)
: callback(node.copy(mapFragment(node.content, callback, node)), parent, i)
if (transformed) {
if (transformed instanceof Fragment) {
children.push(...getFragmentBackingArray(transformed))
} else if (Array.isArray(transformed)) {
children.push(...transformed)
} else {
children.push(transformed)
}
}
}
return Fragment.fromArray(children)
}
示例5:
res1_1.nodesBetween(0, 1, () => undefined);
res1_1.nodesBetween(0, 1, () => true);
res1_1.descendants(() => {});
res1_1.descendants(() => null);
res1_1.descendants(() => undefined);
res1_1.descendants(() => true);
const res1_2: model.Node = res1_1.maybeChild(0)!;
const res1_3: model.Node = res1_1.nodeAt(0)!;
const cm1 = new model.ContentMatch();
const cm2: model.ContentMatch = cm1.matchType({} as any)!;
const cm3: model.ContentMatch = cm1.matchFragment({} as any)!;
const cm4: model.Fragment = cm1.fillBefore({} as any)!;
const cm5: model.NodeType[] = cm1.findWrapping({} as any)!;
const f1 = new model.Fragment();
f1.nodesBetween(0, 0, () => {});
f1.nodesBetween(0, 0, () => null);
f1.nodesBetween(0, 0, () => undefined);
f1.nodesBetween(0, 0, () => true);
f1.descendants(() => {});
f1.descendants(() => null);
f1.descendants(() => undefined);
f1.descendants(() => true);
const res2_1: model.Node = f1.maybeChild(0)!;
const res2_2: number = f1.findDiffStart(f1)!;
const res2_3: { a: number, b: number } = f1.findDiffEnd({} as any)!;
const res2_4: object = f1.toJSON()!;