{"version":3,"sources":["webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/utils.js"],"names":["ShiftEnterCommand","_this","this","model","editor","doc","document","change","writer","softBreakAction","selection","fire","isEnabled","schema","Command","rangeCount","anchorPos","anchor","checkChild","range","getFirstRange","startElement","start","parent","endElement","end","isInsideLimitElement","isSelectionEmpty","isCollapsed","isContainedWithinOneElement","attributesToCopy","getCopyOnEnterAttributes","getAttributes","insertBreak","removeSelectionAttribute","getAttributeKeys","setSelectionAttribute","leaveUnmerged","isAtStart","isAtEnd","deleteContent","focus","setSelection","position","breakLineElement","createElement","insertContent","element","is","isLimit","ShiftEnter","conversion","view","editing","viewDocument","register","allowWhere","isInline","for","elementToElement","modelElement","_ref","createEmptyElement","addObserver","EnterObserver","commands","add","listenTo","evt","data","preventDefault","isSoft","execute","scrollToTheSelection","priority","Plugin","Object","D_Projects_UA_repo_Source_Client_UA_User_Web_node_modules_babel_runtime_helpers_esm_classCallCheck_js__WEBPACK_IMPORTED_MODULE_1__","_super","call","on","keyCode","keyCodes","enter","event","BubblingEventInfo","DomEventData","domEvent","shiftKey","stop","called","Observer","EnterCommand","enterBlock","splitBlock","splitPos","split","nextSibling","Enter","allAttributes","_iterator","_step","attribute","regeneratorRuntime","wrap","_context","prev","next","_createForOfIteratorHelper","s","n","done","value","getAttributeProperties","copyOnEnter","t0","e","f","finish","_marked"],"mappings":"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","file":"js/chunk-3e489226.3cfb1846.js","sourcesContent":["/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/shiftentercommand\n */\n\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { getCopyOnEnterAttributes } from './utils';\n\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the Shift+Enter keystroke.\n *\n * @extends module:core/command~Command\n */\nexport default class ShiftEnterCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\texecute() {\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( 'afterExecute', { writer } );\n\t\t} );\n\t}\n\n\trefresh() {\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// Checks whether the ShiftEnter command should be enabled in the specified selection.\n//\n// @param {module:engine/model/schema~Schema} schema\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\nfunction isEnabled( schema, selection ) {\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;\n\tconst endElement = range.end.parent;\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// Creates a break in the way that the Shift+Enter keystroke is expected to work.\n//\n// @param {module:engine/model~Model} model\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// Selection on which the action should be performed.\nfunction softBreakAction( model, writer, selection ) {\n\tconst isSelectionEmpty = selection.isCollapsed;\n\tconst range = selection.getFirstRange();\n\tconst startElement = range.start.parent;\n\tconst endElement = range.end.parent;\n\tconst isContainedWithinOneElement = ( startElement == endElement );\n\n\tif ( isSelectionEmpty ) {\n\t\tconst attributesToCopy = getCopyOnEnterAttributes( model.schema, selection.getAttributes() );\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\t\tmodel.deleteContent( selection, { leaveUnmerged } );\n\n\t\t// Selection within one element:\n\t\t//\n\t\t//
^x
y]y
\t->
y
\t->^y
\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` element is inside a limit element:\n// - <$root>
Text.
$root> => false\n// - <$root>Text
y]y
\t->
y
\t->^y
\n\t\t\telse {\n\t\t\t\twriter.setSelection( endElement, 0 );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction splitBlock( writer, splitPos ) {\n\twriter.split( splitPos );\n\twriter.setSelection( splitPos.parent.nextSibling, 0 );\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/enter\n */\n\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport EnterCommand from './entercommand';\nimport EnterObserver from './enterobserver';\n\n/**\n * This plugin handles the Enter key (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 *\n * @extends module:core/plugin~Plugin\n */\nexport default class Enter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'Enter';\n\t}\n\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\n\t\tview.addObserver( EnterObserver );\n\n\t\teditor.commands.add( 'enter', new EnterCommand( editor ) );\n\n\t\tthis.listenTo( viewDocument, 'enter', ( evt, data ) => {\n\t\t\tdata.preventDefault();\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\t}\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/utils\n */\n\n/**\n * Returns attributes that should be preserved on the enter key.\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 {module:engine/model/schema~Schema} schema\n * @param {Iterable.<*>} allAttributes attributes to filter.\n * @returns {Iterable.<*>}\n */\nexport function* getCopyOnEnterAttributes( schema, allAttributes ) {\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"],"sourceRoot":""}