@ckeditor/ckeditor5-link 44.1.0-alpha.5 → 44.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/link.js +2 -2
  3. package/dist/index-content.css +2 -2
  4. package/dist/index-editor.css +2 -2
  5. package/dist/index.css +9 -9
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.js +16 -8
  8. package/dist/index.js.map +1 -1
  9. package/dist/translations/af.d.ts +2 -2
  10. package/dist/translations/af.js +2 -2
  11. package/dist/translations/af.umd.js +2 -2
  12. package/dist/translations/ar.d.ts +2 -2
  13. package/dist/translations/ar.js +2 -2
  14. package/dist/translations/ar.umd.js +2 -2
  15. package/dist/translations/ast.d.ts +2 -2
  16. package/dist/translations/ast.js +2 -2
  17. package/dist/translations/ast.umd.js +2 -2
  18. package/dist/translations/az.d.ts +2 -2
  19. package/dist/translations/az.js +2 -2
  20. package/dist/translations/az.umd.js +2 -2
  21. package/dist/translations/bg.d.ts +2 -2
  22. package/dist/translations/bg.js +2 -2
  23. package/dist/translations/bg.umd.js +2 -2
  24. package/dist/translations/bn.d.ts +2 -2
  25. package/dist/translations/bn.js +2 -2
  26. package/dist/translations/bn.umd.js +2 -2
  27. package/dist/translations/bs.d.ts +2 -2
  28. package/dist/translations/bs.js +2 -2
  29. package/dist/translations/bs.umd.js +2 -2
  30. package/dist/translations/ca.d.ts +2 -2
  31. package/dist/translations/ca.js +2 -2
  32. package/dist/translations/ca.umd.js +2 -2
  33. package/dist/translations/cs.d.ts +2 -2
  34. package/dist/translations/cs.js +2 -2
  35. package/dist/translations/cs.umd.js +2 -2
  36. package/dist/translations/da.d.ts +2 -2
  37. package/dist/translations/da.js +2 -2
  38. package/dist/translations/da.umd.js +2 -2
  39. package/dist/translations/de-ch.d.ts +2 -2
  40. package/dist/translations/de-ch.js +2 -2
  41. package/dist/translations/de-ch.umd.js +2 -2
  42. package/dist/translations/de.d.ts +2 -2
  43. package/dist/translations/de.js +2 -2
  44. package/dist/translations/de.umd.js +2 -2
  45. package/dist/translations/el.d.ts +2 -2
  46. package/dist/translations/el.js +2 -2
  47. package/dist/translations/el.umd.js +2 -2
  48. package/dist/translations/en-au.d.ts +2 -2
  49. package/dist/translations/en-au.js +2 -2
  50. package/dist/translations/en-au.umd.js +2 -2
  51. package/dist/translations/en-gb.d.ts +2 -2
  52. package/dist/translations/en-gb.js +2 -2
  53. package/dist/translations/en-gb.umd.js +2 -2
  54. package/dist/translations/en.d.ts +2 -2
  55. package/dist/translations/en.js +2 -2
  56. package/dist/translations/en.umd.js +2 -2
  57. package/dist/translations/eo.d.ts +2 -2
  58. package/dist/translations/eo.js +2 -2
  59. package/dist/translations/eo.umd.js +2 -2
  60. package/dist/translations/es-co.d.ts +2 -2
  61. package/dist/translations/es-co.js +2 -2
  62. package/dist/translations/es-co.umd.js +2 -2
  63. package/dist/translations/es.d.ts +2 -2
  64. package/dist/translations/es.js +2 -2
  65. package/dist/translations/es.umd.js +2 -2
  66. package/dist/translations/et.d.ts +2 -2
  67. package/dist/translations/et.js +2 -2
  68. package/dist/translations/et.umd.js +2 -2
  69. package/dist/translations/eu.d.ts +2 -2
  70. package/dist/translations/eu.js +2 -2
  71. package/dist/translations/eu.umd.js +2 -2
  72. package/dist/translations/fa.d.ts +2 -2
  73. package/dist/translations/fa.js +2 -2
  74. package/dist/translations/fa.umd.js +2 -2
  75. package/dist/translations/fi.d.ts +2 -2
  76. package/dist/translations/fi.js +2 -2
  77. package/dist/translations/fi.umd.js +2 -2
  78. package/dist/translations/fr.d.ts +2 -2
  79. package/dist/translations/fr.js +2 -2
  80. package/dist/translations/fr.umd.js +2 -2
  81. package/dist/translations/gl.d.ts +2 -2
  82. package/dist/translations/gl.js +2 -2
  83. package/dist/translations/gl.umd.js +2 -2
  84. package/dist/translations/gu.d.ts +2 -2
  85. package/dist/translations/gu.js +2 -2
  86. package/dist/translations/gu.umd.js +2 -2
  87. package/dist/translations/he.d.ts +2 -2
  88. package/dist/translations/he.js +2 -2
  89. package/dist/translations/he.umd.js +2 -2
  90. package/dist/translations/hi.d.ts +2 -2
  91. package/dist/translations/hi.js +2 -2
  92. package/dist/translations/hi.umd.js +2 -2
  93. package/dist/translations/hr.d.ts +2 -2
  94. package/dist/translations/hr.js +2 -2
  95. package/dist/translations/hr.umd.js +2 -2
  96. package/dist/translations/hu.d.ts +2 -2
  97. package/dist/translations/hu.js +2 -2
  98. package/dist/translations/hu.umd.js +2 -2
  99. package/dist/translations/hy.d.ts +2 -2
  100. package/dist/translations/hy.js +2 -2
  101. package/dist/translations/hy.umd.js +2 -2
  102. package/dist/translations/id.d.ts +2 -2
  103. package/dist/translations/id.js +2 -2
  104. package/dist/translations/id.umd.js +2 -2
  105. package/dist/translations/it.d.ts +2 -2
  106. package/dist/translations/it.js +2 -2
  107. package/dist/translations/it.umd.js +2 -2
  108. package/dist/translations/ja.d.ts +2 -2
  109. package/dist/translations/ja.js +2 -2
  110. package/dist/translations/ja.umd.js +2 -2
  111. package/dist/translations/jv.d.ts +2 -2
  112. package/dist/translations/jv.js +2 -2
  113. package/dist/translations/jv.umd.js +2 -2
  114. package/dist/translations/kk.d.ts +2 -2
  115. package/dist/translations/kk.js +2 -2
  116. package/dist/translations/kk.umd.js +2 -2
  117. package/dist/translations/km.d.ts +2 -2
  118. package/dist/translations/km.js +2 -2
  119. package/dist/translations/km.umd.js +2 -2
  120. package/dist/translations/kn.d.ts +2 -2
  121. package/dist/translations/kn.js +2 -2
  122. package/dist/translations/kn.umd.js +2 -2
  123. package/dist/translations/ko.d.ts +2 -2
  124. package/dist/translations/ko.js +2 -2
  125. package/dist/translations/ko.umd.js +2 -2
  126. package/dist/translations/ku.d.ts +2 -2
  127. package/dist/translations/ku.js +2 -2
  128. package/dist/translations/ku.umd.js +2 -2
  129. package/dist/translations/lt.d.ts +2 -2
  130. package/dist/translations/lt.js +2 -2
  131. package/dist/translations/lt.umd.js +2 -2
  132. package/dist/translations/lv.d.ts +2 -2
  133. package/dist/translations/lv.js +2 -2
  134. package/dist/translations/lv.umd.js +2 -2
  135. package/dist/translations/ms.d.ts +2 -2
  136. package/dist/translations/ms.js +2 -2
  137. package/dist/translations/ms.umd.js +2 -2
  138. package/dist/translations/nb.d.ts +2 -2
  139. package/dist/translations/nb.js +2 -2
  140. package/dist/translations/nb.umd.js +2 -2
  141. package/dist/translations/ne.d.ts +2 -2
  142. package/dist/translations/ne.js +2 -2
  143. package/dist/translations/ne.umd.js +2 -2
  144. package/dist/translations/nl.d.ts +2 -2
  145. package/dist/translations/nl.js +2 -2
  146. package/dist/translations/nl.umd.js +2 -2
  147. package/dist/translations/no.d.ts +2 -2
  148. package/dist/translations/no.js +2 -2
  149. package/dist/translations/no.umd.js +2 -2
  150. package/dist/translations/oc.d.ts +2 -2
  151. package/dist/translations/oc.js +2 -2
  152. package/dist/translations/oc.umd.js +2 -2
  153. package/dist/translations/pl.d.ts +2 -2
  154. package/dist/translations/pl.js +2 -2
  155. package/dist/translations/pl.umd.js +2 -2
  156. package/dist/translations/pt-br.d.ts +2 -2
  157. package/dist/translations/pt-br.js +2 -2
  158. package/dist/translations/pt-br.umd.js +2 -2
  159. package/dist/translations/pt.d.ts +2 -2
  160. package/dist/translations/pt.js +2 -2
  161. package/dist/translations/pt.umd.js +2 -2
  162. package/dist/translations/ro.d.ts +2 -2
  163. package/dist/translations/ro.js +2 -2
  164. package/dist/translations/ro.umd.js +2 -2
  165. package/dist/translations/ru.d.ts +2 -2
  166. package/dist/translations/ru.js +2 -2
  167. package/dist/translations/ru.umd.js +2 -2
  168. package/dist/translations/si.d.ts +2 -2
  169. package/dist/translations/si.js +2 -2
  170. package/dist/translations/si.umd.js +2 -2
  171. package/dist/translations/sk.d.ts +2 -2
  172. package/dist/translations/sk.js +2 -2
  173. package/dist/translations/sk.umd.js +2 -2
  174. package/dist/translations/sl.d.ts +2 -2
  175. package/dist/translations/sl.js +2 -2
  176. package/dist/translations/sl.umd.js +2 -2
  177. package/dist/translations/sq.d.ts +2 -2
  178. package/dist/translations/sq.js +2 -2
  179. package/dist/translations/sq.umd.js +2 -2
  180. package/dist/translations/sr-latn.d.ts +2 -2
  181. package/dist/translations/sr-latn.js +2 -2
  182. package/dist/translations/sr-latn.umd.js +2 -2
  183. package/dist/translations/sr.d.ts +2 -2
  184. package/dist/translations/sr.js +2 -2
  185. package/dist/translations/sr.umd.js +2 -2
  186. package/dist/translations/sv.d.ts +2 -2
  187. package/dist/translations/sv.js +2 -2
  188. package/dist/translations/sv.umd.js +2 -2
  189. package/dist/translations/th.d.ts +2 -2
  190. package/dist/translations/th.js +2 -2
  191. package/dist/translations/th.umd.js +2 -2
  192. package/dist/translations/ti.d.ts +2 -2
  193. package/dist/translations/ti.js +2 -2
  194. package/dist/translations/ti.umd.js +2 -2
  195. package/dist/translations/tk.d.ts +2 -2
  196. package/dist/translations/tk.js +2 -2
  197. package/dist/translations/tk.umd.js +2 -2
  198. package/dist/translations/tr.d.ts +2 -2
  199. package/dist/translations/tr.js +2 -2
  200. package/dist/translations/tr.umd.js +2 -2
  201. package/dist/translations/tt.d.ts +2 -2
  202. package/dist/translations/tt.js +2 -2
  203. package/dist/translations/tt.umd.js +2 -2
  204. package/dist/translations/ug.d.ts +2 -2
  205. package/dist/translations/ug.js +2 -2
  206. package/dist/translations/ug.umd.js +2 -2
  207. package/dist/translations/uk.d.ts +2 -2
  208. package/dist/translations/uk.js +2 -2
  209. package/dist/translations/uk.umd.js +2 -2
  210. package/dist/translations/ur.d.ts +2 -2
  211. package/dist/translations/ur.js +2 -2
  212. package/dist/translations/ur.umd.js +2 -2
  213. package/dist/translations/uz.d.ts +2 -2
  214. package/dist/translations/uz.js +2 -2
  215. package/dist/translations/uz.umd.js +2 -2
  216. package/dist/translations/vi.d.ts +2 -2
  217. package/dist/translations/vi.js +2 -2
  218. package/dist/translations/vi.umd.js +2 -2
  219. package/dist/translations/zh-cn.d.ts +2 -2
  220. package/dist/translations/zh-cn.js +2 -2
  221. package/dist/translations/zh-cn.umd.js +2 -2
  222. package/dist/translations/zh.d.ts +2 -2
  223. package/dist/translations/zh.js +2 -2
  224. package/dist/translations/zh.umd.js +2 -2
  225. package/lang/translations/af.po +1 -1
  226. package/lang/translations/ar.po +1 -1
  227. package/lang/translations/ast.po +1 -1
  228. package/lang/translations/az.po +1 -1
  229. package/lang/translations/bg.po +1 -1
  230. package/lang/translations/bn.po +1 -1
  231. package/lang/translations/bs.po +1 -1
  232. package/lang/translations/ca.po +1 -1
  233. package/lang/translations/cs.po +1 -1
  234. package/lang/translations/da.po +1 -1
  235. package/lang/translations/de-ch.po +1 -1
  236. package/lang/translations/de.po +1 -1
  237. package/lang/translations/el.po +1 -1
  238. package/lang/translations/en-au.po +1 -1
  239. package/lang/translations/en-gb.po +1 -1
  240. package/lang/translations/en.po +1 -1
  241. package/lang/translations/eo.po +1 -1
  242. package/lang/translations/es-co.po +1 -1
  243. package/lang/translations/es.po +1 -1
  244. package/lang/translations/et.po +1 -1
  245. package/lang/translations/eu.po +1 -1
  246. package/lang/translations/fa.po +1 -1
  247. package/lang/translations/fi.po +1 -1
  248. package/lang/translations/fr.po +1 -1
  249. package/lang/translations/gl.po +1 -1
  250. package/lang/translations/gu.po +1 -1
  251. package/lang/translations/he.po +1 -1
  252. package/lang/translations/hi.po +1 -1
  253. package/lang/translations/hr.po +1 -1
  254. package/lang/translations/hu.po +1 -1
  255. package/lang/translations/hy.po +1 -1
  256. package/lang/translations/id.po +1 -1
  257. package/lang/translations/it.po +1 -1
  258. package/lang/translations/ja.po +1 -1
  259. package/lang/translations/jv.po +1 -1
  260. package/lang/translations/kk.po +1 -1
  261. package/lang/translations/km.po +1 -1
  262. package/lang/translations/kn.po +1 -1
  263. package/lang/translations/ko.po +1 -1
  264. package/lang/translations/ku.po +1 -1
  265. package/lang/translations/lt.po +1 -1
  266. package/lang/translations/lv.po +1 -1
  267. package/lang/translations/ms.po +1 -1
  268. package/lang/translations/nb.po +1 -1
  269. package/lang/translations/ne.po +1 -1
  270. package/lang/translations/nl.po +1 -1
  271. package/lang/translations/no.po +1 -1
  272. package/lang/translations/oc.po +1 -1
  273. package/lang/translations/pl.po +1 -1
  274. package/lang/translations/pt-br.po +1 -1
  275. package/lang/translations/pt.po +1 -1
  276. package/lang/translations/ro.po +1 -1
  277. package/lang/translations/ru.po +1 -1
  278. package/lang/translations/si.po +1 -1
  279. package/lang/translations/sk.po +1 -1
  280. package/lang/translations/sl.po +1 -1
  281. package/lang/translations/sq.po +1 -1
  282. package/lang/translations/sr-latn.po +1 -1
  283. package/lang/translations/sr.po +1 -1
  284. package/lang/translations/sv.po +1 -1
  285. package/lang/translations/th.po +1 -1
  286. package/lang/translations/ti.po +1 -1
  287. package/lang/translations/tk.po +1 -1
  288. package/lang/translations/tr.po +1 -1
  289. package/lang/translations/tt.po +1 -1
  290. package/lang/translations/ug.po +1 -1
  291. package/lang/translations/uk.po +1 -1
  292. package/lang/translations/ur.po +1 -1
  293. package/lang/translations/uz.po +1 -1
  294. package/lang/translations/vi.po +1 -1
  295. package/lang/translations/zh-cn.po +1 -1
  296. package/lang/translations/zh.po +1 -1
  297. package/package.json +34 -10
  298. package/src/augmentation.d.ts +1 -1
  299. package/src/augmentation.js +1 -1
  300. package/src/autolink.d.ts +1 -1
  301. package/src/autolink.js +17 -7
  302. package/src/index.d.ts +1 -1
  303. package/src/index.js +1 -1
  304. package/src/link.d.ts +1 -1
  305. package/src/link.js +1 -1
  306. package/src/linkcommand.d.ts +1 -1
  307. package/src/linkcommand.js +1 -1
  308. package/src/linkconfig.d.ts +1 -1
  309. package/src/linkconfig.js +1 -1
  310. package/src/linkediting.d.ts +1 -1
  311. package/src/linkediting.js +1 -1
  312. package/src/linkimage.d.ts +1 -1
  313. package/src/linkimage.js +1 -1
  314. package/src/linkimageediting.d.ts +1 -1
  315. package/src/linkimageediting.js +1 -1
  316. package/src/linkimageui.d.ts +1 -1
  317. package/src/linkimageui.js +1 -1
  318. package/src/linkui.d.ts +1 -1
  319. package/src/linkui.js +1 -1
  320. package/src/ui/linkactionsview.d.ts +1 -1
  321. package/src/ui/linkactionsview.js +1 -1
  322. package/src/ui/linkformview.d.ts +1 -1
  323. package/src/ui/linkformview.js +1 -1
  324. package/src/unlinkcommand.d.ts +1 -1
  325. package/src/unlinkcommand.js +1 -1
  326. package/src/utils/automaticdecorators.d.ts +1 -1
  327. package/src/utils/automaticdecorators.js +1 -1
  328. package/src/utils/manualdecorator.d.ts +1 -1
  329. package/src/utils/manualdecorator.js +1 -1
  330. package/src/utils.d.ts +1 -1
  331. package/src/utils.js +1 -1
  332. package/theme/link.css +1 -1
  333. package/theme/linkactions.css +1 -1
  334. package/theme/linkform.css +1 -1
  335. package/theme/linkimage.css +1 -1
  336. package/dist/augmentation.d.ts +0 -34
  337. package/dist/autolink.d.ts +0 -83
  338. package/dist/index.d.ts +0 -25
  339. package/dist/link.d.ts +0 -35
  340. package/dist/linkcommand.d.ts +0 -136
  341. package/dist/linkconfig.d.ts +0 -294
  342. package/dist/linkediting.d.ts +0 -78
  343. package/dist/linkimage.d.ts +0 -35
  344. package/dist/linkimageediting.d.ts +0 -47
  345. package/dist/linkimageui.d.ts +0 -48
  346. package/dist/linkui.d.ts +0 -177
  347. package/dist/ui/linkactionsview.d.ts +0 -121
  348. package/dist/ui/linkformview.d.ts +0 -175
  349. package/dist/unlinkcommand.d.ts +0 -35
  350. package/dist/utils/automaticdecorators.d.ts +0 -49
  351. package/dist/utils/manualdecorator.d.ts +0 -76
  352. package/dist/utils.d.ts +0 -90
@@ -1,294 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module link/linkconfig
11
- */
12
- import type { ArrayOrItem } from 'ckeditor5/src/utils.js';
13
- /**
14
- * The configuration of the {@link module:link/link~Link link feature}.
15
- *
16
- * ```ts
17
- * ClassicEditor
18
- * .create( editorElement, {
19
- * link: ... // Link feature configuration.
20
- * } )
21
- * .then( ... )
22
- * .catch( ... );
23
- * ```
24
- *
25
- * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
26
- */
27
- export interface LinkConfig {
28
- /**
29
- * When set, the editor will add the given protocol to the link when the user creates a link without one.
30
- * For example, when the user is creating a link and types `ckeditor.com` in the link form input, during link submission
31
- * the editor will automatically add the `http://` protocol, so the link will look as follows: `http://ckeditor.com`.
32
- *
33
- * The feature also provides email address auto-detection. When you submit `hello@example.com`,
34
- * the plugin will automatically change it to `mailto:hello@example.com`.
35
- *
36
- * ```ts
37
- * ClassicEditor
38
- * .create( editorElement, {
39
- * link: {
40
- * defaultProtocol: 'http://'
41
- * }
42
- * } )
43
- * .then( ... )
44
- * .catch( ... );
45
- * ```
46
- *
47
- * **NOTE:** If no configuration is provided, the editor will not auto-fix the links.
48
- */
49
- defaultProtocol?: string;
50
- /**
51
- * This is a protocols whitelist that can be used in links, defined as an array of strings.
52
- * When not set, the editor will use a default list of allowed protocols.
53
- *
54
- * **Note:** Use this with caution and at your own risk - adding unsafe protocols like `javascript:`
55
- * can result in serious security vulnerabilities!
56
- *
57
- * ```ts
58
- * ClassicEditor
59
- * .create( editorElement, {
60
- * link: {
61
- * allowedProtocols: [ 'http', 'https', 'ftp', 'tel', 'mailto', 'ssh' ]
62
- * }
63
- * } )
64
- * .then( ... )
65
- * .catch( ... );
66
- * ```
67
- *
68
- */
69
- allowedProtocols?: Array<string>;
70
- /**
71
- * When set to `true`, the form will accept an empty value in the URL field, creating a link with an empty `href` (`<a href="">`).
72
- *
73
- * ```ts
74
- * ClassicEditor
75
- * .create( editorElement, {
76
- * link: {
77
- * allowCreatingEmptyLinks: true
78
- * }
79
- * } )
80
- * .then( ... )
81
- * .catch( ... );
82
- * ```
83
- *
84
- * **NOTE:** This option only adds form validation. If a link with an empty `href` is loaded into the editor, it will be left as-is.
85
- *
86
- * @default false
87
- */
88
- allowCreatingEmptyLinks?: boolean;
89
- /**
90
- * When set to `true`, the `target="blank"` and `rel="noopener noreferrer"` attributes are automatically added to all external links
91
- * in the editor. "External links" are all links in the editor content starting with `http`, `https`, or `//`.
92
- *
93
- * ```ts
94
- * ClassicEditor
95
- * .create( editorElement, {
96
- * link: {
97
- * addTargetToExternalLinks: true
98
- * }
99
- * } )
100
- * .then( ... )
101
- * .catch( ... );
102
- * ```
103
- *
104
- * Internally, this option activates a predefined {@link module:link/linkconfig~LinkConfig#decorators automatic link decorator}
105
- * that extends all external links with the `target` and `rel` attributes.
106
- *
107
- * **Note**: To control the `target` and `rel` attributes of specific links in the edited content, a dedicated
108
- * {@link module:link/linkconfig~LinkDecoratorManualDefinition manual} decorator must be defined in the
109
- * {@link module:link/linkconfig~LinkConfig#decorators `config.link.decorators`} array. In such scenario,
110
- * the `config.link.addTargetToExternalLinks` option should remain `undefined` or `false` to not interfere with the manual decorator.
111
- *
112
- * It is possible to add other {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic}
113
- * or {@link module:link/linkconfig~LinkDecoratorManualDefinition manual} link decorators when this option is active.
114
- *
115
- * More information about decorators can be found in the {@link module:link/linkconfig~LinkConfig#decorators decorators configuration}
116
- * reference.
117
- *
118
- * @default false
119
- */
120
- addTargetToExternalLinks?: boolean;
121
- /**
122
- * Decorators provide an easy way to configure and manage additional link attributes in the editor content. There are
123
- * two types of link decorators:
124
- *
125
- * * {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition Automatic} &ndash; They match links against pre–defined rules and
126
- * manage their attributes based on the results.
127
- * * {@link module:link/linkconfig~LinkDecoratorManualDefinition Manual} &ndash; They allow users to control link attributes
128
- * individually, using the editor UI.
129
- *
130
- * Link decorators are defined as objects with key-value pairs, where the key is the name provided for a given decorator and the
131
- * value is the decorator definition.
132
- *
133
- * The name of the decorator also corresponds to the {@glink framework/architecture/editing-engine#text-attributes text
134
- * attribute} in the model. For instance, the `isExternal` decorator below is represented as a `linkIsExternal` attribute in the model.
135
- *
136
- * ```ts
137
- * ClassicEditor
138
- * .create( editorElement, {
139
- * link: {
140
- * decorators: {
141
- * isExternal: {
142
- * mode: 'automatic',
143
- * callback: url => url.startsWith( 'http://' ),
144
- * attributes: {
145
- * target: '_blank',
146
- * rel: 'noopener noreferrer'
147
- * }
148
- * },
149
- * isDownloadable: {
150
- * mode: 'manual',
151
- * label: 'Downloadable',
152
- * attributes: {
153
- * download: 'file.png',
154
- * }
155
- * },
156
- * // ...
157
- * }
158
- * }
159
- * } )
160
- * .then( ... )
161
- * .catch( ... );
162
- * ```
163
- *
164
- * To learn more about the configuration syntax, check out the {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic}
165
- * and {@link module:link/linkconfig~LinkDecoratorManualDefinition manual} decorator option reference.
166
- *
167
- * **Warning:** Currently, link decorators work independently of one another and no conflict resolution mechanism exists.
168
- * For example, configuring the `target` attribute using both an automatic and a manual decorator at the same time could end up with
169
- * quirky results. The same applies if multiple manual or automatic decorators were defined for the same attribute.
170
- *
171
- * **Note**: Since the `target` attribute management for external links is a common use case, there is a predefined automatic decorator
172
- * dedicated for that purpose which can be enabled by turning a single option on. Check out the
173
- * {@link module:link/linkconfig~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}
174
- * configuration description to learn more.
175
- *
176
- * See also the {@glink features/link#custom-link-attributes-decorators link feature guide} for more information.
177
- */
178
- decorators?: Record<string, LinkDecoratorDefinition>;
179
- }
180
- /**
181
- * A link decorator definition. Two types implement this definition:
182
- *
183
- * * {@link module:link/linkconfig~LinkDecoratorManualDefinition}
184
- * * {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition}
185
- *
186
- * Refer to their document for more information about available options or to the
187
- * {@glink features/link#custom-link-attributes-decorators link feature guide} for general information.
188
- */
189
- export type LinkDecoratorDefinition = LinkDecoratorAutomaticDefinition | LinkDecoratorManualDefinition;
190
- /**
191
- * Describes an automatic {@link module:link/linkconfig~LinkConfig#decorators link decorator}. This decorator type matches
192
- * all links in the editor content against a function that decides whether the link should receive a pre–defined set of attributes.
193
- *
194
- * It takes an object with key-value pairs of attributes and a callback function that must return a Boolean value based on the link's
195
- * `href` (URL). When the callback returns `true`, attributes are applied to the link.
196
- *
197
- * For example, to add the `target="_blank"` attribute to all links in the editor starting with `http://`, the
198
- * configuration could look like this:
199
- *
200
- * ```ts
201
- * {
202
- * mode: 'automatic',
203
- * callback: url => url.startsWith( 'http://' ),
204
- * attributes: {
205
- * target: '_blank'
206
- * }
207
- * }
208
- * ```
209
- *
210
- * **Note**: Since the `target` attribute management for external links is a common use case, there is a predefined automatic decorator
211
- * dedicated for that purpose that can be enabled by turning a single option on. Check out the
212
- * {@link module:link/linkconfig~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}
213
- * configuration description to learn more.
214
- */
215
- export interface LinkDecoratorAutomaticDefinition {
216
- /**
217
- * Link decorator type. It is `'automatic'` for all automatic decorators.
218
- */
219
- mode: 'automatic';
220
- /**
221
- * Takes a `url` as a parameter and returns `true` if the `attributes` should be applied to the link.
222
- */
223
- callback: (url: string | null) => boolean;
224
- /**
225
- * Key-value pairs used as link attributes added to the output during the
226
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
227
- * Attributes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
228
- */
229
- attributes?: Record<string, string>;
230
- /**
231
- * Key-value pairs used as link styles added to the output during the
232
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
233
- * Styles should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
234
- */
235
- styles?: Record<string, string>;
236
- /**
237
- * Class names used as link classes added to the output during the
238
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
239
- * Classes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
240
- */
241
- classes?: ArrayOrItem<string>;
242
- }
243
- /**
244
- * Describes a manual {@link module:link/linkconfig~LinkConfig#decorators link decorator}. This decorator type is represented in
245
- * the link feature's {@link module:link/linkui user interface} as a switch that the user can use to control the presence
246
- * of a predefined set of attributes.
247
- *
248
- * For instance, to allow the users to manually control the presence of the `target="_blank"` and
249
- * `rel="noopener noreferrer"` attributes on specific links, the decorator could look as follows:
250
- *
251
- * ```ts
252
- * {
253
- * mode: 'manual',
254
- * label: 'Open in a new tab',
255
- * defaultValue: true,
256
- * attributes: {
257
- * target: '_blank',
258
- * rel: 'noopener noreferrer'
259
- * }
260
- * }
261
- * ```
262
- */
263
- export interface LinkDecoratorManualDefinition {
264
- /**
265
- * Link decorator type. It is `'manual'` for all manual decorators.
266
- */
267
- mode: 'manual';
268
- /**
269
- * The label of the UI button that the user can use to control the presence of link attributes.
270
- */
271
- label: string;
272
- /**
273
- * Key-value pairs used as link attributes added to the output during the
274
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
275
- * Attributes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
276
- */
277
- attributes?: Record<string, string>;
278
- /**
279
- * Key-value pairs used as link styles added to the output during the
280
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
281
- * Styles should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
282
- */
283
- styles?: Record<string, string>;
284
- /**
285
- * Class names used as link classes added to the output during the
286
- * {@glink framework/architecture/editing-engine#conversion downcasting}.
287
- * Classes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.
288
- */
289
- classes?: ArrayOrItem<string>;
290
- /**
291
- * Controls whether the decorator is "on" by default.
292
- */
293
- defaultValue?: boolean;
294
- }
@@ -1,78 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module link/linkediting
11
- */
12
- import { Plugin, type Editor } from 'ckeditor5/src/core.js';
13
- import { Input, TwoStepCaretMovement } from 'ckeditor5/src/typing.js';
14
- import { ClipboardPipeline } from 'ckeditor5/src/clipboard.js';
15
- import '../theme/link.css';
16
- /**
17
- * The link engine feature.
18
- *
19
- * It introduces the `linkHref="url"` attribute in the model which renders to the view as a `<a href="url">` element
20
- * as well as `'link'` and `'unlink'` commands.
21
- */
22
- export default class LinkEditing extends Plugin {
23
- /**
24
- * @inheritDoc
25
- */
26
- static get pluginName(): "LinkEditing";
27
- /**
28
- * @inheritDoc
29
- */
30
- static get isOfficialPlugin(): true;
31
- /**
32
- * @inheritDoc
33
- */
34
- static get requires(): readonly [typeof TwoStepCaretMovement, typeof Input, typeof ClipboardPipeline];
35
- /**
36
- * @inheritDoc
37
- */
38
- constructor(editor: Editor);
39
- /**
40
- * @inheritDoc
41
- */
42
- init(): void;
43
- /**
44
- * Processes an array of configured {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic decorators}
45
- * and registers a {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher downcast dispatcher}
46
- * for each one of them. Downcast dispatchers are obtained using the
47
- * {@link module:link/utils/automaticdecorators~AutomaticDecorators#getDispatcher} method.
48
- *
49
- * **Note**: This method also activates the automatic external link decorator if enabled with
50
- * {@link module:link/linkconfig~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}.
51
- */
52
- private _enableAutomaticDecorators;
53
- /**
54
- * Processes an array of configured {@link module:link/linkconfig~LinkDecoratorManualDefinition manual decorators},
55
- * transforms them into {@link module:link/utils/manualdecorator~ManualDecorator} instances and stores them in the
56
- * {@link module:link/linkcommand~LinkCommand#manualDecorators} collection (a model for manual decorators state).
57
- *
58
- * Also registers an {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement attribute-to-element}
59
- * converter for each manual decorator and extends the {@link module:engine/model/schema~Schema model's schema}
60
- * with adequate model attributes.
61
- */
62
- private _enableManualDecorators;
63
- /**
64
- * Attaches handlers for {@link module:engine/view/document~Document#event:enter} and
65
- * {@link module:engine/view/document~Document#event:click} to enable link following.
66
- */
67
- private _enableLinkOpen;
68
- /**
69
- * Watches the DocumentSelection attribute changes and removes link decorator attributes when the linkHref attribute is removed.
70
- *
71
- * This is to ensure that there is no left-over link decorator attributes on the document selection that is no longer in a link.
72
- */
73
- private _enableSelectionAttributesFixer;
74
- /**
75
- * Enables URL fixing on pasting.
76
- */
77
- private _enableClipboardIntegration;
78
- }
@@ -1,35 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module link/linkimage
11
- */
12
- import { Plugin } from 'ckeditor5/src/core.js';
13
- import LinkImageEditing from './linkimageediting.js';
14
- import LinkImageUI from './linkimageui.js';
15
- import '../theme/linkimage.css';
16
- /**
17
- * The `LinkImage` plugin.
18
- *
19
- * This is a "glue" plugin that loads the {@link module:link/linkimageediting~LinkImageEditing link image editing feature}
20
- * and {@link module:link/linkimageui~LinkImageUI link image UI feature}.
21
- */
22
- export default class LinkImage extends Plugin {
23
- /**
24
- * @inheritDoc
25
- */
26
- static get requires(): readonly [typeof LinkImageEditing, typeof LinkImageUI];
27
- /**
28
- * @inheritDoc
29
- */
30
- static get pluginName(): "LinkImage";
31
- /**
32
- * @inheritDoc
33
- */
34
- static get isOfficialPlugin(): true;
35
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module link/linkimageediting
11
- */
12
- import { Plugin } from 'ckeditor5/src/core.js';
13
- import LinkEditing from './linkediting.js';
14
- /**
15
- * The link image engine feature.
16
- *
17
- * It accepts the `linkHref="url"` attribute in the model for the {@link module:image/image~Image `<imageBlock>`} element
18
- * which allows linking images.
19
- */
20
- export default class LinkImageEditing extends Plugin {
21
- /**
22
- * @inheritDoc
23
- */
24
- static get requires(): readonly ["ImageEditing", "ImageUtils", typeof LinkEditing];
25
- /**
26
- * @inheritDoc
27
- */
28
- static get pluginName(): "LinkImageEditing";
29
- /**
30
- * @inheritDoc
31
- */
32
- static get isOfficialPlugin(): true;
33
- /**
34
- * @inheritDoc
35
- */
36
- afterInit(): void;
37
- /**
38
- * Processes {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic decorators} definitions and
39
- * attaches proper converters that will work when linking an image.`
40
- */
41
- private _enableAutomaticDecorators;
42
- /**
43
- * Processes transformed {@link module:link/utils/manualdecorator~ManualDecorator} instances and attaches proper converters
44
- * that will work when linking an image.
45
- */
46
- private _enableManualDecorators;
47
- }
@@ -1,48 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- import { Plugin } from 'ckeditor5/src/core.js';
10
- import LinkUI from './linkui.js';
11
- import LinkEditing from './linkediting.js';
12
- /**
13
- * The link image UI plugin.
14
- *
15
- * This plugin provides the `'linkImage'` button that can be displayed in the {@link module:image/imagetoolbar~ImageToolbar}.
16
- * It can be used to wrap images in links.
17
- */
18
- export default class LinkImageUI extends Plugin {
19
- /**
20
- * @inheritDoc
21
- */
22
- static get requires(): readonly [typeof LinkEditing, typeof LinkUI, "ImageBlockEditing"];
23
- /**
24
- * @inheritDoc
25
- */
26
- static get pluginName(): "LinkImageUI";
27
- /**
28
- * @inheritDoc
29
- */
30
- static get isOfficialPlugin(): true;
31
- /**
32
- * @inheritDoc
33
- */
34
- init(): void;
35
- /**
36
- * Creates a `LinkImageUI` button view.
37
- *
38
- * Clicking this button shows a {@link module:link/linkui~LinkUI#_balloon} attached to the selection.
39
- * When an image is already linked, the view shows {@link module:link/linkui~LinkUI#actionsView} or
40
- * {@link module:link/linkui~LinkUI#formView} if it is not.
41
- */
42
- private _createToolbarLinkImageButton;
43
- /**
44
- * Returns true if a linked image (either block or inline) is the only selected element
45
- * in the model document.
46
- */
47
- private _isSelectedLinkedImage;
48
- }
package/dist/linkui.d.ts DELETED
@@ -1,177 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module link/linkui
11
- */
12
- import { Plugin } from 'ckeditor5/src/core.js';
13
- import { ContextualBalloon, type ViewWithCssTransitionDisabler } from 'ckeditor5/src/ui.js';
14
- import LinkFormView from './ui/linkformview.js';
15
- import LinkActionsView from './ui/linkactionsview.js';
16
- /**
17
- * The link UI plugin. It introduces the `'link'` and `'unlink'` buttons and support for the <kbd>Ctrl+K</kbd> keystroke.
18
- *
19
- * It uses the
20
- * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon plugin}.
21
- */
22
- export default class LinkUI extends Plugin {
23
- /**
24
- * The actions view displayed inside of the balloon.
25
- */
26
- actionsView: LinkActionsView | null;
27
- /**
28
- * The form view displayed inside the balloon.
29
- */
30
- formView: LinkFormView & ViewWithCssTransitionDisabler | null;
31
- /**
32
- * The contextual balloon plugin instance.
33
- */
34
- private _balloon;
35
- /**
36
- * @inheritDoc
37
- */
38
- static get requires(): readonly [typeof ContextualBalloon];
39
- /**
40
- * @inheritDoc
41
- */
42
- static get pluginName(): "LinkUI";
43
- /**
44
- * @inheritDoc
45
- */
46
- static get isOfficialPlugin(): true;
47
- /**
48
- * @inheritDoc
49
- */
50
- init(): void;
51
- /**
52
- * @inheritDoc
53
- */
54
- destroy(): void;
55
- /**
56
- * Creates views.
57
- */
58
- private _createViews;
59
- /**
60
- * Creates the {@link module:link/ui/linkactionsview~LinkActionsView} instance.
61
- */
62
- private _createActionsView;
63
- /**
64
- * Creates the {@link module:link/ui/linkformview~LinkFormView} instance.
65
- */
66
- private _createFormView;
67
- /**
68
- * Creates a toolbar Link button. Clicking this button will show
69
- * a {@link #_balloon} attached to the selection.
70
- */
71
- private _createToolbarLinkButton;
72
- /**
73
- * Creates a button for link command to use either in toolbar or in menu bar.
74
- */
75
- private _createButton;
76
- /**
77
- * Attaches actions that control whether the balloon panel containing the
78
- * {@link #formView} should be displayed.
79
- */
80
- private _enableBalloonActivators;
81
- /**
82
- * Attaches actions that control whether the balloon panel containing the
83
- * {@link #formView} is visible or not.
84
- */
85
- private _enableUserBalloonInteractions;
86
- /**
87
- * Adds the {@link #actionsView} to the {@link #_balloon}.
88
- *
89
- * @internal
90
- */
91
- _addActionsView(): void;
92
- /**
93
- * Adds the {@link #formView} to the {@link #_balloon}.
94
- */
95
- private _addFormView;
96
- /**
97
- * Closes the form view. Decides whether the balloon should be hidden completely or if the action view should be shown. This is
98
- * decided upon the link command value (which has a value if the document selection is in the link).
99
- *
100
- * Additionally, if any {@link module:link/linkconfig~LinkConfig#decorators} are defined in the editor configuration, the state of
101
- * switch buttons responsible for manual decorator handling is restored.
102
- */
103
- private _closeFormView;
104
- /**
105
- * Removes the {@link #formView} from the {@link #_balloon}.
106
- */
107
- private _removeFormView;
108
- /**
109
- * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.
110
- *
111
- * @internal
112
- */
113
- _showUI(forceVisible?: boolean): void;
114
- /**
115
- * Removes the {@link #formView} from the {@link #_balloon}.
116
- *
117
- * See {@link #_addFormView}, {@link #_addActionsView}.
118
- */
119
- private _hideUI;
120
- /**
121
- * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to
122
- * reposition itself when the editor UI should be refreshed.
123
- *
124
- * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.
125
- */
126
- private _startUpdatingUI;
127
- /**
128
- * Returns `true` when {@link #formView} is in the {@link #_balloon}.
129
- */
130
- private get _isFormInPanel();
131
- /**
132
- * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.
133
- */
134
- private get _areActionsInPanel();
135
- /**
136
- * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is
137
- * currently visible.
138
- */
139
- private get _areActionsVisible();
140
- /**
141
- * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.
142
- */
143
- private get _isUIInPanel();
144
- /**
145
- * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is
146
- * currently visible.
147
- */
148
- private get _isUIVisible();
149
- /**
150
- * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached
151
- * to the target element or selection.
152
- *
153
- * If the selection is collapsed and inside a link element, the panel will be attached to the
154
- * entire link element. Otherwise, it will be attached to the selection.
155
- */
156
- private _getBalloonPositionData;
157
- /**
158
- * Returns the link {@link module:engine/view/attributeelement~AttributeElement} under
159
- * the {@link module:engine/view/document~Document editing view's} selection or `null`
160
- * if there is none.
161
- *
162
- * **Note**: For a non–collapsed selection, the link element is returned when **fully**
163
- * selected and the **only** element within the selection boundaries, or when
164
- * a linked widget is selected.
165
- */
166
- private _getSelectedLinkElement;
167
- /**
168
- * Displays a fake visual selection when the contextual balloon is displayed.
169
- *
170
- * This adds a 'link-ui' marker into the document that is rendered as a highlight on selected text fragment.
171
- */
172
- private _showFakeVisualSelection;
173
- /**
174
- * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.
175
- */
176
- private _hideFakeVisualSelection;
177
- }