Files
Arbitrate-FrontendH5/node_modules/parchment/src/blot/abstract/leaf.ts
T
2024-01-18 10:46:33 +08:00

34 lines
877 B
TypeScript

import { Formattable, Leaf } from './blot';
import ShadowBlot from './shadow';
import * as Registry from '../../registry';
class LeafBlot extends ShadowBlot implements Leaf {
static scope = Registry.Scope.INLINE_BLOT;
static value(domNode: Node): any {
return true;
}
index(node: Node, offset: number): number {
if (
this.domNode === node ||
this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY
) {
return Math.min(offset, 1);
}
return -1;
}
position(index: number, inclusive?: boolean): [Node, number] {
let offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);
if (index > 0) offset += 1;
return [this.parent.domNode, offset];
}
value(): any {
return { [this.statics.blotName]: this.statics.value(this.domNode) || true };
}
}
export default LeafBlot;