mirror of
https://github.com/codex-team/editor.js
synced 2024-06-27 01:40:22 +02:00
2d89105670
* Add internal wrappers for tools classes * FIx lint * Change tools collections to map * Apply some more refactoring * Make tool instance private field * Add some docs * Fix eslint * Basic implementation for Block Tunes * Small fix for demo * Review changes * Fix * Add common tunes and ToolsCollection class * Fixes after review * Rename tools collections * Readonly fix * Some fixes after review * Apply suggestions from code review Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fixes after review * Add docs and changelog * Update docs/block-tunes.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Apply suggestions from code review Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/block/index.ts Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> * [Dev] Tools utils tests (#1602) * Add tests for tools utils and coverage report * Fix eslint * Adjust test * Add more tests * Update after code review * Fix test & bump version Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com>
36 lines
918 B
TypeScript
36 lines
918 B
TypeScript
import BaseTool, { InternalInlineToolSettings, ToolType } from './base';
|
|
import { InlineTool as IInlineTool, InlineToolConstructable } from '../../../types';
|
|
|
|
/**
|
|
* InlineTool object to work with Inline Tools constructables
|
|
*/
|
|
export default class InlineTool extends BaseTool<IInlineTool> {
|
|
/**
|
|
* Tool type — Inline
|
|
*/
|
|
public type = ToolType.Inline;
|
|
|
|
/**
|
|
* Tool's constructable blueprint
|
|
*/
|
|
protected constructable: InlineToolConstructable;
|
|
|
|
/**
|
|
* Returns title for Inline Tool if specified by user
|
|
*/
|
|
public get title(): string {
|
|
return this.constructable[InternalInlineToolSettings.Title];
|
|
}
|
|
|
|
/**
|
|
* Constructs new InlineTool instance from constructable
|
|
*/
|
|
public create(): IInlineTool {
|
|
// eslint-disable-next-line new-cap
|
|
return new this.constructable({
|
|
api: this.api.getMethodsForTool(this),
|
|
config: this.settings,
|
|
}) as IInlineTool;
|
|
}
|
|
}
|