UNPKG

1.25 kBTypeScriptView Raw
1import { Plugin } from '@ckeditor/ckeditor5-core';
2import LinkEditing from './linkediting';
3import LinkUI from './linkui';
4import AutoLink from './autolink';
5
6export default class Link extends Plugin {
7 static readonly requires: [typeof LinkEditing, typeof LinkUI, typeof AutoLink];
8 static readonly pluginName: 'Link';
9}
10
11export interface LinkDecoratorDefinition {
12 mode: 'automatic' | 'manual';
13}
14
15export interface LinkDecoratorAutomaticDefinition extends LinkDecoratorDefinition {
16 attributes?: Record<string, string>;
17 callback(url: string): boolean;
18 mode: 'automatic';
19 classes?: string | string[];
20 styles?: Record<string, string>;
21}
22
23export interface LinkDecoratorManualDefinition extends LinkDecoratorDefinition {
24 attributes?: Record<string, string>;
25 defaultValue?: boolean | undefined;
26 label: string;
27 mode: 'manual';
28 styles?: Record<string, string>;
29 classes?: string | string[];
30}
31
32export interface LinkConfig {
33 addTargetToExternalLinks?: boolean | undefined;
34 decorators?: Record<string, LinkDecoratorDefinition> | undefined;
35 defaultProtocol?: string | undefined;
36}
37
38declare module '@ckeditor/ckeditor5-core/src/plugincollection' {
39 interface Plugins {
40 Link: Link;
41 }
42}