@ckeditor/ckeditor5-html-embed 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 (165) hide show
  1. package/build/html-embed.js +1 -1
  2. package/dist/index-content.css +4 -0
  3. package/dist/index-editor.css +43 -0
  4. package/dist/index.css +68 -0
  5. package/dist/index.css.map +1 -0
  6. package/dist/index.js +483 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/translations/ar.d.ts +8 -0
  9. package/dist/translations/ar.js +5 -0
  10. package/dist/translations/ar.umd.js +11 -0
  11. package/dist/translations/bg.d.ts +8 -0
  12. package/dist/translations/bg.js +5 -0
  13. package/dist/translations/bg.umd.js +11 -0
  14. package/dist/translations/bn.d.ts +8 -0
  15. package/dist/translations/bn.js +5 -0
  16. package/dist/translations/bn.umd.js +11 -0
  17. package/dist/translations/bs.d.ts +8 -0
  18. package/dist/translations/bs.js +5 -0
  19. package/dist/translations/bs.umd.js +11 -0
  20. package/dist/translations/ca.d.ts +8 -0
  21. package/dist/translations/ca.js +5 -0
  22. package/dist/translations/ca.umd.js +11 -0
  23. package/dist/translations/cs.d.ts +8 -0
  24. package/dist/translations/cs.js +5 -0
  25. package/dist/translations/cs.umd.js +11 -0
  26. package/dist/translations/da.d.ts +8 -0
  27. package/dist/translations/da.js +5 -0
  28. package/dist/translations/da.umd.js +11 -0
  29. package/dist/translations/de-ch.d.ts +8 -0
  30. package/dist/translations/de-ch.js +5 -0
  31. package/dist/translations/de-ch.umd.js +11 -0
  32. package/dist/translations/de.d.ts +8 -0
  33. package/dist/translations/de.js +5 -0
  34. package/dist/translations/de.umd.js +11 -0
  35. package/dist/translations/el.d.ts +8 -0
  36. package/dist/translations/el.js +5 -0
  37. package/dist/translations/el.umd.js +11 -0
  38. package/dist/translations/en-au.d.ts +8 -0
  39. package/dist/translations/en-au.js +5 -0
  40. package/dist/translations/en-au.umd.js +11 -0
  41. package/dist/translations/en.d.ts +8 -0
  42. package/dist/translations/en.js +5 -0
  43. package/dist/translations/en.umd.js +11 -0
  44. package/dist/translations/es.d.ts +8 -0
  45. package/dist/translations/es.js +5 -0
  46. package/dist/translations/es.umd.js +11 -0
  47. package/dist/translations/et.d.ts +8 -0
  48. package/dist/translations/et.js +5 -0
  49. package/dist/translations/et.umd.js +11 -0
  50. package/dist/translations/fa.d.ts +8 -0
  51. package/dist/translations/fa.js +5 -0
  52. package/dist/translations/fa.umd.js +11 -0
  53. package/dist/translations/fi.d.ts +8 -0
  54. package/dist/translations/fi.js +5 -0
  55. package/dist/translations/fi.umd.js +11 -0
  56. package/dist/translations/fr.d.ts +8 -0
  57. package/dist/translations/fr.js +5 -0
  58. package/dist/translations/fr.umd.js +11 -0
  59. package/dist/translations/gl.d.ts +8 -0
  60. package/dist/translations/gl.js +5 -0
  61. package/dist/translations/gl.umd.js +11 -0
  62. package/dist/translations/he.d.ts +8 -0
  63. package/dist/translations/he.js +5 -0
  64. package/dist/translations/he.umd.js +11 -0
  65. package/dist/translations/hi.d.ts +8 -0
  66. package/dist/translations/hi.js +5 -0
  67. package/dist/translations/hi.umd.js +11 -0
  68. package/dist/translations/hr.d.ts +8 -0
  69. package/dist/translations/hr.js +5 -0
  70. package/dist/translations/hr.umd.js +11 -0
  71. package/dist/translations/hu.d.ts +8 -0
  72. package/dist/translations/hu.js +5 -0
  73. package/dist/translations/hu.umd.js +11 -0
  74. package/dist/translations/id.d.ts +8 -0
  75. package/dist/translations/id.js +5 -0
  76. package/dist/translations/id.umd.js +11 -0
  77. package/dist/translations/it.d.ts +8 -0
  78. package/dist/translations/it.js +5 -0
  79. package/dist/translations/it.umd.js +11 -0
  80. package/dist/translations/ja.d.ts +8 -0
  81. package/dist/translations/ja.js +5 -0
  82. package/dist/translations/ja.umd.js +11 -0
  83. package/dist/translations/jv.d.ts +8 -0
  84. package/dist/translations/jv.js +5 -0
  85. package/dist/translations/jv.umd.js +11 -0
  86. package/dist/translations/ko.d.ts +8 -0
  87. package/dist/translations/ko.js +5 -0
  88. package/dist/translations/ko.umd.js +11 -0
  89. package/dist/translations/lt.d.ts +8 -0
  90. package/dist/translations/lt.js +5 -0
  91. package/dist/translations/lt.umd.js +11 -0
  92. package/dist/translations/lv.d.ts +8 -0
  93. package/dist/translations/lv.js +5 -0
  94. package/dist/translations/lv.umd.js +11 -0
  95. package/dist/translations/ms.d.ts +8 -0
  96. package/dist/translations/ms.js +5 -0
  97. package/dist/translations/ms.umd.js +11 -0
  98. package/dist/translations/nl.d.ts +8 -0
  99. package/dist/translations/nl.js +5 -0
  100. package/dist/translations/nl.umd.js +11 -0
  101. package/dist/translations/no.d.ts +8 -0
  102. package/dist/translations/no.js +5 -0
  103. package/dist/translations/no.umd.js +11 -0
  104. package/dist/translations/pl.d.ts +8 -0
  105. package/dist/translations/pl.js +5 -0
  106. package/dist/translations/pl.umd.js +11 -0
  107. package/dist/translations/pt-br.d.ts +8 -0
  108. package/dist/translations/pt-br.js +5 -0
  109. package/dist/translations/pt-br.umd.js +11 -0
  110. package/dist/translations/pt.d.ts +8 -0
  111. package/dist/translations/pt.js +5 -0
  112. package/dist/translations/pt.umd.js +11 -0
  113. package/dist/translations/ro.d.ts +8 -0
  114. package/dist/translations/ro.js +5 -0
  115. package/dist/translations/ro.umd.js +11 -0
  116. package/dist/translations/ru.d.ts +8 -0
  117. package/dist/translations/ru.js +5 -0
  118. package/dist/translations/ru.umd.js +11 -0
  119. package/dist/translations/sk.d.ts +8 -0
  120. package/dist/translations/sk.js +5 -0
  121. package/dist/translations/sk.umd.js +11 -0
  122. package/dist/translations/sl.d.ts +8 -0
  123. package/dist/translations/sl.js +5 -0
  124. package/dist/translations/sl.umd.js +11 -0
  125. package/dist/translations/sr-latn.d.ts +8 -0
  126. package/dist/translations/sr-latn.js +5 -0
  127. package/dist/translations/sr-latn.umd.js +11 -0
  128. package/dist/translations/sr.d.ts +8 -0
  129. package/dist/translations/sr.js +5 -0
  130. package/dist/translations/sr.umd.js +11 -0
  131. package/dist/translations/sv.d.ts +8 -0
  132. package/dist/translations/sv.js +5 -0
  133. package/dist/translations/sv.umd.js +11 -0
  134. package/dist/translations/th.d.ts +8 -0
  135. package/dist/translations/th.js +5 -0
  136. package/dist/translations/th.umd.js +11 -0
  137. package/dist/translations/tr.d.ts +8 -0
  138. package/dist/translations/tr.js +5 -0
  139. package/dist/translations/tr.umd.js +11 -0
  140. package/dist/translations/uk.d.ts +8 -0
  141. package/dist/translations/uk.js +5 -0
  142. package/dist/translations/uk.umd.js +11 -0
  143. package/dist/translations/ur.d.ts +8 -0
  144. package/dist/translations/ur.js +5 -0
  145. package/dist/translations/ur.umd.js +11 -0
  146. package/dist/translations/uz.d.ts +8 -0
  147. package/dist/translations/uz.js +5 -0
  148. package/dist/translations/uz.umd.js +11 -0
  149. package/dist/translations/vi.d.ts +8 -0
  150. package/dist/translations/vi.js +5 -0
  151. package/dist/translations/vi.umd.js +11 -0
  152. package/dist/translations/zh-cn.d.ts +8 -0
  153. package/dist/translations/zh-cn.js +5 -0
  154. package/dist/translations/zh-cn.umd.js +11 -0
  155. package/dist/translations/zh.d.ts +8 -0
  156. package/dist/translations/zh.js +5 -0
  157. package/dist/translations/zh.umd.js +11 -0
  158. package/dist/types/augmentation.d.ts +28 -0
  159. package/dist/types/htmlembed.d.ts +32 -0
  160. package/dist/types/htmlembedcommand.d.ts +48 -0
  161. package/dist/types/htmlembedconfig.d.ts +90 -0
  162. package/dist/types/htmlembedediting.d.ts +44 -0
  163. package/dist/types/htmlembedui.d.ts +29 -0
  164. package/dist/types/index.d.ts +17 -0
  165. package/package.json +3 -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 { [ 'zh' ]: { dictionary, getPluralForm } } = {"zh":{"dictionary":{"Insert HTML":"輸入HTML","HTML snippet":"HTML標籤","Paste raw HTML here...":"在此貼上純HTML","Edit source":"編輯HTML","Save changes":"儲存變更","No preview available":"無法顯示預覽","Empty snippet content":"HTML標籤中無內容"},getPluralForm(n){return 0;}}};
8
+ e[ 'zh' ] ||= { dictionary: {}, getPluralForm: null };
9
+ e[ 'zh' ].dictionary = Object.assign( e[ 'zh' ].dictionary, dictionary );
10
+ e[ 'zh' ].getPluralForm = getPluralForm;
11
+ } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import type { HtmlEmbed, HtmlEmbedCommand, HtmlEmbedConfig, HtmlEmbedEditing, HtmlEmbedUI } from './index.js';
10
+ declare module '@ckeditor/ckeditor5-core' {
11
+ interface EditorConfig {
12
+ /**
13
+ * The configuration of the HTML embed feature. Introduced by the {@link module:html-embed/htmlembedediting~HtmlEmbedEditing}
14
+ * feature.
15
+ *
16
+ * Read more in {@link module:core/editor/editorconfig~EditorConfig all editor options}.
17
+ */
18
+ htmlEmbed?: HtmlEmbedConfig;
19
+ }
20
+ interface PluginsMap {
21
+ [HtmlEmbed.pluginName]: HtmlEmbed;
22
+ [HtmlEmbedEditing.pluginName]: HtmlEmbedEditing;
23
+ [HtmlEmbedUI.pluginName]: HtmlEmbedUI;
24
+ }
25
+ interface CommandsMap {
26
+ htmlEmbed: HtmlEmbedCommand;
27
+ }
28
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module html-embed/htmlembed
11
+ */
12
+ import { Plugin } from 'ckeditor5/src/core.js';
13
+ import { Widget } from 'ckeditor5/src/widget.js';
14
+ import HtmlEmbedEditing from './htmlembedediting.js';
15
+ import HtmlEmbedUI from './htmlembedui.js';
16
+ /**
17
+ * The HTML embed feature.
18
+ *
19
+ * It allows inserting HTML snippets directly into the editor.
20
+ *
21
+ * For a detailed overview, check the {@glink features/html/html-embed HTML embed feature} documentation.
22
+ */
23
+ export default class HtmlEmbed extends Plugin {
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get requires(): readonly [typeof HtmlEmbedEditing, typeof HtmlEmbedUI, typeof Widget];
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static get pluginName(): "HtmlEmbed";
32
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import { Command } from 'ckeditor5/src/core.js';
10
+ /**
11
+ * The insert HTML embed element command.
12
+ *
13
+ * The command is registered by {@link module:html-embed/htmlembedediting~HtmlEmbedEditing} as `'htmlEmbed'`.
14
+ *
15
+ * To insert an empty HTML embed element at the current selection, execute the command:
16
+ *
17
+ * ```ts
18
+ * editor.execute( 'htmlEmbed' );
19
+ * ```
20
+ *
21
+ * You can specify the initial content of a new HTML embed in the argument:
22
+ *
23
+ * ```ts
24
+ * editor.execute( 'htmlEmbed', '<b>Initial content.</b>' );
25
+ * ```
26
+ *
27
+ * To update the content of the HTML embed, select it in the model and pass the content in the argument:
28
+ *
29
+ * ```ts
30
+ * editor.execute( 'htmlEmbed', '<b>New content of an existing embed.</b>' );
31
+ * ```
32
+ */
33
+ export default class HtmlEmbedCommand extends Command {
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ refresh(): void;
38
+ /**
39
+ * Executes the command, which either:
40
+ *
41
+ * * creates and inserts a new HTML embed element if none was selected,
42
+ * * updates the content of the HTML embed if one was selected.
43
+ *
44
+ * @fires execute
45
+ * @param value When passed, the value (content) will be set on a new embed or a selected one.
46
+ */
47
+ execute(value?: string): void;
48
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module html-embed/htmlembedconfig
11
+ */
12
+ /**
13
+ * The configuration of the HTML embed feature.
14
+ *
15
+ * ```ts
16
+ * ClassicEditor
17
+ * .create( editorElement, {
18
+ * htmlEmbed: ... // HTML embed feature options.
19
+ * } )
20
+ * .then( ... )
21
+ * .catch( ... );
22
+ * ```
23
+ *
24
+ * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
25
+ */
26
+ export interface HtmlEmbedConfig {
27
+ /**
28
+ * Whether the feature should render previews of the embedded HTML.
29
+ *
30
+ * When set to `true`, the feature will produce a preview of the inserted HTML based on a sanitized
31
+ * version of the HTML provided by the user.
32
+ *
33
+ * The function responsible for sanitizing the HTML needs to be specified in
34
+ * {@link module:html-embed/htmlembedconfig~HtmlEmbedConfig#sanitizeHtml `config.htmlEmbed.sanitizeHtml()`}.
35
+ *
36
+ * Read more about the security aspect of this feature in the {@glink features/html/html-embed#security "Security"} section of
37
+ * the {@glink features/html/html-embed HTML embed} feature guide.
38
+ */
39
+ showPreviews?: boolean;
40
+ /**
41
+ * Callback used to sanitize the HTML provided by the user when generating previews of it in the editor.
42
+ *
43
+ * We strongly recommend overwriting the default function to avoid XSS vulnerabilities.
44
+ *
45
+ * Read more about the security aspect of this feature in the {@glink features/html/html-embed#security "Security"} section of
46
+ * the {@glink features/html/html-embed HTML embed} feature guide.
47
+ *
48
+ * The function receives the input HTML (as a string), and should return an object
49
+ * that matches the {@link module:html-embed/htmlembedconfig~HtmlEmbedSanitizeOutput} interface.
50
+ *
51
+ * ```ts
52
+ * ClassicEditor
53
+ * .create( editorElement, {
54
+ * htmlEmbed: {
55
+ * showPreviews: true,
56
+ * sanitizeHtml( inputHtml ) {
57
+ * // Strip unsafe elements and attributes, e.g.:
58
+ * // the `<script>` elements and `on*` attributes.
59
+ * const outputHtml = sanitize( inputHtml );
60
+ *
61
+ * return {
62
+ * html: outputHtml,
63
+ * // true or false depending on whether the sanitizer stripped anything.
64
+ * hasChanged: ...
65
+ * };
66
+ * },
67
+ * }
68
+ * } )
69
+ * .then( ... )
70
+ * .catch( ... );
71
+ * ```
72
+ *
73
+ * **Note:** The function is used only when the feature
74
+ * {@link module:html-embed/htmlembedconfig~HtmlEmbedConfig#showPreviews is configured to render previews}.
75
+ */
76
+ sanitizeHtml?: (html: string) => HtmlEmbedSanitizeOutput;
77
+ }
78
+ /**
79
+ * An object returned by the {@link module:html-embed/htmlembedconfig~HtmlEmbedConfig#sanitizeHtml} function.
80
+ */
81
+ export interface HtmlEmbedSanitizeOutput {
82
+ /**
83
+ * An output (safe) HTML that will be inserted into the {@glink framework/architecture/editing-engine editing view}.
84
+ */
85
+ html: string;
86
+ /**
87
+ * A flag that indicates whether the output HTML is different than the input value.
88
+ */
89
+ hasChanged: boolean;
90
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module html-embed/htmlembedediting
11
+ */
12
+ import { Plugin, type Editor } from 'ckeditor5/src/core.js';
13
+ import '../theme/htmlembed.css';
14
+ /**
15
+ * The HTML embed editing feature.
16
+ */
17
+ export default class HtmlEmbedEditing extends Plugin {
18
+ /**
19
+ * Keeps references to {@link module:ui/button/buttonview~ButtonView edit, save, and cancel} button instances created for
20
+ * each widget so they can be destroyed if they are no longer in DOM after the editing view was re-rendered.
21
+ */
22
+ private _widgetButtonViewReferences;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get pluginName(): "HtmlEmbedEditing";
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ constructor(editor: Editor);
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ init(): void;
35
+ /**
36
+ * Prepares converters for the feature.
37
+ */
38
+ private _setupConversion;
39
+ }
40
+ export interface RawHtmlApi {
41
+ makeEditable(): void;
42
+ save(newValue: string): void;
43
+ cancel(): void;
44
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module html-embed/htmlembedui
11
+ */
12
+ import { Plugin } from 'ckeditor5/src/core.js';
13
+ /**
14
+ * The HTML embed UI plugin.
15
+ */
16
+ export default class HtmlEmbedUI extends Plugin {
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get pluginName(): "HtmlEmbedUI";
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ init(): void;
25
+ /**
26
+ * Creates a button for html embed command to use either in toolbar or in menu bar.
27
+ */
28
+ private _createButton;
29
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module html-embed
11
+ */
12
+ export { default as HtmlEmbed } from './htmlembed.js';
13
+ export { default as HtmlEmbedEditing } from './htmlembedediting.js';
14
+ export { default as HtmlEmbedUI } from './htmlembedui.js';
15
+ export type { default as HtmlEmbedCommand } from './htmlembedcommand.js';
16
+ export type { HtmlEmbedConfig } from './htmlembedconfig.js';
17
+ import './augmentation.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-html-embed",
3
- "version": "41.3.1",
3
+ "version": "41.4.0",
4
4
  "description": "HTML embed feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "41.3.1"
16
+ "ckeditor5": "41.4.0"
17
17
  },
18
18
  "author": "CKSource (http://cksource.com/)",
19
19
  "license": "GPL-2.0-or-later",
@@ -25,6 +25,7 @@
25
25
  "directory": "packages/ckeditor5-html-embed"
26
26
  },
27
27
  "files": [
28
+ "dist",
28
29
  "lang",
29
30
  "src/**/*.js",
30
31
  "src/**/*.d.ts",