123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import Scope from '../../scope.js';
- import BlockBlot from '../block.js';
- import ParentBlot from './parent.js';
- class ContainerBlot extends ParentBlot {
- public static blotName = 'container';
- public static scope = Scope.BLOCK_BLOT;
- public static tagName: string | string[];
- public prev!: BlockBlot | ContainerBlot | null;
- public next!: BlockBlot | ContainerBlot | null;
- public checkMerge(): boolean {
- return (
- this.next !== null && this.next.statics.blotName === this.statics.blotName
- );
- }
- public deleteAt(index: number, length: number): void {
- super.deleteAt(index, length);
- this.enforceAllowedChildren();
- }
- public formatAt(
- index: number,
- length: number,
- name: string,
- value: any,
- ): void {
- super.formatAt(index, length, name, value);
- this.enforceAllowedChildren();
- }
- public insertAt(index: number, value: string, def?: any): void {
- super.insertAt(index, value, def);
- this.enforceAllowedChildren();
- }
- public optimize(context: { [key: string]: any }): void {
- super.optimize(context);
- if (this.children.length > 0 && this.next != null && this.checkMerge()) {
- this.next.moveChildren(this);
- this.next.remove();
- }
- }
- }
- export default ContainerBlot;
|