@ckeditor/ckeditor5-enter 45.2.1-alpha.5 → 45.2.1-alpha.7
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/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js","../src/utils.ts","../src/entercommand.ts","../src/enterobserver.ts","../src/enter.ts","../src/shiftentercommand.ts","../src/shiftenter.ts"],"names":["getCopyOnEnterAttributes","schema","allAttributes","attribute","getAttributeProperties","copyOnEnter","EnterCommand","Command","editor","model","change","writer","enterBlock","fire","selection","document","isSelectionEmpty","isCollapsed","range","getFirstRange","startElement","start","parent","endElement","end","isLimit","deleteContent","attributesToCopy","getAttributes","splitBlock","setSelectionAttribute","leaveUnmerged","isAtStart","isAtEnd","isContainedWithinOneElement","focus","setSelection","splitPos","split","nextSibling","ENTER_EVENT_TYPES","insertParagraph","isSoft","insertLineBreak","EnterObserver","Observer","view","doc","shiftPressed","on","evt","data","shiftKey","isEnabled","inputType","env","isSafari","domEvent","enterEventSpec","event","BubblingEventInfo","targetRanges","DomEventData","stop","called","observe","stopObserving","Enter","Plugin","pluginName","isOfficialPlugin","init","editing","viewDocument","t","addObserver","commands","add","listenTo","isComposing","preventDefault","execute","scrollToTheSelection","priority","accessibility","addKeystrokeInfos","keystrokes","label","keystroke","ShiftEnterCommand","softBreakAction","rangeCount","anchorPos","anchor","checkChild","isInsideLimitElement","insertBreak","removeSelectionAttribute","getAttributeKeys","position","breakLineElement","createElement","insertContent","element","is","ShiftEnter","conversion","register","allowWhere","isInline","for","elementToElement","modelElement","createEmptyElement"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { Observer, BubblingEventInfo, DomEventData } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { env } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module enter/utils\n */ /**\n * Returns attributes that should be preserved on the enter keystroke.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param schema Model's schema.\n * @param allAttributes Attributes to filter.\n */ function* getCopyOnEnterAttributes(schema, allAttributes) {\n for (const attribute of allAttributes){\n if (attribute && schema.getAttributeProperties(attribute[0]).copyOnEnter) {\n yield attribute;\n }\n }\n}\n\n/**\n * Enter command used by the {@link module:enter/enter~Enter Enter feature} to handle the <kbd>Enter</kbd> keystroke.\n */ class EnterCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ execute() {\n this.editor.model.change((writer)=>{\n this.enterBlock(writer);\n this.fire('afterExecute', {\n writer\n });\n });\n }\n /**\n\t * Splits a block where the document selection is placed, in the way how the <kbd>Enter</kbd> key is expected to work:\n\t *\n\t * ```\n\t * <p>Foo[]bar</p> -> <p>Foo</p><p>[]bar</p>\n\t * <p>Foobar[]</p> -> <p>Foobar</p><p>[]</p>\n\t * <p>Fo[ob]ar</p> -> <p>Fo</p><p>[]ar</p>\n\t * ```\n\t *\n\t * In some cases, the split will not happen:\n\t *\n\t * ```\n\t * // The selection parent is a limit element:\n\t * <figcaption>A[bc]d</figcaption> -> <figcaption>A[]d</figcaption>\n\t *\n\t * // The selection spans over multiple elements:\n\t * <h>x[x</h><p>y]y<p> -> <h>x</h><p>[]y</p>\n\t * ```\n\t *\n\t * @param writer Writer to use when performing the enter action.\n\t * @returns Boolean indicating if the block was split.\n\t */ enterBlock(writer) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const schema = model.schema;\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Don't touch the roots and other limit elements.\n if (schema.isLimit(startElement) || schema.isLimit(endElement)) {\n // Delete the selected content but only if inside a single limit element.\n // Abort, when crossing limit elements boundary (e.g. <limit1>x[x</limit1>donttouchme<limit2>y]y</limit2>).\n // This is an edge case and it's hard to tell what should actually happen because such a selection\n // is not entirely valid.\n if (!isSelectionEmpty && startElement == endElement) {\n model.deleteContent(selection);\n }\n return false;\n }\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(writer.model.schema, selection.getAttributes());\n splitBlock(writer, range.start);\n writer.setSelectionAttribute(attributesToCopy);\n return true;\n } else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n const isContainedWithinOneElement = startElement == endElement;\n model.deleteContent(selection, {\n leaveUnmerged\n });\n if (leaveUnmerged) {\n // Partially selected elements.\n //\n // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x</h><h>^x</h>\n if (isContainedWithinOneElement) {\n splitBlock(writer, selection.focus);\n return true;\n } else {\n writer.setSelection(endElement, 0);\n }\n }\n }\n return false;\n }\n}\nfunction splitBlock(writer, splitPos) {\n writer.split(splitPos);\n writer.setSelection(splitPos.parent.nextSibling, 0);\n}\n\nconst ENTER_EVENT_TYPES = {\n insertParagraph: {\n isSoft: false\n },\n insertLineBreak: {\n isSoft: true\n }\n};\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter `Document#enter`} event.\n */ class EnterObserver extends Observer {\n /**\n\t * @inheritDoc\n\t */ constructor(view){\n super(view);\n const doc = this.document;\n let shiftPressed = false;\n doc.on('keydown', (evt, data)=>{\n shiftPressed = data.shiftKey;\n });\n doc.on('beforeinput', (evt, data)=>{\n if (!this.isEnabled) {\n return;\n }\n let inputType = data.inputType;\n // See https://github.com/ckeditor/ckeditor5/issues/13321.\n if (env.isSafari && shiftPressed && inputType == 'insertParagraph') {\n inputType = 'insertLineBreak';\n }\n const domEvent = data.domEvent;\n const enterEventSpec = ENTER_EVENT_TYPES[inputType];\n if (!enterEventSpec) {\n return;\n }\n const event = new BubblingEventInfo(doc, 'enter', data.targetRanges[0]);\n doc.fire(event, new DomEventData(view, domEvent, {\n isSoft: enterEventSpec.isSoft\n }));\n // Stop `beforeinput` event if `enter` event was stopped.\n // https://github.com/ckeditor/ckeditor5/issues/753\n if (event.stop.called) {\n evt.stop();\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ observe() {}\n /**\n\t * @inheritDoc\n\t */ stopObserving() {}\n}\n\n/**\n * This plugin handles the <kbd>Enter</kbd> keystroke (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */ class Enter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Enter';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const t = this.editor.t;\n view.addObserver(EnterObserver);\n editor.commands.add('enter', new EnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data)=>{\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The soft enter key is handled by the ShiftEnter plugin.\n if (data.isSoft) {\n return;\n }\n editor.execute('enter');\n view.scrollToTheSelection();\n }, {\n priority: 'low'\n });\n // Add the information about the keystroke to the accessibility database.\n editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Insert a hard break (a new paragraph)'),\n keystroke: 'Enter'\n }\n ]\n });\n }\n}\n\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke.\n */ class ShiftEnterCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n const doc = model.document;\n model.change((writer)=>{\n softBreakAction(model, writer, doc.selection);\n this.fire('afterExecute', {\n writer\n });\n });\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = isEnabled(model.schema, doc.selection);\n }\n}\n/**\n * Checks whether the ShiftEnter command should be enabled in the specified selection.\n */ function isEnabled(schema, selection) {\n // At this moment it is okay to support single range selections only.\n // But in the future we may need to change that.\n if (selection.rangeCount > 1) {\n return false;\n }\n const anchorPos = selection.anchor;\n // Check whether the break element can be inserted in the current selection anchor.\n if (!anchorPos || !schema.checkChild(anchorPos, 'softBreak')) {\n return false;\n }\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Do not modify the content if selection is cross-limit elements.\n if ((isInsideLimitElement(startElement, schema) || isInsideLimitElement(endElement, schema)) && startElement !== endElement) {\n return false;\n }\n return true;\n}\n/**\n * Creates a break in the way that the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke is expected to work.\n */ function softBreakAction(model, writer, selection) {\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n const isContainedWithinOneElement = startElement == endElement;\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(model.schema, selection.getAttributes());\n insertBreak(model, writer, range.end);\n writer.removeSelectionAttribute(selection.getAttributeKeys());\n writer.setSelectionAttribute(attributesToCopy);\n } else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n model.deleteContent(selection, {\n leaveUnmerged\n });\n // Selection within one element:\n //\n // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x<br>^x</h>\n if (isContainedWithinOneElement) {\n insertBreak(model, writer, selection.focus);\n } else {\n // Move the selection to the 2nd element (last step of the example above).\n if (leaveUnmerged) {\n writer.setSelection(endElement, 0);\n }\n }\n }\n}\nfunction insertBreak(model, writer, position) {\n const breakLineElement = writer.createElement('softBreak');\n model.insertContent(breakLineElement, position);\n writer.setSelection(breakLineElement, 'after');\n}\n/**\n * Checks whether the specified `element` is a child of the limit element.\n *\n * Checking whether the `<p>` element is inside a limit element:\n * - `<$root><p>Text.</p></$root> => false`\n * - `<$root><limitElement><p>Text</p></limitElement></$root> => true`\n */ function isInsideLimitElement(element, schema) {\n // `$root` is a limit element but in this case is an invalid element.\n if (element.is('rootElement')) {\n return false;\n }\n return schema.isLimit(element) || isInsideLimitElement(element.parent, schema);\n}\n\n/**\n * This plugin handles the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */ class ShiftEnter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'ShiftEnter';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const t = this.editor.t;\n // Configure the schema.\n schema.register('softBreak', {\n allowWhere: '$text',\n isInline: true\n });\n // Configure converters.\n conversion.for('upcast').elementToElement({\n model: 'softBreak',\n view: 'br'\n });\n conversion.for('downcast').elementToElement({\n model: 'softBreak',\n view: (modelElement, { writer })=>writer.createEmptyElement('br')\n });\n view.addObserver(EnterObserver);\n editor.commands.add('shiftEnter', new ShiftEnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data)=>{\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The hard enter key is handled by the Enter plugin.\n if (!data.isSoft) {\n return;\n }\n editor.execute('shiftEnter');\n view.scrollToTheSelection();\n }, {\n priority: 'low'\n });\n // Add the information about the keystroke to the accessibility database.\n editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Insert a soft break (a <code><br></code> element)'),\n keystroke: 'Shift+Enter'\n }\n ]\n });\n }\n}\n\nexport { Enter, ShiftEnter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/utils\n */\n\nimport type { Schema } from '@ckeditor/ckeditor5-engine';\n\n/**\n * Returns attributes that should be preserved on the enter keystroke.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param schema Model's schema.\n * @param allAttributes Attributes to filter.\n */\nexport function* getCopyOnEnterAttributes(\n\tschema: Schema,\n\tallAttributes: Iterable<[ string, unknown ]>\n): IterableIterator<[ string, unknown ]> {\n\tfor ( const attribute of allAttributes ) {\n\t\tif ( attribute && schema.getAttributeProperties( attribute[ 0 ] ).copyOnEnter ) {\n\t\t\tyield attribute;\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/entercommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils.js';\n\nimport type {\n\tElement,\n\tPosition,\n\tWriter\n} from '@ckeditor/ckeditor5-engine';\n\n/**\n * Enter command used by the {@link module:enter/enter~Enter Enter feature} to handle the <kbd>Enter</kbd> keystroke.\n */\nexport default class EnterCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tthis.editor.model.change( writer => {\n\t\t\tthis.enterBlock( writer );\n\t\t\tthis.fire<EnterCommandAfterExecuteEvent>( 'afterExecute', { writer } );\n\t\t} );\n\t}\n\n\t/**\n\t * Splits a block where the document selection is placed, in the way how the <kbd>Enter</kbd> key is expected to work:\n\t *\n\t * ```\n\t * <p>Foo[]bar</p> -> <p>Foo</p><p>[]bar</p>\n\t * <p>Foobar[]</p> -> <p>Foobar</p><p>[]</p>\n\t * <p>Fo[ob]ar</p> -> <p>Fo</p><p>[]ar</p>\n\t * ```\n\t *\n\t * In some cases, the split will not happen:\n\t *\n\t * ```\n\t * // The selection parent is a limit element:\n\t * <figcaption>A[bc]d</figcaption> -> <figcaption>A[]d</figcaption>\n\t *\n\t * // The selection spans over multiple elements:\n\t * <h>x[x</h><p>y]y<p> -> <h>x</h><p>[]y</p>\n\t * ```\n\t *\n\t * @param writer Writer to use when performing the enter action.\n\t * @returns Boolean indicating if the block was split.\n\t */\n\tpublic enterBlock( writer: Writer ): boolean {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst schema = model.schema;\n\t\tconst isSelectionEmpty = selection.isCollapsed;\n\t\tconst range = selection.getFirstRange()!;\n\t\tconst startElement = range.start.parent as Element;\n\t\tconst endElement = range.end.parent as Element;\n\n\t\t// Don't touch the roots and other limit elements.\n\t\tif ( schema.isLimit( startElement ) || schema.isLimit( endElement ) ) {\n\t\t\t// Delete the selected content but only if inside a single limit element.\n\t\t\t// Abort, when crossing limit elements boundary (e.g. <limit1>x[x</limit1>donttouchme<limit2>y]y</limit2>).\n\t\t\t// This is an edge case and it's hard to tell what should actually happen because such a selection\n\t\t\t// is not entirely valid.\n\t\t\tif ( !isSelectionEmpty && startElement == endElement ) {\n\t\t\t\tmodel.deleteContent( selection );\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( isSelectionEmpty ) {\n\t\t\tconst attributesToCopy = getCopyOnEnterAttributes( writer.model.schema, selection.getAttributes() );\n\n\t\t\tsplitBlock( writer, range.start );\n\t\t\twriter.setSelectionAttribute( attributesToCopy );\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\tconst leaveUnmerged = !( range.start.isAtStart && range.end.isAtEnd );\n\t\t\tconst isContainedWithinOneElement = ( startElement == endElement );\n\n\t\t\tmodel.deleteContent( selection, { leaveUnmerged } );\n\n\t\t\tif ( leaveUnmerged ) {\n\t\t\t\t// Partially selected elements.\n\t\t\t\t//\n\t\t\t\t// <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x</h><h>^x</h>\n\t\t\t\tif ( isContainedWithinOneElement ) {\n\t\t\t\t\tsplitBlock( writer, selection.focus! );\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Selection over multiple elements.\n\t\t\t\t//\n\t\t\t\t// <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n\t\t\t\telse {\n\t\t\t\t\twriter.setSelection( endElement, 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n/**\n * Fired after the the {@link module:enter/entercommand~EnterCommand} is finished executing.\n *\n * @eventName ~EnterCommand#afterExecute\n */\nexport type EnterCommandAfterExecuteEvent = {\n\tname: 'afterExecute';\n\targs: [ { writer: Writer } ];\n};\n\nfunction splitBlock( writer: Writer, splitPos: Position ): void {\n\twriter.split( splitPos );\n\twriter.setSelection( splitPos.parent.nextSibling!, 0 );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/enterobserver\n */\n\nimport {\n\tObserver,\n\tDomEventData,\n\tBubblingEventInfo,\n\ttype EditingView,\n\ttype ViewDocumentInputEvent,\n\ttype BubblingEvent,\n\ttype ViewDocumentKeyDownEvent\n} from '@ckeditor/ckeditor5-engine';\n\nimport { env } from '@ckeditor/ckeditor5-utils';\n\nconst ENTER_EVENT_TYPES: Record<string, { isSoft: boolean }> = {\n\tinsertParagraph: { isSoft: false },\n\tinsertLineBreak: { isSoft: true }\n};\n\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter `Document#enter`} event.\n */\nexport default class EnterObserver extends Observer {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( view: EditingView ) {\n\t\tsuper( view );\n\n\t\tconst doc = this.document;\n\t\tlet shiftPressed = false;\n\n\t\tdoc.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tshiftPressed = data.shiftKey;\n\t\t} );\n\n\t\tdoc.on<ViewDocumentInputEvent>( 'beforeinput', ( evt, data ) => {\n\t\t\tif ( !this.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet inputType = data.inputType;\n\n\t\t\t// See https://github.com/ckeditor/ckeditor5/issues/13321.\n\t\t\tif ( env.isSafari && shiftPressed && inputType == 'insertParagraph' ) {\n\t\t\t\tinputType = 'insertLineBreak';\n\t\t\t}\n\n\t\t\tconst domEvent = data.domEvent;\n\t\t\tconst enterEventSpec = ENTER_EVENT_TYPES[ inputType ];\n\n\t\t\tif ( !enterEventSpec ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst event = new BubblingEventInfo( doc, 'enter', data.targetRanges[ 0 ] );\n\n\t\t\tdoc.fire( event, new DomEventData( view, domEvent, {\n\t\t\t\tisSoft: enterEventSpec.isSoft\n\t\t\t} ) );\n\n\t\t\t// Stop `beforeinput` event if `enter` event was stopped.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/753\n\t\t\tif ( event.stop.called ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic observe(): void {}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic stopObserving(): void {}\n}\n\n/**\n * Fired when the user presses the <kbd>Enter</kbd> key.\n *\n * Note: This event is fired by the {@link module:enter/enterobserver~EnterObserver observer}\n * (usually registered by the {@link module:enter/enter~Enter Enter feature} and\n * {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature}).\n *\n * @eventName module:engine/view/document~Document#enter\n */\nexport type ViewDocumentEnterEvent = BubblingEvent<{\n\tname: 'enter';\n\targs: [ EnterEventData ];\n}>;\n\nexport interface EnterEventData extends DomEventData<InputEvent> {\n\n\t/**\n\t * Whether it is a soft enter (<kbd>Shift</kbd>+<kbd>Enter</kbd>) or a hard enter (<kbd>Enter</kbd>).\n\t */\n\tisSoft: boolean;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/enter\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport EnterCommand from './entercommand.js';\nimport EnterObserver, { type ViewDocumentEnterEvent } from './enterobserver.js';\n\n/**\n * This plugin handles the <kbd>Enter</kbd> keystroke (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class Enter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Enter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\t\tconst t = this.editor.t;\n\n\t\tview.addObserver( EnterObserver );\n\n\t\teditor.commands.add( 'enter', new EnterCommand( editor ) );\n\n\t\tthis.listenTo<ViewDocumentEnterEvent>( viewDocument, 'enter', ( evt, data ) => {\n\t\t\t// When not in composition, we handle the action, so prevent the default one.\n\t\t\t// When in composition, it's the browser who modify the DOM (renderer is disabled).\n\t\t\tif ( !viewDocument.isComposing ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t}\n\n\t\t\t// The soft enter key is handled by the ShiftEnter plugin.\n\t\t\tif ( data.isSoft ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.execute( 'enter' );\n\n\t\t\tview.scrollToTheSelection();\n\t\t}, { priority: 'low' } );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\teditor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Insert a hard break (a new paragraph)' ),\n\t\t\t\t\tkeystroke: 'Enter'\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/shiftentercommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils.js';\n\nimport type {\n\tDocumentSelection,\n\tModel,\n\tPosition,\n\tSchema,\n\tElement,\n\tWriter\n} from '@ckeditor/ckeditor5-engine';\n\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke.\n */\nexport default class ShiftEnterCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tmodel.change( writer => {\n\t\t\tsoftBreakAction( model, writer, doc.selection );\n\t\t\tthis.fire<ShiftEnterCommandAfterExecuteEvent>( 'afterExecute', { writer } );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = isEnabled( model.schema, doc.selection );\n\t}\n}\n\n/**\n * Fired after the the {@link module:enter/shiftentercommand~ShiftEnterCommand} is finished executing.\n *\n * @eventName ~ShiftEnterCommand#afterExecute\n */\nexport type ShiftEnterCommandAfterExecuteEvent = {\n\tname: 'afterExecute';\n\targs: [ { writer: Writer } ];\n};\n\n/**\n * Checks whether the ShiftEnter command should be enabled in the specified selection.\n */\nfunction isEnabled( schema: Schema, selection: DocumentSelection ): boolean {\n\t// At this moment it is okay to support single range selections only.\n\t// But in the future we may need to change that.\n\tif ( selection.rangeCount > 1 ) {\n\t\treturn false;\n\t}\n\n\tconst anchorPos = selection.anchor;\n\n\t// Check whether the break element can be inserted in the current selection anchor.\n\tif ( !anchorPos || !schema.checkChild( anchorPos, 'softBreak' ) ) {\n\t\treturn false;\n\t}\n\n\tconst range = selection.getFirstRange()!;\n\tconst startElement = range.start.parent as Element;\n\tconst endElement = range.end.parent as Element;\n\n\t// Do not modify the content if selection is cross-limit elements.\n\tif ( ( isInsideLimitElement( startElement, schema ) || isInsideLimitElement( endElement, schema ) ) && startElement !== endElement ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Creates a break in the way that the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke is expected to work.\n */\nfunction softBreakAction( model: Model, writer: Writer, selection: DocumentSelection ): void {\n\tconst isSelectionEmpty = selection.isCollapsed;\n\tconst range = selection.getFirstRange()!;\n\tconst startElement = range.start.parent as Element;\n\tconst endElement = range.end.parent as Element;\n\tconst isContainedWithinOneElement = ( startElement == endElement );\n\n\tif ( isSelectionEmpty ) {\n\t\tconst attributesToCopy = getCopyOnEnterAttributes( model.schema, selection.getAttributes() );\n\n\t\tinsertBreak( model, writer, range.end );\n\n\t\twriter.removeSelectionAttribute( selection.getAttributeKeys() );\n\t\twriter.setSelectionAttribute( attributesToCopy );\n\t} else {\n\t\tconst leaveUnmerged = !( range.start.isAtStart && range.end.isAtEnd );\n\n\t\tmodel.deleteContent( selection, { leaveUnmerged } );\n\n\t\t// Selection within one element:\n\t\t//\n\t\t// <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x<br>^x</h>\n\t\tif ( isContainedWithinOneElement ) {\n\t\t\tinsertBreak( model, writer, selection.focus! );\n\t\t}\n\t\t// Selection over multiple elements.\n\t\t//\n\t\t// <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n\t\t//\n\t\t// We chose not to insert a line break in this case because:\n\t\t//\n\t\t// * it's not a very common scenario,\n\t\t// * it actually surprised me when I saw the \"expected behavior\" in real life.\n\t\t//\n\t\t// It's ok if the user will need to be more specific where they want the <br> to be inserted.\n\t\telse {\n\t\t\t// Move the selection to the 2nd element (last step of the example above).\n\t\t\tif ( leaveUnmerged ) {\n\t\t\t\twriter.setSelection( endElement, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertBreak( model: Model, writer: Writer, position: Position ): void {\n\tconst breakLineElement = writer.createElement( 'softBreak' );\n\n\tmodel.insertContent( breakLineElement, position );\n\twriter.setSelection( breakLineElement, 'after' );\n}\n\n/**\n * Checks whether the specified `element` is a child of the limit element.\n *\n * Checking whether the `<p>` element is inside a limit element:\n * - `<$root><p>Text.</p></$root> => false`\n * - `<$root><limitElement><p>Text</p></limitElement></$root> => true`\n */\nfunction isInsideLimitElement( element: Element, schema: Schema ): boolean {\n\t// `$root` is a limit element but in this case is an invalid element.\n\tif ( element.is( 'rootElement' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.isLimit( element ) || isInsideLimitElement( element.parent as Element, schema );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/shiftenter\n */\n\nimport ShiftEnterCommand from './shiftentercommand.js';\nimport EnterObserver, { type ViewDocumentEnterEvent } from './enterobserver.js';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n\n/**\n * This plugin handles the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class ShiftEnter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ShiftEnter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst conversion = editor.conversion;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\t\tconst t = this.editor.t;\n\n\t\t// Configure the schema.\n\t\tschema.register( 'softBreak', {\n\t\t\tallowWhere: '$text',\n\t\t\tisInline: true\n\t\t} );\n\n\t\t// Configure converters.\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'softBreak',\n\t\t\t\tview: 'br'\n\t\t\t} );\n\n\t\tconversion.for( 'downcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'softBreak',\n\t\t\t\tview: ( modelElement, { writer } ) => writer.createEmptyElement( 'br' )\n\t\t\t} );\n\n\t\tview.addObserver( EnterObserver );\n\n\t\teditor.commands.add( 'shiftEnter', new ShiftEnterCommand( editor ) );\n\n\t\tthis.listenTo<ViewDocumentEnterEvent>( viewDocument, 'enter', ( evt, data ) => {\n\t\t\t// When not in composition, we handle the action, so prevent the default one.\n\t\t\t// When in composition, it's the browser who modify the DOM (renderer is disabled).\n\t\t\tif ( !viewDocument.isComposing ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t}\n\n\t\t\t// The hard enter key is handled by the Enter plugin.\n\t\t\tif ( !data.isSoft ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.execute( 'shiftEnter' );\n\t\t\tview.scrollToTheSelection();\n\t\t}, { priority: 'low' } );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\teditor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Insert a soft break (a <code><br></code> element)' ),\n\t\t\t\t\tkeystroke: 'Shift+Enter'\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["index.js","../src/utils.ts","../src/entercommand.ts","../src/enterobserver.ts","../src/enter.ts","../src/shiftentercommand.ts","../src/shiftenter.ts"],"names":["getCopyOnEnterAttributes","schema","allAttributes","attribute","getAttributeProperties","copyOnEnter","EnterCommand","Command","execute","editor","model","change","writer","enterBlock","fire","selection","document","isSelectionEmpty","isCollapsed","range","getFirstRange","startElement","start","parent","endElement","end","isLimit","deleteContent","attributesToCopy","getAttributes","splitBlock","setSelectionAttribute","leaveUnmerged","isAtStart","isAtEnd","isContainedWithinOneElement","focus","setSelection","splitPos","split","nextSibling","ENTER_EVENT_TYPES","insertParagraph","isSoft","insertLineBreak","EnterObserver","Observer","view","doc","shiftPressed","on","evt","data","shiftKey","isEnabled","inputType","env","isSafari","domEvent","enterEventSpec","event","BubblingEventInfo","targetRanges","DomEventData","stop","called","observe","stopObserving","Enter","Plugin","pluginName","isOfficialPlugin","init","editing","viewDocument","t","addObserver","commands","add","listenTo","isComposing","preventDefault","scrollToTheSelection","priority","accessibility","addKeystrokeInfos","keystrokes","label","keystroke","ShiftEnterCommand","softBreakAction","refresh","rangeCount","anchorPos","anchor","checkChild","isInsideLimitElement","insertBreak","removeSelectionAttribute","getAttributeKeys","position","breakLineElement","createElement","insertContent","element","is","ShiftEnter","conversion","register","allowWhere","isInline","for","elementToElement","modelElement","createEmptyElement"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { Observer, BubblingEventInfo, DomEventData } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { env } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module enter/utils\n */ /**\n * Returns attributes that should be preserved on the enter keystroke.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param schema Model's schema.\n * @param allAttributes Attributes to filter.\n */ function* getCopyOnEnterAttributes(schema, allAttributes) {\n for (const attribute of allAttributes){\n if (attribute && schema.getAttributeProperties(attribute[0]).copyOnEnter) {\n yield attribute;\n }\n }\n}\n\n/**\n * Enter command used by the {@link module:enter/enter~Enter Enter feature} to handle the <kbd>Enter</kbd> keystroke.\n */ class EnterCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ execute() {\n this.editor.model.change((writer)=>{\n this.enterBlock(writer);\n this.fire('afterExecute', {\n writer\n });\n });\n }\n /**\n\t * Splits a block where the document selection is placed, in the way how the <kbd>Enter</kbd> key is expected to work:\n\t *\n\t * ```\n\t * <p>Foo[]bar</p> -> <p>Foo</p><p>[]bar</p>\n\t * <p>Foobar[]</p> -> <p>Foobar</p><p>[]</p>\n\t * <p>Fo[ob]ar</p> -> <p>Fo</p><p>[]ar</p>\n\t * ```\n\t *\n\t * In some cases, the split will not happen:\n\t *\n\t * ```\n\t * // The selection parent is a limit element:\n\t * <figcaption>A[bc]d</figcaption> -> <figcaption>A[]d</figcaption>\n\t *\n\t * // The selection spans over multiple elements:\n\t * <h>x[x</h><p>y]y<p> -> <h>x</h><p>[]y</p>\n\t * ```\n\t *\n\t * @param writer Writer to use when performing the enter action.\n\t * @returns Boolean indicating if the block was split.\n\t */ enterBlock(writer) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const schema = model.schema;\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Don't touch the roots and other limit elements.\n if (schema.isLimit(startElement) || schema.isLimit(endElement)) {\n // Delete the selected content but only if inside a single limit element.\n // Abort, when crossing limit elements boundary (e.g. <limit1>x[x</limit1>donttouchme<limit2>y]y</limit2>).\n // This is an edge case and it's hard to tell what should actually happen because such a selection\n // is not entirely valid.\n if (!isSelectionEmpty && startElement == endElement) {\n model.deleteContent(selection);\n }\n return false;\n }\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(writer.model.schema, selection.getAttributes());\n splitBlock(writer, range.start);\n writer.setSelectionAttribute(attributesToCopy);\n return true;\n } else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n const isContainedWithinOneElement = startElement == endElement;\n model.deleteContent(selection, {\n leaveUnmerged\n });\n if (leaveUnmerged) {\n // Partially selected elements.\n //\n // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x</h><h>^x</h>\n if (isContainedWithinOneElement) {\n splitBlock(writer, selection.focus);\n return true;\n } else {\n writer.setSelection(endElement, 0);\n }\n }\n }\n return false;\n }\n}\nfunction splitBlock(writer, splitPos) {\n writer.split(splitPos);\n writer.setSelection(splitPos.parent.nextSibling, 0);\n}\n\nconst ENTER_EVENT_TYPES = {\n insertParagraph: {\n isSoft: false\n },\n insertLineBreak: {\n isSoft: true\n }\n};\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter `Document#enter`} event.\n */ class EnterObserver extends Observer {\n /**\n\t * @inheritDoc\n\t */ constructor(view){\n super(view);\n const doc = this.document;\n let shiftPressed = false;\n doc.on('keydown', (evt, data)=>{\n shiftPressed = data.shiftKey;\n });\n doc.on('beforeinput', (evt, data)=>{\n if (!this.isEnabled) {\n return;\n }\n let inputType = data.inputType;\n // See https://github.com/ckeditor/ckeditor5/issues/13321.\n if (env.isSafari && shiftPressed && inputType == 'insertParagraph') {\n inputType = 'insertLineBreak';\n }\n const domEvent = data.domEvent;\n const enterEventSpec = ENTER_EVENT_TYPES[inputType];\n if (!enterEventSpec) {\n return;\n }\n const event = new BubblingEventInfo(doc, 'enter', data.targetRanges[0]);\n doc.fire(event, new DomEventData(view, domEvent, {\n isSoft: enterEventSpec.isSoft\n }));\n // Stop `beforeinput` event if `enter` event was stopped.\n // https://github.com/ckeditor/ckeditor5/issues/753\n if (event.stop.called) {\n evt.stop();\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ observe() {}\n /**\n\t * @inheritDoc\n\t */ stopObserving() {}\n}\n\n/**\n * This plugin handles the <kbd>Enter</kbd> keystroke (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */ class Enter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Enter';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const t = this.editor.t;\n view.addObserver(EnterObserver);\n editor.commands.add('enter', new EnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data)=>{\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The soft enter key is handled by the ShiftEnter plugin.\n if (data.isSoft) {\n return;\n }\n editor.execute('enter');\n view.scrollToTheSelection();\n }, {\n priority: 'low'\n });\n // Add the information about the keystroke to the accessibility database.\n editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Insert a hard break (a new paragraph)'),\n keystroke: 'Enter'\n }\n ]\n });\n }\n}\n\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke.\n */ class ShiftEnterCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n const doc = model.document;\n model.change((writer)=>{\n softBreakAction(model, writer, doc.selection);\n this.fire('afterExecute', {\n writer\n });\n });\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = isEnabled(model.schema, doc.selection);\n }\n}\n/**\n * Checks whether the ShiftEnter command should be enabled in the specified selection.\n */ function isEnabled(schema, selection) {\n // At this moment it is okay to support single range selections only.\n // But in the future we may need to change that.\n if (selection.rangeCount > 1) {\n return false;\n }\n const anchorPos = selection.anchor;\n // Check whether the break element can be inserted in the current selection anchor.\n if (!anchorPos || !schema.checkChild(anchorPos, 'softBreak')) {\n return false;\n }\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Do not modify the content if selection is cross-limit elements.\n if ((isInsideLimitElement(startElement, schema) || isInsideLimitElement(endElement, schema)) && startElement !== endElement) {\n return false;\n }\n return true;\n}\n/**\n * Creates a break in the way that the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke is expected to work.\n */ function softBreakAction(model, writer, selection) {\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n const isContainedWithinOneElement = startElement == endElement;\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(model.schema, selection.getAttributes());\n insertBreak(model, writer, range.end);\n writer.removeSelectionAttribute(selection.getAttributeKeys());\n writer.setSelectionAttribute(attributesToCopy);\n } else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n model.deleteContent(selection, {\n leaveUnmerged\n });\n // Selection within one element:\n //\n // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x<br>^x</h>\n if (isContainedWithinOneElement) {\n insertBreak(model, writer, selection.focus);\n } else {\n // Move the selection to the 2nd element (last step of the example above).\n if (leaveUnmerged) {\n writer.setSelection(endElement, 0);\n }\n }\n }\n}\nfunction insertBreak(model, writer, position) {\n const breakLineElement = writer.createElement('softBreak');\n model.insertContent(breakLineElement, position);\n writer.setSelection(breakLineElement, 'after');\n}\n/**\n * Checks whether the specified `element` is a child of the limit element.\n *\n * Checking whether the `<p>` element is inside a limit element:\n * - `<$root><p>Text.</p></$root> => false`\n * - `<$root><limitElement><p>Text</p></limitElement></$root> => true`\n */ function isInsideLimitElement(element, schema) {\n // `$root` is a limit element but in this case is an invalid element.\n if (element.is('rootElement')) {\n return false;\n }\n return schema.isLimit(element) || isInsideLimitElement(element.parent, schema);\n}\n\n/**\n * This plugin handles the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */ class ShiftEnter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'ShiftEnter';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const t = this.editor.t;\n // Configure the schema.\n schema.register('softBreak', {\n allowWhere: '$text',\n isInline: true\n });\n // Configure converters.\n conversion.for('upcast').elementToElement({\n model: 'softBreak',\n view: 'br'\n });\n conversion.for('downcast').elementToElement({\n model: 'softBreak',\n view: (modelElement, { writer })=>writer.createEmptyElement('br')\n });\n view.addObserver(EnterObserver);\n editor.commands.add('shiftEnter', new ShiftEnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data)=>{\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The hard enter key is handled by the Enter plugin.\n if (!data.isSoft) {\n return;\n }\n editor.execute('shiftEnter');\n view.scrollToTheSelection();\n }, {\n priority: 'low'\n });\n // Add the information about the keystroke to the accessibility database.\n editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Insert a soft break (a <code><br></code> element)'),\n keystroke: 'Shift+Enter'\n }\n ]\n });\n }\n}\n\nexport { Enter, ShiftEnter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/utils\n */\n\nimport type { Schema } from '@ckeditor/ckeditor5-engine';\n\n/**\n * Returns attributes that should be preserved on the enter keystroke.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param schema Model's schema.\n * @param allAttributes Attributes to filter.\n */\nexport function* getCopyOnEnterAttributes(\n\tschema: Schema,\n\tallAttributes: Iterable<[ string, unknown ]>\n): IterableIterator<[ string, unknown ]> {\n\tfor ( const attribute of allAttributes ) {\n\t\tif ( attribute && schema.getAttributeProperties( attribute[ 0 ] ).copyOnEnter ) {\n\t\t\tyield attribute;\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/entercommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils.js';\n\nimport type {\n\tElement,\n\tPosition,\n\tWriter\n} from '@ckeditor/ckeditor5-engine';\n\n/**\n * Enter command used by the {@link module:enter/enter~Enter Enter feature} to handle the <kbd>Enter</kbd> keystroke.\n */\nexport default class EnterCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tthis.editor.model.change( writer => {\n\t\t\tthis.enterBlock( writer );\n\t\t\tthis.fire<EnterCommandAfterExecuteEvent>( 'afterExecute', { writer } );\n\t\t} );\n\t}\n\n\t/**\n\t * Splits a block where the document selection is placed, in the way how the <kbd>Enter</kbd> key is expected to work:\n\t *\n\t * ```\n\t * <p>Foo[]bar</p> -> <p>Foo</p><p>[]bar</p>\n\t * <p>Foobar[]</p> -> <p>Foobar</p><p>[]</p>\n\t * <p>Fo[ob]ar</p> -> <p>Fo</p><p>[]ar</p>\n\t * ```\n\t *\n\t * In some cases, the split will not happen:\n\t *\n\t * ```\n\t * // The selection parent is a limit element:\n\t * <figcaption>A[bc]d</figcaption> -> <figcaption>A[]d</figcaption>\n\t *\n\t * // The selection spans over multiple elements:\n\t * <h>x[x</h><p>y]y<p> -> <h>x</h><p>[]y</p>\n\t * ```\n\t *\n\t * @param writer Writer to use when performing the enter action.\n\t * @returns Boolean indicating if the block was split.\n\t */\n\tpublic enterBlock( writer: Writer ): boolean {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst schema = model.schema;\n\t\tconst isSelectionEmpty = selection.isCollapsed;\n\t\tconst range = selection.getFirstRange()!;\n\t\tconst startElement = range.start.parent as Element;\n\t\tconst endElement = range.end.parent as Element;\n\n\t\t// Don't touch the roots and other limit elements.\n\t\tif ( schema.isLimit( startElement ) || schema.isLimit( endElement ) ) {\n\t\t\t// Delete the selected content but only if inside a single limit element.\n\t\t\t// Abort, when crossing limit elements boundary (e.g. <limit1>x[x</limit1>donttouchme<limit2>y]y</limit2>).\n\t\t\t// This is an edge case and it's hard to tell what should actually happen because such a selection\n\t\t\t// is not entirely valid.\n\t\t\tif ( !isSelectionEmpty && startElement == endElement ) {\n\t\t\t\tmodel.deleteContent( selection );\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( isSelectionEmpty ) {\n\t\t\tconst attributesToCopy = getCopyOnEnterAttributes( writer.model.schema, selection.getAttributes() );\n\n\t\t\tsplitBlock( writer, range.start );\n\t\t\twriter.setSelectionAttribute( attributesToCopy );\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\tconst leaveUnmerged = !( range.start.isAtStart && range.end.isAtEnd );\n\t\t\tconst isContainedWithinOneElement = ( startElement == endElement );\n\n\t\t\tmodel.deleteContent( selection, { leaveUnmerged } );\n\n\t\t\tif ( leaveUnmerged ) {\n\t\t\t\t// Partially selected elements.\n\t\t\t\t//\n\t\t\t\t// <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x</h><h>^x</h>\n\t\t\t\tif ( isContainedWithinOneElement ) {\n\t\t\t\t\tsplitBlock( writer, selection.focus! );\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Selection over multiple elements.\n\t\t\t\t//\n\t\t\t\t// <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n\t\t\t\telse {\n\t\t\t\t\twriter.setSelection( endElement, 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n/**\n * Fired after the the {@link module:enter/entercommand~EnterCommand} is finished executing.\n *\n * @eventName ~EnterCommand#afterExecute\n */\nexport type EnterCommandAfterExecuteEvent = {\n\tname: 'afterExecute';\n\targs: [ { writer: Writer } ];\n};\n\nfunction splitBlock( writer: Writer, splitPos: Position ): void {\n\twriter.split( splitPos );\n\twriter.setSelection( splitPos.parent.nextSibling!, 0 );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/enterobserver\n */\n\nimport {\n\tObserver,\n\tDomEventData,\n\tBubblingEventInfo,\n\ttype EditingView,\n\ttype ViewDocumentInputEvent,\n\ttype BubblingEvent,\n\ttype ViewDocumentKeyDownEvent\n} from '@ckeditor/ckeditor5-engine';\n\nimport { env } from '@ckeditor/ckeditor5-utils';\n\nconst ENTER_EVENT_TYPES: Record<string, { isSoft: boolean }> = {\n\tinsertParagraph: { isSoft: false },\n\tinsertLineBreak: { isSoft: true }\n};\n\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter `Document#enter`} event.\n */\nexport default class EnterObserver extends Observer {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( view: EditingView ) {\n\t\tsuper( view );\n\n\t\tconst doc = this.document;\n\t\tlet shiftPressed = false;\n\n\t\tdoc.on<ViewDocumentKeyDownEvent>( 'keydown', ( evt, data ) => {\n\t\t\tshiftPressed = data.shiftKey;\n\t\t} );\n\n\t\tdoc.on<ViewDocumentInputEvent>( 'beforeinput', ( evt, data ) => {\n\t\t\tif ( !this.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet inputType = data.inputType;\n\n\t\t\t// See https://github.com/ckeditor/ckeditor5/issues/13321.\n\t\t\tif ( env.isSafari && shiftPressed && inputType == 'insertParagraph' ) {\n\t\t\t\tinputType = 'insertLineBreak';\n\t\t\t}\n\n\t\t\tconst domEvent = data.domEvent;\n\t\t\tconst enterEventSpec = ENTER_EVENT_TYPES[ inputType ];\n\n\t\t\tif ( !enterEventSpec ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst event = new BubblingEventInfo( doc, 'enter', data.targetRanges[ 0 ] );\n\n\t\t\tdoc.fire( event, new DomEventData( view, domEvent, {\n\t\t\t\tisSoft: enterEventSpec.isSoft\n\t\t\t} ) );\n\n\t\t\t// Stop `beforeinput` event if `enter` event was stopped.\n\t\t\t// https://github.com/ckeditor/ckeditor5/issues/753\n\t\t\tif ( event.stop.called ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic observe(): void {}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic stopObserving(): void {}\n}\n\n/**\n * Fired when the user presses the <kbd>Enter</kbd> key.\n *\n * Note: This event is fired by the {@link module:enter/enterobserver~EnterObserver observer}\n * (usually registered by the {@link module:enter/enter~Enter Enter feature} and\n * {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature}).\n *\n * @eventName module:engine/view/document~Document#enter\n */\nexport type ViewDocumentEnterEvent = BubblingEvent<{\n\tname: 'enter';\n\targs: [ EnterEventData ];\n}>;\n\nexport interface EnterEventData extends DomEventData<InputEvent> {\n\n\t/**\n\t * Whether it is a soft enter (<kbd>Shift</kbd>+<kbd>Enter</kbd>) or a hard enter (<kbd>Enter</kbd>).\n\t */\n\tisSoft: boolean;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/enter\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport EnterCommand from './entercommand.js';\nimport EnterObserver, { type ViewDocumentEnterEvent } from './enterobserver.js';\n\n/**\n * This plugin handles the <kbd>Enter</kbd> keystroke (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class Enter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Enter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\t\tconst t = this.editor.t;\n\n\t\tview.addObserver( EnterObserver );\n\n\t\teditor.commands.add( 'enter', new EnterCommand( editor ) );\n\n\t\tthis.listenTo<ViewDocumentEnterEvent>( viewDocument, 'enter', ( evt, data ) => {\n\t\t\t// When not in composition, we handle the action, so prevent the default one.\n\t\t\t// When in composition, it's the browser who modify the DOM (renderer is disabled).\n\t\t\tif ( !viewDocument.isComposing ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t}\n\n\t\t\t// The soft enter key is handled by the ShiftEnter plugin.\n\t\t\tif ( data.isSoft ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.execute( 'enter' );\n\n\t\t\tview.scrollToTheSelection();\n\t\t}, { priority: 'low' } );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\teditor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Insert a hard break (a new paragraph)' ),\n\t\t\t\t\tkeystroke: 'Enter'\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/shiftentercommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils.js';\n\nimport type {\n\tDocumentSelection,\n\tModel,\n\tPosition,\n\tSchema,\n\tElement,\n\tWriter\n} from '@ckeditor/ckeditor5-engine';\n\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke.\n */\nexport default class ShiftEnterCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tmodel.change( writer => {\n\t\t\tsoftBreakAction( model, writer, doc.selection );\n\t\t\tthis.fire<ShiftEnterCommandAfterExecuteEvent>( 'afterExecute', { writer } );\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.isEnabled = isEnabled( model.schema, doc.selection );\n\t}\n}\n\n/**\n * Fired after the the {@link module:enter/shiftentercommand~ShiftEnterCommand} is finished executing.\n *\n * @eventName ~ShiftEnterCommand#afterExecute\n */\nexport type ShiftEnterCommandAfterExecuteEvent = {\n\tname: 'afterExecute';\n\targs: [ { writer: Writer } ];\n};\n\n/**\n * Checks whether the ShiftEnter command should be enabled in the specified selection.\n */\nfunction isEnabled( schema: Schema, selection: DocumentSelection ): boolean {\n\t// At this moment it is okay to support single range selections only.\n\t// But in the future we may need to change that.\n\tif ( selection.rangeCount > 1 ) {\n\t\treturn false;\n\t}\n\n\tconst anchorPos = selection.anchor;\n\n\t// Check whether the break element can be inserted in the current selection anchor.\n\tif ( !anchorPos || !schema.checkChild( anchorPos, 'softBreak' ) ) {\n\t\treturn false;\n\t}\n\n\tconst range = selection.getFirstRange()!;\n\tconst startElement = range.start.parent as Element;\n\tconst endElement = range.end.parent as Element;\n\n\t// Do not modify the content if selection is cross-limit elements.\n\tif ( ( isInsideLimitElement( startElement, schema ) || isInsideLimitElement( endElement, schema ) ) && startElement !== endElement ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Creates a break in the way that the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke is expected to work.\n */\nfunction softBreakAction( model: Model, writer: Writer, selection: DocumentSelection ): void {\n\tconst isSelectionEmpty = selection.isCollapsed;\n\tconst range = selection.getFirstRange()!;\n\tconst startElement = range.start.parent as Element;\n\tconst endElement = range.end.parent as Element;\n\tconst isContainedWithinOneElement = ( startElement == endElement );\n\n\tif ( isSelectionEmpty ) {\n\t\tconst attributesToCopy = getCopyOnEnterAttributes( model.schema, selection.getAttributes() );\n\n\t\tinsertBreak( model, writer, range.end );\n\n\t\twriter.removeSelectionAttribute( selection.getAttributeKeys() );\n\t\twriter.setSelectionAttribute( attributesToCopy );\n\t} else {\n\t\tconst leaveUnmerged = !( range.start.isAtStart && range.end.isAtEnd );\n\n\t\tmodel.deleteContent( selection, { leaveUnmerged } );\n\n\t\t// Selection within one element:\n\t\t//\n\t\t// <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x<br>^x</h>\n\t\tif ( isContainedWithinOneElement ) {\n\t\t\tinsertBreak( model, writer, selection.focus! );\n\t\t}\n\t\t// Selection over multiple elements.\n\t\t//\n\t\t// <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n\t\t//\n\t\t// We chose not to insert a line break in this case because:\n\t\t//\n\t\t// * it's not a very common scenario,\n\t\t// * it actually surprised me when I saw the \"expected behavior\" in real life.\n\t\t//\n\t\t// It's ok if the user will need to be more specific where they want the <br> to be inserted.\n\t\telse {\n\t\t\t// Move the selection to the 2nd element (last step of the example above).\n\t\t\tif ( leaveUnmerged ) {\n\t\t\t\twriter.setSelection( endElement, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertBreak( model: Model, writer: Writer, position: Position ): void {\n\tconst breakLineElement = writer.createElement( 'softBreak' );\n\n\tmodel.insertContent( breakLineElement, position );\n\twriter.setSelection( breakLineElement, 'after' );\n}\n\n/**\n * Checks whether the specified `element` is a child of the limit element.\n *\n * Checking whether the `<p>` element is inside a limit element:\n * - `<$root><p>Text.</p></$root> => false`\n * - `<$root><limitElement><p>Text</p></limitElement></$root> => true`\n */\nfunction isInsideLimitElement( element: Element, schema: Schema ): boolean {\n\t// `$root` is a limit element but in this case is an invalid element.\n\tif ( element.is( 'rootElement' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.isLimit( element ) || isInsideLimitElement( element.parent as Element, schema );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module enter/shiftenter\n */\n\nimport ShiftEnterCommand from './shiftentercommand.js';\nimport EnterObserver, { type ViewDocumentEnterEvent } from './enterobserver.js';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n\n/**\n * This plugin handles the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class ShiftEnter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ShiftEnter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst conversion = editor.conversion;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\t\tconst t = this.editor.t;\n\n\t\t// Configure the schema.\n\t\tschema.register( 'softBreak', {\n\t\t\tallowWhere: '$text',\n\t\t\tisInline: true\n\t\t} );\n\n\t\t// Configure converters.\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'softBreak',\n\t\t\t\tview: 'br'\n\t\t\t} );\n\n\t\tconversion.for( 'downcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'softBreak',\n\t\t\t\tview: ( modelElement, { writer } ) => writer.createEmptyElement( 'br' )\n\t\t\t} );\n\n\t\tview.addObserver( EnterObserver );\n\n\t\teditor.commands.add( 'shiftEnter', new ShiftEnterCommand( editor ) );\n\n\t\tthis.listenTo<ViewDocumentEnterEvent>( viewDocument, 'enter', ( evt, data ) => {\n\t\t\t// When not in composition, we handle the action, so prevent the default one.\n\t\t\t// When in composition, it's the browser who modify the DOM (renderer is disabled).\n\t\t\tif ( !viewDocument.isComposing ) {\n\t\t\t\tdata.preventDefault();\n\t\t\t}\n\n\t\t\t// The hard enter key is handled by the Enter plugin.\n\t\t\tif ( !data.isSoft ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.execute( 'shiftEnter' );\n\t\t\tview.scrollToTheSelection();\n\t\t}, { priority: 'low' } );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\teditor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Insert a soft break (a <code><br></code> element)' ),\n\t\t\t\t\tkeystroke: 'Shift+Enter'\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-enter",
|
|
3
|
-
"version": "45.2.1-alpha.
|
|
3
|
+
"version": "45.2.1-alpha.7",
|
|
4
4
|
"description": "Enter 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": "45.2.1-alpha.
|
|
17
|
-
"@ckeditor/ckeditor5-engine": "45.2.1-alpha.
|
|
18
|
-
"@ckeditor/ckeditor5-utils": "45.2.1-alpha.
|
|
16
|
+
"@ckeditor/ckeditor5-core": "45.2.1-alpha.7",
|
|
17
|
+
"@ckeditor/ckeditor5-engine": "45.2.1-alpha.7",
|
|
18
|
+
"@ckeditor/ckeditor5-utils": "45.2.1-alpha.7"
|
|
19
19
|
},
|
|
20
20
|
"author": "CKSource (http://cksource.com/)",
|
|
21
21
|
"license": "SEE LICENSE IN LICENSE.md",
|