@ckeditor/ckeditor5-paragraph 41.4.2 → 42.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,6 +11,12 @@ This package implements paragraph support for CKEditor 5.
11
11
 
12
12
  See the [`@ckeditor/ckeditor5-paragraph` package](https://ckeditor.com/docs/ckeditor5/latest/api/paragraph.html) page in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
13
13
 
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install ckeditor5
18
+ ```
19
+
14
20
  ## License
15
21
 
16
22
  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).
package/dist/index.js CHANGED
@@ -6,10 +6,17 @@ import { Command, Plugin, icons } from '@ckeditor/ckeditor5-core/dist/index.js';
6
6
  import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
7
7
  import { ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
8
8
 
9
- class ParagraphCommand extends Command {
9
+ /**
10
+ * The paragraph command.
11
+ */ class ParagraphCommand extends Command {
12
+ constructor(editor){
13
+ super(editor);
14
+ // Since this command may pass selection in execution block, it should be checked directly.
15
+ this._isEnabledBasedOnSelection = false;
16
+ }
10
17
  /**
11
- * @inheritDoc
12
- */ refresh() {
18
+ * @inheritDoc
19
+ */ refresh() {
13
20
  const model = this.editor.model;
14
21
  const document = model.document;
15
22
  const block = first(document.selection.getSelectedBlocks());
@@ -17,14 +24,14 @@ class ParagraphCommand extends Command {
17
24
  this.isEnabled = !!block && checkCanBecomeParagraph(block, model.schema);
18
25
  }
19
26
  /**
20
- * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection
21
- * will be turned to paragraphs.
22
- *
23
- * @fires execute
24
- * @param options Options for the executed command.
25
- * @param options.selection The selection that the command should be applied to. By default,
26
- * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.
27
- */ execute(options = {}) {
27
+ * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection
28
+ * will be turned to paragraphs.
29
+ *
30
+ * @fires execute
31
+ * @param options Options for the executed command.
32
+ * @param options.selection The selection that the command should be applied to. By default,
33
+ * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.
34
+ */ execute(options = {}) {
28
35
  const model = this.editor.model;
29
36
  const document = model.document;
30
37
  const selection = options.selection || document.selection;
@@ -41,11 +48,6 @@ class ParagraphCommand extends Command {
41
48
  }
42
49
  });
43
50
  }
44
- constructor(editor){
45
- super(editor);
46
- // Since this command may pass selection in execution block, it should be checked directly.
47
- this._isEnabledBasedOnSelection = false;
48
- }
49
51
  }
50
52
  /**
51
53
  * Checks whether the given block can be replaced by a paragraph.
@@ -56,15 +58,36 @@ class ParagraphCommand extends Command {
56
58
  return schema.checkChild(block.parent, 'paragraph') && !schema.isObject(block);
57
59
  }
58
60
 
59
- class InsertParagraphCommand extends Command {
61
+ /**
62
+ * The insert paragraph command. It inserts a new paragraph at a specific
63
+ * {@link module:engine/model/position~Position document position}.
64
+ *
65
+ * ```ts
66
+ * // Insert a new paragraph before an element in the document.
67
+ * editor.execute( 'insertParagraph', {
68
+ * position: editor.model.createPositionBefore( element )
69
+ * } );
70
+ * ```
71
+ *
72
+ * If a paragraph is disallowed in the context of the specific position, the command
73
+ * will attempt to split position ancestors to find a place where it is possible
74
+ * to insert a paragraph.
75
+ *
76
+ * **Note**: This command moves the selection to the inserted paragraph.
77
+ */ class InsertParagraphCommand extends Command {
78
+ constructor(editor){
79
+ super(editor);
80
+ // Since this command passes position in execution block instead of selection, it should be checked directly.
81
+ this._isEnabledBasedOnSelection = false;
82
+ }
60
83
  /**
61
- * Executes the command.
62
- *
63
- * @param options Options for the executed command.
64
- * @param options.position The model position at which the new paragraph will be inserted.
65
- * @param options.attributes Attributes keys and values to set on a inserted paragraph.
66
- * @fires execute
67
- */ execute(options) {
84
+ * Executes the command.
85
+ *
86
+ * @param options Options for the executed command.
87
+ * @param options.position The model position at which the new paragraph will be inserted.
88
+ * @param options.attributes Attributes keys and values to set on a inserted paragraph.
89
+ * @fires execute
90
+ */ execute(options) {
68
91
  const model = this.editor.model;
69
92
  const attributes = options.attributes;
70
93
  let position = options.position;
@@ -86,8 +109,8 @@ class InsertParagraphCommand extends Command {
86
109
  });
87
110
  }
88
111
  /**
89
- * Returns the best position to insert a new paragraph.
90
- */ _findPositionToInsertParagraph(position, writer) {
112
+ * Returns the best position to insert a new paragraph.
113
+ */ _findPositionToInsertParagraph(position, writer) {
91
114
  const model = this.editor.model;
92
115
  if (model.schema.checkChild(position, 'paragraph')) {
93
116
  return position;
@@ -113,11 +136,6 @@ class InsertParagraphCommand extends Command {
113
136
  }
114
137
  return writer.split(position, allowedParent).position;
115
138
  }
116
- constructor(editor){
117
- super(editor);
118
- // Since this command passes position in execution block instead of selection, it should be checked directly.
119
- this._isEnabledBasedOnSelection = false;
120
- }
121
139
  }
122
140
 
123
141
  /**
@@ -133,13 +151,13 @@ class InsertParagraphCommand extends Command {
133
151
  * that inserts a new paragraph at a specified location in the model.
134
152
  */ class Paragraph extends Plugin {
135
153
  /**
136
- * @inheritDoc
137
- */ static get pluginName() {
154
+ * @inheritDoc
155
+ */ static get pluginName() {
138
156
  return 'Paragraph';
139
157
  }
140
158
  /**
141
- * @inheritDoc
142
- */ init() {
159
+ * @inheritDoc
160
+ */ init() {
143
161
  const editor = this.editor;
144
162
  const model = editor.model;
145
163
  editor.commands.add('paragraph', new ParagraphCommand(editor));
@@ -168,75 +186,90 @@ class InsertParagraphCommand extends Command {
168
186
  converterPriority: 'low'
169
187
  });
170
188
  }
189
+ /**
190
+ * A list of element names which should be treated by the autoparagraphing algorithms as
191
+ * paragraph-like. This means that e.g. the following content:
192
+ *
193
+ * ```html
194
+ * <h1>Foo</h1>
195
+ * <table>
196
+ * <tr>
197
+ * <td>X</td>
198
+ * <td>
199
+ * <ul>
200
+ * <li>Y</li>
201
+ * <li>Z</li>
202
+ * </ul>
203
+ * </td>
204
+ * </tr>
205
+ * </table>
206
+ * ```
207
+ *
208
+ * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.
209
+ * Hence, if none of the features is going to convert those elements the above content will be automatically handled
210
+ * by the paragraph feature and converted to:
211
+ *
212
+ * ```html
213
+ * <p>Foo</p>
214
+ * <p>X</p>
215
+ * <p>Y</p>
216
+ * <p>Z</p>
217
+ * ```
218
+ *
219
+ * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements
220
+ * have a priority upon conversion.
221
+ */ static paragraphLikeElements = new Set([
222
+ 'blockquote',
223
+ 'dd',
224
+ 'div',
225
+ 'dt',
226
+ 'h1',
227
+ 'h2',
228
+ 'h3',
229
+ 'h4',
230
+ 'h5',
231
+ 'h6',
232
+ 'li',
233
+ 'p',
234
+ 'td',
235
+ 'th'
236
+ ]);
171
237
  }
238
+
172
239
  /**
173
- * A list of element names which should be treated by the autoparagraphing algorithms as
174
- * paragraph-like. This means that e.g. the following content:
240
+ * This plugin defines the `'paragraph'` button. It can be used together with
241
+ * {@link module:heading/headingbuttonsui~HeadingButtonsUI} to replace the standard heading dropdown.
175
242
  *
176
- * ```html
177
- * <h1>Foo</h1>
178
- * <table>
179
- * <tr>
180
- * <td>X</td>
181
- * <td>
182
- * <ul>
183
- * <li>Y</li>
184
- * <li>Z</li>
185
- * </ul>
186
- * </td>
187
- * </tr>
188
- * </table>
189
- * ```
190
- *
191
- * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.
192
- * Hence, if none of the features is going to convert those elements the above content will be automatically handled
193
- * by the paragraph feature and converted to:
243
+ * This plugin is not loaded automatically by the {@link module:paragraph/paragraph~Paragraph} plugin. It must
244
+ * be added manually.
194
245
  *
195
- * ```html
196
- * <p>Foo</p>
197
- * <p>X</p>
198
- * <p>Y</p>
199
- * <p>Z</p>
246
+ * ```ts
247
+ * ClassicEditor
248
+ * .create( {
249
+ * plugins: [ ..., Heading, Paragraph, HeadingButtonsUI, ParagraphButtonUI ]
250
+ * toolbar: [ 'paragraph', 'heading1', 'heading2', 'heading3' ]
251
+ * } )
252
+ * .then( ... )
253
+ * .catch( ... );
200
254
  * ```
201
- *
202
- * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements
203
- * have a priority upon conversion.
204
- */ Paragraph.paragraphLikeElements = new Set([
205
- 'blockquote',
206
- 'dd',
207
- 'div',
208
- 'dt',
209
- 'h1',
210
- 'h2',
211
- 'h3',
212
- 'h4',
213
- 'h5',
214
- 'h6',
215
- 'li',
216
- 'p',
217
- 'td',
218
- 'th'
219
- ]);
220
-
221
- const icon = icons.paragraph;
222
- class ParagraphButtonUI extends Plugin {
255
+ */ class ParagraphButtonUI extends Plugin {
223
256
  /**
224
- * @inheritDoc
225
- */ static get requires() {
257
+ * @inheritDoc
258
+ */ static get requires() {
226
259
  return [
227
260
  Paragraph
228
261
  ];
229
262
  }
230
263
  /**
231
- * @inheritDoc
232
- */ init() {
264
+ * @inheritDoc
265
+ */ init() {
233
266
  const editor = this.editor;
234
267
  const t = editor.t;
235
268
  editor.ui.componentFactory.add('paragraph', (locale)=>{
236
269
  const view = new ButtonView(locale);
237
270
  const command = editor.commands.get('paragraph');
238
271
  view.label = t('Paragraph');
239
- view.icon = icon;
272
+ view.icon = icons.paragraph;
240
273
  view.tooltip = true;
241
274
  view.isToggleable = true;
242
275
  view.bind('isEnabled').to(command);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/paragraphcommand.ts","../src/insertparagraphcommand.ts","../src/paragraph.ts","../src/paragraphbuttonui.ts"],"names":["ParagraphCommand","Command","refresh","model","editor","document","block","first","selection","getSelectedBlocks","value","is","isEnabled","checkCanBecomeParagraph","schema","execute","options","canEditAt","change","writer","blocks","rename","constructor","_isEnabledBasedOnSelection","checkChild","parent","isObject","InsertParagraphCommand","attributes","position","_findPositionToInsertParagraph","paragraph","createElement","setAllowedAttributes","insertContent","setSelection","allowedParent","findAllowedParent","positionParent","isTextAllowed","isEmpty","isAtEnd","createPositionAfter","isAtStart","createPositionBefore","split","Paragraph","Plugin","pluginName","init","commands","add","register","inheritAllFrom","conversion","elementToElement","view","for","viewElement","paragraphLikeElements","has","name","converterPriority","Set","icon","icons","ParagraphButtonUI","requires","t","ui","componentFactory","locale","ButtonView","command","get","label","tooltip","isToggleable","bind","to","on"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin, icons } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\nclass ParagraphCommand extends Command {\n /**\n * @inheritDoc\n */ refresh() {\n const model = this.editor.model;\n const document = model.document;\n const block = first(document.selection.getSelectedBlocks());\n this.value = !!block && block.is('element', 'paragraph');\n this.isEnabled = !!block && checkCanBecomeParagraph(block, model.schema);\n }\n /**\n * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n * will be turned to paragraphs.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.selection The selection that the command should be applied to. By default,\n * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n */ execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = options.selection || document.selection;\n // Don't execute command if selection is in non-editable place.\n if (!model.canEditAt(selection)) {\n return;\n }\n model.change((writer)=>{\n const blocks = selection.getSelectedBlocks();\n for (const block of blocks){\n if (!block.is('element', 'paragraph') && checkCanBecomeParagraph(block, model.schema)) {\n writer.rename(block, 'paragraph');\n }\n }\n });\n }\n constructor(editor){\n super(editor);\n // Since this command may pass selection in execution block, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n}\n/**\n * Checks whether the given block can be replaced by a paragraph.\n *\n * @param block A block to be tested.\n * @param schema The schema of the document.\n */ function checkCanBecomeParagraph(block, schema) {\n return schema.checkChild(block.parent, 'paragraph') && !schema.isObject(block);\n}\n\nclass InsertParagraphCommand extends Command {\n /**\n * Executes the command.\n *\n * @param options Options for the executed command.\n * @param options.position The model position at which the new paragraph will be inserted.\n * @param options.attributes Attributes keys and values to set on a inserted paragraph.\n * @fires execute\n */ execute(options) {\n const model = this.editor.model;\n const attributes = options.attributes;\n let position = options.position;\n // Don't execute command if position is in non-editable place.\n if (!model.canEditAt(position)) {\n return;\n }\n model.change((writer)=>{\n position = this._findPositionToInsertParagraph(position, writer);\n if (!position) {\n return;\n }\n const paragraph = writer.createElement('paragraph');\n if (attributes) {\n model.schema.setAllowedAttributes(paragraph, attributes, writer);\n }\n model.insertContent(paragraph, position);\n writer.setSelection(paragraph, 'in');\n });\n }\n /**\n * Returns the best position to insert a new paragraph.\n */ _findPositionToInsertParagraph(position, writer) {\n const model = this.editor.model;\n if (model.schema.checkChild(position, 'paragraph')) {\n return position;\n }\n const allowedParent = model.schema.findAllowedParent(position, 'paragraph');\n // It could be there's no ancestor limit that would allow paragraph.\n // In theory, \"paragraph\" could be disallowed even in the \"$root\".\n if (!allowedParent) {\n return null;\n }\n const positionParent = position.parent;\n const isTextAllowed = model.schema.checkChild(positionParent, '$text');\n // At empty $block or at the end of $block.\n // <paragraph>[]</paragraph> ---> <paragraph></paragraph><paragraph>[]</paragraph>\n // <paragraph>foo[]</paragraph> ---> <paragraph>foo</paragraph><paragraph>[]</paragraph>\n if (positionParent.isEmpty || isTextAllowed && position.isAtEnd) {\n return model.createPositionAfter(positionParent);\n }\n // At the start of $block with text.\n // <paragraph>[]foo</paragraph> ---> <paragraph>[]</paragraph><paragraph>foo</paragraph>\n if (!positionParent.isEmpty && isTextAllowed && position.isAtStart) {\n return model.createPositionBefore(positionParent);\n }\n return writer.split(position, allowedParent).position;\n }\n constructor(editor){\n super(editor);\n // Since this command passes position in execution block instead of selection, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n}\n\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `<paragraph>` element in the model which renders as a `<p>` element in the DOM and data.\n *\n * It also brings two editors commands:\n *\n * * The {@link module:paragraph/paragraphcommand~ParagraphCommand `'paragraph'`} command that converts all\n * blocks in the model selection into paragraphs.\n * * The {@link module:paragraph/insertparagraphcommand~InsertParagraphCommand `'insertParagraph'`} command\n * that inserts a new paragraph at a specified location in the model.\n */ class Paragraph extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'Paragraph';\n }\n /**\n * @inheritDoc\n */ init() {\n const editor = this.editor;\n const model = editor.model;\n editor.commands.add('paragraph', new ParagraphCommand(editor));\n editor.commands.add('insertParagraph', new InsertParagraphCommand(editor));\n // Schema.\n model.schema.register('paragraph', {\n inheritAllFrom: '$block'\n });\n editor.conversion.elementToElement({\n model: 'paragraph',\n view: 'p'\n });\n // Conversion for paragraph-like elements which has not been converted by any plugin.\n editor.conversion.for('upcast').elementToElement({\n model: (viewElement, { writer })=>{\n if (!Paragraph.paragraphLikeElements.has(viewElement.name)) {\n return null;\n }\n // Do not auto-paragraph empty elements.\n if (viewElement.isEmpty) {\n return null;\n }\n return writer.createElement('paragraph');\n },\n view: /.+/,\n converterPriority: 'low'\n });\n }\n}\n/**\n * A list of element names which should be treated by the autoparagraphing algorithms as\n * paragraph-like. This means that e.g. the following content:\n *\n * ```html\n * <h1>Foo</h1>\n * <table>\n * <tr>\n * <td>X</td>\n * <td>\n * <ul>\n * <li>Y</li>\n * <li>Z</li>\n * </ul>\n * </td>\n * </tr>\n * </table>\n * ```\n *\n * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.\n * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n * by the paragraph feature and converted to:\n *\n * ```html\n * <p>Foo</p>\n * <p>X</p>\n * <p>Y</p>\n * <p>Z</p>\n * ```\n *\n * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements\n * have a priority upon conversion.\n */ Paragraph.paragraphLikeElements = new Set([\n 'blockquote',\n 'dd',\n 'div',\n 'dt',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'li',\n 'p',\n 'td',\n 'th'\n]);\n\nconst icon = icons.paragraph;\nclass ParagraphButtonUI extends Plugin {\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n Paragraph\n ];\n }\n /**\n * @inheritDoc\n */ init() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('paragraph', (locale)=>{\n const view = new ButtonView(locale);\n const command = editor.commands.get('paragraph');\n view.label = t('Paragraph');\n view.icon = icon;\n view.tooltip = true;\n view.isToggleable = true;\n view.bind('isEnabled').to(command);\n view.bind('isOn').to(command, 'value');\n view.on('execute', ()=>{\n editor.execute('paragraph');\n });\n return view;\n });\n }\n}\n\nexport { Paragraph, ParagraphButtonUI };\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 paragraph/paragraphcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport { first } from '@ckeditor/ckeditor5-utils';\n\nimport type { Schema, Selection, DocumentSelection, Element } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The paragraph command.\n */\nexport default class ParagraphCommand extends Command {\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass selection in execution block, it should be checked directly.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * The value of the command. Indicates whether the selection start is placed in a paragraph.\n\t *\n\t * @readonly\n\t * @observable\n\t */\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\t\tconst document = model.document;\n\t\tconst block = first( document.selection.getSelectedBlocks() );\n\n\t\tthis.value = !!block && block.is( 'element', 'paragraph' );\n\t\tthis.isEnabled = !!block && checkCanBecomeParagraph( block, model.schema );\n\t}\n\n\t/**\n\t * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n\t * will be turned to paragraphs.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.selection The selection that the command should be applied to. By default,\n\t * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n\t */\n\tpublic override execute( options: {\n\t\tselection?: Selection | DocumentSelection;\n\t} = {} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\n\t\tconst selection = options.selection || document.selection;\n\n\t\t// Don't execute command if selection is in non-editable place.\n\t\tif ( !model.canEditAt( selection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst blocks = selection.getSelectedBlocks();\n\n\t\t\tfor ( const block of blocks ) {\n\t\t\t\tif ( !block.is( 'element', 'paragraph' ) && checkCanBecomeParagraph( block, model.schema ) ) {\n\t\t\t\t\twriter.rename( block, 'paragraph' );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Checks whether the given block can be replaced by a paragraph.\n *\n * @param block A block to be tested.\n * @param schema The schema of the document.\n */\nfunction checkCanBecomeParagraph( block: Element, schema: Schema ): boolean {\n\treturn schema.checkChild( block.parent as Element, 'paragraph' ) && !schema.isObject( block );\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 paragraph/insertparagraphcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport type { Element, Position, Writer } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The insert paragraph command. It inserts a new paragraph at a specific\n * {@link module:engine/model/position~Position document position}.\n *\n * ```ts\n * // Insert a new paragraph before an element in the document.\n * editor.execute( 'insertParagraph', {\n * position: editor.model.createPositionBefore( element )\n * } );\n * ```\n *\n * If a paragraph is disallowed in the context of the specific position, the command\n * will attempt to split position ancestors to find a place where it is possible\n * to insert a paragraph.\n *\n * **Note**: This command moves the selection to the inserted paragraph.\n */\nexport default class InsertParagraphCommand extends Command {\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command passes position in execution block instead of selection, it should be checked directly.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.position The model position at which the new paragraph will be inserted.\n\t * @param options.attributes Attributes keys and values to set on a inserted paragraph.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tposition: Position;\n\t\tattributes?: Record<string, unknown>;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst attributes = options.attributes;\n\n\t\tlet position: Position | null = options.position;\n\n\t\t// Don't execute command if position is in non-editable place.\n\t\tif ( !model.canEditAt( position ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tposition = this._findPositionToInsertParagraph( position!, writer );\n\n\t\t\tif ( !position ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst paragraph = writer.createElement( 'paragraph' );\n\n\t\t\tif ( attributes ) {\n\t\t\t\tmodel.schema.setAllowedAttributes( paragraph, attributes, writer );\n\t\t\t}\n\n\t\t\tmodel.insertContent( paragraph, position );\n\t\t\twriter.setSelection( paragraph, 'in' );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the best position to insert a new paragraph.\n\t */\n\tprivate _findPositionToInsertParagraph( position: Position, writer: Writer ): Position | null {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.schema.checkChild( position, 'paragraph' ) ) {\n\t\t\treturn position;\n\t\t}\n\n\t\tconst allowedParent = model.schema.findAllowedParent( position, 'paragraph' );\n\n\t\t// It could be there's no ancestor limit that would allow paragraph.\n\t\t// In theory, \"paragraph\" could be disallowed even in the \"$root\".\n\t\tif ( !allowedParent ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst positionParent = position.parent as Element;\n\t\tconst isTextAllowed = model.schema.checkChild( positionParent, '$text' );\n\n\t\t// At empty $block or at the end of $block.\n\t\t// <paragraph>[]</paragraph> ---> <paragraph></paragraph><paragraph>[]</paragraph>\n\t\t// <paragraph>foo[]</paragraph> ---> <paragraph>foo</paragraph><paragraph>[]</paragraph>\n\t\tif ( positionParent.isEmpty || isTextAllowed && position.isAtEnd ) {\n\t\t\treturn model.createPositionAfter( positionParent );\n\t\t}\n\n\t\t// At the start of $block with text.\n\t\t// <paragraph>[]foo</paragraph> ---> <paragraph>[]</paragraph><paragraph>foo</paragraph>\n\t\tif ( !positionParent.isEmpty && isTextAllowed && position.isAtStart ) {\n\t\t\treturn model.createPositionBefore( positionParent );\n\t\t}\n\n\t\treturn writer.split( position, allowedParent ).position;\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 paragraph/paragraph\n */\n\nimport ParagraphCommand from './paragraphcommand.js';\nimport InsertParagraphCommand from './insertparagraphcommand.js';\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `<paragraph>` element in the model which renders as a `<p>` element in the DOM and data.\n *\n * It also brings two editors commands:\n *\n * * The {@link module:paragraph/paragraphcommand~ParagraphCommand `'paragraph'`} command that converts all\n * blocks in the model selection into paragraphs.\n * * The {@link module:paragraph/insertparagraphcommand~InsertParagraphCommand `'insertParagraph'`} command\n * that inserts a new paragraph at a specified location in the model.\n */\nexport default class Paragraph extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Paragraph' 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 model = editor.model;\n\n\t\teditor.commands.add( 'paragraph', new ParagraphCommand( editor ) );\n\t\teditor.commands.add( 'insertParagraph', new InsertParagraphCommand( editor ) );\n\n\t\t// Schema.\n\t\tmodel.schema.register( 'paragraph', { inheritAllFrom: '$block' } );\n\n\t\teditor.conversion.elementToElement( { model: 'paragraph', view: 'p' } );\n\n\t\t// Conversion for paragraph-like elements which has not been converted by any plugin.\n\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n\t\t\tmodel: ( viewElement, { writer } ) => {\n\t\t\t\tif ( !Paragraph.paragraphLikeElements.has( viewElement.name ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Do not auto-paragraph empty elements.\n\t\t\t\tif ( viewElement.isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn writer.createElement( 'paragraph' );\n\t\t\t},\n\t\t\tview: /.+/,\n\t\t\tconverterPriority: 'low'\n\t\t} );\n\t}\n\n\t/**\n\t * A list of element names which should be treated by the autoparagraphing algorithms as\n\t * paragraph-like. This means that e.g. the following content:\n\t *\n\t * ```html\n\t * <h1>Foo</h1>\n\t * <table>\n\t * <tr>\n\t * <td>X</td>\n\t * <td>\n\t * <ul>\n\t * <li>Y</li>\n\t * <li>Z</li>\n\t * </ul>\n\t * </td>\n\t * </tr>\n\t * </table>\n\t * ```\n\t *\n\t * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.\n\t * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n\t * by the paragraph feature and converted to:\n\t *\n\t * ```html\n\t * <p>Foo</p>\n\t * <p>X</p>\n\t * <p>Y</p>\n\t * <p>Z</p>\n\t * ```\n\t *\n\t * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements\n\t * have a priority upon conversion.\n\t */\n\tpublic static paragraphLikeElements = new Set( [\n\t\t'blockquote',\n\t\t'dd',\n\t\t'div',\n\t\t'dt',\n\t\t'h1',\n\t\t'h2',\n\t\t'h3',\n\t\t'h4',\n\t\t'h5',\n\t\t'h6',\n\t\t'li',\n\t\t'p',\n\t\t'td',\n\t\t'th'\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 paragraph/paragraphbuttonui\n */\n\nimport { Plugin, icons } from '@ckeditor/ckeditor5-core';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui';\n\nimport Paragraph from './paragraph.js';\nimport type ParagraphCommand from './paragraphcommand.js';\n\nconst icon = icons.paragraph;\n\n/**\n * This plugin defines the `'paragraph'` button. It can be used together with\n * {@link module:heading/headingbuttonsui~HeadingButtonsUI} to replace the standard heading dropdown.\n *\n * This plugin is not loaded automatically by the {@link module:paragraph/paragraph~Paragraph} plugin. It must\n * be added manually.\n *\n * ```ts\n * ClassicEditor\n * .create( {\n * plugins: [ ..., Heading, Paragraph, HeadingButtonsUI, ParagraphButtonUI ]\n * toolbar: [ 'paragraph', 'heading1', 'heading2', 'heading3' ]\n * } )\n * .then( ... )\n * .catch( ... );\n * ```\n */\nexport default class ParagraphButtonUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ Paragraph ] 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 t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'paragraph', locale => {\n\t\t\tconst view = new ButtonView( locale );\n\t\t\tconst command: ParagraphCommand = editor.commands.get( 'paragraph' )!;\n\n\t\t\tview.label = t( 'Paragraph' );\n\t\t\tview.icon = icon;\n\t\t\tview.tooltip = true;\n\t\t\tview.isToggleable = true;\n\t\t\tview.bind( 'isEnabled' ).to( command );\n\t\t\tview.bind( 'isOn' ).to( command, 'value' );\n\n\t\t\tview.on( 'execute', () => {\n\t\t\t\teditor.execute( 'paragraph' );\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/paragraphcommand.ts","../src/insertparagraphcommand.ts","../src/paragraph.ts","../src/paragraphbuttonui.ts"],"names":["ParagraphCommand","Command","editor","_isEnabledBasedOnSelection","model","document","block","first","selection","getSelectedBlocks","value","is","isEnabled","checkCanBecomeParagraph","schema","execute","options","canEditAt","change","writer","blocks","rename","checkChild","parent","isObject","InsertParagraphCommand","attributes","position","_findPositionToInsertParagraph","paragraph","createElement","setAllowedAttributes","insertContent","setSelection","allowedParent","findAllowedParent","positionParent","isTextAllowed","isEmpty","isAtEnd","createPositionAfter","isAtStart","createPositionBefore","split","Paragraph","Plugin","pluginName","commands","add","register","inheritAllFrom","conversion","elementToElement","view","for","viewElement","paragraphLikeElements","has","name","converterPriority","Set","ParagraphButtonUI","requires","t","ui","componentFactory","locale","ButtonView","command","get","label","icon","icons","tooltip","isToggleable","bind","to","on"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin, icons } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\n/**\n * The paragraph command.\n */ class ParagraphCommand extends Command {\n constructor(editor){\n super(editor);\n // Since this command may pass selection in execution block, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const document = model.document;\n const block = first(document.selection.getSelectedBlocks());\n this.value = !!block && block.is('element', 'paragraph');\n this.isEnabled = !!block && checkCanBecomeParagraph(block, model.schema);\n }\n /**\n\t * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n\t * will be turned to paragraphs.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.selection The selection that the command should be applied to. By default,\n\t * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n\t */ execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = options.selection || document.selection;\n // Don't execute command if selection is in non-editable place.\n if (!model.canEditAt(selection)) {\n return;\n }\n model.change((writer)=>{\n const blocks = selection.getSelectedBlocks();\n for (const block of blocks){\n if (!block.is('element', 'paragraph') && checkCanBecomeParagraph(block, model.schema)) {\n writer.rename(block, 'paragraph');\n }\n }\n });\n }\n}\n/**\n * Checks whether the given block can be replaced by a paragraph.\n *\n * @param block A block to be tested.\n * @param schema The schema of the document.\n */ function checkCanBecomeParagraph(block, schema) {\n return schema.checkChild(block.parent, 'paragraph') && !schema.isObject(block);\n}\n\n/**\n * The insert paragraph command. It inserts a new paragraph at a specific\n * {@link module:engine/model/position~Position document position}.\n *\n * ```ts\n * // Insert a new paragraph before an element in the document.\n * editor.execute( 'insertParagraph', {\n * position: editor.model.createPositionBefore( element )\n * } );\n * ```\n *\n * If a paragraph is disallowed in the context of the specific position, the command\n * will attempt to split position ancestors to find a place where it is possible\n * to insert a paragraph.\n *\n * **Note**: This command moves the selection to the inserted paragraph.\n */ class InsertParagraphCommand extends Command {\n constructor(editor){\n super(editor);\n // Since this command passes position in execution block instead of selection, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.position The model position at which the new paragraph will be inserted.\n\t * @param options.attributes Attributes keys and values to set on a inserted paragraph.\n\t * @fires execute\n\t */ execute(options) {\n const model = this.editor.model;\n const attributes = options.attributes;\n let position = options.position;\n // Don't execute command if position is in non-editable place.\n if (!model.canEditAt(position)) {\n return;\n }\n model.change((writer)=>{\n position = this._findPositionToInsertParagraph(position, writer);\n if (!position) {\n return;\n }\n const paragraph = writer.createElement('paragraph');\n if (attributes) {\n model.schema.setAllowedAttributes(paragraph, attributes, writer);\n }\n model.insertContent(paragraph, position);\n writer.setSelection(paragraph, 'in');\n });\n }\n /**\n\t * Returns the best position to insert a new paragraph.\n\t */ _findPositionToInsertParagraph(position, writer) {\n const model = this.editor.model;\n if (model.schema.checkChild(position, 'paragraph')) {\n return position;\n }\n const allowedParent = model.schema.findAllowedParent(position, 'paragraph');\n // It could be there's no ancestor limit that would allow paragraph.\n // In theory, \"paragraph\" could be disallowed even in the \"$root\".\n if (!allowedParent) {\n return null;\n }\n const positionParent = position.parent;\n const isTextAllowed = model.schema.checkChild(positionParent, '$text');\n // At empty $block or at the end of $block.\n // <paragraph>[]</paragraph> ---> <paragraph></paragraph><paragraph>[]</paragraph>\n // <paragraph>foo[]</paragraph> ---> <paragraph>foo</paragraph><paragraph>[]</paragraph>\n if (positionParent.isEmpty || isTextAllowed && position.isAtEnd) {\n return model.createPositionAfter(positionParent);\n }\n // At the start of $block with text.\n // <paragraph>[]foo</paragraph> ---> <paragraph>[]</paragraph><paragraph>foo</paragraph>\n if (!positionParent.isEmpty && isTextAllowed && position.isAtStart) {\n return model.createPositionBefore(positionParent);\n }\n return writer.split(position, allowedParent).position;\n }\n}\n\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `<paragraph>` element in the model which renders as a `<p>` element in the DOM and data.\n *\n * It also brings two editors commands:\n *\n * * The {@link module:paragraph/paragraphcommand~ParagraphCommand `'paragraph'`} command that converts all\n * blocks in the model selection into paragraphs.\n * * The {@link module:paragraph/insertparagraphcommand~InsertParagraphCommand `'insertParagraph'`} command\n * that inserts a new paragraph at a specified location in the model.\n */ class Paragraph extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Paragraph';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const model = editor.model;\n editor.commands.add('paragraph', new ParagraphCommand(editor));\n editor.commands.add('insertParagraph', new InsertParagraphCommand(editor));\n // Schema.\n model.schema.register('paragraph', {\n inheritAllFrom: '$block'\n });\n editor.conversion.elementToElement({\n model: 'paragraph',\n view: 'p'\n });\n // Conversion for paragraph-like elements which has not been converted by any plugin.\n editor.conversion.for('upcast').elementToElement({\n model: (viewElement, { writer })=>{\n if (!Paragraph.paragraphLikeElements.has(viewElement.name)) {\n return null;\n }\n // Do not auto-paragraph empty elements.\n if (viewElement.isEmpty) {\n return null;\n }\n return writer.createElement('paragraph');\n },\n view: /.+/,\n converterPriority: 'low'\n });\n }\n /**\n\t * A list of element names which should be treated by the autoparagraphing algorithms as\n\t * paragraph-like. This means that e.g. the following content:\n\t *\n\t * ```html\n\t * <h1>Foo</h1>\n\t * <table>\n\t * <tr>\n\t * <td>X</td>\n\t * <td>\n\t * <ul>\n\t * <li>Y</li>\n\t * <li>Z</li>\n\t * </ul>\n\t * </td>\n\t * </tr>\n\t * </table>\n\t * ```\n\t *\n\t * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.\n\t * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n\t * by the paragraph feature and converted to:\n\t *\n\t * ```html\n\t * <p>Foo</p>\n\t * <p>X</p>\n\t * <p>Y</p>\n\t * <p>Z</p>\n\t * ```\n\t *\n\t * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements\n\t * have a priority upon conversion.\n\t */ static paragraphLikeElements = new Set([\n 'blockquote',\n 'dd',\n 'div',\n 'dt',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'li',\n 'p',\n 'td',\n 'th'\n ]);\n}\n\n/**\n * This plugin defines the `'paragraph'` button. It can be used together with\n * {@link module:heading/headingbuttonsui~HeadingButtonsUI} to replace the standard heading dropdown.\n *\n * This plugin is not loaded automatically by the {@link module:paragraph/paragraph~Paragraph} plugin. It must\n * be added manually.\n *\n * ```ts\n * ClassicEditor\n * .create( {\n * plugins: [ ..., Heading, Paragraph, HeadingButtonsUI, ParagraphButtonUI ]\n * toolbar: [ 'paragraph', 'heading1', 'heading2', 'heading3' ]\n * } )\n * .then( ... )\n * .catch( ... );\n * ```\n */ class ParagraphButtonUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n Paragraph\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('paragraph', (locale)=>{\n const view = new ButtonView(locale);\n const command = editor.commands.get('paragraph');\n view.label = t('Paragraph');\n view.icon = icons.paragraph;\n view.tooltip = true;\n view.isToggleable = true;\n view.bind('isEnabled').to(command);\n view.bind('isOn').to(command, 'value');\n view.on('execute', ()=>{\n editor.execute('paragraph');\n });\n return view;\n });\n }\n}\n\nexport { Paragraph, ParagraphButtonUI };\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 paragraph/paragraphcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport { first } from '@ckeditor/ckeditor5-utils';\n\nimport type { Schema, Selection, DocumentSelection, Element } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The paragraph command.\n */\nexport default class ParagraphCommand extends Command {\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command may pass selection in execution block, it should be checked directly.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * The value of the command. Indicates whether the selection start is placed in a paragraph.\n\t *\n\t * @readonly\n\t * @observable\n\t */\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\t\tconst document = model.document;\n\t\tconst block = first( document.selection.getSelectedBlocks() );\n\n\t\tthis.value = !!block && block.is( 'element', 'paragraph' );\n\t\tthis.isEnabled = !!block && checkCanBecomeParagraph( block, model.schema );\n\t}\n\n\t/**\n\t * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n\t * will be turned to paragraphs.\n\t *\n\t * @fires execute\n\t * @param options Options for the executed command.\n\t * @param options.selection The selection that the command should be applied to. By default,\n\t * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n\t */\n\tpublic override execute( options: {\n\t\tselection?: Selection | DocumentSelection;\n\t} = {} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\n\t\tconst selection = options.selection || document.selection;\n\n\t\t// Don't execute command if selection is in non-editable place.\n\t\tif ( !model.canEditAt( selection ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tconst blocks = selection.getSelectedBlocks();\n\n\t\t\tfor ( const block of blocks ) {\n\t\t\t\tif ( !block.is( 'element', 'paragraph' ) && checkCanBecomeParagraph( block, model.schema ) ) {\n\t\t\t\t\twriter.rename( block, 'paragraph' );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Checks whether the given block can be replaced by a paragraph.\n *\n * @param block A block to be tested.\n * @param schema The schema of the document.\n */\nfunction checkCanBecomeParagraph( block: Element, schema: Schema ): boolean {\n\treturn schema.checkChild( block.parent as Element, 'paragraph' ) && !schema.isObject( block );\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 paragraph/insertparagraphcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport type { Element, Position, Writer } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The insert paragraph command. It inserts a new paragraph at a specific\n * {@link module:engine/model/position~Position document position}.\n *\n * ```ts\n * // Insert a new paragraph before an element in the document.\n * editor.execute( 'insertParagraph', {\n * position: editor.model.createPositionBefore( element )\n * } );\n * ```\n *\n * If a paragraph is disallowed in the context of the specific position, the command\n * will attempt to split position ancestors to find a place where it is possible\n * to insert a paragraph.\n *\n * **Note**: This command moves the selection to the inserted paragraph.\n */\nexport default class InsertParagraphCommand extends Command {\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Since this command passes position in execution block instead of selection, it should be checked directly.\n\t\tthis._isEnabledBasedOnSelection = false;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @param options Options for the executed command.\n\t * @param options.position The model position at which the new paragraph will be inserted.\n\t * @param options.attributes Attributes keys and values to set on a inserted paragraph.\n\t * @fires execute\n\t */\n\tpublic override execute( options: {\n\t\tposition: Position;\n\t\tattributes?: Record<string, unknown>;\n\t} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst attributes = options.attributes;\n\n\t\tlet position: Position | null = options.position;\n\n\t\t// Don't execute command if position is in non-editable place.\n\t\tif ( !model.canEditAt( position ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel.change( writer => {\n\t\t\tposition = this._findPositionToInsertParagraph( position!, writer );\n\n\t\t\tif ( !position ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst paragraph = writer.createElement( 'paragraph' );\n\n\t\t\tif ( attributes ) {\n\t\t\t\tmodel.schema.setAllowedAttributes( paragraph, attributes, writer );\n\t\t\t}\n\n\t\t\tmodel.insertContent( paragraph, position );\n\t\t\twriter.setSelection( paragraph, 'in' );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the best position to insert a new paragraph.\n\t */\n\tprivate _findPositionToInsertParagraph( position: Position, writer: Writer ): Position | null {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.schema.checkChild( position, 'paragraph' ) ) {\n\t\t\treturn position;\n\t\t}\n\n\t\tconst allowedParent = model.schema.findAllowedParent( position, 'paragraph' );\n\n\t\t// It could be there's no ancestor limit that would allow paragraph.\n\t\t// In theory, \"paragraph\" could be disallowed even in the \"$root\".\n\t\tif ( !allowedParent ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst positionParent = position.parent as Element;\n\t\tconst isTextAllowed = model.schema.checkChild( positionParent, '$text' );\n\n\t\t// At empty $block or at the end of $block.\n\t\t// <paragraph>[]</paragraph> ---> <paragraph></paragraph><paragraph>[]</paragraph>\n\t\t// <paragraph>foo[]</paragraph> ---> <paragraph>foo</paragraph><paragraph>[]</paragraph>\n\t\tif ( positionParent.isEmpty || isTextAllowed && position.isAtEnd ) {\n\t\t\treturn model.createPositionAfter( positionParent );\n\t\t}\n\n\t\t// At the start of $block with text.\n\t\t// <paragraph>[]foo</paragraph> ---> <paragraph>[]</paragraph><paragraph>foo</paragraph>\n\t\tif ( !positionParent.isEmpty && isTextAllowed && position.isAtStart ) {\n\t\t\treturn model.createPositionBefore( positionParent );\n\t\t}\n\n\t\treturn writer.split( position, allowedParent ).position;\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 paragraph/paragraph\n */\n\nimport ParagraphCommand from './paragraphcommand.js';\nimport InsertParagraphCommand from './insertparagraphcommand.js';\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `<paragraph>` element in the model which renders as a `<p>` element in the DOM and data.\n *\n * It also brings two editors commands:\n *\n * * The {@link module:paragraph/paragraphcommand~ParagraphCommand `'paragraph'`} command that converts all\n * blocks in the model selection into paragraphs.\n * * The {@link module:paragraph/insertparagraphcommand~InsertParagraphCommand `'insertParagraph'`} command\n * that inserts a new paragraph at a specified location in the model.\n */\nexport default class Paragraph extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Paragraph' 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 model = editor.model;\n\n\t\teditor.commands.add( 'paragraph', new ParagraphCommand( editor ) );\n\t\teditor.commands.add( 'insertParagraph', new InsertParagraphCommand( editor ) );\n\n\t\t// Schema.\n\t\tmodel.schema.register( 'paragraph', { inheritAllFrom: '$block' } );\n\n\t\teditor.conversion.elementToElement( { model: 'paragraph', view: 'p' } );\n\n\t\t// Conversion for paragraph-like elements which has not been converted by any plugin.\n\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n\t\t\tmodel: ( viewElement, { writer } ) => {\n\t\t\t\tif ( !Paragraph.paragraphLikeElements.has( viewElement.name ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Do not auto-paragraph empty elements.\n\t\t\t\tif ( viewElement.isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn writer.createElement( 'paragraph' );\n\t\t\t},\n\t\t\tview: /.+/,\n\t\t\tconverterPriority: 'low'\n\t\t} );\n\t}\n\n\t/**\n\t * A list of element names which should be treated by the autoparagraphing algorithms as\n\t * paragraph-like. This means that e.g. the following content:\n\t *\n\t * ```html\n\t * <h1>Foo</h1>\n\t * <table>\n\t * <tr>\n\t * <td>X</td>\n\t * <td>\n\t * <ul>\n\t * <li>Y</li>\n\t * <li>Z</li>\n\t * </ul>\n\t * </td>\n\t * </tr>\n\t * </table>\n\t * ```\n\t *\n\t * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.\n\t * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n\t * by the paragraph feature and converted to:\n\t *\n\t * ```html\n\t * <p>Foo</p>\n\t * <p>X</p>\n\t * <p>Y</p>\n\t * <p>Z</p>\n\t * ```\n\t *\n\t * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements\n\t * have a priority upon conversion.\n\t */\n\tpublic static paragraphLikeElements = new Set( [\n\t\t'blockquote',\n\t\t'dd',\n\t\t'div',\n\t\t'dt',\n\t\t'h1',\n\t\t'h2',\n\t\t'h3',\n\t\t'h4',\n\t\t'h5',\n\t\t'h6',\n\t\t'li',\n\t\t'p',\n\t\t'td',\n\t\t'th'\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 paragraph/paragraphbuttonui\n */\n\nimport { Plugin, icons } from '@ckeditor/ckeditor5-core';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui';\n\nimport Paragraph from './paragraph.js';\nimport type ParagraphCommand from './paragraphcommand.js';\n\n/**\n * This plugin defines the `'paragraph'` button. It can be used together with\n * {@link module:heading/headingbuttonsui~HeadingButtonsUI} to replace the standard heading dropdown.\n *\n * This plugin is not loaded automatically by the {@link module:paragraph/paragraph~Paragraph} plugin. It must\n * be added manually.\n *\n * ```ts\n * ClassicEditor\n * .create( {\n * plugins: [ ..., Heading, Paragraph, HeadingButtonsUI, ParagraphButtonUI ]\n * toolbar: [ 'paragraph', 'heading1', 'heading2', 'heading3' ]\n * } )\n * .then( ... )\n * .catch( ... );\n * ```\n */\nexport default class ParagraphButtonUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ Paragraph ] 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 t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'paragraph', locale => {\n\t\t\tconst view = new ButtonView( locale );\n\t\t\tconst command: ParagraphCommand = editor.commands.get( 'paragraph' )!;\n\n\t\t\tview.label = t( 'Paragraph' );\n\t\t\tview.icon = icons.paragraph;\n\t\t\tview.tooltip = true;\n\t\t\tview.isToggleable = true;\n\t\t\tview.bind( 'isEnabled' ).to( command );\n\t\t\tview.bind( 'isOn' ).to( command, 'value' );\n\n\t\t\tview.on( 'execute', () => {\n\t\t\t\teditor.execute( 'paragraph' );\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-paragraph",
3
- "version": "41.4.2",
3
+ "version": "42.0.0-alpha.0",
4
4
  "description": "Paragraph feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,9 +13,9 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "@ckeditor/ckeditor5-core": "41.4.2",
17
- "@ckeditor/ckeditor5-ui": "41.4.2",
18
- "@ckeditor/ckeditor5-utils": "41.4.2"
16
+ "@ckeditor/ckeditor5-core": "42.0.0-alpha.0",
17
+ "@ckeditor/ckeditor5-ui": "42.0.0-alpha.0",
18
+ "@ckeditor/ckeditor5-utils": "42.0.0-alpha.0"
19
19
  },
20
20
  "author": "CKSource (http://cksource.com/)",
21
21
  "license": "GPL-2.0-or-later",
@@ -8,7 +8,6 @@
8
8
  import { Plugin, icons } from '@ckeditor/ckeditor5-core';
9
9
  import { ButtonView } from '@ckeditor/ckeditor5-ui';
10
10
  import Paragraph from './paragraph.js';
11
- const icon = icons.paragraph;
12
11
  /**
13
12
  * This plugin defines the `'paragraph'` button. It can be used together with
14
13
  * {@link module:heading/headingbuttonsui~HeadingButtonsUI} to replace the standard heading dropdown.
@@ -43,7 +42,7 @@ export default class ParagraphButtonUI extends Plugin {
43
42
  const view = new ButtonView(locale);
44
43
  const command = editor.commands.get('paragraph');
45
44
  view.label = t('Paragraph');
46
- view.icon = icon;
45
+ view.icon = icons.paragraph;
47
46
  view.tooltip = true;
48
47
  view.isToggleable = true;
49
48
  view.bind('isEnabled').to(command);