import { Formattable } from './abstract/blot'; import LeafBlot from './abstract/leaf'; class EmbedBlot extends LeafBlot implements Formattable { static formats(domNode: HTMLElement): any { return undefined; } format(name: string, value: any): void { // super.formatAt wraps, which is what we want in general, // but this allows subclasses to overwrite for formats // that just apply to particular embeds super.formatAt(0, this.length(), name, value); } formatAt(index: number, length: number, name: string, value: any): void { if (index === 0 && length === this.length()) { this.format(name, value); } else { super.formatAt(index, length, name, value); } } formats(): { [index: string]: any } { return this.statics.formats(this.domNode); } } export default EmbedBlot;