{"version":3,"sources":["webpack:///./node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcastdispatcher.js"],"names":["DowncastDispatcher","conversionApi","Object","D_Projects_UA_repo_Source_Client_UA_User_Web_node_modules_babel_runtime_helpers_esm_classCallCheck_js__WEBPACK_IMPORTED_MODULE_9__","this","assign","dispatcher","_reconversionEventsMapping","Map","differ","markers","writer","_step","_iterator","_createForOfIteratorHelper","getMarkersToRemove","s","n","done","change","value","convertMarkerRemove","name","range","err","e","f","_step2","changes","_mapChangesWithAutomaticReconversion","_iterator2","entry","type","convertInsert","Range","_createFromPositionAndShift","position","length","convertRemove","reconvertElement","element","convertAttribute","attributeKey","attributeOldValue","attributeNewValue","_step3","_iterator3","mapper","flushUnboundMarkerNames","markerName","markerRange","get","getRange","convertMarkerAdd","_step4","_iterator4","getMarkersToAdd","consumable","_createInsertConsumable","_step5","_iterator5","Array","from","map","walkerValueToEventData","data","_convertInsertWithAttributes","_clearConversionApi","fire","key","oldValue","newValue","_createConsumableForRange","concat","_step6","_iterator6","item","itemRange","previousPosition","_testAndFire","elementRange","_createOn","currentView","toViewElement","remove","_step7","convertedViewElement","_iterator7","_createIn","view","elementOrTextProxyToView","root","move","createRangeOn","toViewPosition","Position","_createBefore","unbindViewElement","selection","markersAtSelection","getMarkersAtPosition","getFirstPosition","_createSelectionConsumable","isCollapsed","_i","_markersAtSelection","marker","shouldMarkerChangeBeConverted","test","_step8","_iterator8","getAttributeKeys","getFirstRange","getAttribute","rootName","eventName","Consumable","add","_step9","_iterator9","getItems","modelName","set","_step10","_iterator10","_step11","_iterator11","_step12","_iterator12","_step13","_iterator13","_step14","_iterator14","getEventName","_step15","_iterator15","_step16","itemsToReconvert","Set","updated","_iterator16","getChanges","start","positionParent","parent","textNode","getTextNodeAtPosition","push","getNodeAfterPosition","is","_isReconvertTriggerEvent","has","elementName","modelPosition","ancestors","getAncestors","shift","reverse","hasCustomHandling","some","containsItem","viewElement","getCustomProperty","mappedPosition","mix","EmitterMixin"],"mappings":"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","file":"js/chunk-2d0ab146.314d46e7.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 engine/conversion/downcastdispatcher\n */\n\nimport Consumable from './modelconsumable';\nimport Range from '../model/range';\nimport Position, { getNodeAfterPosition, getTextNodeAtPosition } from '../model/position';\n\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n\n/**\n * The downcast dispatcher is a central point of downcasting (conversion from the model to the view), which is a process of reacting\n * to changes in the model and firing a set of events. Callbacks listening to these events are called converters. The\n * converters' role is to convert the model changes to changes in view (for example, adding view nodes or\n * changing attributes on view elements).\n *\n * During the conversion process, downcast dispatcher fires events basing on the state of the model and prepares\n * data for these events. It is important to understand that the events are connected with the changes done on the model,\n * for example: \"a node has been inserted\" or \"an attribute has changed\". This is in contrary to upcasting (a view-to-model conversion)\n * where you convert the view state (view nodes) to a model tree.\n *\n * The events are prepared basing on a diff created by {@link module:engine/model/differ~Differ Differ}, which buffers them\n * and then passes to the downcast dispatcher as a diff between the old model state and the new model state.\n *\n * Note that because the changes are converted, there is a need to have a mapping between the model structure and the view structure.\n * To map positions and elements during the downcast (a model-to-view conversion), use {@link module:engine/conversion/mapper~Mapper}.\n *\n * Downcast dispatcher fires the following events for model tree changes:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert `insert`} –\n * If a range of nodes was inserted to the model tree.\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove `remove`} –\n * If a range of nodes was removed from the model tree.\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute `attribute`} –\n * If an attribute was added, changed or removed from a model node.\n *\n * For {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert `insert`}\n * and {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute `attribute`},\n * downcast dispatcher generates {@link module:engine/conversion/modelconsumable~ModelConsumable consumables}.\n * These are used to have control over which changes have already been consumed. It is useful when some converters\n * overwrite others or convert multiple changes (for example, it converts an insertion of an element and also converts that\n * element's attributes during the insertion).\n *\n * Additionally, downcast dispatcher fires events for {@link module:engine/model/markercollection~Marker marker} changes:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker} – If a marker was added.\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:removeMarker} – If a marker was removed.\n *\n * Note that changing a marker is done through removing the marker from the old range and adding it to the new range,\n * so both events are fired.\n *\n * Finally, downcast dispatcher also handles firing events for the {@link module:engine/model/selection model selection}\n * conversion:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:selection}\n * – Converts the selection from the model to the view.\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute}\n * – Fired for every selection attribute.\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker}\n * – Fired for every marker that contains a selection.\n *\n * Unlike the model tree and the markers, the events for selection are not fired for changes but for a selection state.\n *\n * When providing custom listeners for a downcast dispatcher, remember to check whether a given change has not been\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed} yet.\n *\n * When providing custom listeners for downcast dispatcher, keep in mind that any callback that has\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed} a value from a consumable and\n * converted the change should also stop the event (for efficiency purposes).\n *\n * When providing custom listeners for downcast dispatcher, remember to use the provided\n * {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer} to apply changes to the view document.\n *\n * You can read more about conversion in the following guides:\n *\n * * {@glink framework/guides/deep-dive/conversion/conversion-introduction Advanced conversion concepts — attributes}\n * * {@glink framework/guides/deep-dive/conversion/conversion-extending-output Extending the editor output }\n * * {@glink framework/guides/deep-dive/conversion/custom-element-conversion Custom element conversion}\n *\n * An example of a custom converter for the downcast dispatcher:\n *\n *\t\t// You will convert inserting a \"paragraph\" model element into the model.\n *\t\tdowncastDispatcher.on( 'insert:paragraph', ( evt, data, conversionApi ) => {\n *\t\t\t// Remember to check whether the change has not been consumed yet and consume it.\n *\t\t\tif ( !conversionApi.consumable.consume( data.item, 'insert' ) ) {\n *\t\t\t\treturn;\n *\t\t\t}\n *\n *\t\t\t// Translate the position in the model to a position in the view.\n *\t\t\tconst viewPosition = conversionApi.mapper.toViewPosition( data.range.start );\n *\n *\t\t\t// Create a
element that will be inserted into the view at the `viewPosition`.\n *\t\t\tconst viewElement = conversionApi.writer.createContainerElement( 'p' );\n *\n *\t\t\t// Bind the newly created view element to the model element so positions will map accordingly in the future.\n *\t\t\tconversionApi.mapper.bindElements( data.item, viewElement );\n *\n *\t\t\t// Add the newly created view element to the view.\n *\t\t\tconversionApi.writer.insert( viewPosition, viewElement );\n *\n *\t\t\t// Remember to stop the event propagation.\n *\t\t\tevt.stop();\n *\t\t} );\n */\nexport default class DowncastDispatcher {\n\t/**\n\t * Creates a downcast dispatcher instance.\n\t *\n\t * @see module:engine/conversion/downcastdispatcher~DowncastConversionApi\n\t * @param {Object} conversionApi Additional properties for an interface that will be passed to events fired\n\t * by the downcast dispatcher.\n\t */\n\tconstructor( conversionApi ) {\n\t\t/**\n\t\t * An interface passed by the dispatcher to the event callbacks.\n\t\t *\n\t\t * @member {module:engine/conversion/downcastdispatcher~DowncastConversionApi}\n\t\t */\n\t\tthis.conversionApi = Object.assign( { dispatcher: this }, conversionApi );\n\n\t\t/**\n\t\t * Maps conversion event names that will trigger element reconversion for a given element name.\n\t\t *\n\t\t * @type {Map