@ckeditor/ckeditor5-remove-format 0.0.0-internal-20241017.0 → 0.0.0-internal-20251210.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 (339) hide show
  1. package/LICENSE.md +11 -6
  2. package/README.md +19 -8
  3. package/build/remove-format.js +2 -2
  4. package/build/translations/ast.js +1 -0
  5. package/build/translations/be.js +1 -0
  6. package/build/translations/bs.js +1 -0
  7. package/build/translations/eo.js +1 -0
  8. package/build/translations/es-co.js +1 -0
  9. package/build/translations/eu.js +1 -0
  10. package/build/translations/gu.js +1 -0
  11. package/build/translations/hy.js +1 -0
  12. package/build/translations/jv.js +1 -0
  13. package/build/translations/kk.js +1 -0
  14. package/build/translations/km.js +1 -0
  15. package/build/translations/kn.js +1 -0
  16. package/build/translations/nb.js +1 -0
  17. package/build/translations/oc.js +1 -0
  18. package/build/translations/si.js +1 -0
  19. package/build/translations/sl.js +1 -0
  20. package/build/translations/ti.js +1 -0
  21. package/build/translations/tt.js +1 -0
  22. package/ckeditor5-metadata.json +1 -1
  23. package/dist/index-content.css +2 -2
  24. package/dist/index-editor.css +2 -2
  25. package/dist/index.css +2 -2
  26. package/dist/index.js +66 -21
  27. package/dist/index.js.map +1 -1
  28. package/dist/translations/af.d.ts +2 -2
  29. package/dist/translations/af.js +2 -2
  30. package/dist/translations/af.umd.js +2 -2
  31. package/dist/translations/ar.d.ts +2 -2
  32. package/dist/translations/ar.js +3 -3
  33. package/dist/translations/ar.umd.js +3 -3
  34. package/dist/translations/ast.d.ts +8 -0
  35. package/dist/translations/ast.js +5 -0
  36. package/dist/translations/ast.umd.js +11 -0
  37. package/dist/translations/az.d.ts +2 -2
  38. package/dist/translations/az.js +2 -2
  39. package/dist/translations/az.umd.js +2 -2
  40. package/dist/translations/be.d.ts +8 -0
  41. package/dist/translations/be.js +5 -0
  42. package/dist/translations/be.umd.js +11 -0
  43. package/dist/translations/bg.d.ts +2 -2
  44. package/dist/translations/bg.js +2 -2
  45. package/dist/translations/bg.umd.js +2 -2
  46. package/dist/translations/bn.d.ts +2 -2
  47. package/dist/translations/bn.js +2 -2
  48. package/dist/translations/bn.umd.js +2 -2
  49. package/dist/translations/bs.d.ts +8 -0
  50. package/dist/translations/bs.js +5 -0
  51. package/dist/translations/bs.umd.js +11 -0
  52. package/dist/translations/ca.d.ts +2 -2
  53. package/dist/translations/ca.js +2 -2
  54. package/dist/translations/ca.umd.js +2 -2
  55. package/dist/translations/cs.d.ts +2 -2
  56. package/dist/translations/cs.js +3 -3
  57. package/dist/translations/cs.umd.js +3 -3
  58. package/dist/translations/da.d.ts +2 -2
  59. package/dist/translations/da.js +2 -2
  60. package/dist/translations/da.umd.js +2 -2
  61. package/dist/translations/de-ch.d.ts +2 -2
  62. package/dist/translations/de-ch.js +2 -2
  63. package/dist/translations/de-ch.umd.js +2 -2
  64. package/dist/translations/de.d.ts +2 -2
  65. package/dist/translations/de.js +2 -2
  66. package/dist/translations/de.umd.js +2 -2
  67. package/dist/translations/el.d.ts +2 -2
  68. package/dist/translations/el.js +2 -2
  69. package/dist/translations/el.umd.js +2 -2
  70. package/dist/translations/en-au.d.ts +2 -2
  71. package/dist/translations/en-au.js +2 -2
  72. package/dist/translations/en-au.umd.js +2 -2
  73. package/dist/translations/en-gb.d.ts +2 -2
  74. package/dist/translations/en-gb.js +2 -2
  75. package/dist/translations/en-gb.umd.js +2 -2
  76. package/dist/translations/en.d.ts +2 -2
  77. package/dist/translations/en.js +3 -3
  78. package/dist/translations/en.umd.js +3 -3
  79. package/dist/translations/eo.d.ts +8 -0
  80. package/dist/translations/eo.js +5 -0
  81. package/dist/translations/eo.umd.js +11 -0
  82. package/dist/translations/es-co.d.ts +8 -0
  83. package/dist/translations/es-co.js +5 -0
  84. package/dist/translations/es-co.umd.js +11 -0
  85. package/dist/translations/es.d.ts +2 -2
  86. package/dist/translations/es.js +3 -3
  87. package/dist/translations/es.umd.js +3 -3
  88. package/dist/translations/et.d.ts +2 -2
  89. package/dist/translations/et.js +2 -2
  90. package/dist/translations/et.umd.js +2 -2
  91. package/dist/translations/eu.d.ts +8 -0
  92. package/dist/translations/eu.js +5 -0
  93. package/dist/translations/eu.umd.js +11 -0
  94. package/dist/translations/fa.d.ts +2 -2
  95. package/dist/translations/fa.js +3 -3
  96. package/dist/translations/fa.umd.js +3 -3
  97. package/dist/translations/fi.d.ts +2 -2
  98. package/dist/translations/fi.js +2 -2
  99. package/dist/translations/fi.umd.js +2 -2
  100. package/dist/translations/fr.d.ts +2 -2
  101. package/dist/translations/fr.js +3 -3
  102. package/dist/translations/fr.umd.js +3 -3
  103. package/dist/translations/gl.d.ts +2 -2
  104. package/dist/translations/gl.js +2 -2
  105. package/dist/translations/gl.umd.js +2 -2
  106. package/dist/translations/gu.d.ts +8 -0
  107. package/dist/translations/gu.js +5 -0
  108. package/dist/translations/gu.umd.js +11 -0
  109. package/dist/translations/he.d.ts +2 -2
  110. package/dist/translations/he.js +3 -3
  111. package/dist/translations/he.umd.js +3 -3
  112. package/dist/translations/hi.d.ts +2 -2
  113. package/dist/translations/hi.js +2 -2
  114. package/dist/translations/hi.umd.js +2 -2
  115. package/dist/translations/hr.d.ts +2 -2
  116. package/dist/translations/hr.js +3 -3
  117. package/dist/translations/hr.umd.js +3 -3
  118. package/dist/translations/hu.d.ts +2 -2
  119. package/dist/translations/hu.js +2 -2
  120. package/dist/translations/hu.umd.js +2 -2
  121. package/dist/translations/hy.d.ts +8 -0
  122. package/dist/translations/hy.js +5 -0
  123. package/dist/translations/hy.umd.js +11 -0
  124. package/dist/translations/id.d.ts +2 -2
  125. package/dist/translations/id.js +2 -2
  126. package/dist/translations/id.umd.js +2 -2
  127. package/dist/translations/it.d.ts +2 -2
  128. package/dist/translations/it.js +3 -3
  129. package/dist/translations/it.umd.js +3 -3
  130. package/dist/translations/ja.d.ts +2 -2
  131. package/dist/translations/ja.js +2 -2
  132. package/dist/translations/ja.umd.js +2 -2
  133. package/dist/translations/jv.d.ts +8 -0
  134. package/dist/translations/jv.js +5 -0
  135. package/dist/translations/jv.umd.js +11 -0
  136. package/dist/translations/kk.d.ts +8 -0
  137. package/dist/translations/kk.js +5 -0
  138. package/dist/translations/kk.umd.js +11 -0
  139. package/dist/translations/km.d.ts +8 -0
  140. package/dist/translations/km.js +5 -0
  141. package/dist/translations/km.umd.js +11 -0
  142. package/dist/translations/kn.d.ts +8 -0
  143. package/dist/translations/kn.js +5 -0
  144. package/dist/translations/kn.umd.js +11 -0
  145. package/dist/translations/ko.d.ts +2 -2
  146. package/dist/translations/ko.js +2 -2
  147. package/dist/translations/ko.umd.js +2 -2
  148. package/dist/translations/ku.d.ts +2 -2
  149. package/dist/translations/ku.js +2 -2
  150. package/dist/translations/ku.umd.js +2 -2
  151. package/dist/translations/lt.d.ts +2 -2
  152. package/dist/translations/lt.js +3 -3
  153. package/dist/translations/lt.umd.js +3 -3
  154. package/dist/translations/lv.d.ts +2 -2
  155. package/dist/translations/lv.js +3 -3
  156. package/dist/translations/lv.umd.js +3 -3
  157. package/dist/translations/ms.d.ts +2 -2
  158. package/dist/translations/ms.js +2 -2
  159. package/dist/translations/ms.umd.js +2 -2
  160. package/dist/translations/nb.d.ts +8 -0
  161. package/dist/translations/nb.js +5 -0
  162. package/dist/translations/nb.umd.js +11 -0
  163. package/dist/translations/ne.d.ts +2 -2
  164. package/dist/translations/ne.js +2 -2
  165. package/dist/translations/ne.umd.js +2 -2
  166. package/dist/translations/nl.d.ts +2 -2
  167. package/dist/translations/nl.js +2 -2
  168. package/dist/translations/nl.umd.js +2 -2
  169. package/dist/translations/no.d.ts +2 -2
  170. package/dist/translations/no.js +2 -2
  171. package/dist/translations/no.umd.js +2 -2
  172. package/dist/translations/oc.d.ts +8 -0
  173. package/dist/translations/oc.js +5 -0
  174. package/dist/translations/oc.umd.js +11 -0
  175. package/dist/translations/pl.d.ts +2 -2
  176. package/dist/translations/pl.js +3 -3
  177. package/dist/translations/pl.umd.js +3 -3
  178. package/dist/translations/pt-br.d.ts +2 -2
  179. package/dist/translations/pt-br.js +3 -3
  180. package/dist/translations/pt-br.umd.js +3 -3
  181. package/dist/translations/pt.d.ts +2 -2
  182. package/dist/translations/pt.js +3 -3
  183. package/dist/translations/pt.umd.js +3 -3
  184. package/dist/translations/ro.d.ts +2 -2
  185. package/dist/translations/ro.js +3 -3
  186. package/dist/translations/ro.umd.js +3 -3
  187. package/dist/translations/ru.d.ts +2 -2
  188. package/dist/translations/ru.js +3 -3
  189. package/dist/translations/ru.umd.js +3 -3
  190. package/dist/translations/si.d.ts +8 -0
  191. package/dist/translations/si.js +5 -0
  192. package/dist/translations/si.umd.js +11 -0
  193. package/dist/translations/sk.d.ts +2 -2
  194. package/dist/translations/sk.js +3 -3
  195. package/dist/translations/sk.umd.js +3 -3
  196. package/dist/translations/sl.d.ts +8 -0
  197. package/dist/translations/sl.js +5 -0
  198. package/dist/translations/sl.umd.js +11 -0
  199. package/dist/translations/sq.d.ts +2 -2
  200. package/dist/translations/sq.js +2 -2
  201. package/dist/translations/sq.umd.js +2 -2
  202. package/dist/translations/sr-latn.d.ts +2 -2
  203. package/dist/translations/sr-latn.js +3 -3
  204. package/dist/translations/sr-latn.umd.js +3 -3
  205. package/dist/translations/sr.d.ts +2 -2
  206. package/dist/translations/sr.js +3 -3
  207. package/dist/translations/sr.umd.js +3 -3
  208. package/dist/translations/sv.d.ts +2 -2
  209. package/dist/translations/sv.js +2 -2
  210. package/dist/translations/sv.umd.js +2 -2
  211. package/dist/translations/th.d.ts +2 -2
  212. package/dist/translations/th.js +2 -2
  213. package/dist/translations/th.umd.js +2 -2
  214. package/dist/translations/ti.d.ts +8 -0
  215. package/dist/translations/ti.js +5 -0
  216. package/dist/translations/ti.umd.js +11 -0
  217. package/dist/translations/tk.d.ts +2 -2
  218. package/dist/translations/tk.js +2 -2
  219. package/dist/translations/tk.umd.js +2 -2
  220. package/dist/translations/tr.d.ts +2 -2
  221. package/dist/translations/tr.js +2 -2
  222. package/dist/translations/tr.umd.js +2 -2
  223. package/dist/translations/tt.d.ts +8 -0
  224. package/dist/translations/tt.js +5 -0
  225. package/dist/translations/tt.umd.js +11 -0
  226. package/dist/translations/ug.d.ts +2 -2
  227. package/dist/translations/ug.js +3 -3
  228. package/dist/translations/ug.umd.js +3 -3
  229. package/dist/translations/uk.d.ts +2 -2
  230. package/dist/translations/uk.js +3 -3
  231. package/dist/translations/uk.umd.js +3 -3
  232. package/dist/translations/ur.d.ts +2 -2
  233. package/dist/translations/ur.js +2 -2
  234. package/dist/translations/ur.umd.js +2 -2
  235. package/dist/translations/uz.d.ts +2 -2
  236. package/dist/translations/uz.js +3 -3
  237. package/dist/translations/uz.umd.js +3 -3
  238. package/dist/translations/vi.d.ts +2 -2
  239. package/dist/translations/vi.js +2 -2
  240. package/dist/translations/vi.umd.js +2 -2
  241. package/dist/translations/zh-cn.d.ts +2 -2
  242. package/dist/translations/zh-cn.js +2 -2
  243. package/dist/translations/zh-cn.umd.js +2 -2
  244. package/dist/translations/zh.d.ts +2 -2
  245. package/dist/translations/zh.js +2 -2
  246. package/dist/translations/zh.umd.js +2 -2
  247. package/lang/translations/af.po +4 -10
  248. package/lang/translations/ar.po +5 -11
  249. package/lang/translations/ast.po +16 -0
  250. package/lang/translations/az.po +4 -10
  251. package/lang/translations/be.po +16 -0
  252. package/lang/translations/bg.po +4 -10
  253. package/lang/translations/bn.po +4 -10
  254. package/lang/translations/bs.po +16 -0
  255. package/lang/translations/ca.po +4 -10
  256. package/lang/translations/cs.po +5 -11
  257. package/lang/translations/da.po +4 -10
  258. package/lang/translations/de-ch.po +4 -10
  259. package/lang/translations/de.po +4 -10
  260. package/lang/translations/el.po +4 -10
  261. package/lang/translations/en-au.po +4 -10
  262. package/lang/translations/en-gb.po +4 -10
  263. package/lang/translations/en.po +6 -12
  264. package/lang/translations/eo.po +16 -0
  265. package/lang/translations/es-co.po +16 -0
  266. package/lang/translations/es.po +5 -11
  267. package/lang/translations/et.po +4 -10
  268. package/lang/translations/eu.po +16 -0
  269. package/lang/translations/fa.po +5 -11
  270. package/lang/translations/fi.po +4 -10
  271. package/lang/translations/fr.po +5 -11
  272. package/lang/translations/gl.po +4 -10
  273. package/lang/translations/gu.po +16 -0
  274. package/lang/translations/he.po +5 -11
  275. package/lang/translations/hi.po +4 -10
  276. package/lang/translations/hr.po +5 -11
  277. package/lang/translations/hu.po +4 -10
  278. package/lang/translations/hy.po +16 -0
  279. package/lang/translations/id.po +4 -10
  280. package/lang/translations/it.po +5 -11
  281. package/lang/translations/ja.po +4 -10
  282. package/lang/translations/jv.po +16 -0
  283. package/lang/translations/kk.po +16 -0
  284. package/lang/translations/km.po +16 -0
  285. package/lang/translations/kn.po +16 -0
  286. package/lang/translations/ko.po +4 -10
  287. package/lang/translations/ku.po +4 -10
  288. package/lang/translations/lt.po +5 -11
  289. package/lang/translations/lv.po +5 -11
  290. package/lang/translations/ms.po +4 -10
  291. package/lang/translations/nb.po +16 -0
  292. package/lang/translations/ne.po +4 -10
  293. package/lang/translations/nl.po +4 -10
  294. package/lang/translations/no.po +4 -10
  295. package/lang/translations/oc.po +16 -0
  296. package/lang/translations/pl.po +5 -11
  297. package/lang/translations/pt-br.po +5 -11
  298. package/lang/translations/pt.po +5 -11
  299. package/lang/translations/ro.po +5 -11
  300. package/lang/translations/ru.po +5 -11
  301. package/lang/translations/si.po +16 -0
  302. package/lang/translations/sk.po +5 -11
  303. package/lang/translations/sl.po +16 -0
  304. package/lang/translations/sq.po +4 -10
  305. package/lang/translations/sr-latn.po +5 -11
  306. package/lang/translations/sr.po +5 -11
  307. package/lang/translations/sv.po +4 -10
  308. package/lang/translations/th.po +4 -10
  309. package/lang/translations/ti.po +16 -0
  310. package/lang/translations/tk.po +4 -10
  311. package/lang/translations/tr.po +4 -10
  312. package/lang/translations/tt.po +16 -0
  313. package/lang/translations/ug.po +5 -11
  314. package/lang/translations/uk.po +5 -11
  315. package/lang/translations/ur.po +4 -10
  316. package/lang/translations/uz.po +5 -11
  317. package/lang/translations/vi.po +4 -10
  318. package/lang/translations/zh-cn.po +4 -10
  319. package/lang/translations/zh.po +4 -10
  320. package/package.json +29 -8
  321. package/src/augmentation.d.ts +2 -2
  322. package/src/augmentation.js +2 -2
  323. package/src/index.d.ts +6 -6
  324. package/src/index.js +6 -5
  325. package/src/removeformat.d.ts +5 -5
  326. package/src/removeformat.js +5 -5
  327. package/src/removeformatcommand.d.ts +33 -6
  328. package/src/removeformatcommand.js +56 -18
  329. package/src/removeformatediting.d.ts +12 -3
  330. package/src/removeformatediting.js +17 -4
  331. package/src/removeformatui.d.ts +3 -3
  332. package/src/removeformatui.js +5 -5
  333. package/dist/augmentation.d.ts +0 -19
  334. package/dist/index.d.ts +0 -16
  335. package/dist/removeformat.d.ts +0 -36
  336. package/dist/removeformatcommand.d.ts +0 -46
  337. package/dist/removeformatediting.d.ts +0 -31
  338. package/dist/removeformatui.d.ts +0 -34
  339. package/theme/icons/remove-format.svg +0 -1
package/LICENSE.md CHANGED
@@ -1,15 +1,20 @@
1
1
  Software License Agreement
2
2
  ==========================
3
3
 
4
- **CKEditor&nbsp;5 remove format feature** https://github.com/ckeditor/ckeditor5-remove-format <br>
5
- Copyright (c) 2003–2024, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
4
+ **CKEditor&nbsp;5 Remove format feature** (https://github.com/ckeditor/ckeditor5)<br>
5
+ Copyright (c) 2003–2025, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
6
 
7
- Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
7
+ Licensed under a dual-license model, this software is available under:
8
8
 
9
- Sources of Intellectual Property Included in CKEditor
10
- -----------------------------------------------------
9
+ * the [GNU General Public License Version 2 or later](https://www.gnu.org/licenses/gpl.html),
10
+ * or commercial license terms from CKSource Holding sp. z o.o.
11
11
 
12
- Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
12
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
13
+
14
+ Sources of Intellectual Property Included in CKEditor&nbsp;5
15
+ ------------------------------------------------------------
16
+
17
+ Where not otherwise indicated, all CKEditor&nbsp;5 content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor&nbsp;5 will incorporate work done by developers outside of CKSource with their express permission.
13
18
 
14
19
  Trademarks
15
20
  ----------
package/README.md CHANGED
@@ -2,11 +2,23 @@ CKEditor&nbsp;5 remove format feature
2
2
  ===========================
3
3
 
4
4
  [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-remove-format.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-remove-format)
5
- [![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
6
- [![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
5
+ [![codecov](https://codecov.io/gh/ckeditor/ckeditor5/branch/master/graph/badge.svg)](https://codecov.io/gh/ckeditor/ckeditor5)
6
+ [![CircleCI](https://circleci.com/gh/ckeditor/ckeditor5.svg?style=shield)](https://app.circleci.com/pipelines/github/ckeditor/ckeditor5?branch=master)
7
7
 
8
8
  This package implements remove format support for CKEditor&nbsp;5.
9
9
 
10
+ ## Installation
11
+
12
+ This plugin is part of the `ckeditor5` package. Install the whole package to use it.
13
+
14
+ ```bash
15
+ npm install ckeditor5
16
+ ```
17
+
18
+ ## Create free account
19
+
20
+ If you want to check full CKEditor&nbsp;5 capabilities, sign up for a [free non-commitment 14-day trial](https://portal.ckeditor.com/checkout?plan=free).
21
+
10
22
  ## Demo
11
23
 
12
24
  Check out the demo in the [remove formatting feature guide](https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html#demo).
@@ -15,12 +27,11 @@ Check out the demo in the [remove formatting feature guide](https://ckeditor.com
15
27
 
16
28
  See the [`@ckeditor/ckeditor5-remove-format` package](https://ckeditor.com/docs/ckeditor5/latest/api/remove-format.html) page in [CKEditor&nbsp;5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
17
29
 
18
- ## Installation
30
+ ## License
19
31
 
20
- ```bash
21
- npm install ckeditor5
22
- ```
32
+ Licensed under a dual-license model, this software is available under:
23
33
 
24
- ## License
34
+ * the [GNU General Public License Version 2 or later](https://www.gnu.org/licenses/gpl.html),
35
+ * or commercial license terms from CKSource Holding sp. z o.o.
25
36
 
26
- Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
37
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
@@ -1,5 +1,5 @@
1
1
  !function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"Remove Format":"Remove Format"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
2
2
  /*!
3
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var t={782:(t,e,o)=>{t.exports=o(237)("./src/core.js")},311:(t,e,o)=>{t.exports=o(237)("./src/ui.js")},584:(t,e,o)=>{t.exports=o(237)("./src/utils.js")},237:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function o(i){var r=e[i];if(void 0!==r)return r.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,o),s.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{RemoveFormat:()=>l,RemoveFormatEditing:()=>c,RemoveFormatUI:()=>s});var t=o(782),e=o(311);const r="removeFormat";class s extends t.Plugin{static get pluginName(){return"RemoveFormatUI"}static get isOfficialPlugin(){return!0}init(){const t=this.editor;t.ui.componentFactory.add(r,(()=>{const t=this._createButton(e.ButtonView);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add(`menuBar:${r}`,(()=>this._createButton(e.MenuBarMenuListItemButtonView)))}_createButton(t){const e=this.editor,o=e.locale,i=e.commands.get(r),s=new t(e.locale),n=o.t;return s.set({label:n("Remove Format"),icon:'<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>'}),s.bind("isEnabled").to(i,"isEnabled"),this.listenTo(s,"execute",(()=>{e.execute(r),e.editing.view.focus()})),s}}var n=o(584);class a extends t.Command{refresh(){const t=this.editor.model;this.isEnabled=!!(0,n.first)(this._getFormattingItems(t.document.selection,t.schema))}execute(){const t=this.editor.model,e=t.schema;t.change((o=>{for(const i of this._getFormattingItems(t.document.selection,e))if(i.is("selection"))for(const t of this._getFormattingAttributes(i,e))o.removeSelectionAttribute(t);else{const t=o.createRangeOn(i);for(const r of this._getFormattingAttributes(i,e))o.removeAttribute(r,t)}}))}*_getFormattingItems(t,e){const o=t=>!!(0,n.first)(this._getFormattingAttributes(t,e));for(const i of t.getRanges())for(const t of i.getItems())!e.isBlock(t)&&o(t)&&(yield t);for(const e of t.getSelectedBlocks())o(e)&&(yield e);o(t)&&(yield t)}*_getFormattingAttributes(t,e){for(const[o]of t.getAttributes()){const t=e.getAttributeProperties(o);t&&t.isFormatting&&(yield o)}}}class c extends t.Plugin{static get pluginName(){return"RemoveFormatEditing"}static get isOfficialPlugin(){return!0}init(){const t=this.editor;t.commands.add("removeFormat",new a(t))}}class l extends t.Plugin{static get requires(){return[c,s]}static get pluginName(){return"RemoveFormat"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).removeFormat=i})();
5
+ */(()=>{var t={237:t=>{"use strict";t.exports=CKEditor5.dll},311:(t,e,o)=>{t.exports=o(237)("./src/ui.js")},355:(t,e,o)=>{t.exports=o(237)("./src/icons.js")},584:(t,e,o)=>{t.exports=o(237)("./src/utils.js")},782:(t,e,o)=>{t.exports=o(237)("./src/core.js")}},e={};function o(i){var r=e[i];if(void 0!==r)return r.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,o),s.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{RemoveFormat:()=>u,RemoveFormatCommand:()=>c,RemoveFormatEditing:()=>m,RemoveFormatUI:()=>n});var t=o(782),e=o(355),r=o(311);const s="removeFormat";class n extends t.Plugin{static get pluginName(){return"RemoveFormatUI"}static get isOfficialPlugin(){return!0}init(){const t=this.editor;t.ui.componentFactory.add(s,()=>{const t=this._createButton(r.ButtonView);return t.set({tooltip:!0}),t}),t.ui.componentFactory.add(`menuBar:${s}`,()=>this._createButton(r.MenuBarMenuListItemButtonView))}_createButton(t){const o=this.editor,i=o.locale,r=o.commands.get(s),n=new t(o.locale),a=i.t;return n.set({label:a("Remove Format"),icon:e.IconRemoveFormat}),n.bind("isEnabled").to(r,"isEnabled"),this.listenTo(n,"execute",()=>{o.execute(s),o.editing.view.focus()}),n}}var a=o(584);class c extends t.Command{_customAttributesHandlers=[];refresh(){const t=this.editor.model;this.isEnabled=!!(0,a.first)(this._getFormattingItems(t.document.selection))}execute(){const t=this.editor.model;t.change(e=>{for(const o of this._getFormattingItems(t.document.selection))if(o.is("selection"))for(const t of this._getFormattingAttributes(o))e.removeSelectionAttribute(t);else{const t=e.createRangeOn(o);for(const i of this._getFormattingAttributes(o))this._removeFormatting(i,o,t,e)}})}registerCustomAttribute(t,e){this._customAttributesHandlers.push({isFormatting:t,removeFormatting:e})}_removeFormatting(t,e,o,i){let r=!1;for(const{isFormatting:s,removeFormatting:n}of this._customAttributesHandlers)s(t,e)&&(n(t,o,i),r=!0);r||i.removeAttribute(t,o)}*_getFormattingItems(t){const e=this.editor.model,o=e.schema,i=t=>!!(0,a.first)(this._getFormattingAttributes(t));for(const r of t.getRanges())for(const t of r.getItems())o.isBlock(t)&&r.end.isTouching(e.createPositionAt(t,0))||i(t)&&(yield t);for(const e of t.getSelectedBlocks())i(e)&&(yield e);i(t)&&(yield t)}*_getFormattingAttributes(t){const e=this.editor.model.schema;for(const[o]of t.getAttributes()){for(const{isFormatting:e}of this._customAttributesHandlers)e(o,t)&&(yield o);const i=e.getAttributeProperties(o);i&&i.isFormatting&&(yield o)}}}class m extends t.Plugin{static get pluginName(){return"RemoveFormatEditing"}static get licenseFeatureCode(){return"RF"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}init(){const t=this.editor;t.commands.add("removeFormat",new c(t))}}class u extends t.Plugin{static get requires(){return[m,n]}static get pluginName(){return"RemoveFormat"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).removeFormat=i})();
@@ -0,0 +1 @@
1
+ !function(i){const n=i.ast=i.ast||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.be=i.be||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":"Выдаліць фарматаванне"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.bs=i.bs||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(o){const i=o.eo=o.eo||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(o){const i=o["es-co"]=o["es-co"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.eu=i.eu||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.gu=i.gu||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.hy=i.hy||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.jv=i.jv||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.kk=i.kk||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.km=i.km||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(n){const i=n.kn=n.kn||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(n){const i=n.nb=n.nb||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(o){const i=o.oc=o.oc||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.si=i.si||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.sl=i.sl||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const n=i.ti=i.ti||{};n.dictionary=Object.assign(n.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(t){const i=t.tt=t.tt||{};i.dictionary=Object.assign(i.dictionary||{},{"Remove Format":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "type": "Button",
12
12
  "name": "removeFormat",
13
- "iconPath": "theme/icons/remove-format.svg"
13
+ "iconPath": "@ckeditor/ckeditor5-icons/theme/icons/remove-format.svg"
14
14
  }
15
15
  ]
16
16
  }
@@ -1,4 +1,4 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
@@ -1,4 +1,4 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
package/dist/index.css CHANGED
@@ -1,4 +1,4 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
package/dist/index.js CHANGED
@@ -1,13 +1,12 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
  import { Plugin, Command } from '@ckeditor/ckeditor5-core/dist/index.js';
6
+ import { IconRemoveFormat } from '@ckeditor/ckeditor5-icons/dist/index.js';
6
7
  import { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
7
8
  import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
8
9
 
9
- var removeFormatIcon = "<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>";
10
-
11
10
  const REMOVE_FORMAT = 'removeFormat';
12
11
  /**
13
12
  * The remove format UI plugin. It registers the `'removeFormat'` button which can be
@@ -46,7 +45,7 @@ const REMOVE_FORMAT = 'removeFormat';
46
45
  const t = locale.t;
47
46
  view.set({
48
47
  label: t('Remove Format'),
49
- icon: removeFormatIcon
48
+ icon: IconRemoveFormat
50
49
  });
51
50
  view.bind('isEnabled').to(command, 'isEnabled');
52
51
  // Execute the command.
@@ -68,52 +67,82 @@ const REMOVE_FORMAT = 'removeFormat';
68
67
  * editor.execute( 'removeFormat' );
69
68
  * ```
70
69
  */ class RemoveFormatCommand extends Command {
70
+ /**
71
+ * List of all registered custom attribute handlers.
72
+ */ _customAttributesHandlers = [];
71
73
  /**
72
74
  * @inheritDoc
73
75
  */ refresh() {
74
76
  const model = this.editor.model;
75
- this.isEnabled = !!first(this._getFormattingItems(model.document.selection, model.schema));
77
+ this.isEnabled = !!first(this._getFormattingItems(model.document.selection));
76
78
  }
77
79
  /**
78
80
  * @inheritDoc
79
81
  */ execute() {
80
82
  const model = this.editor.model;
81
- const schema = model.schema;
82
83
  model.change((writer)=>{
83
- for (const item of this._getFormattingItems(model.document.selection, schema)){
84
+ for (const item of this._getFormattingItems(model.document.selection)){
84
85
  if (item.is('selection')) {
85
- for (const attributeName of this._getFormattingAttributes(item, schema)){
86
+ for (const attributeName of this._getFormattingAttributes(item)){
86
87
  writer.removeSelectionAttribute(attributeName);
87
88
  }
88
89
  } else {
89
90
  // Workaround for items with multiple removable attributes. See
90
91
  // https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609
91
92
  const itemRange = writer.createRangeOn(item);
92
- for (const attributeName of this._getFormattingAttributes(item, schema)){
93
- writer.removeAttribute(attributeName, itemRange);
93
+ for (const attributeName of this._getFormattingAttributes(item)){
94
+ this._removeFormatting(attributeName, item, itemRange, writer);
94
95
  }
95
96
  }
96
97
  }
97
98
  });
98
99
  }
100
+ /**
101
+ * Registers a custom attribute handler that will be used to determine if an attribute is formatting and how to remove it.
102
+ *
103
+ * @internal
104
+ */ registerCustomAttribute(isFormatting, removeFormatting) {
105
+ this._customAttributesHandlers.push({
106
+ isFormatting,
107
+ removeFormatting
108
+ });
109
+ }
110
+ /**
111
+ * Helper method that removes a formatting attribute from an item either using custom callbacks or writer remove attribute.
112
+ */ _removeFormatting(attributeName, item, itemRange, writer) {
113
+ let customHandled = false;
114
+ for (const { isFormatting, removeFormatting } of this._customAttributesHandlers){
115
+ if (isFormatting(attributeName, item)) {
116
+ removeFormatting(attributeName, itemRange, writer);
117
+ customHandled = true;
118
+ }
119
+ }
120
+ if (!customHandled) {
121
+ writer.removeAttribute(attributeName, itemRange);
122
+ }
123
+ }
99
124
  /**
100
125
  * Returns an iterable of items in a selection (including the selection itself) that have formatting model
101
126
  * attributes to be removed by the feature.
102
- *
103
- * @param schema The schema describing the item.
104
- */ *_getFormattingItems(selection, schema) {
127
+ */ *_getFormattingItems(selection) {
128
+ const model = this.editor.model;
129
+ const schema = model.schema;
105
130
  const itemHasRemovableFormatting = (item)=>{
106
- return !!first(this._getFormattingAttributes(item, schema));
131
+ return !!first(this._getFormattingAttributes(item));
107
132
  };
108
- // Check formatting on selected items that are not blocks.
133
+ // Check formatting on selected items.
109
134
  for (const curRange of selection.getRanges()){
110
135
  for (const item of curRange.getItems()){
111
- if (!schema.isBlock(item) && itemHasRemovableFormatting(item)) {
136
+ // Ignore last block if range ends at the beginning of it.
137
+ if (schema.isBlock(item) && curRange.end.isTouching(model.createPositionAt(item, 0))) {
138
+ continue;
139
+ }
140
+ if (itemHasRemovableFormatting(item)) {
112
141
  yield item;
113
142
  }
114
143
  }
115
144
  }
116
- // Check formatting from selected blocks.
145
+ // Check formatting from selected blocks (to include partly selected blocks).
117
146
  for (const block of selection.getSelectedBlocks()){
118
147
  if (itemHasRemovableFormatting(block)) {
119
148
  yield block;
@@ -129,10 +158,15 @@ const REMOVE_FORMAT = 'removeFormat';
129
158
  *
130
159
  * **Note:** Formatting items have the `isFormatting` property set to `true`.
131
160
  *
132
- * @param schema The schema describing the item.
133
161
  * @returns The names of formatting attributes found in a given item.
134
- */ *_getFormattingAttributes(item, schema) {
162
+ */ *_getFormattingAttributes(item) {
163
+ const schema = this.editor.model.schema;
135
164
  for (const [attributeName] of item.getAttributes()){
165
+ for (const { isFormatting } of this._customAttributesHandlers){
166
+ if (isFormatting(attributeName, item)) {
167
+ yield attributeName;
168
+ }
169
+ }
136
170
  const attributeProperties = schema.getAttributeProperties(attributeName);
137
171
  if (attributeProperties && attributeProperties.isFormatting) {
138
172
  yield attributeName;
@@ -151,11 +185,22 @@ const REMOVE_FORMAT = 'removeFormat';
151
185
  */ static get pluginName() {
152
186
  return 'RemoveFormatEditing';
153
187
  }
188
+ /**
189
+ * @inheritDoc
190
+ * @internal
191
+ */ static get licenseFeatureCode() {
192
+ return 'RF';
193
+ }
154
194
  /**
155
195
  * @inheritDoc
156
196
  */ static get isOfficialPlugin() {
157
197
  return true;
158
198
  }
199
+ /**
200
+ * @inheritDoc
201
+ */ static get isPremiumPlugin() {
202
+ return true;
203
+ }
159
204
  /**
160
205
  * @inheritDoc
161
206
  */ init() {
@@ -192,5 +237,5 @@ const REMOVE_FORMAT = 'removeFormat';
192
237
  }
193
238
  }
194
239
 
195
- export { RemoveFormat, RemoveFormatEditing, RemoveFormatUI };
240
+ export { RemoveFormat, RemoveFormatCommand, RemoveFormatEditing, RemoveFormatUI };
196
241
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/removeformatui.ts","../src/removeformatcommand.ts","../src/removeformatediting.ts","../src/removeformat.ts"],"names":["REMOVE_FORMAT","RemoveFormatUI","Plugin","pluginName","isOfficialPlugin","editor","ui","componentFactory","add","view","_createButton","ButtonView","set","tooltip","MenuBarMenuListItemButtonView","ButtonClass","locale","command","commands","get","t","label","icon","removeFormatIcon","bind","to","listenTo","execute","editing","focus","RemoveFormatCommand","Command","model","isEnabled","first","_getFormattingItems","document","selection","schema","change","writer","item","is","attributeName","_getFormattingAttributes","removeSelectionAttribute","itemRange","createRangeOn","removeAttribute","itemHasRemovableFormatting","curRange","getRanges","getItems","isBlock","block","getSelectedBlocks","getAttributes","attributeProperties","getAttributeProperties","isFormatting","RemoveFormatEditing","RemoveFormat","requires"],"mappings":";;;;AAAA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAChG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;;AAE/D,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAA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","file":"index.js.map","sourcesContent":["import { Plugin, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\nvar removeFormatIcon = \"<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>\";\n\nconst REMOVE_FORMAT = 'removeFormat';\n/**\n * The remove format UI plugin. It registers the `'removeFormat'` button which can be\n * used in the toolbar.\n */ class RemoveFormatUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormatUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add(REMOVE_FORMAT, ()=>{\n const view = this._createButton(ButtonView);\n view.set({\n tooltip: true\n });\n return view;\n });\n editor.ui.componentFactory.add(`menuBar:${REMOVE_FORMAT}`, ()=>this._createButton(MenuBarMenuListItemButtonView));\n }\n /**\n\t * Creates a button for remove format command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const command = editor.commands.get(REMOVE_FORMAT);\n const view = new ButtonClass(editor.locale);\n const t = locale.t;\n view.set({\n label: t('Remove Format'),\n icon: removeFormatIcon\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(REMOVE_FORMAT);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The remove format command.\n *\n * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}\n * to clear the formatting in the selection.\n *\n * ```ts\n * editor.execute( 'removeFormat' );\n * ```\n */ class RemoveFormatCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n this.isEnabled = !!first(this._getFormattingItems(model.document.selection, model.schema));\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n const schema = model.schema;\n model.change((writer)=>{\n for (const item of this._getFormattingItems(model.document.selection, schema)){\n if (item.is('selection')) {\n for (const attributeName of this._getFormattingAttributes(item, schema)){\n writer.removeSelectionAttribute(attributeName);\n }\n } else {\n // Workaround for items with multiple removable attributes. See\n // https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609\n const itemRange = writer.createRangeOn(item);\n for (const attributeName of this._getFormattingAttributes(item, schema)){\n writer.removeAttribute(attributeName, itemRange);\n }\n }\n }\n });\n }\n /**\n\t * Returns an iterable of items in a selection (including the selection itself) that have formatting model\n\t * attributes to be removed by the feature.\n\t *\n\t * @param schema The schema describing the item.\n\t */ *_getFormattingItems(selection, schema) {\n const itemHasRemovableFormatting = (item)=>{\n return !!first(this._getFormattingAttributes(item, schema));\n };\n // Check formatting on selected items that are not blocks.\n for (const curRange of selection.getRanges()){\n for (const item of curRange.getItems()){\n if (!schema.isBlock(item) && itemHasRemovableFormatting(item)) {\n yield item;\n }\n }\n }\n // Check formatting from selected blocks.\n for (const block of selection.getSelectedBlocks()){\n if (itemHasRemovableFormatting(block)) {\n yield block;\n }\n }\n // Finally the selection might be formatted as well, so make sure to check it.\n if (itemHasRemovableFormatting(selection)) {\n yield selection;\n }\n }\n /**\n\t * Returns an iterable of formatting attributes of a given model item.\n\t *\n\t * **Note:** Formatting items have the `isFormatting` property set to `true`.\n\t *\n\t * @param schema The schema describing the item.\n\t * @returns The names of formatting attributes found in a given item.\n\t */ *_getFormattingAttributes(item, schema) {\n for (const [attributeName] of item.getAttributes()){\n const attributeProperties = schema.getAttributeProperties(attributeName);\n if (attributeProperties && attributeProperties.isFormatting) {\n yield attributeName;\n }\n }\n }\n}\n\n/**\n * The remove format editing plugin.\n *\n * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.\n */ class RemoveFormatEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormatEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.commands.add('removeFormat', new RemoveFormatCommand(editor));\n }\n}\n\n/**\n * The remove format plugin.\n *\n * This is a \"glue\" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}\n * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.\n *\n * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.\n */ class RemoveFormat extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n RemoveFormatEditing,\n RemoveFormatUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormat';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { RemoveFormat, RemoveFormatEditing, RemoveFormatUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module remove-format/removeformatui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport type RemoveFormatCommand from './removeformatcommand.js';\n\nimport removeFormatIcon from '../theme/icons/remove-format.svg';\n\nconst REMOVE_FORMAT = 'removeFormat';\n\n/**\n * The remove format UI plugin. It registers the `'removeFormat'` button which can be\n * used in the toolbar.\n */\nexport default class RemoveFormatUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormatUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( REMOVE_FORMAT, () => {\n\t\t\tconst view = this._createButton( ButtonView );\n\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( `menuBar:${ REMOVE_FORMAT }`, () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button for remove format command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command: RemoveFormatCommand = editor.commands.get( REMOVE_FORMAT )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Remove Format' ),\n\t\t\ticon: removeFormatIcon\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( REMOVE_FORMAT );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module remove-format/removeformatcommand\n */\n\nimport type { DocumentSelection, Item, Schema } from 'ckeditor5/src/engine.js';\nimport { Command } from 'ckeditor5/src/core.js';\nimport { first } from 'ckeditor5/src/utils.js';\n\n/**\n * The remove format command.\n *\n * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}\n * to clear the formatting in the selection.\n *\n * ```ts\n * editor.execute( 'removeFormat' );\n * ```\n */\nexport default class RemoveFormatCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\n\t\tthis.isEnabled = !!first( this._getFormattingItems( model.document.selection, model.schema ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const item of this._getFormattingItems( model.document.selection, schema ) ) {\n\t\t\t\tif ( item.is( 'selection' ) ) {\n\t\t\t\t\tfor ( const attributeName of this._getFormattingAttributes( item, schema ) ) {\n\t\t\t\t\t\twriter.removeSelectionAttribute( attributeName );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Workaround for items with multiple removable attributes. See\n\t\t\t\t\t// https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609\n\t\t\t\t\tconst itemRange = writer.createRangeOn( item );\n\n\t\t\t\t\tfor ( const attributeName of this._getFormattingAttributes( item, schema ) ) {\n\t\t\t\t\t\twriter.removeAttribute( attributeName, itemRange );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an iterable of items in a selection (including the selection itself) that have formatting model\n\t * attributes to be removed by the feature.\n\t *\n\t * @param schema The schema describing the item.\n\t */\n\tprivate* _getFormattingItems( selection: DocumentSelection, schema: Schema ) {\n\t\tconst itemHasRemovableFormatting = ( item: Item | DocumentSelection ) => {\n\t\t\treturn !!first( this._getFormattingAttributes( item, schema ) );\n\t\t};\n\n\t\t// Check formatting on selected items that are not blocks.\n\t\tfor ( const curRange of selection.getRanges() ) {\n\t\t\tfor ( const item of curRange.getItems() ) {\n\t\t\t\tif ( !schema.isBlock( item ) && itemHasRemovableFormatting( item ) ) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check formatting from selected blocks.\n\t\tfor ( const block of selection.getSelectedBlocks() ) {\n\t\t\tif ( itemHasRemovableFormatting( block ) ) {\n\t\t\t\tyield block;\n\t\t\t}\n\t\t}\n\n\t\t// Finally the selection might be formatted as well, so make sure to check it.\n\t\tif ( itemHasRemovableFormatting( selection ) ) {\n\t\t\tyield selection;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an iterable of formatting attributes of a given model item.\n\t *\n\t * **Note:** Formatting items have the `isFormatting` property set to `true`.\n\t *\n\t * @param schema The schema describing the item.\n\t * @returns The names of formatting attributes found in a given item.\n\t */\n\tprivate* _getFormattingAttributes( item: Item | DocumentSelection, schema: Schema ) {\n\t\tfor ( const [ attributeName ] of item.getAttributes() ) {\n\t\t\tconst attributeProperties = schema.getAttributeProperties( attributeName );\n\n\t\t\tif ( attributeProperties && attributeProperties.isFormatting ) {\n\t\t\t\tyield attributeName;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module remove-format/removeformatediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport RemoveFormatCommand from './removeformatcommand.js';\n\n/**\n * The remove format editing plugin.\n *\n * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.\n */\nexport default class RemoveFormatEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormatEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.commands.add( 'removeFormat', new RemoveFormatCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module remove-format/removeformat\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport RemoveFormatUI from './removeformatui.js';\nimport RemoveFormatEditing from './removeformatediting.js';\n\n/**\n * The remove format plugin.\n *\n * This is a \"glue\" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}\n * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.\n *\n * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.\n */\nexport default class RemoveFormat extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ RemoveFormatEditing, RemoveFormatUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormat' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/removeformatui.ts","../src/removeformatcommand.ts","../src/removeformatediting.ts","../src/removeformat.ts"],"names":["REMOVE_FORMAT","RemoveFormatUI","Plugin","pluginName","isOfficialPlugin","init","editor","ui","componentFactory","add","view","_createButton","ButtonView","set","tooltip","MenuBarMenuListItemButtonView","ButtonClass","locale","command","commands","get","t","label","icon","IconRemoveFormat","bind","to","listenTo","execute","editing","focus","RemoveFormatCommand","Command","_customAttributesHandlers","refresh","model","isEnabled","first","_getFormattingItems","document","selection","change","writer","item","is","attributeName","_getFormattingAttributes","removeSelectionAttribute","itemRange","createRangeOn","_removeFormatting","registerCustomAttribute","isFormatting","removeFormatting","push","customHandled","removeAttribute","schema","itemHasRemovableFormatting","curRange","getRanges","getItems","isBlock","end","isTouching","createPositionAt","block","getSelectedBlocks","getAttributes","attributeProperties","getAttributeProperties","RemoveFormatEditing","licenseFeatureCode","isPremiumPlugin","RemoveFormat","requires"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { IconRemoveFormat } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\nconst REMOVE_FORMAT = 'removeFormat';\n/**\n * The remove format UI plugin. It registers the `'removeFormat'` button which can be\n * used in the toolbar.\n */ class RemoveFormatUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormatUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add(REMOVE_FORMAT, ()=>{\n const view = this._createButton(ButtonView);\n view.set({\n tooltip: true\n });\n return view;\n });\n editor.ui.componentFactory.add(`menuBar:${REMOVE_FORMAT}`, ()=>this._createButton(MenuBarMenuListItemButtonView));\n }\n /**\n\t * Creates a button for remove format command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const command = editor.commands.get(REMOVE_FORMAT);\n const view = new ButtonClass(editor.locale);\n const t = locale.t;\n view.set({\n label: t('Remove Format'),\n icon: IconRemoveFormat\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(REMOVE_FORMAT);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The remove format command.\n *\n * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}\n * to clear the formatting in the selection.\n *\n * ```ts\n * editor.execute( 'removeFormat' );\n * ```\n */ class RemoveFormatCommand extends Command {\n /**\n\t * List of all registered custom attribute handlers.\n\t */ _customAttributesHandlers = [];\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n this.isEnabled = !!first(this._getFormattingItems(model.document.selection));\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n model.change((writer)=>{\n for (const item of this._getFormattingItems(model.document.selection)){\n if (item.is('selection')) {\n for (const attributeName of this._getFormattingAttributes(item)){\n writer.removeSelectionAttribute(attributeName);\n }\n } else {\n // Workaround for items with multiple removable attributes. See\n // https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609\n const itemRange = writer.createRangeOn(item);\n for (const attributeName of this._getFormattingAttributes(item)){\n this._removeFormatting(attributeName, item, itemRange, writer);\n }\n }\n }\n });\n }\n /**\n\t * Registers a custom attribute handler that will be used to determine if an attribute is formatting and how to remove it.\n\t *\n\t * @internal\n\t */ registerCustomAttribute(isFormatting, removeFormatting) {\n this._customAttributesHandlers.push({\n isFormatting,\n removeFormatting\n });\n }\n /**\n\t * Helper method that removes a formatting attribute from an item either using custom callbacks or writer remove attribute.\n\t */ _removeFormatting(attributeName, item, itemRange, writer) {\n let customHandled = false;\n for (const { isFormatting, removeFormatting } of this._customAttributesHandlers){\n if (isFormatting(attributeName, item)) {\n removeFormatting(attributeName, itemRange, writer);\n customHandled = true;\n }\n }\n if (!customHandled) {\n writer.removeAttribute(attributeName, itemRange);\n }\n }\n /**\n\t * Returns an iterable of items in a selection (including the selection itself) that have formatting model\n\t * attributes to be removed by the feature.\n\t */ *_getFormattingItems(selection) {\n const model = this.editor.model;\n const schema = model.schema;\n const itemHasRemovableFormatting = (item)=>{\n return !!first(this._getFormattingAttributes(item));\n };\n // Check formatting on selected items.\n for (const curRange of selection.getRanges()){\n for (const item of curRange.getItems()){\n // Ignore last block if range ends at the beginning of it.\n if (schema.isBlock(item) && curRange.end.isTouching(model.createPositionAt(item, 0))) {\n continue;\n }\n if (itemHasRemovableFormatting(item)) {\n yield item;\n }\n }\n }\n // Check formatting from selected blocks (to include partly selected blocks).\n for (const block of selection.getSelectedBlocks()){\n if (itemHasRemovableFormatting(block)) {\n yield block;\n }\n }\n // Finally the selection might be formatted as well, so make sure to check it.\n if (itemHasRemovableFormatting(selection)) {\n yield selection;\n }\n }\n /**\n\t * Returns an iterable of formatting attributes of a given model item.\n\t *\n\t * **Note:** Formatting items have the `isFormatting` property set to `true`.\n\t *\n\t * @returns The names of formatting attributes found in a given item.\n\t */ *_getFormattingAttributes(item) {\n const schema = this.editor.model.schema;\n for (const [attributeName] of item.getAttributes()){\n for (const { isFormatting } of this._customAttributesHandlers){\n if (isFormatting(attributeName, item)) {\n yield attributeName;\n }\n }\n const attributeProperties = schema.getAttributeProperties(attributeName);\n if (attributeProperties && attributeProperties.isFormatting) {\n yield attributeName;\n }\n }\n }\n}\n\n/**\n * The remove format editing plugin.\n *\n * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.\n */ class RemoveFormatEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormatEditing';\n }\n /**\n\t * @inheritDoc\n\t * @internal\n\t */ static get licenseFeatureCode() {\n return 'RF';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get isPremiumPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.commands.add('removeFormat', new RemoveFormatCommand(editor));\n }\n}\n\n/**\n * The remove format plugin.\n *\n * This is a \"glue\" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}\n * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.\n *\n * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.\n */ class RemoveFormat extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n RemoveFormatEditing,\n RemoveFormatUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RemoveFormat';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { RemoveFormat, RemoveFormatCommand, RemoveFormatEditing, RemoveFormatUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module remove-format/removeformatui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { IconRemoveFormat } from 'ckeditor5/src/icons.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport { type RemoveFormatCommand } from './removeformatcommand.js';\n\nconst REMOVE_FORMAT = 'removeFormat';\n\n/**\n * The remove format UI plugin. It registers the `'removeFormat'` button which can be\n * used in the toolbar.\n */\nexport class RemoveFormatUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormatUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( REMOVE_FORMAT, () => {\n\t\t\tconst view = this._createButton( ButtonView );\n\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( `menuBar:${ REMOVE_FORMAT }`, () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button for remove format command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command: RemoveFormatCommand = editor.commands.get( REMOVE_FORMAT )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Remove Format' ),\n\t\t\ticon: IconRemoveFormat\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( REMOVE_FORMAT );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module remove-format/removeformatcommand\n */\n\nimport type { ModelDocumentSelection, ModelItem, ModelRange, ModelWriter } from 'ckeditor5/src/engine.js';\nimport { Command } from 'ckeditor5/src/core.js';\nimport { first } from 'ckeditor5/src/utils.js';\n\n/**\n * The remove format command.\n *\n * It is used by the {@link module:remove-format/removeformat~RemoveFormat remove format feature}\n * to clear the formatting in the selection.\n *\n * ```ts\n * editor.execute( 'removeFormat' );\n * ```\n */\nexport class RemoveFormatCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * List of all registered custom attribute handlers.\n\t */\n\tprivate _customAttributesHandlers: Array<{\n\t\tisFormatting: IsFormattingCallback;\n\t\tremoveFormatting: RemoveFormattingCallback;\n\t}> = [];\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\n\t\tthis.isEnabled = !!first( this._getFormattingItems( model.document.selection ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const item of this._getFormattingItems( model.document.selection ) ) {\n\t\t\t\tif ( item.is( 'selection' ) ) {\n\t\t\t\t\tfor ( const attributeName of this._getFormattingAttributes( item ) ) {\n\t\t\t\t\t\twriter.removeSelectionAttribute( attributeName );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Workaround for items with multiple removable attributes. See\n\t\t\t\t\t// https://github.com/ckeditor/ckeditor5-remove-format/pull/1#pullrequestreview-220515609\n\t\t\t\t\tconst itemRange = writer.createRangeOn( item );\n\n\t\t\t\t\tfor ( const attributeName of this._getFormattingAttributes( item ) ) {\n\t\t\t\t\t\tthis._removeFormatting( attributeName, item, itemRange, writer );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Registers a custom attribute handler that will be used to determine if an attribute is formatting and how to remove it.\n\t *\n\t * @internal\n\t */\n\tpublic registerCustomAttribute( isFormatting: IsFormattingCallback, removeFormatting: RemoveFormattingCallback ): void {\n\t\tthis._customAttributesHandlers.push( {\n\t\t\tisFormatting,\n\t\t\tremoveFormatting\n\t\t} );\n\t}\n\n\t/**\n\t * Helper method that removes a formatting attribute from an item either using custom callbacks or writer remove attribute.\n\t */\n\tprivate _removeFormatting( attributeName: string, item: ModelItem, itemRange: ModelRange, writer: ModelWriter ) {\n\t\tlet customHandled = false;\n\n\t\tfor ( const { isFormatting, removeFormatting } of this._customAttributesHandlers ) {\n\t\t\tif ( isFormatting( attributeName, item ) ) {\n\t\t\t\tremoveFormatting( attributeName, itemRange, writer );\n\t\t\t\tcustomHandled = true;\n\t\t\t}\n\t\t}\n\n\t\tif ( !customHandled ) {\n\t\t\twriter.removeAttribute( attributeName, itemRange );\n\t\t}\n\t}\n\n\t/**\n\t * Returns an iterable of items in a selection (including the selection itself) that have formatting model\n\t * attributes to be removed by the feature.\n\t */\n\tprivate* _getFormattingItems( selection: ModelDocumentSelection ) {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tconst itemHasRemovableFormatting = ( item: ModelItem | ModelDocumentSelection ) => {\n\t\t\treturn !!first( this._getFormattingAttributes( item ) );\n\t\t};\n\n\t\t// Check formatting on selected items.\n\t\tfor ( const curRange of selection.getRanges() ) {\n\t\t\tfor ( const item of curRange.getItems() ) {\n\t\t\t\t// Ignore last block if range ends at the beginning of it.\n\t\t\t\tif ( schema.isBlock( item ) && curRange.end.isTouching( model.createPositionAt( item, 0 ) ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( itemHasRemovableFormatting( item ) ) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check formatting from selected blocks (to include partly selected blocks).\n\t\tfor ( const block of selection.getSelectedBlocks() ) {\n\t\t\tif ( itemHasRemovableFormatting( block ) ) {\n\t\t\t\tyield block;\n\t\t\t}\n\t\t}\n\n\t\t// Finally the selection might be formatted as well, so make sure to check it.\n\t\tif ( itemHasRemovableFormatting( selection ) ) {\n\t\t\tyield selection;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an iterable of formatting attributes of a given model item.\n\t *\n\t * **Note:** Formatting items have the `isFormatting` property set to `true`.\n\t *\n\t * @returns The names of formatting attributes found in a given item.\n\t */\n\tprivate* _getFormattingAttributes( item: ModelItem | ModelDocumentSelection ) {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tfor ( const [ attributeName ] of item.getAttributes() ) {\n\t\t\tfor ( const { isFormatting } of this._customAttributesHandlers ) {\n\t\t\t\tif ( isFormatting( attributeName, item ) ) {\n\t\t\t\t\tyield attributeName;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst attributeProperties = schema.getAttributeProperties( attributeName );\n\n\t\t\tif ( attributeProperties && attributeProperties.isFormatting ) {\n\t\t\t\tyield attributeName;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Callback that checks if an attribute is a formatting attribute.\n *\n * @internal\n */\nexport type IsFormattingCallback = ( attributeName: string, item: ModelItem | ModelDocumentSelection ) => boolean;\n\n/**\n * Callback that removes formatting from an item.\n *\n * @internal\n */\nexport type RemoveFormattingCallback = ( attributeName: string, range: ModelRange, writer: ModelWriter ) => void;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module remove-format/removeformatediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { RemoveFormatCommand } from './removeformatcommand.js';\n\n/**\n * The remove format editing plugin.\n *\n * It registers the {@link module:remove-format/removeformatcommand~RemoveFormatCommand removeFormat} command.\n */\nexport class RemoveFormatEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormatEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @internal\n\t */\n\tpublic static get licenseFeatureCode(): string {\n\t\treturn 'RF';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isPremiumPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.commands.add( 'removeFormat', new RemoveFormatCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module remove-format/removeformat\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { RemoveFormatUI } from './removeformatui.js';\nimport { RemoveFormatEditing } from './removeformatediting.js';\n\n/**\n * The remove format plugin.\n *\n * This is a \"glue\" plugin which loads the {@link module:remove-format/removeformatediting~RemoveFormatEditing}\n * and {@link module:remove-format/removeformatui~RemoveFormatUI} plugins.\n *\n * For a detailed overview, check out the {@glink features/remove-format remove format} feature documentation.\n */\nexport class RemoveFormat extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ RemoveFormatEditing, RemoveFormatUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RemoveFormat' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
@@ -1,6 +1,6 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
 
6
6
  import type { Translations } from '@ckeditor/ckeditor5-utils';
@@ -1,5 +1,5 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
  export default {"af":{"dictionary":{"Remove Format":"Verwyder formatering"},getPluralForm(n){return (n != 1);}}}
@@ -1,6 +1,6 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
 
6
6
  ( e => {
@@ -1,6 +1,6 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
 
6
6
  import type { Translations } from '@ckeditor/ckeditor5-utils';
@@ -1,5 +1,5 @@
1
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
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"ar":{"dictionary":{"Remove Format":"إزالة التنسيق"},getPluralForm(n){return n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;}}}
5
+ export default {"ar":{"dictionary":{"Remove Format":"إزالة التنسيق"},getPluralForm(n){return (n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);}}}