@ckeditor/ckeditor5-ckfinder 41.3.1 → 41.4.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 (190) hide show
  1. package/dist/index-content.css +4 -0
  2. package/dist/index-editor.css +4 -0
  3. package/dist/index.css +4 -0
  4. package/dist/index.js +235 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/translations/af.d.ts +8 -0
  7. package/dist/translations/af.js +5 -0
  8. package/dist/translations/af.umd.js +11 -0
  9. package/dist/translations/ar.d.ts +8 -0
  10. package/dist/translations/ar.js +5 -0
  11. package/dist/translations/ar.umd.js +11 -0
  12. package/dist/translations/az.d.ts +8 -0
  13. package/dist/translations/az.js +5 -0
  14. package/dist/translations/az.umd.js +11 -0
  15. package/dist/translations/bg.d.ts +8 -0
  16. package/dist/translations/bg.js +5 -0
  17. package/dist/translations/bg.umd.js +11 -0
  18. package/dist/translations/bn.d.ts +8 -0
  19. package/dist/translations/bn.js +5 -0
  20. package/dist/translations/bn.umd.js +11 -0
  21. package/dist/translations/bs.d.ts +8 -0
  22. package/dist/translations/bs.js +5 -0
  23. package/dist/translations/bs.umd.js +11 -0
  24. package/dist/translations/ca.d.ts +8 -0
  25. package/dist/translations/ca.js +5 -0
  26. package/dist/translations/ca.umd.js +11 -0
  27. package/dist/translations/cs.d.ts +8 -0
  28. package/dist/translations/cs.js +5 -0
  29. package/dist/translations/cs.umd.js +11 -0
  30. package/dist/translations/da.d.ts +8 -0
  31. package/dist/translations/da.js +5 -0
  32. package/dist/translations/da.umd.js +11 -0
  33. package/dist/translations/de-ch.d.ts +8 -0
  34. package/dist/translations/de-ch.js +5 -0
  35. package/dist/translations/de-ch.umd.js +11 -0
  36. package/dist/translations/de.d.ts +8 -0
  37. package/dist/translations/de.js +5 -0
  38. package/dist/translations/de.umd.js +11 -0
  39. package/dist/translations/el.d.ts +8 -0
  40. package/dist/translations/el.js +5 -0
  41. package/dist/translations/el.umd.js +11 -0
  42. package/dist/translations/en-au.d.ts +8 -0
  43. package/dist/translations/en-au.js +5 -0
  44. package/dist/translations/en-au.umd.js +11 -0
  45. package/dist/translations/en-gb.d.ts +8 -0
  46. package/dist/translations/en-gb.js +5 -0
  47. package/dist/translations/en-gb.umd.js +11 -0
  48. package/dist/translations/en.d.ts +8 -0
  49. package/dist/translations/en.js +5 -0
  50. package/dist/translations/en.umd.js +11 -0
  51. package/dist/translations/es-co.d.ts +8 -0
  52. package/dist/translations/es-co.js +5 -0
  53. package/dist/translations/es-co.umd.js +11 -0
  54. package/dist/translations/es.d.ts +8 -0
  55. package/dist/translations/es.js +5 -0
  56. package/dist/translations/es.umd.js +11 -0
  57. package/dist/translations/et.d.ts +8 -0
  58. package/dist/translations/et.js +5 -0
  59. package/dist/translations/et.umd.js +11 -0
  60. package/dist/translations/fa.d.ts +8 -0
  61. package/dist/translations/fa.js +5 -0
  62. package/dist/translations/fa.umd.js +11 -0
  63. package/dist/translations/fi.d.ts +8 -0
  64. package/dist/translations/fi.js +5 -0
  65. package/dist/translations/fi.umd.js +11 -0
  66. package/dist/translations/fr.d.ts +8 -0
  67. package/dist/translations/fr.js +5 -0
  68. package/dist/translations/fr.umd.js +11 -0
  69. package/dist/translations/gl.d.ts +8 -0
  70. package/dist/translations/gl.js +5 -0
  71. package/dist/translations/gl.umd.js +11 -0
  72. package/dist/translations/he.d.ts +8 -0
  73. package/dist/translations/he.js +5 -0
  74. package/dist/translations/he.umd.js +11 -0
  75. package/dist/translations/hi.d.ts +8 -0
  76. package/dist/translations/hi.js +5 -0
  77. package/dist/translations/hi.umd.js +11 -0
  78. package/dist/translations/hr.d.ts +8 -0
  79. package/dist/translations/hr.js +5 -0
  80. package/dist/translations/hr.umd.js +11 -0
  81. package/dist/translations/hu.d.ts +8 -0
  82. package/dist/translations/hu.js +5 -0
  83. package/dist/translations/hu.umd.js +11 -0
  84. package/dist/translations/id.d.ts +8 -0
  85. package/dist/translations/id.js +5 -0
  86. package/dist/translations/id.umd.js +11 -0
  87. package/dist/translations/it.d.ts +8 -0
  88. package/dist/translations/it.js +5 -0
  89. package/dist/translations/it.umd.js +11 -0
  90. package/dist/translations/ja.d.ts +8 -0
  91. package/dist/translations/ja.js +5 -0
  92. package/dist/translations/ja.umd.js +11 -0
  93. package/dist/translations/jv.d.ts +8 -0
  94. package/dist/translations/jv.js +5 -0
  95. package/dist/translations/jv.umd.js +11 -0
  96. package/dist/translations/ko.d.ts +8 -0
  97. package/dist/translations/ko.js +5 -0
  98. package/dist/translations/ko.umd.js +11 -0
  99. package/dist/translations/ku.d.ts +8 -0
  100. package/dist/translations/ku.js +5 -0
  101. package/dist/translations/ku.umd.js +11 -0
  102. package/dist/translations/lt.d.ts +8 -0
  103. package/dist/translations/lt.js +5 -0
  104. package/dist/translations/lt.umd.js +11 -0
  105. package/dist/translations/lv.d.ts +8 -0
  106. package/dist/translations/lv.js +5 -0
  107. package/dist/translations/lv.umd.js +11 -0
  108. package/dist/translations/ms.d.ts +8 -0
  109. package/dist/translations/ms.js +5 -0
  110. package/dist/translations/ms.umd.js +11 -0
  111. package/dist/translations/ne.d.ts +8 -0
  112. package/dist/translations/ne.js +5 -0
  113. package/dist/translations/ne.umd.js +11 -0
  114. package/dist/translations/nl.d.ts +8 -0
  115. package/dist/translations/nl.js +5 -0
  116. package/dist/translations/nl.umd.js +11 -0
  117. package/dist/translations/no.d.ts +8 -0
  118. package/dist/translations/no.js +5 -0
  119. package/dist/translations/no.umd.js +11 -0
  120. package/dist/translations/pl.d.ts +8 -0
  121. package/dist/translations/pl.js +5 -0
  122. package/dist/translations/pl.umd.js +11 -0
  123. package/dist/translations/pt-br.d.ts +8 -0
  124. package/dist/translations/pt-br.js +5 -0
  125. package/dist/translations/pt-br.umd.js +11 -0
  126. package/dist/translations/pt.d.ts +8 -0
  127. package/dist/translations/pt.js +5 -0
  128. package/dist/translations/pt.umd.js +11 -0
  129. package/dist/translations/ro.d.ts +8 -0
  130. package/dist/translations/ro.js +5 -0
  131. package/dist/translations/ro.umd.js +11 -0
  132. package/dist/translations/ru.d.ts +8 -0
  133. package/dist/translations/ru.js +5 -0
  134. package/dist/translations/ru.umd.js +11 -0
  135. package/dist/translations/sk.d.ts +8 -0
  136. package/dist/translations/sk.js +5 -0
  137. package/dist/translations/sk.umd.js +11 -0
  138. package/dist/translations/sl.d.ts +8 -0
  139. package/dist/translations/sl.js +5 -0
  140. package/dist/translations/sl.umd.js +11 -0
  141. package/dist/translations/sq.d.ts +8 -0
  142. package/dist/translations/sq.js +5 -0
  143. package/dist/translations/sq.umd.js +11 -0
  144. package/dist/translations/sr-latn.d.ts +8 -0
  145. package/dist/translations/sr-latn.js +5 -0
  146. package/dist/translations/sr-latn.umd.js +11 -0
  147. package/dist/translations/sr.d.ts +8 -0
  148. package/dist/translations/sr.js +5 -0
  149. package/dist/translations/sr.umd.js +11 -0
  150. package/dist/translations/sv.d.ts +8 -0
  151. package/dist/translations/sv.js +5 -0
  152. package/dist/translations/sv.umd.js +11 -0
  153. package/dist/translations/th.d.ts +8 -0
  154. package/dist/translations/th.js +5 -0
  155. package/dist/translations/th.umd.js +11 -0
  156. package/dist/translations/tk.d.ts +8 -0
  157. package/dist/translations/tk.js +5 -0
  158. package/dist/translations/tk.umd.js +11 -0
  159. package/dist/translations/tr.d.ts +8 -0
  160. package/dist/translations/tr.js +5 -0
  161. package/dist/translations/tr.umd.js +11 -0
  162. package/dist/translations/ug.d.ts +8 -0
  163. package/dist/translations/ug.js +5 -0
  164. package/dist/translations/ug.umd.js +11 -0
  165. package/dist/translations/uk.d.ts +8 -0
  166. package/dist/translations/uk.js +5 -0
  167. package/dist/translations/uk.umd.js +11 -0
  168. package/dist/translations/ur.d.ts +8 -0
  169. package/dist/translations/ur.js +5 -0
  170. package/dist/translations/ur.umd.js +11 -0
  171. package/dist/translations/uz.d.ts +8 -0
  172. package/dist/translations/uz.js +5 -0
  173. package/dist/translations/uz.umd.js +11 -0
  174. package/dist/translations/vi.d.ts +8 -0
  175. package/dist/translations/vi.js +5 -0
  176. package/dist/translations/vi.umd.js +11 -0
  177. package/dist/translations/zh-cn.d.ts +8 -0
  178. package/dist/translations/zh-cn.js +5 -0
  179. package/dist/translations/zh-cn.umd.js +11 -0
  180. package/dist/translations/zh.d.ts +8 -0
  181. package/dist/translations/zh.js +5 -0
  182. package/dist/translations/zh.umd.js +11 -0
  183. package/dist/types/augmentation.d.ts +26 -0
  184. package/dist/types/ckfinder.d.ts +40 -0
  185. package/dist/types/ckfindercommand.d.ts +40 -0
  186. package/dist/types/ckfinderconfig.d.ts +77 -0
  187. package/dist/types/ckfinderediting.d.ts +30 -0
  188. package/dist/types/ckfinderui.d.ts +29 -0
  189. package/dist/types/index.d.ts +17 -0
  190. package/package.json +3 -2
@@ -0,0 +1,4 @@
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
+ */
@@ -0,0 +1,4 @@
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
+ */
package/dist/index.css ADDED
@@ -0,0 +1,4 @@
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
+ */
package/dist/index.js ADDED
@@ -0,0 +1,235 @@
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 { Plugin, icons, Command } from '@ckeditor/ckeditor5-core/dist/index.js';
6
+ import { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';
7
+ import { CKEditorError } from '@ckeditor/ckeditor5-utils/dist/index.js';
8
+
9
+ class CKFinderUI extends Plugin {
10
+ /**
11
+ * @inheritDoc
12
+ */ static get pluginName() {
13
+ return 'CKFinderUI';
14
+ }
15
+ /**
16
+ * @inheritDoc
17
+ */ init() {
18
+ const editor = this.editor;
19
+ const componentFactory = editor.ui.componentFactory;
20
+ const t = editor.t;
21
+ componentFactory.add('ckfinder', (locale)=>{
22
+ const button = this._createButton(ButtonView);
23
+ const t = locale.t;
24
+ button.set({
25
+ label: t('Insert image or file'),
26
+ tooltip: true
27
+ });
28
+ return button;
29
+ });
30
+ componentFactory.add('menuBar:ckfinder', (locale)=>{
31
+ const button = this._createButton(MenuBarMenuListItemButtonView);
32
+ const t = locale.t;
33
+ button.label = t('Image or file');
34
+ return button;
35
+ });
36
+ if (editor.plugins.has('ImageInsertUI')) {
37
+ const imageInsertUI = editor.plugins.get('ImageInsertUI');
38
+ imageInsertUI.registerIntegration({
39
+ name: 'assetManager',
40
+ observable: ()=>editor.commands.get('ckfinder'),
41
+ buttonViewCreator: ()=>{
42
+ const button = this.editor.ui.componentFactory.create('ckfinder');
43
+ button.icon = icons.imageAssetManager;
44
+ button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace image with file manager') : t('Insert image with file manager'));
45
+ return button;
46
+ },
47
+ formViewCreator: ()=>{
48
+ const button = this.editor.ui.componentFactory.create('ckfinder');
49
+ button.icon = icons.imageAssetManager;
50
+ button.withText = true;
51
+ button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace with file manager') : t('Insert with file manager'));
52
+ button.on('execute', ()=>{
53
+ imageInsertUI.dropdownView.isOpen = false;
54
+ });
55
+ return button;
56
+ }
57
+ });
58
+ }
59
+ }
60
+ /**
61
+ * Creates a button for CKFinder command to use either in toolbar or in menu bar.
62
+ */ _createButton(ButtonClass) {
63
+ const editor = this.editor;
64
+ const locale = editor.locale;
65
+ const view = new ButtonClass(locale);
66
+ const command = editor.commands.get('ckfinder');
67
+ view.icon = icons.browseFiles;
68
+ view.bind('isEnabled').to(command);
69
+ view.on('execute', ()=>{
70
+ editor.execute('ckfinder');
71
+ editor.editing.view.focus();
72
+ });
73
+ return view;
74
+ }
75
+ }
76
+
77
+ class CKFinderCommand extends Command {
78
+ /**
79
+ * @inheritDoc
80
+ */ refresh() {
81
+ const imageCommand = this.editor.commands.get('insertImage');
82
+ const linkCommand = this.editor.commands.get('link');
83
+ // The CKFinder command is enabled when one of image or link command is enabled.
84
+ this.isEnabled = imageCommand.isEnabled || linkCommand.isEnabled;
85
+ }
86
+ /**
87
+ * @inheritDoc
88
+ */ execute() {
89
+ const editor = this.editor;
90
+ const openerMethod = this.editor.config.get('ckfinder.openerMethod') || 'modal';
91
+ if (openerMethod != 'popup' && openerMethod != 'modal') {
92
+ /**
93
+ * The `ckfinder.openerMethod` must be one of: "popup" or "modal".
94
+ *
95
+ * @error ckfinder-unknown-openermethod
96
+ */ throw new CKEditorError('ckfinder-unknown-openermethod', editor);
97
+ }
98
+ const options = this.editor.config.get('ckfinder.options') || {};
99
+ options.chooseFiles = true;
100
+ // Cache the user-defined onInit method
101
+ const originalOnInit = options.onInit;
102
+ // Pass the lang code to the CKFinder if not defined by user.
103
+ if (!options.language) {
104
+ options.language = editor.locale.uiLanguage;
105
+ }
106
+ // The onInit method allows to extend CKFinder's behavior. It is used to attach event listeners to file choosing related events.
107
+ options.onInit = (finder)=>{
108
+ // Call original options.onInit if it was defined by user.
109
+ if (originalOnInit) {
110
+ originalOnInit(finder);
111
+ }
112
+ finder.on('files:choose', (evt)=>{
113
+ const files = evt.data.files.toArray();
114
+ // Insert links
115
+ const links = files.filter((file)=>!file.isImage());
116
+ const images = files.filter((file)=>file.isImage());
117
+ for (const linkFile of links){
118
+ editor.execute('link', linkFile.getUrl());
119
+ }
120
+ const imagesUrls = [];
121
+ for (const image of images){
122
+ const url = image.getUrl();
123
+ imagesUrls.push(url ? url : finder.request('file:getProxyUrl', {
124
+ file: image
125
+ }));
126
+ }
127
+ if (imagesUrls.length) {
128
+ insertImages(editor, imagesUrls);
129
+ }
130
+ });
131
+ finder.on('file:choose:resizedImage', (evt)=>{
132
+ const resizedUrl = evt.data.resizedUrl;
133
+ if (!resizedUrl) {
134
+ const notification = editor.plugins.get('Notification');
135
+ const t = editor.locale.t;
136
+ notification.showWarning(t('Could not obtain resized image URL.'), {
137
+ title: t('Selecting resized image failed'),
138
+ namespace: 'ckfinder'
139
+ });
140
+ return;
141
+ }
142
+ insertImages(editor, [
143
+ resizedUrl
144
+ ]);
145
+ });
146
+ };
147
+ window.CKFinder[openerMethod](options);
148
+ }
149
+ /**
150
+ * @inheritDoc
151
+ */ constructor(editor){
152
+ super(editor);
153
+ // The CKFinder command does not affect data by itself.
154
+ this.affectsData = false;
155
+ // Remove default document listener to lower its priority.
156
+ this.stopListening(this.editor.model.document, 'change');
157
+ // Lower this command listener priority to be sure that refresh() will be called after link & image refresh.
158
+ this.listenTo(this.editor.model.document, 'change', ()=>this.refresh(), {
159
+ priority: 'low'
160
+ });
161
+ }
162
+ }
163
+ function insertImages(editor, urls) {
164
+ const imageCommand = editor.commands.get('insertImage');
165
+ // Check if inserting an image is actually possible - it might be possible to only insert a link.
166
+ if (!imageCommand.isEnabled) {
167
+ const notification = editor.plugins.get('Notification');
168
+ const t = editor.locale.t;
169
+ notification.showWarning(t('Could not insert image at the current position.'), {
170
+ title: t('Inserting image failed'),
171
+ namespace: 'ckfinder'
172
+ });
173
+ return;
174
+ }
175
+ editor.execute('insertImage', {
176
+ source: urls
177
+ });
178
+ }
179
+
180
+ class CKFinderEditing extends Plugin {
181
+ /**
182
+ * @inheritDoc
183
+ */ static get pluginName() {
184
+ return 'CKFinderEditing';
185
+ }
186
+ /**
187
+ * @inheritDoc
188
+ */ static get requires() {
189
+ return [
190
+ Notification,
191
+ 'LinkEditing'
192
+ ];
193
+ }
194
+ /**
195
+ * @inheritDoc
196
+ */ init() {
197
+ const editor = this.editor;
198
+ if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {
199
+ /**
200
+ * CKFinder requires at least one plugin providing support for images loaded in the editor. Please
201
+ * make sure either:
202
+ *
203
+ * * {@link module:image/image~Image} (which loads both types of images),
204
+ * * or {@link module:image/imageblock~ImageBlock},
205
+ * * or {@link module:image/imageinline~ImageInline}.
206
+ *
207
+ * is loaded in your editor configuration.
208
+ *
209
+ * @error ckfinder-missing-image-plugin
210
+ */ throw new CKEditorError('ckfinder-missing-image-plugin', editor);
211
+ }
212
+ editor.commands.add('ckfinder', new CKFinderCommand(editor));
213
+ }
214
+ }
215
+
216
+ class CKFinder extends Plugin {
217
+ /**
218
+ * @inheritDoc
219
+ */ static get pluginName() {
220
+ return 'CKFinder';
221
+ }
222
+ /**
223
+ * @inheritDoc
224
+ */ static get requires() {
225
+ return [
226
+ 'Link',
227
+ 'CKFinderUploadAdapter',
228
+ CKFinderEditing,
229
+ CKFinderUI
230
+ ];
231
+ }
232
+ }
233
+
234
+ export { CKFinder, CKFinderEditing, CKFinderUI };
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.js","../src/ckfinderui.ts","../src/ckfindercommand.ts","../src/ckfinderediting.ts","../src/ckfinder.ts"],"names":["CKFinderUI","Plugin","pluginName","init","editor","componentFactory","ui","t","add","locale","button","_createButton","ButtonView","set","label","tooltip","MenuBarMenuListItemButtonView","plugins","has","imageInsertUI","get","registerIntegration","name","observable","commands","buttonViewCreator","create","icon","icons","imageAssetManager","bind","to","isImageSelected","formViewCreator","withText","on","dropdownView","isOpen","ButtonClass","view","command","browseFiles","execute","editing","focus","CKFinderCommand","Command","refresh","imageCommand","linkCommand","isEnabled","openerMethod","config","CKEditorError","options","chooseFiles","originalOnInit","onInit","language","uiLanguage","finder","evt","files","data","toArray","links","filter","file","isImage","images","linkFile","getUrl","imagesUrls","image","url","push","request","length","insertImages","resizedUrl","notification","showWarning","title","namespace","window","CKFinder","constructor","affectsData","stopListening","model","document","listenTo","priority","urls","source","CKFinderEditing","requires","Notification"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { CKEditorError } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\nclass CKFinderUI extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKFinderUI';\n }\n /**\n * @inheritDoc\n */ init() {\n const editor = this.editor;\n const componentFactory = editor.ui.componentFactory;\n const t = editor.t;\n componentFactory.add('ckfinder', (locale)=>{\n const button = this._createButton(ButtonView);\n const t = locale.t;\n button.set({\n label: t('Insert image or file'),\n tooltip: true\n });\n return button;\n });\n componentFactory.add('menuBar:ckfinder', (locale)=>{\n const button = this._createButton(MenuBarMenuListItemButtonView);\n const t = locale.t;\n button.label = t('Image or file');\n return button;\n });\n if (editor.plugins.has('ImageInsertUI')) {\n const imageInsertUI = editor.plugins.get('ImageInsertUI');\n imageInsertUI.registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckfinder'),\n buttonViewCreator: ()=>{\n const button = this.editor.ui.componentFactory.create('ckfinder');\n button.icon = icons.imageAssetManager;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace image with file manager') : t('Insert image with file manager'));\n return button;\n },\n formViewCreator: ()=>{\n const button = this.editor.ui.componentFactory.create('ckfinder');\n button.icon = icons.imageAssetManager;\n button.withText = true;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace with file manager') : t('Insert with file manager'));\n button.on('execute', ()=>{\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n });\n }\n }\n /**\n * Creates a button for CKFinder command to use either in toolbar or in menu bar.\n */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckfinder');\n view.icon = icons.browseFiles;\n view.bind('isEnabled').to(command);\n view.on('execute', ()=>{\n editor.execute('ckfinder');\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\nclass CKFinderCommand extends Command {\n /**\n * @inheritDoc\n */ refresh() {\n const imageCommand = this.editor.commands.get('insertImage');\n const linkCommand = this.editor.commands.get('link');\n // The CKFinder command is enabled when one of image or link command is enabled.\n this.isEnabled = imageCommand.isEnabled || linkCommand.isEnabled;\n }\n /**\n * @inheritDoc\n */ execute() {\n const editor = this.editor;\n const openerMethod = this.editor.config.get('ckfinder.openerMethod') || 'modal';\n if (openerMethod != 'popup' && openerMethod != 'modal') {\n /**\n * The `ckfinder.openerMethod` must be one of: \"popup\" or \"modal\".\n *\n * @error ckfinder-unknown-openermethod\n */ throw new CKEditorError('ckfinder-unknown-openermethod', editor);\n }\n const options = this.editor.config.get('ckfinder.options') || {};\n options.chooseFiles = true;\n // Cache the user-defined onInit method\n const originalOnInit = options.onInit;\n // Pass the lang code to the CKFinder if not defined by user.\n if (!options.language) {\n options.language = editor.locale.uiLanguage;\n }\n // The onInit method allows to extend CKFinder's behavior. It is used to attach event listeners to file choosing related events.\n options.onInit = (finder)=>{\n // Call original options.onInit if it was defined by user.\n if (originalOnInit) {\n originalOnInit(finder);\n }\n finder.on('files:choose', (evt)=>{\n const files = evt.data.files.toArray();\n // Insert links\n const links = files.filter((file)=>!file.isImage());\n const images = files.filter((file)=>file.isImage());\n for (const linkFile of links){\n editor.execute('link', linkFile.getUrl());\n }\n const imagesUrls = [];\n for (const image of images){\n const url = image.getUrl();\n imagesUrls.push(url ? url : finder.request('file:getProxyUrl', {\n file: image\n }));\n }\n if (imagesUrls.length) {\n insertImages(editor, imagesUrls);\n }\n });\n finder.on('file:choose:resizedImage', (evt)=>{\n const resizedUrl = evt.data.resizedUrl;\n if (!resizedUrl) {\n const notification = editor.plugins.get('Notification');\n const t = editor.locale.t;\n notification.showWarning(t('Could not obtain resized image URL.'), {\n title: t('Selecting resized image failed'),\n namespace: 'ckfinder'\n });\n return;\n }\n insertImages(editor, [\n resizedUrl\n ]);\n });\n };\n window.CKFinder[openerMethod](options);\n }\n /**\n * @inheritDoc\n */ constructor(editor){\n super(editor);\n // The CKFinder command does not affect data by itself.\n this.affectsData = false;\n // Remove default document listener to lower its priority.\n this.stopListening(this.editor.model.document, 'change');\n // Lower this command listener priority to be sure that refresh() will be called after link & image refresh.\n this.listenTo(this.editor.model.document, 'change', ()=>this.refresh(), {\n priority: 'low'\n });\n }\n}\nfunction insertImages(editor, urls) {\n const imageCommand = editor.commands.get('insertImage');\n // Check if inserting an image is actually possible - it might be possible to only insert a link.\n if (!imageCommand.isEnabled) {\n const notification = editor.plugins.get('Notification');\n const t = editor.locale.t;\n notification.showWarning(t('Could not insert image at the current position.'), {\n title: t('Inserting image failed'),\n namespace: 'ckfinder'\n });\n return;\n }\n editor.execute('insertImage', {\n source: urls\n });\n}\n\nclass CKFinderEditing extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKFinderEditing';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n Notification,\n 'LinkEditing'\n ];\n }\n /**\n * @inheritDoc\n */ init() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {\n /**\n * CKFinder requires at least one plugin providing support for images loaded in the editor. Please\n * make sure either:\n *\n * * {@link module:image/image~Image} (which loads both types of images),\n * * or {@link module:image/imageblock~ImageBlock},\n * * or {@link module:image/imageinline~ImageInline}.\n *\n * is loaded in your editor configuration.\n *\n * @error ckfinder-missing-image-plugin\n */ throw new CKEditorError('ckfinder-missing-image-plugin', editor);\n }\n editor.commands.add('ckfinder', new CKFinderCommand(editor));\n }\n}\n\nclass CKFinder extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKFinder';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n 'Link',\n 'CKFinderUploadAdapter',\n CKFinderEditing,\n CKFinderUI\n ];\n }\n}\n\nexport { CKFinder, CKFinderEditing, CKFinderUI };\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 ckfinder/ckfinderui\n */\n\nimport { icons, Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\n\nimport type CKFinderCommand from './ckfindercommand.js';\n\n/**\n * The CKFinder UI plugin. It introduces the `'ckfinder'` toolbar button.\n */\nexport default class CKFinderUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKFinderUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst componentFactory = editor.ui.componentFactory;\n\t\tconst t = editor.t;\n\n\t\tcomponentFactory.add( 'ckfinder', locale => {\n\t\t\tconst button = this._createButton( ButtonView );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Insert image or file' ),\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tcomponentFactory.add( 'menuBar:ckfinder', locale => {\n\t\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.label = t( 'Image or file' );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\tconst imageInsertUI: ImageInsertUI = editor.plugins.get( 'ImageInsertUI' );\n\n\t\t\timageInsertUI.registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckfinder' )!,\n\n\t\t\t\tbuttonViewCreator: () => {\n\t\t\t\t\tconst button = this.editor.ui.componentFactory.create( 'ckfinder' ) as ButtonView;\n\n\t\t\t\t\tbutton.icon = icons.imageAssetManager;\n\t\t\t\t\tbutton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace image with file manager' ) :\n\t\t\t\t\t\tt( 'Insert image with file manager' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn button;\n\t\t\t\t},\n\n\t\t\t\tformViewCreator: () => {\n\t\t\t\t\tconst button = this.editor.ui.componentFactory.create( 'ckfinder' ) as ButtonView;\n\n\t\t\t\t\tbutton.icon = icons.imageAssetManager;\n\t\t\t\t\tbutton.withText = true;\n\t\t\t\t\tbutton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace with file manager' ) :\n\t\t\t\t\t\tt( 'Insert with file manager' )\n\t\t\t\t\t);\n\n\t\t\t\t\tbutton.on( 'execute', () => {\n\t\t\t\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn button;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a button for CKFinder 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 view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command: CKFinderCommand = editor.commands.get( 'ckfinder' )!;\n\n\t\tview.icon = icons.browseFiles;\n\n\t\tview.bind( 'isEnabled' ).to( command );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckfinder' );\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/* global window */\n\n/**\n * @module ckfinder/ckfindercommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { CKEditorError } from 'ckeditor5/src/utils.js';\nimport type { Notification } from 'ckeditor5/src/ui.js';\n\n/**\n * The CKFinder command. It is used by the {@link module:ckfinder/ckfinderediting~CKFinderEditing CKFinder editing feature}\n * to open the CKFinder file manager to insert an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckfinder' );\n * ```\n *\n * **Note:** This command uses other features to perform tasks:\n * - To insert images the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command\n * from the {@link module:image/image~Image Image feature}.\n * - To insert links to files the {@link module:link/linkcommand~LinkCommand 'link'} command\n * from the {@link module:link/link~Link Link feature}.\n */\nexport default class CKFinderCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// The CKFinder command does not affect data by itself.\n\t\tthis.affectsData = false;\n\n\t\t// Remove default document listener to lower its priority.\n\t\tthis.stopListening( this.editor.model.document, 'change' );\n\n\t\t// Lower this command listener priority to be sure that refresh() will be called after link & image refresh.\n\t\tthis.listenTo( this.editor.model.document, 'change', () => this.refresh(), { priority: 'low' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst imageCommand = this.editor.commands.get( 'insertImage' )!;\n\t\tconst linkCommand = this.editor.commands.get( 'link' )!;\n\n\t\t// The CKFinder command is enabled when one of image or link command is enabled.\n\t\tthis.isEnabled = imageCommand.isEnabled || linkCommand.isEnabled;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst editor = this.editor;\n\n\t\tconst openerMethod = this.editor.config.get( 'ckfinder.openerMethod' ) || 'modal';\n\n\t\tif ( openerMethod != 'popup' && openerMethod != 'modal' ) {\n\t\t\t/**\n\t\t\t * The `ckfinder.openerMethod` must be one of: \"popup\" or \"modal\".\n\t\t\t *\n\t\t\t * @error ckfinder-unknown-openermethod\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckfinder-unknown-openermethod', editor );\n\t\t}\n\n\t\tconst options = this.editor.config.get( 'ckfinder.options' ) || {};\n\n\t\toptions.chooseFiles = true;\n\n\t\t// Cache the user-defined onInit method\n\t\tconst originalOnInit = options.onInit;\n\n\t\t// Pass the lang code to the CKFinder if not defined by user.\n\t\tif ( !options.language ) {\n\t\t\toptions.language = editor.locale.uiLanguage;\n\t\t}\n\n\t\t// The onInit method allows to extend CKFinder's behavior. It is used to attach event listeners to file choosing related events.\n\t\toptions.onInit = finder => {\n\t\t\t// Call original options.onInit if it was defined by user.\n\t\t\tif ( originalOnInit ) {\n\t\t\t\toriginalOnInit( finder );\n\t\t\t}\n\n\t\t\tfinder.on( 'files:choose', ( evt: any ) => {\n\t\t\t\tconst files = evt.data.files.toArray();\n\n\t\t\t\t// Insert links\n\t\t\t\tconst links = files.filter( ( file: any ) => !file.isImage() );\n\t\t\t\tconst images = files.filter( ( file: any ) => file.isImage() );\n\n\t\t\t\tfor ( const linkFile of links ) {\n\t\t\t\t\teditor.execute( 'link', linkFile.getUrl() );\n\t\t\t\t}\n\n\t\t\t\tconst imagesUrls = [];\n\n\t\t\t\tfor ( const image of images ) {\n\t\t\t\t\tconst url = image.getUrl();\n\n\t\t\t\t\timagesUrls.push( url ? url : finder.request( 'file:getProxyUrl', { file: image } ) );\n\t\t\t\t}\n\n\t\t\t\tif ( imagesUrls.length ) {\n\t\t\t\t\tinsertImages( editor, imagesUrls );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tfinder.on( 'file:choose:resizedImage', ( evt: any ) => {\n\t\t\t\tconst resizedUrl = evt.data.resizedUrl;\n\n\t\t\t\tif ( !resizedUrl ) {\n\t\t\t\t\tconst notification: Notification = editor.plugins.get( 'Notification' );\n\t\t\t\t\tconst t = editor.locale.t;\n\n\t\t\t\t\tnotification.showWarning( t( 'Could not obtain resized image URL.' ), {\n\t\t\t\t\t\ttitle: t( 'Selecting resized image failed' ),\n\t\t\t\t\t\tnamespace: 'ckfinder'\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tinsertImages( editor, [ resizedUrl ] );\n\t\t\t} );\n\t\t};\n\n\t\t( window as any ).CKFinder[ openerMethod ]( options );\n\t}\n}\n\nfunction insertImages( editor: Editor, urls: Array<string> ): void {\n\tconst imageCommand = editor.commands.get( 'insertImage' )!;\n\n\t// Check if inserting an image is actually possible - it might be possible to only insert a link.\n\tif ( !imageCommand.isEnabled ) {\n\t\tconst notification: Notification = editor.plugins.get( 'Notification' );\n\t\tconst t = editor.locale.t;\n\n\t\tnotification.showWarning( t( 'Could not insert image at the current position.' ), {\n\t\t\ttitle: t( 'Inserting image failed' ),\n\t\t\tnamespace: 'ckfinder'\n\t\t} );\n\n\t\treturn;\n\t}\n\n\teditor.execute( 'insertImage', { source: urls } );\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 ckfinder/ckfinderediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { CKEditorError } from 'ckeditor5/src/utils.js';\n\nimport CKFinderCommand from './ckfindercommand.js';\n\n/**\n * The CKFinder editing feature. It introduces the {@link module:ckfinder/ckfindercommand~CKFinderCommand CKFinder command}.\n */\nexport default class CKFinderEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKFinderEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ Notification, 'LinkEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.plugins.has( 'ImageBlockEditing' ) && !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\t/**\n\t\t\t * CKFinder requires at least one plugin providing support for images loaded in the editor. Please\n\t\t\t * make sure either:\n\t\t\t *\n\t\t\t * * {@link module:image/image~Image} (which loads both types of images),\n\t\t\t * * or {@link module:image/imageblock~ImageBlock},\n\t\t\t * * or {@link module:image/imageinline~ImageInline}.\n\t\t\t *\n\t\t\t * is loaded in your editor configuration.\n\t\t\t *\n\t\t\t * @error ckfinder-missing-image-plugin\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckfinder-missing-image-plugin', editor );\n\t\t}\n\n\t\teditor.commands.add( 'ckfinder', new CKFinderCommand( 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 ckfinder/ckfinder\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKFinderUI from './ckfinderui.js';\nimport CKFinderEditing from './ckfinderediting.js';\n\n/**\n * The CKFinder feature, a bridge between the CKEditor 5 WYSIWYG editor and the\n * [CKFinder](https://ckeditor.com/ckfinder) file manager and uploader.\n *\n * This is a \"glue\" plugin which enables:\n *\n * * {@link module:ckfinder/ckfinderediting~CKFinderEditing},\n * * {@link module:ckfinder/ckfinderui~CKFinderUI},\n * * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}.\n *\n * See the {@glink features/file-management/ckfinder \"CKFinder integration\" guide} to learn how to configure\n * and use this feature.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload\" guide} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class CKFinder extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKFinder' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'Link', 'CKFinderUploadAdapter', CKFinderEditing, CKFinderUI ] as const;\n\t}\n}\n"]}
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"af":{"dictionary":{"Insert image or file":"Voeg beeld of lêer in","Image or file":"","Could not obtain resized image URL.":"Kon nie die beeld URL vir die aanpassing kry nie.","Selecting resized image failed":"Kon nie die beeld se grootte verander nie","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Inserting image failed":"Beeld kan nie toegevoeg word nie"},getPluralForm(n){return (n != 1);}}}
@@ -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
+ ( e => {
7
+ const { [ 'af' ]: { dictionary, getPluralForm } } = {"af":{"dictionary":{"Insert image or file":"Voeg beeld of lêer in","Image or file":"","Could not obtain resized image URL.":"Kon nie die beeld URL vir die aanpassing kry nie.","Selecting resized image failed":"Kon nie die beeld se grootte verander nie","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Inserting image failed":"Beeld kan nie toegevoeg word nie"},getPluralForm(n){return (n != 1);}}};
8
+ e[ 'af' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'af' ].dictionary = Object.assign( e[ 'af' ].dictionary, dictionary );
10
+ e[ 'af' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"ar":{"dictionary":{"Insert image or file":"إدراج صورة أو ملف","Image or file":"صورة أو ملف","Could not obtain resized image URL.":"تعذر الحصول على عنوان URL الخاص بالصورة التي غُيّرَ حجمُها","Selecting resized image failed":"فشلت عملية تحديد الصورة التي غُيّرَ حجمها","Could not insert image at the current position.":"تعذر إدراج الصورة في الموضع الحالي.","Inserting image failed":"فشلت عملية إدراج الصورة"},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;}}}
@@ -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
+ ( e => {
7
+ const { [ 'ar' ]: { dictionary, getPluralForm } } = {"ar":{"dictionary":{"Insert image or file":"إدراج صورة أو ملف","Image or file":"صورة أو ملف","Could not obtain resized image URL.":"تعذر الحصول على عنوان URL الخاص بالصورة التي غُيّرَ حجمُها","Selecting resized image failed":"فشلت عملية تحديد الصورة التي غُيّرَ حجمها","Could not insert image at the current position.":"تعذر إدراج الصورة في الموضع الحالي.","Inserting image failed":"فشلت عملية إدراج الصورة"},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;}}};
8
+ e[ 'ar' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'ar' ].dictionary = Object.assign( e[ 'ar' ].dictionary, dictionary );
10
+ e[ 'ar' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"az":{"dictionary":{"Insert image or file":"Şəkil və ya fayl əlavə ed","Image or file":"","Could not obtain resized image URL.":"Ölçüsü dəyişmiş təsvirin URL-ni əldə etmək mümkün olmadı","Selecting resized image failed":"Ölçüsü dəyişmiş təsvirin seçilməsi uğursuz oldu","Could not insert image at the current position.":"Şəkili əlavə etmək mümkün deyil","Inserting image failed":"Şəkili əlavə edilmədi"},getPluralForm(n){return (n != 1);}}}
@@ -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
+ ( e => {
7
+ const { [ 'az' ]: { dictionary, getPluralForm } } = {"az":{"dictionary":{"Insert image or file":"Şəkil və ya fayl əlavə ed","Image or file":"","Could not obtain resized image URL.":"Ölçüsü dəyişmiş təsvirin URL-ni əldə etmək mümkün olmadı","Selecting resized image failed":"Ölçüsü dəyişmiş təsvirin seçilməsi uğursuz oldu","Could not insert image at the current position.":"Şəkili əlavə etmək mümkün deyil","Inserting image failed":"Şəkili əlavə edilmədi"},getPluralForm(n){return (n != 1);}}};
8
+ e[ 'az' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'az' ].dictionary = Object.assign( e[ 'az' ].dictionary, dictionary );
10
+ e[ 'az' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"bg":{"dictionary":{"Insert image or file":"Вмъкни изображение или файл","Image or file":"Изображение или файл","Could not obtain resized image URL.":"Не може да бъде придобит промененият уеб адрес на изображението.","Selecting resized image failed":"Избирането на промененото изображение не е успешно","Could not insert image at the current position.":"На текущата позиция не може да се вмъкне изображение.","Inserting image failed":"Вмъкването на изображение не е успешно"},getPluralForm(n){return (n != 1);}}}
@@ -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
+ ( e => {
7
+ const { [ 'bg' ]: { dictionary, getPluralForm } } = {"bg":{"dictionary":{"Insert image or file":"Вмъкни изображение или файл","Image or file":"Изображение или файл","Could not obtain resized image URL.":"Не може да бъде придобит промененият уеб адрес на изображението.","Selecting resized image failed":"Избирането на промененото изображение не е успешно","Could not insert image at the current position.":"На текущата позиция не може да се вмъкне изображение.","Inserting image failed":"Вмъкването на изображение не е успешно"},getPluralForm(n){return (n != 1);}}};
8
+ e[ 'bg' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'bg' ].dictionary = Object.assign( e[ 'bg' ].dictionary, dictionary );
10
+ e[ 'bg' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"bn":{"dictionary":{"Insert image or file":"ছবি অথবা ফাইল ঢোকান","Image or file":"ছবি বা ফাইল","Could not obtain resized image URL.":"আকার পরিবর্তন করা ছবির URL পাওয়া যাচ্ছে না।","Selecting resized image failed":"আকার পরিবর্তন করা ছবি নির্বাচন করা ব্যর্থ হয়েছে","Could not insert image at the current position.":"বর্তমান অবস্থানে ছবি ঢোকানো যাচ্ছে না।","Inserting image failed":"ছবি ঢোকানো ব্যর্থ হয়েছে।"},getPluralForm(n){return (n != 1);}}}
@@ -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
+ ( e => {
7
+ const { [ 'bn' ]: { dictionary, getPluralForm } } = {"bn":{"dictionary":{"Insert image or file":"ছবি অথবা ফাইল ঢোকান","Image or file":"ছবি বা ফাইল","Could not obtain resized image URL.":"আকার পরিবর্তন করা ছবির URL পাওয়া যাচ্ছে না।","Selecting resized image failed":"আকার পরিবর্তন করা ছবি নির্বাচন করা ব্যর্থ হয়েছে","Could not insert image at the current position.":"বর্তমান অবস্থানে ছবি ঢোকানো যাচ্ছে না।","Inserting image failed":"ছবি ঢোকানো ব্যর্থ হয়েছে।"},getPluralForm(n){return (n != 1);}}};
8
+ e[ 'bn' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'bn' ].dictionary = Object.assign( e[ 'bn' ].dictionary, dictionary );
10
+ e[ 'bn' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"bs":{"dictionary":{"Insert image or file":"Umetni sliku ili datoteku","Image or file":"","Could not obtain resized image URL.":"Nije moguće dobiti URL slike.","Selecting resized image failed":"Odabir slike nije uspješan","Could not insert image at the current position.":"Nije moguće umetnuti sliku na poziciju.","Inserting image failed":"Umetanje slike neuspješno"},getPluralForm(n){return (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);}}}
@@ -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
+ ( e => {
7
+ const { [ 'bs' ]: { dictionary, getPluralForm } } = {"bs":{"dictionary":{"Insert image or file":"Umetni sliku ili datoteku","Image or file":"","Could not obtain resized image URL.":"Nije moguće dobiti URL slike.","Selecting resized image failed":"Odabir slike nije uspješan","Could not insert image at the current position.":"Nije moguće umetnuti sliku na poziciju.","Inserting image failed":"Umetanje slike neuspješno"},getPluralForm(n){return (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);}}};
8
+ e[ 'bs' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'bs' ].dictionary = Object.assign( e[ 'bs' ].dictionary, dictionary );
10
+ e[ 'bs' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"ca":{"dictionary":{"Insert image or file":"Introduir una imatge o un fitxer","Image or file":"Imatge o arxiu","Could not obtain resized image URL.":"No s'ha pogut obtenir l'URL de la imatge redimensionada.","Selecting resized image failed":"S'ha produït un error en seleccionar la imatge redimensionada","Could not insert image at the current position.":"No s'ha pogut inserir la imatge a la posició actual.","Inserting image failed":"No s'ha pogut inserir la imatge"},getPluralForm(n){return (n != 1);}}}
@@ -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
+ ( e => {
7
+ const { [ 'ca' ]: { dictionary, getPluralForm } } = {"ca":{"dictionary":{"Insert image or file":"Introduir una imatge o un fitxer","Image or file":"Imatge o arxiu","Could not obtain resized image URL.":"No s'ha pogut obtenir l'URL de la imatge redimensionada.","Selecting resized image failed":"S'ha produït un error en seleccionar la imatge redimensionada","Could not insert image at the current position.":"No s'ha pogut inserir la imatge a la posició actual.","Inserting image failed":"No s'ha pogut inserir la imatge"},getPluralForm(n){return (n != 1);}}};
8
+ e[ 'ca' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'ca' ].dictionary = Object.assign( e[ 'ca' ].dictionary, dictionary );
10
+ e[ 'ca' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,8 @@
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
+ import type { Translations } from 'ckeditor5';
7
+ declare const translations: Translations;
8
+ export default translations;
@@ -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 default {"cs":{"dictionary":{"Insert image or file":"Vložit obrázek nebo soubor","Image or file":"Obrázek nebo soubor","Could not obtain resized image URL.":"Nelze získat URL obrázku se změněnou velikostí.","Selecting resized image failed":"Výběr obrázku se změněnou velikostí selhal","Could not insert image at the current position.":"Na současnou pozici nelze vložit obrázek.","Inserting image failed":"Vložení obrázku selhalo"},getPluralForm(n){return (n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;}}}
@@ -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
+ ( e => {
7
+ const { [ 'cs' ]: { dictionary, getPluralForm } } = {"cs":{"dictionary":{"Insert image or file":"Vložit obrázek nebo soubor","Image or file":"Obrázek nebo soubor","Could not obtain resized image URL.":"Nelze získat URL obrázku se změněnou velikostí.","Selecting resized image failed":"Výběr obrázku se změněnou velikostí selhal","Could not insert image at the current position.":"Na současnou pozici nelze vložit obrázek.","Inserting image failed":"Vložení obrázku selhalo"},getPluralForm(n){return (n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;}}};
8
+ e[ 'cs' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'cs' ].dictionary = Object.assign( e[ 'cs' ].dictionary, dictionary );
10
+ e[ 'cs' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );