| 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; |