@ckeditor/ckeditor5-remove-format 0.0.0-internal-20241017.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 (305) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +17 -0
  3. package/README.md +26 -0
  4. package/build/remove-format.js +5 -0
  5. package/build/translations/af.js +1 -0
  6. package/build/translations/ar.js +1 -0
  7. package/build/translations/az.js +1 -0
  8. package/build/translations/bg.js +1 -0
  9. package/build/translations/bn.js +1 -0
  10. package/build/translations/ca.js +1 -0
  11. package/build/translations/cs.js +1 -0
  12. package/build/translations/da.js +1 -0
  13. package/build/translations/de-ch.js +1 -0
  14. package/build/translations/de.js +1 -0
  15. package/build/translations/el.js +1 -0
  16. package/build/translations/en-au.js +1 -0
  17. package/build/translations/en-gb.js +1 -0
  18. package/build/translations/es.js +1 -0
  19. package/build/translations/et.js +1 -0
  20. package/build/translations/fa.js +1 -0
  21. package/build/translations/fi.js +1 -0
  22. package/build/translations/fr.js +1 -0
  23. package/build/translations/gl.js +1 -0
  24. package/build/translations/he.js +1 -0
  25. package/build/translations/hi.js +1 -0
  26. package/build/translations/hr.js +1 -0
  27. package/build/translations/hu.js +1 -0
  28. package/build/translations/id.js +1 -0
  29. package/build/translations/it.js +1 -0
  30. package/build/translations/ja.js +1 -0
  31. package/build/translations/ko.js +1 -0
  32. package/build/translations/ku.js +1 -0
  33. package/build/translations/lt.js +1 -0
  34. package/build/translations/lv.js +1 -0
  35. package/build/translations/ms.js +1 -0
  36. package/build/translations/ne.js +1 -0
  37. package/build/translations/nl.js +1 -0
  38. package/build/translations/no.js +1 -0
  39. package/build/translations/pl.js +1 -0
  40. package/build/translations/pt-br.js +1 -0
  41. package/build/translations/pt.js +1 -0
  42. package/build/translations/ro.js +1 -0
  43. package/build/translations/ru.js +1 -0
  44. package/build/translations/sk.js +1 -0
  45. package/build/translations/sq.js +1 -0
  46. package/build/translations/sr-latn.js +1 -0
  47. package/build/translations/sr.js +1 -0
  48. package/build/translations/sv.js +1 -0
  49. package/build/translations/th.js +1 -0
  50. package/build/translations/tk.js +1 -0
  51. package/build/translations/tr.js +1 -0
  52. package/build/translations/ug.js +1 -0
  53. package/build/translations/uk.js +1 -0
  54. package/build/translations/ur.js +1 -0
  55. package/build/translations/uz.js +1 -0
  56. package/build/translations/vi.js +1 -0
  57. package/build/translations/zh-cn.js +1 -0
  58. package/build/translations/zh.js +1 -0
  59. package/ckeditor5-metadata.json +18 -0
  60. package/dist/augmentation.d.ts +19 -0
  61. package/dist/index-content.css +4 -0
  62. package/dist/index-editor.css +4 -0
  63. package/dist/index.css +4 -0
  64. package/dist/index.d.ts +16 -0
  65. package/dist/index.js +196 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/removeformat.d.ts +36 -0
  68. package/dist/removeformatcommand.d.ts +46 -0
  69. package/dist/removeformatediting.d.ts +31 -0
  70. package/dist/removeformatui.d.ts +34 -0
  71. package/dist/translations/af.d.ts +8 -0
  72. package/dist/translations/af.js +5 -0
  73. package/dist/translations/af.umd.js +11 -0
  74. package/dist/translations/ar.d.ts +8 -0
  75. package/dist/translations/ar.js +5 -0
  76. package/dist/translations/ar.umd.js +11 -0
  77. package/dist/translations/az.d.ts +8 -0
  78. package/dist/translations/az.js +5 -0
  79. package/dist/translations/az.umd.js +11 -0
  80. package/dist/translations/bg.d.ts +8 -0
  81. package/dist/translations/bg.js +5 -0
  82. package/dist/translations/bg.umd.js +11 -0
  83. package/dist/translations/bn.d.ts +8 -0
  84. package/dist/translations/bn.js +5 -0
  85. package/dist/translations/bn.umd.js +11 -0
  86. package/dist/translations/ca.d.ts +8 -0
  87. package/dist/translations/ca.js +5 -0
  88. package/dist/translations/ca.umd.js +11 -0
  89. package/dist/translations/cs.d.ts +8 -0
  90. package/dist/translations/cs.js +5 -0
  91. package/dist/translations/cs.umd.js +11 -0
  92. package/dist/translations/da.d.ts +8 -0
  93. package/dist/translations/da.js +5 -0
  94. package/dist/translations/da.umd.js +11 -0
  95. package/dist/translations/de-ch.d.ts +8 -0
  96. package/dist/translations/de-ch.js +5 -0
  97. package/dist/translations/de-ch.umd.js +11 -0
  98. package/dist/translations/de.d.ts +8 -0
  99. package/dist/translations/de.js +5 -0
  100. package/dist/translations/de.umd.js +11 -0
  101. package/dist/translations/el.d.ts +8 -0
  102. package/dist/translations/el.js +5 -0
  103. package/dist/translations/el.umd.js +11 -0
  104. package/dist/translations/en-au.d.ts +8 -0
  105. package/dist/translations/en-au.js +5 -0
  106. package/dist/translations/en-au.umd.js +11 -0
  107. package/dist/translations/en-gb.d.ts +8 -0
  108. package/dist/translations/en-gb.js +5 -0
  109. package/dist/translations/en-gb.umd.js +11 -0
  110. package/dist/translations/en.d.ts +8 -0
  111. package/dist/translations/en.js +5 -0
  112. package/dist/translations/en.umd.js +11 -0
  113. package/dist/translations/es.d.ts +8 -0
  114. package/dist/translations/es.js +5 -0
  115. package/dist/translations/es.umd.js +11 -0
  116. package/dist/translations/et.d.ts +8 -0
  117. package/dist/translations/et.js +5 -0
  118. package/dist/translations/et.umd.js +11 -0
  119. package/dist/translations/fa.d.ts +8 -0
  120. package/dist/translations/fa.js +5 -0
  121. package/dist/translations/fa.umd.js +11 -0
  122. package/dist/translations/fi.d.ts +8 -0
  123. package/dist/translations/fi.js +5 -0
  124. package/dist/translations/fi.umd.js +11 -0
  125. package/dist/translations/fr.d.ts +8 -0
  126. package/dist/translations/fr.js +5 -0
  127. package/dist/translations/fr.umd.js +11 -0
  128. package/dist/translations/gl.d.ts +8 -0
  129. package/dist/translations/gl.js +5 -0
  130. package/dist/translations/gl.umd.js +11 -0
  131. package/dist/translations/he.d.ts +8 -0
  132. package/dist/translations/he.js +5 -0
  133. package/dist/translations/he.umd.js +11 -0
  134. package/dist/translations/hi.d.ts +8 -0
  135. package/dist/translations/hi.js +5 -0
  136. package/dist/translations/hi.umd.js +11 -0
  137. package/dist/translations/hr.d.ts +8 -0
  138. package/dist/translations/hr.js +5 -0
  139. package/dist/translations/hr.umd.js +11 -0
  140. package/dist/translations/hu.d.ts +8 -0
  141. package/dist/translations/hu.js +5 -0
  142. package/dist/translations/hu.umd.js +11 -0
  143. package/dist/translations/id.d.ts +8 -0
  144. package/dist/translations/id.js +5 -0
  145. package/dist/translations/id.umd.js +11 -0
  146. package/dist/translations/it.d.ts +8 -0
  147. package/dist/translations/it.js +5 -0
  148. package/dist/translations/it.umd.js +11 -0
  149. package/dist/translations/ja.d.ts +8 -0
  150. package/dist/translations/ja.js +5 -0
  151. package/dist/translations/ja.umd.js +11 -0
  152. package/dist/translations/ko.d.ts +8 -0
  153. package/dist/translations/ko.js +5 -0
  154. package/dist/translations/ko.umd.js +11 -0
  155. package/dist/translations/ku.d.ts +8 -0
  156. package/dist/translations/ku.js +5 -0
  157. package/dist/translations/ku.umd.js +11 -0
  158. package/dist/translations/lt.d.ts +8 -0
  159. package/dist/translations/lt.js +5 -0
  160. package/dist/translations/lt.umd.js +11 -0
  161. package/dist/translations/lv.d.ts +8 -0
  162. package/dist/translations/lv.js +5 -0
  163. package/dist/translations/lv.umd.js +11 -0
  164. package/dist/translations/ms.d.ts +8 -0
  165. package/dist/translations/ms.js +5 -0
  166. package/dist/translations/ms.umd.js +11 -0
  167. package/dist/translations/ne.d.ts +8 -0
  168. package/dist/translations/ne.js +5 -0
  169. package/dist/translations/ne.umd.js +11 -0
  170. package/dist/translations/nl.d.ts +8 -0
  171. package/dist/translations/nl.js +5 -0
  172. package/dist/translations/nl.umd.js +11 -0
  173. package/dist/translations/no.d.ts +8 -0
  174. package/dist/translations/no.js +5 -0
  175. package/dist/translations/no.umd.js +11 -0
  176. package/dist/translations/pl.d.ts +8 -0
  177. package/dist/translations/pl.js +5 -0
  178. package/dist/translations/pl.umd.js +11 -0
  179. package/dist/translations/pt-br.d.ts +8 -0
  180. package/dist/translations/pt-br.js +5 -0
  181. package/dist/translations/pt-br.umd.js +11 -0
  182. package/dist/translations/pt.d.ts +8 -0
  183. package/dist/translations/pt.js +5 -0
  184. package/dist/translations/pt.umd.js +11 -0
  185. package/dist/translations/ro.d.ts +8 -0
  186. package/dist/translations/ro.js +5 -0
  187. package/dist/translations/ro.umd.js +11 -0
  188. package/dist/translations/ru.d.ts +8 -0
  189. package/dist/translations/ru.js +5 -0
  190. package/dist/translations/ru.umd.js +11 -0
  191. package/dist/translations/sk.d.ts +8 -0
  192. package/dist/translations/sk.js +5 -0
  193. package/dist/translations/sk.umd.js +11 -0
  194. package/dist/translations/sq.d.ts +8 -0
  195. package/dist/translations/sq.js +5 -0
  196. package/dist/translations/sq.umd.js +11 -0
  197. package/dist/translations/sr-latn.d.ts +8 -0
  198. package/dist/translations/sr-latn.js +5 -0
  199. package/dist/translations/sr-latn.umd.js +11 -0
  200. package/dist/translations/sr.d.ts +8 -0
  201. package/dist/translations/sr.js +5 -0
  202. package/dist/translations/sr.umd.js +11 -0
  203. package/dist/translations/sv.d.ts +8 -0
  204. package/dist/translations/sv.js +5 -0
  205. package/dist/translations/sv.umd.js +11 -0
  206. package/dist/translations/th.d.ts +8 -0
  207. package/dist/translations/th.js +5 -0
  208. package/dist/translations/th.umd.js +11 -0
  209. package/dist/translations/tk.d.ts +8 -0
  210. package/dist/translations/tk.js +5 -0
  211. package/dist/translations/tk.umd.js +11 -0
  212. package/dist/translations/tr.d.ts +8 -0
  213. package/dist/translations/tr.js +5 -0
  214. package/dist/translations/tr.umd.js +11 -0
  215. package/dist/translations/ug.d.ts +8 -0
  216. package/dist/translations/ug.js +5 -0
  217. package/dist/translations/ug.umd.js +11 -0
  218. package/dist/translations/uk.d.ts +8 -0
  219. package/dist/translations/uk.js +5 -0
  220. package/dist/translations/uk.umd.js +11 -0
  221. package/dist/translations/ur.d.ts +8 -0
  222. package/dist/translations/ur.js +5 -0
  223. package/dist/translations/ur.umd.js +11 -0
  224. package/dist/translations/uz.d.ts +8 -0
  225. package/dist/translations/uz.js +5 -0
  226. package/dist/translations/uz.umd.js +11 -0
  227. package/dist/translations/vi.d.ts +8 -0
  228. package/dist/translations/vi.js +5 -0
  229. package/dist/translations/vi.umd.js +11 -0
  230. package/dist/translations/zh-cn.d.ts +8 -0
  231. package/dist/translations/zh-cn.js +5 -0
  232. package/dist/translations/zh-cn.umd.js +11 -0
  233. package/dist/translations/zh.d.ts +8 -0
  234. package/dist/translations/zh.js +5 -0
  235. package/dist/translations/zh.umd.js +11 -0
  236. package/lang/contexts.json +3 -0
  237. package/lang/translations/af.po +22 -0
  238. package/lang/translations/ar.po +22 -0
  239. package/lang/translations/az.po +22 -0
  240. package/lang/translations/bg.po +22 -0
  241. package/lang/translations/bn.po +22 -0
  242. package/lang/translations/ca.po +22 -0
  243. package/lang/translations/cs.po +22 -0
  244. package/lang/translations/da.po +22 -0
  245. package/lang/translations/de-ch.po +22 -0
  246. package/lang/translations/de.po +22 -0
  247. package/lang/translations/el.po +22 -0
  248. package/lang/translations/en-au.po +22 -0
  249. package/lang/translations/en-gb.po +22 -0
  250. package/lang/translations/en.po +22 -0
  251. package/lang/translations/es.po +22 -0
  252. package/lang/translations/et.po +22 -0
  253. package/lang/translations/fa.po +22 -0
  254. package/lang/translations/fi.po +22 -0
  255. package/lang/translations/fr.po +22 -0
  256. package/lang/translations/gl.po +22 -0
  257. package/lang/translations/he.po +22 -0
  258. package/lang/translations/hi.po +22 -0
  259. package/lang/translations/hr.po +22 -0
  260. package/lang/translations/hu.po +22 -0
  261. package/lang/translations/id.po +22 -0
  262. package/lang/translations/it.po +22 -0
  263. package/lang/translations/ja.po +22 -0
  264. package/lang/translations/ko.po +22 -0
  265. package/lang/translations/ku.po +22 -0
  266. package/lang/translations/lt.po +22 -0
  267. package/lang/translations/lv.po +22 -0
  268. package/lang/translations/ms.po +22 -0
  269. package/lang/translations/ne.po +22 -0
  270. package/lang/translations/nl.po +22 -0
  271. package/lang/translations/no.po +22 -0
  272. package/lang/translations/pl.po +22 -0
  273. package/lang/translations/pt-br.po +22 -0
  274. package/lang/translations/pt.po +22 -0
  275. package/lang/translations/ro.po +22 -0
  276. package/lang/translations/ru.po +22 -0
  277. package/lang/translations/sk.po +22 -0
  278. package/lang/translations/sq.po +22 -0
  279. package/lang/translations/sr-latn.po +22 -0
  280. package/lang/translations/sr.po +22 -0
  281. package/lang/translations/sv.po +22 -0
  282. package/lang/translations/th.po +22 -0
  283. package/lang/translations/tk.po +22 -0
  284. package/lang/translations/tr.po +22 -0
  285. package/lang/translations/ug.po +22 -0
  286. package/lang/translations/uk.po +22 -0
  287. package/lang/translations/ur.po +22 -0
  288. package/lang/translations/uz.po +22 -0
  289. package/lang/translations/vi.po +22 -0
  290. package/lang/translations/zh-cn.po +22 -0
  291. package/lang/translations/zh.po +22 -0
  292. package/package.json +41 -0
  293. package/src/augmentation.d.ts +15 -0
  294. package/src/augmentation.js +5 -0
  295. package/src/index.d.ts +12 -0
  296. package/src/index.js +11 -0
  297. package/src/removeformat.d.ts +32 -0
  298. package/src/removeformat.js +38 -0
  299. package/src/removeformatcommand.d.ts +42 -0
  300. package/src/removeformatcommand.js +94 -0
  301. package/src/removeformatediting.d.ts +27 -0
  302. package/src/removeformatediting.js +35 -0
  303. package/src/removeformatui.d.ts +30 -0
  304. package/src/removeformatui.js +64 -0
  305. package/theme/icons/remove-format.svg +1 -0
@@ -0,0 +1,22 @@
1
+ # Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ #
3
+ # !!! IMPORTANT !!!
4
+ #
5
+ # Before you edit this file, please keep in mind that contributing to the project
6
+ # translations is possible ONLY via the Transifex online service.
7
+ #
8
+ # To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
9
+ #
10
+ # To learn more, check out the official contributor's guide:
11
+ # https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
12
+ #
13
+ msgid ""
14
+ msgstr ""
15
+ "Language-Team: Chinese (China) (https://app.transifex.com/ckeditor/teams/11143/zh_CN/)\n"
16
+ "Language: zh_CN\n"
17
+ "Plural-Forms: nplurals=1; plural=0;\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+
20
+ msgctxt "The label of the remove format toolbar button."
21
+ msgid "Remove Format"
22
+ msgstr "移除格式"
@@ -0,0 +1,22 @@
1
+ # Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ #
3
+ # !!! IMPORTANT !!!
4
+ #
5
+ # Before you edit this file, please keep in mind that contributing to the project
6
+ # translations is possible ONLY via the Transifex online service.
7
+ #
8
+ # To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
9
+ #
10
+ # To learn more, check out the official contributor's guide:
11
+ # https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
12
+ #
13
+ msgid ""
14
+ msgstr ""
15
+ "Language-Team: Chinese (Taiwan) (https://app.transifex.com/ckeditor/teams/11143/zh_TW/)\n"
16
+ "Language: zh_TW\n"
17
+ "Plural-Forms: nplurals=1; plural=0;\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+
20
+ msgctxt "The label of the remove format toolbar button."
21
+ msgid "Remove Format"
22
+ msgstr "移除格式"
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@ckeditor/ckeditor5-remove-format",
3
+ "version": "0.0.0-internal-20241017.0",
4
+ "description": "Remove format feature for CKEditor 5.",
5
+ "keywords": [
6
+ "ckeditor",
7
+ "ckeditor5",
8
+ "ckeditor 5",
9
+ "ckeditor5-feature",
10
+ "ckeditor5-plugin",
11
+ "ckeditor5-dll"
12
+ ],
13
+ "type": "module",
14
+ "main": "src/index.js",
15
+ "dependencies": {
16
+ "@ckeditor/ckeditor5-core": "0.0.0-internal-20241017.0",
17
+ "@ckeditor/ckeditor5-ui": "0.0.0-internal-20241017.0",
18
+ "@ckeditor/ckeditor5-utils": "0.0.0-internal-20241017.0",
19
+ "ckeditor5": "0.0.0-internal-20241017.0"
20
+ },
21
+ "author": "CKSource (http://cksource.com/)",
22
+ "license": "GPL-2.0-or-later",
23
+ "homepage": "https://ckeditor.com/ckeditor-5",
24
+ "bugs": "https://github.com/ckeditor/ckeditor5/issues",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/ckeditor/ckeditor5.git",
28
+ "directory": "packages/ckeditor5-remove-format"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "lang",
33
+ "src/**/*.js",
34
+ "src/**/*.d.ts",
35
+ "theme",
36
+ "build",
37
+ "ckeditor5-metadata.json",
38
+ "CHANGELOG.md"
39
+ ],
40
+ "types": "src/index.d.ts"
41
+ }
@@ -0,0 +1,15 @@
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
+ import type { RemoveFormat, RemoveFormatEditing, RemoveFormatUI, RemoveFormatCommand } from './index.js';
6
+ declare module '@ckeditor/ckeditor5-core' {
7
+ interface PluginsMap {
8
+ [RemoveFormat.pluginName]: RemoveFormat;
9
+ [RemoveFormatUI.pluginName]: RemoveFormatUI;
10
+ [RemoveFormatEditing.pluginName]: RemoveFormatEditing;
11
+ }
12
+ interface CommandsMap {
13
+ removeFormat: RemoveFormatCommand;
14
+ }
15
+ }
@@ -0,0 +1,5 @@
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
+ export {};
package/src/index.d.ts ADDED
@@ -0,0 +1,12 @@
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
+ * @module remove-format
7
+ */
8
+ export { default as RemoveFormat } from './removeformat.js';
9
+ export { default as RemoveFormatEditing } from './removeformatediting.js';
10
+ export { default as RemoveFormatUI } from './removeformatui.js';
11
+ export type { default as RemoveFormatCommand } from './removeformatcommand.js';
12
+ import './augmentation.js';
package/src/index.js ADDED
@@ -0,0 +1,11 @@
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
+ * @module remove-format
7
+ */
8
+ export { default as RemoveFormat } from './removeformat.js';
9
+ export { default as RemoveFormatEditing } from './removeformatediting.js';
10
+ export { default as RemoveFormatUI } from './removeformatui.js';
11
+ import './augmentation.js';
@@ -0,0 +1,32 @@
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
+ * @module remove-format/removeformat
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import RemoveFormatUI from './removeformatui.js';
10
+ import RemoveFormatEditing from './removeformatediting.js';
11
+ /**
12
+ * The remove format plugin.
13
+ *
14
+ * This is a "glue" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}
15
+ * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.
16
+ *
17
+ * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.
18
+ */
19
+ export default class RemoveFormat extends Plugin {
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get requires(): readonly [typeof RemoveFormatEditing, typeof RemoveFormatUI];
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get pluginName(): "RemoveFormat";
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static get isOfficialPlugin(): true;
32
+ }
@@ -0,0 +1,38 @@
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
+ * @module remove-format/removeformat
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import RemoveFormatUI from './removeformatui.js';
10
+ import RemoveFormatEditing from './removeformatediting.js';
11
+ /**
12
+ * The remove format plugin.
13
+ *
14
+ * This is a "glue" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}
15
+ * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.
16
+ *
17
+ * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.
18
+ */
19
+ export default class RemoveFormat extends Plugin {
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get requires() {
24
+ return [RemoveFormatEditing, RemoveFormatUI];
25
+ }
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ static get pluginName() {
30
+ return 'RemoveFormat';
31
+ }
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ static get isOfficialPlugin() {
36
+ return true;
37
+ }
38
+ }
@@ -0,0 +1,42 @@
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
+ import { Command } from 'ckeditor5/src/core.js';
6
+ /**
7
+ * The remove format command.
8
+ *
9
+ * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}
10
+ * to clear the formatting in the selection.
11
+ *
12
+ * ```ts
13
+ * editor.execute( 'removeFormat' );
14
+ * ```
15
+ */
16
+ export default class RemoveFormatCommand extends Command {
17
+ value: boolean;
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ refresh(): void;
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ execute(): void;
26
+ /**
27
+ * Returns an iterable of items in a selection (including the selection itself) that have formatting model
28
+ * attributes to be removed by the feature.
29
+ *
30
+ * @param schema The schema describing the item.
31
+ */
32
+ private _getFormattingItems;
33
+ /**
34
+ * Returns an iterable of formatting attributes of a given model item.
35
+ *
36
+ * **Note:** Formatting items have the `isFormatting` property set to `true`.
37
+ *
38
+ * @param schema The schema describing the item.
39
+ * @returns The names of formatting attributes found in a given item.
40
+ */
41
+ private _getFormattingAttributes;
42
+ }
@@ -0,0 +1,94 @@
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
+ import { Command } from 'ckeditor5/src/core.js';
6
+ import { first } from 'ckeditor5/src/utils.js';
7
+ /**
8
+ * The remove format command.
9
+ *
10
+ * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}
11
+ * to clear the formatting in the selection.
12
+ *
13
+ * ```ts
14
+ * editor.execute( 'removeFormat' );
15
+ * ```
16
+ */
17
+ export default class RemoveFormatCommand extends Command {
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ refresh() {
22
+ const model = this.editor.model;
23
+ this.isEnabled = !!first(this._getFormattingItems(model.document.selection, model.schema));
24
+ }
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ execute() {
29
+ const model = this.editor.model;
30
+ const schema = model.schema;
31
+ model.change(writer => {
32
+ for (const item of this._getFormattingItems(model.document.selection, schema)) {
33
+ if (item.is('selection')) {
34
+ for (const attributeName of this._getFormattingAttributes(item, schema)) {
35
+ writer.removeSelectionAttribute(attributeName);
36
+ }
37
+ }
38
+ else {
39
+ // Workaround for items with multiple removable attributes. See
40
+ // https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609
41
+ const itemRange = writer.createRangeOn(item);
42
+ for (const attributeName of this._getFormattingAttributes(item, schema)) {
43
+ writer.removeAttribute(attributeName, itemRange);
44
+ }
45
+ }
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Returns an iterable of items in a selection (including the selection itself) that have formatting model
51
+ * attributes to be removed by the feature.
52
+ *
53
+ * @param schema The schema describing the item.
54
+ */
55
+ *_getFormattingItems(selection, schema) {
56
+ const itemHasRemovableFormatting = (item) => {
57
+ return !!first(this._getFormattingAttributes(item, schema));
58
+ };
59
+ // Check formatting on selected items that are not blocks.
60
+ for (const curRange of selection.getRanges()) {
61
+ for (const item of curRange.getItems()) {
62
+ if (!schema.isBlock(item) && itemHasRemovableFormatting(item)) {
63
+ yield item;
64
+ }
65
+ }
66
+ }
67
+ // Check formatting from selected blocks.
68
+ for (const block of selection.getSelectedBlocks()) {
69
+ if (itemHasRemovableFormatting(block)) {
70
+ yield block;
71
+ }
72
+ }
73
+ // Finally the selection might be formatted as well, so make sure to check it.
74
+ if (itemHasRemovableFormatting(selection)) {
75
+ yield selection;
76
+ }
77
+ }
78
+ /**
79
+ * Returns an iterable of formatting attributes of a given model item.
80
+ *
81
+ * **Note:** Formatting items have the `isFormatting` property set to `true`.
82
+ *
83
+ * @param schema The schema describing the item.
84
+ * @returns The names of formatting attributes found in a given item.
85
+ */
86
+ *_getFormattingAttributes(item, schema) {
87
+ for (const [attributeName] of item.getAttributes()) {
88
+ const attributeProperties = schema.getAttributeProperties(attributeName);
89
+ if (attributeProperties && attributeProperties.isFormatting) {
90
+ yield attributeName;
91
+ }
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,27 @@
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
+ * @module remove-format/removeformatediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ /**
10
+ * The remove format editing plugin.
11
+ *
12
+ * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.
13
+ */
14
+ export default class RemoveFormatEditing extends Plugin {
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get pluginName(): "RemoveFormatEditing";
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get isOfficialPlugin(): true;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ init(): void;
27
+ }
@@ -0,0 +1,35 @@
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
+ * @module remove-format/removeformatediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import RemoveFormatCommand from './removeformatcommand.js';
10
+ /**
11
+ * The remove format editing plugin.
12
+ *
13
+ * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.
14
+ */
15
+ export default class RemoveFormatEditing extends Plugin {
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ static get pluginName() {
20
+ return 'RemoveFormatEditing';
21
+ }
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ static get isOfficialPlugin() {
26
+ return true;
27
+ }
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ init() {
32
+ const editor = this.editor;
33
+ editor.commands.add('removeFormat', new RemoveFormatCommand(editor));
34
+ }
35
+ }
@@ -0,0 +1,30 @@
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
+ * @module remove-format/removeformatui
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ /**
10
+ * The remove format UI plugin. It registers the `'removeFormat'` button which can be
11
+ * used in the toolbar.
12
+ */
13
+ export default class RemoveFormatUI extends Plugin {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ static get pluginName(): "RemoveFormatUI";
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get isOfficialPlugin(): true;
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ init(): void;
26
+ /**
27
+ * Creates a button for remove format command to use either in toolbar or in menu bar.
28
+ */
29
+ private _createButton;
30
+ }
@@ -0,0 +1,64 @@
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
+ * @module remove-format/removeformatui
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';
10
+ import removeFormatIcon from '../theme/icons/remove-format.svg';
11
+ const REMOVE_FORMAT = 'removeFormat';
12
+ /**
13
+ * The remove format UI plugin. It registers the `'removeFormat'` button which can be
14
+ * used in the toolbar.
15
+ */
16
+ export default class RemoveFormatUI extends Plugin {
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get pluginName() {
21
+ return 'RemoveFormatUI';
22
+ }
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get isOfficialPlugin() {
27
+ return true;
28
+ }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ init() {
33
+ const editor = this.editor;
34
+ editor.ui.componentFactory.add(REMOVE_FORMAT, () => {
35
+ const view = this._createButton(ButtonView);
36
+ view.set({
37
+ tooltip: true
38
+ });
39
+ return view;
40
+ });
41
+ editor.ui.componentFactory.add(`menuBar:${REMOVE_FORMAT}`, () => this._createButton(MenuBarMenuListItemButtonView));
42
+ }
43
+ /**
44
+ * Creates a button for remove format command to use either in toolbar or in menu bar.
45
+ */
46
+ _createButton(ButtonClass) {
47
+ const editor = this.editor;
48
+ const locale = editor.locale;
49
+ const command = editor.commands.get(REMOVE_FORMAT);
50
+ const view = new ButtonClass(editor.locale);
51
+ const t = locale.t;
52
+ view.set({
53
+ label: t('Remove Format'),
54
+ icon: removeFormatIcon
55
+ });
56
+ view.bind('isEnabled').to(command, 'isEnabled');
57
+ // Execute the command.
58
+ this.listenTo(view, 'execute', () => {
59
+ editor.execute(REMOVE_FORMAT);
60
+ editor.editing.view.focus();
61
+ });
62
+ return view;
63
+ }
64
+ }
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M8.69 14.915c.053.052.173.083.36.093a.366.366 0 0 1 .345.485l-.003.01a.738.738 0 0 1-.697.497h-2.67a.374.374 0 0 1-.353-.496l.013-.038a.681.681 0 0 1 .644-.458c.197-.012.325-.043.386-.093a.28.28 0 0 0 .072-.11L9.592 4.5H6.269c-.359-.017-.609.013-.75.09-.142.078-.289.265-.442.563-.192.29-.516.464-.864.464H4.17a.43.43 0 0 1-.407-.569L4.46 3h13.08l-.62 2.043a.81.81 0 0 1-.775.574h-.114a.486.486 0 0 1-.486-.486c.001-.284-.054-.464-.167-.54-.112-.076-.367-.106-.766-.091h-3.28l-2.68 10.257c-.006.074.007.127.038.158zM3 17h8a.5.5 0 1 1 0 1H3a.5.5 0 1 1 0-1zm11.299 1.17a.75.75 0 1 1-1.06-1.06l1.414-1.415-1.415-1.414a.75.75 0 0 1 1.06-1.06l1.415 1.414 1.414-1.415a.75.75 0 1 1 1.06 1.06l-1.413 1.415 1.414 1.415a.75.75 0 0 1-1.06 1.06l-1.415-1.414-1.414 1.414z"/></svg>