@ckeditor/ckeditor5-editor-multi-root 43.3.1 → 44.0.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/multirooteditorui.ts","../src/multirooteditoruiview.ts","../src/multirooteditor.ts"],"names":["MultiRootEditorUI","EditorUI","constructor","editor","view","_lastFocusedEditableElement","render","focusTracker","on","evt","name","focusedElement","editable","Object","values","editables","element","isFocused","addEditable","_initToolbar","_initMenuBar","menuBarView","fire","placeholder","editableElement","editing","attachDomRoot","setEditableElement","bind","to","_initPlaceholder","removeEditable","detachDomRoot","unbind","removeEditableElement","destroy","toolbar","fillFromConfig","config","get","componentFactory","addToolbar","configPlaceholder","editingView","editingRoot","document","getRoot","enablePlaceholder","isDirectHost","keepOnFocus","MultiRootEditorUIView","EditorUIView","locale","editableNames","options","_editingView","ToolbarView","shouldGroupWhenFull","shouldToolbarGroupWhenFull","MenuBarView","editableName","editableElements","undefined","label","createEditable","extendTemplate","attributes","class","dir","uiLanguageDirection","InlineEditableUIView","isRendered","registerChild","deregisterChild","MultiRootEditor","Editor","_registeredRootsAttributesKeys","Set","_readOnlyRootLocks","Map","sourceElementsOrData","rootNames","keys","sourceIsData","length","initialData","CKEditorError","sourceElements","rootName","getInitialData","set","secureSourceElement","roots","viewRoot","isReadOnly","has","prop","value","viewRange","createRangeIn","viewItem","getItems","is","model","createRoot","root","_isLoaded","rootsAttributes","entries","key","registerRootAttribute","data","enqueueChange","isUndoable","writer","setAttribute","ui","changedRoots","differ","getChangedRoots","changes","state","listenTo","selection","selectionInReadOnlyRoot","range","getRanges","return","stop","priority","decorate","logWarning","shouldUpdateSourceElement","getData","then","setDataInElement","addRoot","elementName","_addRoot","insert","parse","change","detachRoot","forceRender","detachEditable","loadRoot","_bufferRootLoad","getFullData","getRootNames","getRootAttributes","rootAttributes","hasAttribute","getAttribute","add","schema","extend","allowAttributes","disableRoot","lockId","locksForGivenRoot","editableRootElement","Array","from","commands","forEach","command","affectsData","refresh","enableRoot","size","delete","create","Promise","resolve","sourceItem","isElement","tagName","initPlugins","init","_verifyRootsWithInitialData","isAttached","sourceElementOrData","getDataFromElement","_isElement"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Editor, secureSourceElement } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, logWarning, setDataInElement, getDataFromElement } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { EditorUI, EditorUIView, ToolbarView, MenuBarView, InlineEditableUIView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { enablePlaceholder } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { isElement as isElement$1 } from 'lodash-es';\n\n/**\n * The multi-root editor UI class.\n */ class MultiRootEditorUI extends EditorUI {\n /**\n\t * The main (top–most) view of the editor UI.\n\t */ view;\n /**\n\t * The editable element that was focused the last time when any of the editables had focus.\n\t */ _lastFocusedEditableElement;\n /**\n\t * Creates an instance of the multi-root editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */ constructor(editor, view){\n super(editor);\n this.view = view;\n this._lastFocusedEditableElement = null;\n }\n /**\n\t * Initializes the UI.\n\t */ init() {\n const view = this.view;\n view.render();\n // Keep track of the last focused editable element. Knowing which one was focused\n // is useful when the focus moves from editable to other UI components like balloons\n // (especially inputs) but the editable remains the \"focus context\" (e.g. link balloon\n // attached to a link in an editable). In this case, the editable should preserve visual\n // focus styles.\n this.focusTracker.on('change:focusedElement', (evt, name, focusedElement)=>{\n for (const editable of Object.values(this.view.editables)){\n if (focusedElement === editable.element) {\n this._lastFocusedEditableElement = editable.element;\n }\n }\n });\n // If the focus tracker loses focus, stop tracking the last focused editable element.\n // Wherever the focus is restored, it will no longer be in the context of that editable\n // because the focus \"came from the outside\", as opposed to the focus moving from one element\n // to another within the editor UI.\n this.focusTracker.on('change:isFocused', (evt, name, isFocused)=>{\n if (!isFocused) {\n this._lastFocusedEditableElement = null;\n }\n });\n for (const editable of Object.values(this.view.editables)){\n this.addEditable(editable);\n }\n this._initToolbar();\n this._initMenuBar(this.view.menuBarView);\n this.fire('ready');\n }\n /**\n\t * Adds the editable to the editor UI.\n\t *\n\t * After the editable is added to the editor UI it can be considered \"active\".\n\t *\n\t * The editable is attached to the editor editing pipeline, which means that it will be updated as the editor model updates and\n\t * changing its content will be reflected in the editor model. Keystrokes, focus handling and placeholder are initialized.\n\t *\n\t * @param editable The editable instance to add.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */ addEditable(editable, placeholder) {\n // The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n // But it can be available earlier if a DOM element has been passed to `MultiRootEditor.create()`.\n const editableElement = editable.element;\n // Bind the editable UI element to the editing view, making it an end– and entry–point\n // of the editor's engine. This is where the engine meets the UI.\n this.editor.editing.view.attachDomRoot(editableElement, editable.name);\n // Register each editable UI view in the editor.\n this.setEditableElement(editable.name, editableElement);\n // Let the editable UI element respond to the changes in the global editor focus\n // tracker. It has been added to the same tracker a few lines above but, in reality, there are\n // many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n // as they have focus, the editable should act like it is focused too (although technically\n // it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n // Doing otherwise will result in editable focus styles disappearing, once e.g. the\n // toolbar gets focused.\n editable.bind('isFocused').to(this.focusTracker, 'isFocused', this.focusTracker, 'focusedElement', (isFocused, focusedElement)=>{\n // When the focus tracker is blurred, it means the focus moved out of the editor UI.\n // No editable will maintain focus then.\n if (!isFocused) {\n return false;\n }\n // If the focus tracker says the editor UI is focused and currently focused element\n // is the editable, then the editable should be visually marked as focused too.\n if (focusedElement === editableElement) {\n return true;\n } else {\n return this._lastFocusedEditableElement === editableElement;\n }\n });\n this._initPlaceholder(editable, placeholder);\n }\n /**\n\t * Removes the editable instance from the editor UI.\n\t *\n\t * Removed editable can be considered \"deactivated\".\n\t *\n\t * The editable is detached from the editing pipeline, so model changes are no longer reflected in it. All handling added in\n\t * {@link #addEditable} is removed.\n\t *\n\t * @param editable Editable to remove from the editor UI.\n\t */ removeEditable(editable) {\n this.editor.editing.view.detachDomRoot(editable.name);\n editable.unbind('isFocused');\n this.removeEditableElement(editable.name);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n for (const editable of Object.values(this.view.editables)){\n this.removeEditable(editable);\n }\n this.view.destroy();\n }\n /**\n\t * Initializes the editor main toolbar and its panel.\n\t */ _initToolbar() {\n const editor = this.editor;\n const view = this.view;\n const toolbar = view.toolbar;\n toolbar.fillFromConfig(editor.config.get('toolbar'), this.componentFactory);\n // Register the toolbar, so it becomes available for Alt+F10 and Esc navigation.\n this.addToolbar(view.toolbar);\n }\n /**\n\t * Enables the placeholder text on a given editable.\n\t *\n\t * @param editable Editable on which the placeholder should be set.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */ _initPlaceholder(editable, placeholder) {\n if (!placeholder) {\n const configPlaceholder = this.editor.config.get('placeholder');\n if (configPlaceholder) {\n placeholder = typeof configPlaceholder === 'string' ? configPlaceholder : configPlaceholder[editable.name];\n }\n }\n const editingView = this.editor.editing.view;\n const editingRoot = editingView.document.getRoot(editable.name);\n if (placeholder) {\n editingRoot.placeholder = placeholder;\n }\n enablePlaceholder({\n view: editingView,\n element: editingRoot,\n isDirectHost: false,\n keepOnFocus: true\n });\n }\n}\n\n/**\n * The multi-root editor UI view. It is a virtual view providing an inline\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#editable} and a\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar}, but without any\n * specific arrangement of the components in the DOM.\n *\n * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}\n * to learn more about this view.\n */ class MultiRootEditorUIView extends EditorUIView {\n /**\n\t * The main toolbar of the multi-root editor UI.\n\t */ toolbar;\n /**\n\t * Editable elements used by the multi-root editor UI.\n\t */ editables;\n editable;\n /**\n\t * Menu bar view instance.\n\t */ menuBarView;\n /**\n\t * The editing view instance this view is related to.\n\t */ _editingView;\n /**\n\t * Creates an instance of the multi-root editor UI view.\n\t *\n\t * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n\t * @param editingView The editing view instance this view is related to.\n\t * @param editableNames Names for all editable views. For each name, one\n\t * {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`} instance will be initialized.\n\t * @param options Configuration options for the view instance.\n\t * @param options.editableElements The editable elements to be used, assigned to their names. If not specified, they will be\n\t * automatically created by {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`}\n\t * instances.\n\t * @param options.shouldToolbarGroupWhenFull When set to `true` enables automatic items grouping\n\t * in the main {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar toolbar}.\n\t * See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.\n\t * @param options.label When set, this value will be used as an accessible `aria-label` of the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView editable view} elements.\n\t */ constructor(locale, editingView, editableNames, options = {}){\n super(locale);\n this._editingView = editingView;\n this.toolbar = new ToolbarView(locale, {\n shouldGroupWhenFull: options.shouldToolbarGroupWhenFull\n });\n this.menuBarView = new MenuBarView(locale);\n this.editables = {};\n // Create `InlineEditableUIView` instance for each editable.\n for (const editableName of editableNames){\n const editableElement = options.editableElements ? options.editableElements[editableName] : undefined;\n let { label } = options;\n if (typeof label === 'object') {\n label = label[editableName];\n }\n this.createEditable(editableName, editableElement, label);\n }\n this.editable = Object.values(this.editables)[0];\n // This toolbar may be placed anywhere in the page so things like font size need to be reset in it.\n // Because of the above, make sure the toolbar supports rounded corners.\n // Also, make sure the toolbar has the proper dir attribute because its ancestor may not have one\n // and some toolbar item styles depend on this attribute.\n this.toolbar.extendTemplate({\n attributes: {\n class: [\n 'ck-reset_all',\n 'ck-rounded-corners'\n ],\n dir: locale.uiLanguageDirection\n }\n });\n this.menuBarView.extendTemplate({\n attributes: {\n class: [\n 'ck-reset_all',\n 'ck-rounded-corners'\n ],\n dir: locale.uiLanguageDirection\n }\n });\n }\n /**\n\t * Creates an editable instance with given name and registers it in the editor UI view.\n\t *\n\t * If `editableElement` is provided, the editable instance will be created on top of it. Otherwise, the editor will create a new\n\t * DOM element and use it instead.\n\t *\n\t * @param editableName The name for the editable.\n\t * @param editableElement DOM element for which the editable should be created.\n\t * @param label The accessible editable label used by assistive technologies.\n\t * @returns The created editable instance.\n\t */ createEditable(editableName, editableElement, label) {\n const editable = new InlineEditableUIView(this.locale, this._editingView, editableElement, {\n label\n });\n this.editables[editableName] = editable;\n editable.name = editableName;\n if (this.isRendered) {\n this.registerChild(editable);\n }\n return editable;\n }\n /**\n\t * Destroys and removes the editable from the editor UI view.\n\t *\n\t * @param editableName The name of the editable that should be removed.\n\t */ removeEditable(editableName) {\n const editable = this.editables[editableName];\n if (this.isRendered) {\n this.deregisterChild(editable);\n }\n delete this.editables[editableName];\n editable.destroy();\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.registerChild(Object.values(this.editables));\n this.registerChild(this.toolbar);\n this.registerChild(this.menuBarView);\n }\n}\n\n/**\n * The multi-root editor implementation.\n *\n * The multi-root editor provides multiple inline editable elements and a toolbar. All editable areas are controlled by one editor\n * instance, which means that they share common configuration, document ID, or undo stack.\n *\n * This type of editor is dedicated to integrations which require a customized UI with an open structure, featuring multiple editable areas,\n * allowing developers to have a control over the exact location of these editable areas.\n *\n * In order to create a multi-root editor instance, use the static\n * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method.\n *\n * Note that you will need to attach the editor toolbar to your web page manually, in a desired place, after the editor is initialized.\n */ class MultiRootEditor extends Editor {\n /**\n\t * @inheritDoc\n\t */ ui;\n /**\n\t * The elements on which the editor has been initialized.\n\t */ sourceElements;\n /**\n\t * Holds attributes keys that were passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `rootsAttributes`}\n\t * config property and should be returned by {@link #getRootsAttributes}.\n\t */ _registeredRootsAttributesKeys = new Set();\n /**\n\t * A set of lock IDs for enabling or disabling particular root.\n\t */ _readOnlyRootLocks = new Map();\n /**\n\t * Creates an instance of the multi-root editor.\n\t *\n\t * **Note:** Do not use the constructor to create editor instances. Use the static\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method instead.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t * For more information see {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}.\n\t * @param config The editor configuration.\n\t */ constructor(sourceElementsOrData, config = {}){\n const rootNames = Object.keys(sourceElementsOrData);\n const sourceIsData = rootNames.length === 0 || typeof sourceElementsOrData[rootNames[0]] === 'string';\n if (sourceIsData && config.initialData !== undefined && Object.keys(config.initialData).length > 0) {\n // Documented in core/editor/editorconfig.jsdoc.\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-create-initial-data', null);\n }\n super(config);\n if (!sourceIsData) {\n this.sourceElements = sourceElementsOrData;\n } else {\n this.sourceElements = {};\n }\n if (this.config.get('initialData') === undefined) {\n // Create initial data object containing data from all roots.\n const initialData = {};\n for (const rootName of rootNames){\n initialData[rootName] = getInitialData(sourceElementsOrData[rootName]);\n }\n this.config.set('initialData', initialData);\n }\n if (!sourceIsData) {\n for (const rootName of rootNames){\n secureSourceElement(this, sourceElementsOrData[rootName]);\n }\n }\n this.editing.view.document.roots.on('add', (evt, viewRoot)=>{\n // Here we change the standard binding of readOnly flag by adding\n // additional constraint that multi-root has (enabling / disabling particular root).\n viewRoot.unbind('isReadOnly');\n viewRoot.bind('isReadOnly').to(this.editing.view.document, 'isReadOnly', (isReadOnly)=>{\n return isReadOnly || this._readOnlyRootLocks.has(viewRoot.rootName);\n });\n // Hacky solution to nested editables.\n // Nested editables should be managed each separately and do not base on view document or view root.\n viewRoot.on('change:isReadOnly', (evt, prop, value)=>{\n const viewRange = this.editing.view.createRangeIn(viewRoot);\n for (const viewItem of viewRange.getItems()){\n if (viewItem.is('editableElement')) {\n viewItem.unbind('isReadOnly');\n viewItem.isReadOnly = value;\n }\n }\n });\n });\n for (const rootName of rootNames){\n // Create root and `UIView` element for each editable container.\n this.model.document.createRoot('$root', rootName);\n }\n if (this.config.get('lazyRoots')) {\n for (const rootName of this.config.get('lazyRoots')){\n const root = this.model.document.createRoot('$root', rootName);\n root._isLoaded = false;\n }\n }\n if (this.config.get('rootsAttributes')) {\n const rootsAttributes = this.config.get('rootsAttributes');\n for (const [rootName, attributes] of Object.entries(rootsAttributes)){\n if (!this.model.document.getRoot(rootName)) {\n /**\n\t\t\t\t\t * Trying to set attributes on a non-existing root.\n\t\t\t\t\t *\n\t\t\t\t\t * Roots specified in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes} do not match initial\n\t\t\t\t\t * editor roots.\n\t\t\t\t\t *\n\t\t\t\t\t * @error multi-root-editor-root-attributes-no-root\n\t\t\t\t\t */ throw new CKEditorError('multi-root-editor-root-attributes-no-root', null);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n }\n }\n this.data.on('init', ()=>{\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>{\n for (const [name, attributes] of Object.entries(rootsAttributes)){\n const root = this.model.document.getRoot(name);\n for (const [key, value] of Object.entries(attributes)){\n if (value !== null) {\n writer.setAttribute(key, value, root);\n }\n }\n }\n });\n });\n }\n const options = {\n shouldToolbarGroupWhenFull: !this.config.get('toolbar.shouldNotGroupWhenFull'),\n editableElements: sourceIsData ? undefined : sourceElementsOrData,\n label: this.config.get('label')\n };\n const view = new MultiRootEditorUIView(this.locale, this.editing.view, rootNames, options);\n this.ui = new MultiRootEditorUI(this, view);\n this.model.document.on('change:data', ()=>{\n const changedRoots = this.model.document.differ.getChangedRoots();\n // Fire detaches first. If there are multiple roots removed and added in one batch, it should be easier to handle if\n // changes aren't mixed. Detaching will usually lead to just removing DOM elements. Detaching first will lead to a clean DOM\n // when new editables are added in `addRoot` event.\n for (const changes of changedRoots){\n const root = this.model.document.getRoot(changes.name);\n if (changes.state == 'detached') {\n this.fire('detachRoot', root);\n }\n }\n for (const changes of changedRoots){\n const root = this.model.document.getRoot(changes.name);\n if (changes.state == 'attached') {\n this.fire('addRoot', root);\n }\n }\n });\n // Overwrite `Model#canEditAt()` decorated method.\n // Check if the provided selection is inside a read-only root. If so, return `false`.\n this.listenTo(this.model, 'canEditAt', (evt, [selection])=>{\n // Skip empty selections.\n if (!selection) {\n return;\n }\n let selectionInReadOnlyRoot = false;\n for (const range of selection.getRanges()){\n const root = range.root;\n if (this._readOnlyRootLocks.has(root.rootName)) {\n selectionInReadOnlyRoot = true;\n break;\n }\n }\n // If selection is in read-only root, return `false` and prevent further processing.\n // Otherwise, allow for other callbacks (or default callback) to evaluate.\n if (selectionInReadOnlyRoot) {\n evt.return = false;\n evt.stop();\n }\n }, {\n priority: 'high'\n });\n this.decorate('loadRoot');\n this.on('loadRoot', (evt, [rootName])=>{\n const root = this.model.document.getRoot(rootName);\n if (!root) {\n /**\n\t\t\t\t * The root to load does not exist.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-no-root\n\t\t\t\t */ throw new CKEditorError('multi-root-editor-load-root-no-root', this, {\n rootName\n });\n }\n if (root._isLoaded) {\n /**\n\t\t\t\t * The root to load was already loaded before. The `loadRoot()` call has no effect.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-already-loaded\n\t\t\t\t */ logWarning('multi-root-editor-load-root-already-loaded');\n evt.stop();\n }\n }, {\n priority: 'highest'\n });\n }\n /**\n\t * Destroys the editor instance, releasing all resources used by it.\n\t *\n\t * Updates the original editor element with the data if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}\n\t * configuration option is set to `true`.\n\t *\n\t * **Note**: The multi-root editor does not remove the toolbar and editable when destroyed. You can\n\t * do that yourself in the destruction chain, if you need to:\n\t *\n\t * ```ts\n\t * editor.destroy().then( () => {\n\t * \t// Remove the toolbar from DOM.\n\t * \teditor.ui.view.toolbar.element.remove();\n\t *\n\t * \t// Remove editable elements from DOM.\n\t * \tfor ( const editable of Object.values( editor.ui.view.editables ) ) {\n\t * \t editable.element.remove();\n\t * \t}\n\t *\n\t * \tconsole.log( 'Editor was destroyed' );\n\t * } );\n\t * ```\n\t */ destroy() {\n const shouldUpdateSourceElement = this.config.get('updateSourceElementOnDestroy');\n // Cache the data and editable DOM elements, then destroy.\n // It's safe to assume that the model->view conversion will not work after `super.destroy()`,\n // same as `ui.getEditableElement()` method will not return editables.\n const data = {};\n for (const rootName of Object.keys(this.sourceElements)){\n data[rootName] = shouldUpdateSourceElement ? this.getData({\n rootName\n }) : '';\n }\n this.ui.destroy();\n return super.destroy().then(()=>{\n for (const rootName of Object.keys(this.sourceElements)){\n setDataInElement(this.sourceElements[rootName], data[rootName]);\n }\n });\n }\n /**\n\t * Adds a new root to the editor.\n\t *\n\t * ```ts\n\t * editor.addRoot( 'myRoot', { data: '<p>Initial root data.</p>' } );\n\t * ```\n\t *\n\t * After a root is added, you will be able to modify and retrieve its data.\n\t *\n\t * All root names must be unique. An error will be thrown if you will try to create a root with the name same as\n\t * an already existing, attached root. However, you can call this method for a detached root. See also {@link #detachRoot}.\n\t *\n\t * Whenever a root is added, the editor instance will fire {@link #event:addRoot `addRoot` event}. The event is also called when\n\t * the root is added indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only adds a root to the editor model. It **does not** create a DOM editable element for the new root.\n\t * Until such element is created (and attached to the root), the root is \"virtual\": it is not displayed anywhere and its data can\n\t * be changed only using the editor API.\n\t *\n\t * To create a DOM editable element for the root, listen to {@link #event:addRoot `addRoot` event} and call {@link #createEditable}.\n\t * Then, insert the DOM element in a desired place, that will depend on the integration with your application and your requirements.\n\t *\n\t * ```ts\n\t * editor.on( 'addRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.createEditable( root );\n\t *\n\t * \t// You may want to create a more complex DOM structure here.\n\t * \t//\n\t * \t// Alternatively, you may want to create a DOM structure before\n\t * \t// calling `editor.addRoot()` and only append `editableElement` at\n\t * \t// a proper place.\n\t *\n\t * \tdocument.querySelector( '#editors' ).appendChild( editableElement );\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.addRoot( 'myRoot' ); // Will create a root, a DOM editable element and append it to `#editors` container element.\n\t * ```\n\t *\n\t * You can set root attributes on the new root while you add it:\n\t *\n\t * ```ts\n\t * // Add a collapsed root at fourth position from top.\n\t * // Keep in mind that these are just examples of attributes. You need to provide your own features that will handle the attributes.\n\t * editor.addRoot( 'myRoot', { attributes: { isCollapsed: true, index: 4 } } );\n\t * ```\n\t *\n\t * Note that attributes added together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for detaching the root using the undo feature.\n\t *\n\t * Additionally, you can group adding multiple roots in one undo step. This can be useful if you add multiple roots that are\n\t * combined into one, bigger UI element, and want them all to be undone together.\n\t *\n\t * ```ts\n\t * let rowId = 0;\n\t *\n\t * editor.model.change( () => {\n\t * \teditor.addRoot( 'left-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'center-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'right-row-' + rowId, { isUndoable: true } );\n\t *\n\t * \trowId++;\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to add.\n\t * @param options Additional options for the added root.\n\t */ addRoot(rootName, { data = '', attributes = {}, elementName = '$root', isUndoable = false } = {}) {\n const _addRoot = (writer)=>{\n const root = writer.addRoot(rootName, elementName);\n if (data) {\n writer.insert(this.data.parse(data, root), root, 0);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n writer.setAttribute(key, attributes[key], root);\n }\n };\n if (isUndoable) {\n this.model.change(_addRoot);\n } else {\n this.model.enqueueChange({\n isUndoable: false\n }, _addRoot);\n }\n }\n /**\n\t * Detaches a root from the editor.\n\t *\n\t * ```ts\n\t * editor.detachRoot( 'myRoot' );\n\t * ```\n\t *\n\t * A detached root is not entirely removed from the editor model, however it can be considered removed.\n\t *\n\t * After a root is detached all its children are removed, all markers inside it are removed, and whenever something is inserted to it,\n\t * it is automatically removed as well. Finally, a detached root is not returned by\n\t * {@link module:engine/model/document~Document#getRootNames} by default.\n\t *\n\t * It is possible to re-add a previously detached root calling {@link #addRoot}.\n\t *\n\t * Whenever a root is detached, the editor instance will fire {@link #event:detachRoot `detachRoot` event}. The event is also\n\t * called when the root is detached indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only detached a root in the editor model. It **does not** destroy the DOM editable element linked with\n\t * the root and it **does not** remove the DOM element from the DOM structure of your application.\n\t *\n\t * To properly remove a DOM editable element after a root was detached, listen to {@link #event:detachRoot `detachRoot` event}\n\t * and call {@link #detachEditable}. Then, remove the DOM element from your application.\n\t *\n\t * ```ts\n\t * editor.on( 'detachRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.detachEditable( root );\n\t *\n\t * \t// You may want to do an additional DOM clean-up here.\n\t *\n\t * \teditableElement.remove();\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.detachRoot( 'myRoot' ); // Will detach the root, and remove the DOM editable element.\n\t * ```\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for re-adding the root using the undo feature.\n\t *\n\t * Additionally, you can group detaching multiple roots in one undo step. This can be useful if the roots are combined into one,\n\t * bigger UI element, and you want them all to be re-added together.\n\t *\n\t * ```ts\n\t * editor.model.change( () => {\n\t * \teditor.detachRoot( 'left-row-3', true );\n\t * \teditor.detachRoot( 'center-row-3', true );\n\t * \teditor.detachRoot( 'right-row-3', true );\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to detach.\n\t * @param isUndoable Whether detaching the root can be undone (using the undo feature) or not.\n\t */ detachRoot(rootName, isUndoable = false) {\n if (isUndoable) {\n this.model.change((writer)=>writer.detachRoot(rootName));\n } else {\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>writer.detachRoot(rootName));\n }\n }\n /**\n\t * Creates and returns a new DOM editable element for the given root element.\n\t *\n\t * The new DOM editable is attached to the model root and can be used to modify the root content.\n\t *\n\t * @param root Root for which the editable element should be created.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t * @param label The accessible label text describing the editable to the assistive technologies.\n\t * @returns The created DOM element. Append it in a desired place in your application.\n\t */ createEditable(root, placeholder, label) {\n const editable = this.ui.view.createEditable(root.rootName, undefined, label);\n this.ui.addEditable(editable, placeholder);\n this.editing.view.forceRender();\n return editable.element;\n }\n /**\n\t * Detaches the DOM editable element that was attached to the given root.\n\t *\n\t * @param root Root for which the editable element should be detached.\n\t * @returns The DOM element that was detached. You may want to remove it from your application DOM structure.\n\t */ detachEditable(root) {\n const rootName = root.rootName;\n const editable = this.ui.view.editables[rootName];\n this.ui.removeEditable(editable);\n this.ui.view.removeEditable(rootName);\n return editable.element;\n }\n /**\n\t * Loads a root that has previously been declared in {@link module:core/editor/editorconfig~EditorConfig#lazyRoots `lazyRoots`}\n\t * configuration option.\n\t *\n\t * Only roots specified in the editor config can be loaded. A root cannot be loaded multiple times. A root cannot be unloaded and\n\t * loading a root cannot be reverted using the undo feature.\n\t *\n\t * When a root becomes loaded, it will be treated by the editor as though it was just added. This, among others, means that all\n\t * related events and mechanisms will be fired, including {@link ~MultiRootEditor#event:addRoot `addRoot` event},\n\t * {@link module:engine/model/document~Document#event:change `model.Document` `change` event}, model post-fixers and conversion.\n\t *\n\t * Until the root becomes loaded, all above mechanisms are suppressed.\n\t *\n\t * This method is {@link module:utils/observablemixin~Observable#decorate decorated}.\n\t *\n\t * Note that attributes loaded together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * When this method is used in real-time collaboration environment, its effects become asynchronous as the editor will first synchronize\n\t * with the remote editing session, before the root is added to the editor.\n\t *\n\t * If the root has been already loaded by any other client, the additional data passed in `loadRoot()` parameters will be ignored.\n\t *\n\t * @param rootName Name of the root to load.\n\t * @param options Additional options for the loaded root.\n\t * @fires loadRoot\n\t */ loadRoot(rootName, { data = '', attributes = {} } = {}) {\n // `root` will be defined as it is guaranteed by a check in a higher priority callback.\n const root = this.model.document.getRoot(rootName);\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>{\n if (data) {\n writer.insert(this.data.parse(data, root), root, 0);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n writer.setAttribute(key, attributes[key], root);\n }\n root._isLoaded = true;\n this.model.document.differ._bufferRootLoad(root);\n });\n }\n /**\n\t * Returns the document data for all attached roots.\n\t *\n\t * @param options Additional configuration for the retrieved data.\n\t * Editor features may introduce more configuration options that can be set through this parameter.\n\t * @param options.trim Whether returned data should be trimmed. This option is set to `'empty'` by default,\n\t * which means that whenever editor content is considered empty, an empty string is returned. To turn off trimming\n\t * use `'none'`. In such cases exact content will be returned (for example `'<p>&nbsp;</p>'` for an empty editor).\n\t * @returns The full document data.\n\t */ getFullData(options) {\n const data = {};\n for (const rootName of this.model.document.getRootNames()){\n data[rootName] = this.data.get({\n ...options,\n rootName\n });\n }\n return data;\n }\n /**\n\t * Returns attributes for all attached roots.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t *\n\t * @returns Object with roots attributes. Keys are roots names, while values are attributes set on given root.\n\t */ getRootsAttributes() {\n const rootsAttributes = {};\n for (const rootName of this.model.document.getRootNames()){\n rootsAttributes[rootName] = this.getRootAttributes(rootName);\n }\n return rootsAttributes;\n }\n /**\n\t * Returns attributes for the specified root.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t */ getRootAttributes(rootName) {\n const rootAttributes = {};\n const root = this.model.document.getRoot(rootName);\n for (const key of this._registeredRootsAttributesKeys){\n rootAttributes[key] = root.hasAttribute(key) ? root.getAttribute(key) : null;\n }\n return rootAttributes;\n }\n /**\n\t * Registers given string as a root attribute key. Registered root attributes are added to\n\t * {@link module:engine/model/schema~Schema schema}, and also returned by\n\t * {@link ~MultiRootEditor#getRootAttributes `getRootAttributes()`} and\n\t * {@link ~MultiRootEditor#getRootsAttributes `getRootsAttributes()`}.\n\t *\n\t * Note: attributes passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes`} are\n\t * automatically registered as the editor is initialized. However, registering the same attribute twice does not have any negative\n\t * impact, so it is recommended to use this method in any feature that uses roots attributes.\n\t */ registerRootAttribute(key) {\n if (this._registeredRootsAttributesKeys.has(key)) {\n return;\n }\n this._registeredRootsAttributesKeys.add(key);\n this.editing.model.schema.extend('$root', {\n allowAttributes: key\n });\n }\n /**\n\t * Switches given editor root to the read-only mode.\n\t *\n\t * In contrary to {@link module:core/editor/editor~Editor#enableReadOnlyMode `enableReadOnlyMode()`}, which switches the whole editor\n\t * to the read-only mode, this method turns only a particular root to the read-only mode. This can be useful when you want to prevent\n\t * editing only a part of the editor content.\n\t *\n\t * When you switch a root to the read-only mode, you need provide a unique identifier (`lockId`) that will identify this request. You\n\t * will need to provide the same `lockId` when you will want to\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot re-enable} the root.\n\t *\n\t * ```ts\n\t * const model = editor.model;\n\t * const myRoot = model.document.getRoot( 'myRoot' );\n\t *\n\t * editor.disableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.disableRoot( 'myRoot', 'other-lock' );\n\t * editor.disableRoot( 'myRoot', 'other-lock' ); // Multiple locks with the same ID have no effect.\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'other-lock' );\n\t * model.canEditAt( myRoot ); // `true`\n\t * ```\n\t *\n\t * See also {@link module:core/editor/editor~Editor#enableReadOnlyMode `Editor#enableReadOnlyMode()`} and\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot `MultiRootEditor#enableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch to read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */ disableRoot(rootName, lockId) {\n if (rootName == '$graveyard') {\n /**\n\t\t\t * You cannot disable the `$graveyard` root.\n\t\t\t *\n\t\t\t * @error multi-root-editor-cannot-disable-graveyard-root\n\t\t\t */ throw new CKEditorError('multi-root-editor-cannot-disable-graveyard-root', this);\n }\n const locksForGivenRoot = this._readOnlyRootLocks.get(rootName);\n if (locksForGivenRoot) {\n locksForGivenRoot.add(lockId);\n } else {\n this._readOnlyRootLocks.set(rootName, new Set([\n lockId\n ]));\n const editableRootElement = this.editing.view.document.getRoot(rootName);\n editableRootElement.isReadOnly = true;\n // Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n Array.from(this.commands.commands()).forEach((command)=>command.affectsData && command.refresh());\n }\n }\n /**\n\t * Removes given read-only lock from the given root.\n\t *\n\t * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor#disableRoot `disableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch back from the read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */ enableRoot(rootName, lockId) {\n const locksForGivenRoot = this._readOnlyRootLocks.get(rootName);\n if (!locksForGivenRoot || !locksForGivenRoot.has(lockId)) {\n return;\n }\n if (locksForGivenRoot.size === 1) {\n this._readOnlyRootLocks.delete(rootName);\n const editableRootElement = this.editing.view.document.getRoot(rootName);\n editableRootElement.isReadOnly = this.isReadOnly;\n // Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n Array.from(this.commands.commands()).forEach((command)=>command.affectsData && command.refresh());\n } else {\n locksForGivenRoot.delete(lockId);\n }\n }\n /**\n\t * Creates a new multi-root editor instance.\n\t *\n\t * **Note:** remember that `MultiRootEditor` does not append the toolbar element to your web page, so you have to do it manually\n\t * after the editor has been initialized.\n\t *\n\t * There are a few different ways to initialize the multi-root editor.\n\t *\n\t * # Using existing DOM elements:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * The elements' content will be used as the editor data and elements will become editable elements.\n\t *\n\t * # Creating a detached editor\n\t *\n\t * Alternatively, you can initialize the editor by passing the initial data directly as strings.\n\t * In this case, you will have to manually append both the toolbar element and the editable elements to your web page.\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \tsidePanelLeft: '<blockquote>Strong quotation from article.</blockquote>',\n\t * \tsidePanelRight: '<p>List of similar articles...</p>',\n\t * \toutro: '<p>Closing text.</p>'\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t *\n\t * \t// Append DOM editable elements created by the editor.\n\t * \tconst editables = editor.ui.view.editables;\n\t * \tconst container = document.querySelector( '#editable-container' );\n\t *\n\t * \tcontainer.appendChild( editables.intro.element );\n\t * \tcontainer.appendChild( editables.content.element );\n\t * \tcontainer.appendChild( editables.outro.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n\t * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n\t *\n\t * # Using an existing DOM element (and data provided in `config.initialData`)\n\t *\n\t * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * }, {\n\t * \tinitialData: {\n\t * \t\tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \t\tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \t\tsidePanelLeft '<blockquote>Strong quotation from article.</blockquote>':\n\t * \t\tsidePanelRight '<p>List of similar articles...</p>':\n\t * \t\toutro: '<p>Closing text.</p>'\n\t * \t}\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n\t * makes it difficult to set the content of the source element.\n\t *\n\t * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n\t *\n\t * # Configuring the editor\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n\t * customizing plugins, toolbar and more.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t *\n\t * If DOM elements are passed, their content will be automatically loaded to the editor upon initialization and the elements will be\n\t * used as the editor's editable areas. The editor data will be set back to the original element once the editor is destroyed if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy updateSourceElementOnDestroy} option\n\t * is set to `true`.\n\t *\n\t * If the initial data is passed, a detached editor will be created. For each entry in the passed object, one editor root and one\n\t * editable DOM element will be created. You will need to attach the editable elements into the DOM manually. The elements are available\n\t * through the {@link module:editor-multi-root/multirooteditorui~MultiRootEditorUI#getEditableElement `editor.ui.getEditableElement()`}\n\t * method.\n\t * @param config The editor configuration.\n\t * @returns A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n\t */ static create(sourceElementsOrData, config = {}) {\n return new Promise((resolve)=>{\n for (const sourceItem of Object.values(sourceElementsOrData)){\n if (isElement(sourceItem) && sourceItem.tagName === 'TEXTAREA') {\n // Documented in core/editor/editor.js\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-wrong-element', null);\n }\n }\n const editor = new this(sourceElementsOrData, config);\n resolve(editor.initPlugins().then(()=>editor.ui.init()).then(()=>{\n // This is checked directly before setting the initial data,\n // as plugins may change `EditorConfig#initialData` value.\n editor._verifyRootsWithInitialData();\n return editor.data.init(editor.config.get('initialData'));\n }).then(()=>editor.fire('ready')).then(()=>editor));\n });\n }\n /**\n\t * @internal\n\t */ _verifyRootsWithInitialData() {\n const initialData = this.config.get('initialData');\n // Roots that are not in the initial data.\n for (const rootName of this.model.document.getRootNames()){\n if (!(rootName in initialData)) {\n /**\n\t\t\t\t * Editor roots do not match the\n\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t *\n\t\t\t\t * This may happen for one of the two reasons:\n\t\t\t\t *\n\t\t\t\t * * Configuration error. The `sourceElementsOrData` parameter in\n\t\t\t\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} contains different\n\t\t\t\t * roots than {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t * * As the editor was initialized, the {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData`}\n\t\t\t\t * configuration value or the state of the editor roots has been changed.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-root-initial-data-mismatch\n\t\t\t\t */ throw new CKEditorError('multi-root-editor-root-initial-data-mismatch', null);\n }\n }\n // Roots that are not in the editor.\n for (const rootName of Object.keys(initialData)){\n const root = this.model.document.getRoot(rootName);\n if (!root || !root.isAttached()) {\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('multi-root-editor-root-initial-data-mismatch', null);\n }\n }\n }\n}\nfunction getInitialData(sourceElementOrData) {\n return isElement(sourceElementOrData) ? getDataFromElement(sourceElementOrData) : sourceElementOrData;\n}\nfunction isElement(value) {\n return isElement$1(value);\n}\n\nexport { MultiRootEditor };\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 editor-multi-root/multirooteditorui\n */\n\nimport {\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport {\n\tEditorUI,\n\ttype EditorUIReadyEvent,\n\ttype InlineEditableUIView\n} from 'ckeditor5/src/ui.js';\n\nimport { enablePlaceholder } from 'ckeditor5/src/engine.js';\n\nimport type MultiRootEditorUIView from './multirooteditoruiview.js';\n\n/**\n * The multi-root editor UI class.\n */\nexport default class MultiRootEditorUI extends EditorUI {\n\t/**\n\t * The main (top–most) view of the editor UI.\n\t */\n\tpublic readonly view: MultiRootEditorUIView;\n\n\t/**\n\t * The editable element that was focused the last time when any of the editables had focus.\n\t */\n\tprivate _lastFocusedEditableElement: HTMLElement | null;\n\n\t/**\n\t * Creates an instance of the multi-root editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */\n\tconstructor( editor: Editor, view: MultiRootEditorUIView ) {\n\t\tsuper( editor );\n\n\t\tthis.view = view;\n\t\tthis._lastFocusedEditableElement = null;\n\t}\n\n\t/**\n\t * Initializes the UI.\n\t */\n\tpublic init(): void {\n\t\tconst view = this.view;\n\n\t\tview.render();\n\n\t\t// Keep track of the last focused editable element. Knowing which one was focused\n\t\t// is useful when the focus moves from editable to other UI components like balloons\n\t\t// (especially inputs) but the editable remains the \"focus context\" (e.g. link balloon\n\t\t// attached to a link in an editable). In this case, the editable should preserve visual\n\t\t// focus styles.\n\t\tthis.focusTracker.on( 'change:focusedElement', ( evt, name, focusedElement ) => {\n\t\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\t\tif ( focusedElement === editable.element ) {\n\t\t\t\t\tthis._lastFocusedEditableElement = editable.element;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// If the focus tracker loses focus, stop tracking the last focused editable element.\n\t\t// Wherever the focus is restored, it will no longer be in the context of that editable\n\t\t// because the focus \"came from the outside\", as opposed to the focus moving from one element\n\t\t// to another within the editor UI.\n\t\tthis.focusTracker.on( 'change:isFocused', ( evt, name, isFocused ) => {\n\t\t\tif ( !isFocused ) {\n\t\t\t\tthis._lastFocusedEditableElement = null;\n\t\t\t}\n\t\t} );\n\n\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\tthis.addEditable( editable );\n\t\t}\n\n\t\tthis._initToolbar();\n\t\tthis._initMenuBar( this.view.menuBarView! );\n\t\tthis.fire<EditorUIReadyEvent>( 'ready' );\n\t}\n\n\t/**\n\t * Adds the editable to the editor UI.\n\t *\n\t * After the editable is added to the editor UI it can be considered \"active\".\n\t *\n\t * The editable is attached to the editor editing pipeline, which means that it will be updated as the editor model updates and\n\t * changing its content will be reflected in the editor model. Keystrokes, focus handling and placeholder are initialized.\n\t *\n\t * @param editable The editable instance to add.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */\n\tpublic addEditable( editable: InlineEditableUIView, placeholder?: string ): void {\n\t\t// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n\t\t// But it can be available earlier if a DOM element has been passed to `MultiRootEditor.create()`.\n\t\tconst editableElement = editable.element!;\n\n\t\t// Bind the editable UI element to the editing view, making it an end– and entry–point\n\t\t// of the editor's engine. This is where the engine meets the UI.\n\t\tthis.editor.editing.view.attachDomRoot( editableElement, editable.name! );\n\n\t\t// Register each editable UI view in the editor.\n\t\tthis.setEditableElement( editable.name!, editableElement );\n\n\t\t// Let the editable UI element respond to the changes in the global editor focus\n\t\t// tracker. It has been added to the same tracker a few lines above but, in reality, there are\n\t\t// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n\t\t// as they have focus, the editable should act like it is focused too (although technically\n\t\t// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n\t\t// Doing otherwise will result in editable focus styles disappearing, once e.g. the\n\t\t// toolbar gets focused.\n\t\teditable.bind( 'isFocused' ).to( this.focusTracker, 'isFocused', this.focusTracker, 'focusedElement',\n\t\t\t( isFocused: boolean, focusedElement: Element | null ) => {\n\t\t\t\t// When the focus tracker is blurred, it means the focus moved out of the editor UI.\n\t\t\t\t// No editable will maintain focus then.\n\t\t\t\tif ( !isFocused ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// If the focus tracker says the editor UI is focused and currently focused element\n\t\t\t\t// is the editable, then the editable should be visually marked as focused too.\n\t\t\t\tif ( focusedElement === editableElement ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// If the focus tracker says the editor UI is focused but the focused element is\n\t\t\t\t// not an editable, it is possible that the editable is still (context–)focused.\n\t\t\t\t// For instance, the focused element could be an input inside of a balloon attached\n\t\t\t\t// to the content in the editable. In such case, the editable should remain _visually_\n\t\t\t\t// focused even though technically the focus is somewhere else. The focus moved from\n\t\t\t\t// the editable to the input but the focus context remained the same.\n\t\t\t\telse {\n\t\t\t\t\treturn this._lastFocusedEditableElement === editableElement;\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis._initPlaceholder( editable, placeholder );\n\t}\n\n\t/**\n\t * Removes the editable instance from the editor UI.\n\t *\n\t * Removed editable can be considered \"deactivated\".\n\t *\n\t * The editable is detached from the editing pipeline, so model changes are no longer reflected in it. All handling added in\n\t * {@link #addEditable} is removed.\n\t *\n\t * @param editable Editable to remove from the editor UI.\n\t */\n\tpublic removeEditable( editable: InlineEditableUIView ): void {\n\t\tthis.editor.editing.view.detachDomRoot( editable.name! );\n\t\teditable.unbind( 'isFocused' );\n\t\tthis.removeEditableElement( editable.name! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\tthis.removeEditable( editable );\n\t\t}\n\n\t\tthis.view.destroy();\n\t}\n\n\t/**\n\t * Initializes the editor main toolbar and its panel.\n\t */\n\tprivate _initToolbar(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = this.view;\n\t\tconst toolbar = view.toolbar;\n\n\t\ttoolbar.fillFromConfig( editor.config.get( 'toolbar' ), this.componentFactory );\n\n\t\t// Register the toolbar, so it becomes available for Alt+F10 and Esc navigation.\n\t\tthis.addToolbar( view.toolbar );\n\t}\n\n\t/**\n\t * Enables the placeholder text on a given editable.\n\t *\n\t * @param editable Editable on which the placeholder should be set.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */\n\tprivate _initPlaceholder( editable: InlineEditableUIView, placeholder?: string ): void {\n\t\tif ( !placeholder ) {\n\t\t\tconst configPlaceholder = this.editor.config.get( 'placeholder' );\n\n\t\t\tif ( configPlaceholder ) {\n\t\t\t\tplaceholder = typeof configPlaceholder === 'string' ? configPlaceholder : configPlaceholder[ editable.name! ];\n\t\t\t}\n\t\t}\n\n\t\tconst editingView = this.editor.editing.view;\n\t\tconst editingRoot = editingView.document.getRoot( editable.name! )!;\n\n\t\tif ( placeholder ) {\n\t\t\teditingRoot.placeholder = placeholder;\n\t\t}\n\n\t\tenablePlaceholder( {\n\t\t\tview: editingView,\n\t\t\telement: editingRoot,\n\t\t\tisDirectHost: false,\n\t\t\tkeepOnFocus: true\n\t\t} );\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 editor-multi-root/multirooteditoruiview\n */\n\nimport { EditorUIView, InlineEditableUIView, MenuBarView, ToolbarView } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\nimport type { EditingView } from 'ckeditor5/src/engine.js';\n\n/**\n * The multi-root editor UI view. It is a virtual view providing an inline\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#editable} and a\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar}, but without any\n * specific arrangement of the components in the DOM.\n *\n * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}\n * to learn more about this view.\n */\nexport default class MultiRootEditorUIView extends EditorUIView {\n\t/**\n\t * The main toolbar of the multi-root editor UI.\n\t */\n\tpublic readonly toolbar: ToolbarView;\n\n\t/**\n\t * Editable elements used by the multi-root editor UI.\n\t */\n\tpublic readonly editables: Record<string, InlineEditableUIView>;\n\n\tpublic readonly editable: InlineEditableUIView;\n\n\t/**\n\t * Menu bar view instance.\n\t */\n\tpublic override menuBarView: MenuBarView;\n\n\t/**\n\t * The editing view instance this view is related to.\n\t */\n\tprivate readonly _editingView: EditingView;\n\n\t/**\n\t * Creates an instance of the multi-root editor UI view.\n\t *\n\t * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n\t * @param editingView The editing view instance this view is related to.\n\t * @param editableNames Names for all editable views. For each name, one\n\t * {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`} instance will be initialized.\n\t * @param options Configuration options for the view instance.\n\t * @param options.editableElements The editable elements to be used, assigned to their names. If not specified, they will be\n\t * automatically created by {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`}\n\t * instances.\n\t * @param options.shouldToolbarGroupWhenFull When set to `true` enables automatic items grouping\n\t * in the main {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar toolbar}.\n\t * See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.\n\t * @param options.label When set, this value will be used as an accessible `aria-label` of the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView editable view} elements.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableNames: Array<string>,\n\t\toptions: {\n\t\t\teditableElements?: Record<string, HTMLElement>;\n\t\t\tshouldToolbarGroupWhenFull?: boolean;\n\t\t\tlabel?: string | Record<string, string>;\n\t\t} = {}\n\t) {\n\t\tsuper( locale );\n\n\t\tthis._editingView = editingView;\n\n\t\tthis.toolbar = new ToolbarView( locale, {\n\t\t\tshouldGroupWhenFull: options.shouldToolbarGroupWhenFull\n\t\t} );\n\n\t\tthis.menuBarView = new MenuBarView( locale );\n\n\t\tthis.editables = {};\n\n\t\t// Create `InlineEditableUIView` instance for each editable.\n\t\tfor ( const editableName of editableNames ) {\n\t\t\tconst editableElement = options.editableElements ? options.editableElements[ editableName ] : undefined;\n\t\t\tlet { label } = options;\n\n\t\t\tif ( typeof label === 'object' ) {\n\t\t\t\tlabel = label[ editableName ];\n\t\t\t}\n\n\t\t\tthis.createEditable( editableName, editableElement, label );\n\t\t}\n\n\t\tthis.editable = Object.values( this.editables )[ 0 ];\n\n\t\t// This toolbar may be placed anywhere in the page so things like font size need to be reset in it.\n\t\t// Because of the above, make sure the toolbar supports rounded corners.\n\t\t// Also, make sure the toolbar has the proper dir attribute because its ancestor may not have one\n\t\t// and some toolbar item styles depend on this attribute.\n\t\tthis.toolbar.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-reset_all',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tdir: locale.uiLanguageDirection\n\t\t\t}\n\t\t} );\n\n\t\tthis.menuBarView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-reset_all',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tdir: locale.uiLanguageDirection\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Creates an editable instance with given name and registers it in the editor UI view.\n\t *\n\t * If `editableElement` is provided, the editable instance will be created on top of it. Otherwise, the editor will create a new\n\t * DOM element and use it instead.\n\t *\n\t * @param editableName The name for the editable.\n\t * @param editableElement DOM element for which the editable should be created.\n\t * @param label The accessible editable label used by assistive technologies.\n\t * @returns The created editable instance.\n\t */\n\tpublic createEditable( editableName: string, editableElement?: HTMLElement, label?: string ): InlineEditableUIView {\n\t\tconst editable = new InlineEditableUIView( this.locale, this._editingView, editableElement, {\n\t\t\tlabel\n\t\t} );\n\n\t\tthis.editables[ editableName ] = editable;\n\t\teditable.name = editableName;\n\n\t\tif ( this.isRendered ) {\n\t\t\tthis.registerChild( editable );\n\t\t}\n\n\t\treturn editable;\n\t}\n\n\t/**\n\t * Destroys and removes the editable from the editor UI view.\n\t *\n\t * @param editableName The name of the editable that should be removed.\n\t */\n\tpublic removeEditable( editableName: string ): void {\n\t\tconst editable = this.editables[ editableName ];\n\n\t\tif ( this.isRendered ) {\n\t\t\tthis.deregisterChild( editable );\n\t\t}\n\n\t\tdelete this.editables[ editableName ];\n\n\t\teditable.destroy();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.registerChild( Object.values( this.editables ) );\n\t\tthis.registerChild( this.toolbar );\n\t\tthis.registerChild( this.menuBarView );\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 editor-multi-root/multirooteditor\n */\n\nimport {\n\tEditor,\n\tsecureSourceElement,\n\ttype EditorConfig,\n\ttype EditorReadyEvent\n} from 'ckeditor5/src/core.js';\n\nimport {\n\tCKEditorError,\n\tgetDataFromElement,\n\tsetDataInElement,\n\tlogWarning,\n\ttype CollectionAddEvent,\n\ttype DecoratedMethodEvent\n} from 'ckeditor5/src/utils.js';\n\nimport MultiRootEditorUI from './multirooteditorui.js';\nimport MultiRootEditorUIView from './multirooteditoruiview.js';\n\nimport { isElement as _isElement } from 'lodash-es';\nimport {\n\ttype RootElement,\n\ttype ViewRootEditableElement,\n\ttype Writer,\n\ttype ModelCanEditAtEvent\n} from 'ckeditor5/src/engine.js';\n\n/**\n * The multi-root editor implementation.\n *\n * The multi-root editor provides multiple inline editable elements and a toolbar. All editable areas are controlled by one editor\n * instance, which means that they share common configuration, document ID, or undo stack.\n *\n * This type of editor is dedicated to integrations which require a customized UI with an open structure, featuring multiple editable areas,\n * allowing developers to have a control over the exact location of these editable areas.\n *\n * In order to create a multi-root editor instance, use the static\n * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method.\n *\n * Note that you will need to attach the editor toolbar to your web page manually, in a desired place, after the editor is initialized.\n */\nexport default class MultiRootEditor extends Editor {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic readonly ui: MultiRootEditorUI;\n\n\t/**\n\t * The elements on which the editor has been initialized.\n\t */\n\tpublic readonly sourceElements: Record<string, HTMLElement>;\n\n\t/**\n\t * Holds attributes keys that were passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `rootsAttributes`}\n\t * config property and should be returned by {@link #getRootsAttributes}.\n\t */\n\tprivate readonly _registeredRootsAttributesKeys = new Set<string>();\n\n\t/**\n\t * A set of lock IDs for enabling or disabling particular root.\n\t */\n\tprivate readonly _readOnlyRootLocks = new Map<string, Set<symbol | string>>();\n\n\t/**\n\t * Creates an instance of the multi-root editor.\n\t *\n\t * **Note:** Do not use the constructor to create editor instances. Use the static\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method instead.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t * For more information see {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}.\n\t * @param config The editor configuration.\n\t */\n\tprotected constructor( sourceElementsOrData: Record<string, HTMLElement> | Record<string, string>, config: EditorConfig = {} ) {\n\t\tconst rootNames = Object.keys( sourceElementsOrData );\n\t\tconst sourceIsData = rootNames.length === 0 || typeof sourceElementsOrData[ rootNames[ 0 ] ] === 'string';\n\n\t\tif ( sourceIsData && config.initialData !== undefined && Object.keys( config.initialData ).length > 0 ) {\n\t\t\t// Documented in core/editor/editorconfig.jsdoc.\n\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\tthrow new CKEditorError( 'editor-create-initial-data', null );\n\t\t}\n\n\t\tsuper( config );\n\n\t\tif ( !sourceIsData ) {\n\t\t\tthis.sourceElements = sourceElementsOrData as Record<string, HTMLElement>;\n\t\t} else {\n\t\t\tthis.sourceElements = {};\n\t\t}\n\n\t\tif ( this.config.get( 'initialData' ) === undefined ) {\n\t\t\t// Create initial data object containing data from all roots.\n\t\t\tconst initialData: Record<string, string> = {};\n\n\t\t\tfor ( const rootName of rootNames ) {\n\t\t\t\tinitialData[ rootName ] = getInitialData( sourceElementsOrData[ rootName ] );\n\t\t\t}\n\n\t\t\tthis.config.set( 'initialData', initialData );\n\t\t}\n\n\t\tif ( !sourceIsData ) {\n\t\t\tfor ( const rootName of rootNames ) {\n\t\t\t\tsecureSourceElement( this, sourceElementsOrData[ rootName ] as HTMLElement );\n\t\t\t}\n\t\t}\n\n\t\tthis.editing.view.document.roots.on<CollectionAddEvent<ViewRootEditableElement>>( 'add', ( evt, viewRoot ) => {\n\t\t\t// Here we change the standard binding of readOnly flag by adding\n\t\t\t// additional constraint that multi-root has (enabling / disabling particular root).\n\t\t\tviewRoot.unbind( 'isReadOnly' );\n\t\t\tviewRoot.bind( 'isReadOnly' ).to( this.editing.view.document, 'isReadOnly', isReadOnly => {\n\t\t\t\treturn isReadOnly || this._readOnlyRootLocks.has( viewRoot.rootName );\n\t\t\t} );\n\n\t\t\t// Hacky solution to nested editables.\n\t\t\t// Nested editables should be managed each separately and do not base on view document or view root.\n\t\t\tviewRoot.on( 'change:isReadOnly', ( evt, prop, value ) => {\n\t\t\t\tconst viewRange = this.editing.view.createRangeIn( viewRoot );\n\n\t\t\t\tfor ( const viewItem of viewRange.getItems() ) {\n\t\t\t\t\tif ( viewItem.is( 'editableElement' ) ) {\n\t\t\t\t\t\tviewItem.unbind( 'isReadOnly' );\n\t\t\t\t\t\tviewItem.isReadOnly = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\tfor ( const rootName of rootNames ) {\n\t\t\t// Create root and `UIView` element for each editable container.\n\t\t\tthis.model.document.createRoot( '$root', rootName );\n\t\t}\n\n\t\tif ( this.config.get( 'lazyRoots' ) ) {\n\t\t\tfor ( const rootName of this.config.get( 'lazyRoots' )! ) {\n\t\t\t\tconst root = this.model.document.createRoot( '$root', rootName );\n\n\t\t\t\troot._isLoaded = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( this.config.get( 'rootsAttributes' ) ) {\n\t\t\tconst rootsAttributes = this.config.get( 'rootsAttributes' )!;\n\n\t\t\tfor ( const [ rootName, attributes ] of Object.entries( rootsAttributes ) ) {\n\t\t\t\tif ( !this.model.document.getRoot( rootName ) ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Trying to set attributes on a non-existing root.\n\t\t\t\t\t *\n\t\t\t\t\t * Roots specified in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes} do not match initial\n\t\t\t\t\t * editor roots.\n\t\t\t\t\t *\n\t\t\t\t\t * @error multi-root-editor-root-attributes-no-root\n\t\t\t\t\t */\n\t\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-attributes-no-root', null );\n\t\t\t\t}\n\n\t\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\t\tthis.registerRootAttribute( key );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.data.on( 'init', () => {\n\t\t\t\tthis.model.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\t\tfor ( const [ name, attributes ] of Object.entries( rootsAttributes ) ) {\n\t\t\t\t\t\tconst root = this.model.document.getRoot( name )!;\n\n\t\t\t\t\t\tfor ( const [ key, value ] of Object.entries( attributes ) ) {\n\t\t\t\t\t\t\tif ( value !== null ) {\n\t\t\t\t\t\t\t\twriter.setAttribute( key, value, root! );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\n\t\tconst options = {\n\t\t\tshouldToolbarGroupWhenFull: !this.config.get( 'toolbar.shouldNotGroupWhenFull' ),\n\t\t\teditableElements: sourceIsData ? undefined : sourceElementsOrData as Record<string, HTMLElement>,\n\t\t\tlabel: this.config.get( 'label' )\n\t\t};\n\n\t\tconst view = new MultiRootEditorUIView( this.locale, this.editing.view, rootNames, options );\n\n\t\tthis.ui = new MultiRootEditorUI( this, view );\n\n\t\tthis.model.document.on( 'change:data', () => {\n\t\t\tconst changedRoots = this.model.document.differ.getChangedRoots();\n\n\t\t\t// Fire detaches first. If there are multiple roots removed and added in one batch, it should be easier to handle if\n\t\t\t// changes aren't mixed. Detaching will usually lead to just removing DOM elements. Detaching first will lead to a clean DOM\n\t\t\t// when new editables are added in `addRoot` event.\n\t\t\tfor ( const changes of changedRoots ) {\n\t\t\t\tconst root = this.model.document.getRoot( changes.name )!;\n\n\t\t\t\tif ( changes.state == 'detached' ) {\n\t\t\t\t\tthis.fire<DetachRootEvent>( 'detachRoot', root );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( const changes of changedRoots ) {\n\t\t\t\tconst root = this.model.document.getRoot( changes.name )!;\n\n\t\t\t\tif ( changes.state == 'attached' ) {\n\t\t\t\t\tthis.fire<AddRootEvent>( 'addRoot', root );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Overwrite `Model#canEditAt()` decorated method.\n\t\t// Check if the provided selection is inside a read-only root. If so, return `false`.\n\t\tthis.listenTo<ModelCanEditAtEvent>( this.model, 'canEditAt', ( evt, [ selection ] ) => {\n\t\t\t// Skip empty selections.\n\t\t\tif ( !selection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet selectionInReadOnlyRoot = false;\n\n\t\t\tfor ( const range of selection.getRanges() ) {\n\t\t\t\tconst root = range.root as RootElement;\n\n\t\t\t\tif ( this._readOnlyRootLocks.has( root.rootName ) ) {\n\t\t\t\t\tselectionInReadOnlyRoot = true;\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If selection is in read-only root, return `false` and prevent further processing.\n\t\t\t// Otherwise, allow for other callbacks (or default callback) to evaluate.\n\t\t\tif ( selectionInReadOnlyRoot ) {\n\t\t\t\tevt.return = false;\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\n\t\tthis.decorate( 'loadRoot' );\n\t\tthis.on<LoadRootEvent>( 'loadRoot', ( evt, [ rootName ] ) => {\n\t\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\t\tif ( !root ) {\n\t\t\t\t/**\n\t\t\t\t * The root to load does not exist.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-no-root\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-load-root-no-root', this, { rootName } );\n\t\t\t}\n\n\t\t\tif ( root._isLoaded ) {\n\t\t\t\t/**\n\t\t\t\t * The root to load was already loaded before. The `loadRoot()` call has no effect.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-already-loaded\n\t\t\t\t */\n\t\t\t\tlogWarning( 'multi-root-editor-load-root-already-loaded' );\n\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'highest' } );\n\t}\n\n\t/**\n\t * Destroys the editor instance, releasing all resources used by it.\n\t *\n\t * Updates the original editor element with the data if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}\n\t * configuration option is set to `true`.\n\t *\n\t * **Note**: The multi-root editor does not remove the toolbar and editable when destroyed. You can\n\t * do that yourself in the destruction chain, if you need to:\n\t *\n\t * ```ts\n\t * editor.destroy().then( () => {\n\t * \t// Remove the toolbar from DOM.\n\t * \teditor.ui.view.toolbar.element.remove();\n\t *\n\t * \t// Remove editable elements from DOM.\n\t * \tfor ( const editable of Object.values( editor.ui.view.editables ) ) {\n\t * \t editable.element.remove();\n\t * \t}\n\t *\n\t * \tconsole.log( 'Editor was destroyed' );\n\t * } );\n\t * ```\n\t */\n\tpublic override destroy(): Promise<unknown> {\n\t\tconst shouldUpdateSourceElement = this.config.get( 'updateSourceElementOnDestroy' );\n\t\t// Cache the data and editable DOM elements, then destroy.\n\t\t// It's safe to assume that the model->view conversion will not work after `super.destroy()`,\n\t\t// same as `ui.getEditableElement()` method will not return editables.\n\t\tconst data: Record<string, string> = {};\n\n\t\tfor ( const rootName of Object.keys( this.sourceElements ) ) {\n\t\t\tdata[ rootName ] = shouldUpdateSourceElement ? this.getData( { rootName } ) : '';\n\t\t}\n\n\t\tthis.ui.destroy();\n\n\t\treturn super.destroy()\n\t\t\t.then( () => {\n\t\t\t\tfor ( const rootName of Object.keys( this.sourceElements ) ) {\n\t\t\t\t\tsetDataInElement( this.sourceElements[ rootName ], data[ rootName ] );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t/**\n\t * Adds a new root to the editor.\n\t *\n\t * ```ts\n\t * editor.addRoot( 'myRoot', { data: '<p>Initial root data.</p>' } );\n\t * ```\n\t *\n\t * After a root is added, you will be able to modify and retrieve its data.\n\t *\n\t * All root names must be unique. An error will be thrown if you will try to create a root with the name same as\n\t * an already existing, attached root. However, you can call this method for a detached root. See also {@link #detachRoot}.\n\t *\n\t * Whenever a root is added, the editor instance will fire {@link #event:addRoot `addRoot` event}. The event is also called when\n\t * the root is added indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only adds a root to the editor model. It **does not** create a DOM editable element for the new root.\n\t * Until such element is created (and attached to the root), the root is \"virtual\": it is not displayed anywhere and its data can\n\t * be changed only using the editor API.\n\t *\n\t * To create a DOM editable element for the root, listen to {@link #event:addRoot `addRoot` event} and call {@link #createEditable}.\n\t * Then, insert the DOM element in a desired place, that will depend on the integration with your application and your requirements.\n\t *\n\t * ```ts\n\t * editor.on( 'addRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.createEditable( root );\n\t *\n\t * \t// You may want to create a more complex DOM structure here.\n\t * \t//\n\t * \t// Alternatively, you may want to create a DOM structure before\n\t * \t// calling `editor.addRoot()` and only append `editableElement` at\n\t * \t// a proper place.\n\t *\n\t * \tdocument.querySelector( '#editors' ).appendChild( editableElement );\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.addRoot( 'myRoot' ); // Will create a root, a DOM editable element and append it to `#editors` container element.\n\t * ```\n\t *\n\t * You can set root attributes on the new root while you add it:\n\t *\n\t * ```ts\n\t * // Add a collapsed root at fourth position from top.\n\t * // Keep in mind that these are just examples of attributes. You need to provide your own features that will handle the attributes.\n\t * editor.addRoot( 'myRoot', { attributes: { isCollapsed: true, index: 4 } } );\n\t * ```\n\t *\n\t * Note that attributes added together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for detaching the root using the undo feature.\n\t *\n\t * Additionally, you can group adding multiple roots in one undo step. This can be useful if you add multiple roots that are\n\t * combined into one, bigger UI element, and want them all to be undone together.\n\t *\n\t * ```ts\n\t * let rowId = 0;\n\t *\n\t * editor.model.change( () => {\n\t * \teditor.addRoot( 'left-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'center-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'right-row-' + rowId, { isUndoable: true } );\n\t *\n\t * \trowId++;\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to add.\n\t * @param options Additional options for the added root.\n\t */\n\tpublic addRoot(\n\t\trootName: string,\n\t\t{ data = '', attributes = {}, elementName = '$root', isUndoable = false }: AddRootOptions = {}\n\t): void {\n\t\tconst _addRoot = ( writer: Writer ) => {\n\t\t\tconst root = writer.addRoot( rootName, elementName );\n\n\t\t\tif ( data ) {\n\t\t\t\twriter.insert( this.data.parse( data, root ), root, 0 );\n\t\t\t}\n\n\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\tthis.registerRootAttribute( key );\n\t\t\t\twriter.setAttribute( key, attributes[ key ], root );\n\t\t\t}\n\t\t};\n\n\t\tif ( isUndoable ) {\n\t\t\tthis.model.change( _addRoot );\n\t\t} else {\n\t\t\tthis.model.enqueueChange( { isUndoable: false }, _addRoot );\n\t\t}\n\t}\n\n\t/**\n\t * Detaches a root from the editor.\n\t *\n\t * ```ts\n\t * editor.detachRoot( 'myRoot' );\n\t * ```\n\t *\n\t * A detached root is not entirely removed from the editor model, however it can be considered removed.\n\t *\n\t * After a root is detached all its children are removed, all markers inside it are removed, and whenever something is inserted to it,\n\t * it is automatically removed as well. Finally, a detached root is not returned by\n\t * {@link module:engine/model/document~Document#getRootNames} by default.\n\t *\n\t * It is possible to re-add a previously detached root calling {@link #addRoot}.\n\t *\n\t * Whenever a root is detached, the editor instance will fire {@link #event:detachRoot `detachRoot` event}. The event is also\n\t * called when the root is detached indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only detached a root in the editor model. It **does not** destroy the DOM editable element linked with\n\t * the root and it **does not** remove the DOM element from the DOM structure of your application.\n\t *\n\t * To properly remove a DOM editable element after a root was detached, listen to {@link #event:detachRoot `detachRoot` event}\n\t * and call {@link #detachEditable}. Then, remove the DOM element from your application.\n\t *\n\t * ```ts\n\t * editor.on( 'detachRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.detachEditable( root );\n\t *\n\t * \t// You may want to do an additional DOM clean-up here.\n\t *\n\t * \teditableElement.remove();\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.detachRoot( 'myRoot' ); // Will detach the root, and remove the DOM editable element.\n\t * ```\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for re-adding the root using the undo feature.\n\t *\n\t * Additionally, you can group detaching multiple roots in one undo step. This can be useful if the roots are combined into one,\n\t * bigger UI element, and you want them all to be re-added together.\n\t *\n\t * ```ts\n\t * editor.model.change( () => {\n\t * \teditor.detachRoot( 'left-row-3', true );\n\t * \teditor.detachRoot( 'center-row-3', true );\n\t * \teditor.detachRoot( 'right-row-3', true );\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to detach.\n\t * @param isUndoable Whether detaching the root can be undone (using the undo feature) or not.\n\t */\n\tpublic detachRoot( rootName: string, isUndoable = false ): void {\n\t\tif ( isUndoable ) {\n\t\t\tthis.model.change( writer => writer.detachRoot( rootName ) );\n\t\t} else {\n\t\t\tthis.model.enqueueChange( { isUndoable: false }, writer => writer.detachRoot( rootName ) );\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a new DOM editable element for the given root element.\n\t *\n\t * The new DOM editable is attached to the model root and can be used to modify the root content.\n\t *\n\t * @param root Root for which the editable element should be created.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t * @param label The accessible label text describing the editable to the assistive technologies.\n\t * @returns The created DOM element. Append it in a desired place in your application.\n\t */\n\tpublic createEditable( root: RootElement, placeholder?: string, label?: string ): HTMLElement {\n\t\tconst editable = this.ui.view.createEditable( root.rootName, undefined, label );\n\n\t\tthis.ui.addEditable( editable, placeholder );\n\n\t\tthis.editing.view.forceRender();\n\n\t\treturn editable.element!;\n\t}\n\n\t/**\n\t * Detaches the DOM editable element that was attached to the given root.\n\t *\n\t * @param root Root for which the editable element should be detached.\n\t * @returns The DOM element that was detached. You may want to remove it from your application DOM structure.\n\t */\n\tpublic detachEditable( root: RootElement ): HTMLElement {\n\t\tconst rootName = root.rootName;\n\t\tconst editable = this.ui.view.editables[ rootName ];\n\n\t\tthis.ui.removeEditable( editable );\n\t\tthis.ui.view.removeEditable( rootName );\n\n\t\treturn editable.element!;\n\t}\n\n\t/**\n\t * Loads a root that has previously been declared in {@link module:core/editor/editorconfig~EditorConfig#lazyRoots `lazyRoots`}\n\t * configuration option.\n\t *\n\t * Only roots specified in the editor config can be loaded. A root cannot be loaded multiple times. A root cannot be unloaded and\n\t * loading a root cannot be reverted using the undo feature.\n\t *\n\t * When a root becomes loaded, it will be treated by the editor as though it was just added. This, among others, means that all\n\t * related events and mechanisms will be fired, including {@link ~MultiRootEditor#event:addRoot `addRoot` event},\n\t * {@link module:engine/model/document~Document#event:change `model.Document` `change` event}, model post-fixers and conversion.\n\t *\n\t * Until the root becomes loaded, all above mechanisms are suppressed.\n\t *\n\t * This method is {@link module:utils/observablemixin~Observable#decorate decorated}.\n\t *\n\t * Note that attributes loaded together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * When this method is used in real-time collaboration environment, its effects become asynchronous as the editor will first synchronize\n\t * with the remote editing session, before the root is added to the editor.\n\t *\n\t * If the root has been already loaded by any other client, the additional data passed in `loadRoot()` parameters will be ignored.\n\t *\n\t * @param rootName Name of the root to load.\n\t * @param options Additional options for the loaded root.\n\t * @fires loadRoot\n\t */\n\tpublic loadRoot(\n\t\trootName: string,\n\t\t{ data = '', attributes = {} as Record<string, unknown> }: LoadRootOptions = {}\n\t): void {\n\t\t// `root` will be defined as it is guaranteed by a check in a higher priority callback.\n\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\tthis.model.enqueueChange( { isUndoable: false }, writer => {\n\t\t\tif ( data ) {\n\t\t\t\twriter.insert( this.data.parse( data, root ), root, 0 );\n\t\t\t}\n\n\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\tthis.registerRootAttribute( key );\n\n\t\t\t\twriter.setAttribute( key, attributes[ key ], root );\n\t\t\t}\n\n\t\t\troot._isLoaded = true;\n\n\t\t\tthis.model.document.differ._bufferRootLoad( root );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the document data for all attached roots.\n\t *\n\t * @param options Additional configuration for the retrieved data.\n\t * Editor features may introduce more configuration options that can be set through this parameter.\n\t * @param options.trim Whether returned data should be trimmed. This option is set to `'empty'` by default,\n\t * which means that whenever editor content is considered empty, an empty string is returned. To turn off trimming\n\t * use `'none'`. In such cases exact content will be returned (for example `'<p>&nbsp;</p>'` for an empty editor).\n\t * @returns The full document data.\n\t */\n\tpublic getFullData( options?: Record<string, unknown> ): Record<string, string> {\n\t\tconst data: Record<string, string> = {};\n\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\tdata[ rootName ] = this.data.get( { ...options, rootName } );\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns attributes for all attached roots.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t *\n\t * @returns Object with roots attributes. Keys are roots names, while values are attributes set on given root.\n\t */\n\tpublic getRootsAttributes(): Record<string, RootAttributes> {\n\t\tconst rootsAttributes: Record<string, RootAttributes> = {};\n\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\trootsAttributes[ rootName ] = this.getRootAttributes( rootName );\n\t\t}\n\n\t\treturn rootsAttributes;\n\t}\n\n\t/**\n\t * Returns attributes for the specified root.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t */\n\tpublic getRootAttributes( rootName: string ): RootAttributes {\n\t\tconst rootAttributes: RootAttributes = {};\n\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\tfor ( const key of this._registeredRootsAttributesKeys ) {\n\t\t\trootAttributes[ key ] = root.hasAttribute( key ) ? root.getAttribute( key ) : null;\n\t\t}\n\n\t\treturn rootAttributes;\n\t}\n\n\t/**\n\t * Registers given string as a root attribute key. Registered root attributes are added to\n\t * {@link module:engine/model/schema~Schema schema}, and also returned by\n\t * {@link ~MultiRootEditor#getRootAttributes `getRootAttributes()`} and\n\t * {@link ~MultiRootEditor#getRootsAttributes `getRootsAttributes()`}.\n\t *\n\t * Note: attributes passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes`} are\n\t * automatically registered as the editor is initialized. However, registering the same attribute twice does not have any negative\n\t * impact, so it is recommended to use this method in any feature that uses roots attributes.\n\t */\n\tpublic registerRootAttribute( key: string ): void {\n\t\tif ( this._registeredRootsAttributesKeys.has( key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._registeredRootsAttributesKeys.add( key );\n\t\tthis.editing.model.schema.extend( '$root', { allowAttributes: key } );\n\t}\n\n\t/**\n\t * Switches given editor root to the read-only mode.\n\t *\n\t * In contrary to {@link module:core/editor/editor~Editor#enableReadOnlyMode `enableReadOnlyMode()`}, which switches the whole editor\n\t * to the read-only mode, this method turns only a particular root to the read-only mode. This can be useful when you want to prevent\n\t * editing only a part of the editor content.\n\t *\n\t * When you switch a root to the read-only mode, you need provide a unique identifier (`lockId`) that will identify this request. You\n\t * will need to provide the same `lockId` when you will want to\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot re-enable} the root.\n\t *\n\t * ```ts\n\t * const model = editor.model;\n\t * const myRoot = model.document.getRoot( 'myRoot' );\n\t *\n\t * editor.disableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.disableRoot( 'myRoot', 'other-lock' );\n\t * editor.disableRoot( 'myRoot', 'other-lock' ); // Multiple locks with the same ID have no effect.\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'other-lock' );\n\t * model.canEditAt( myRoot ); // `true`\n\t * ```\n\t *\n\t * See also {@link module:core/editor/editor~Editor#enableReadOnlyMode `Editor#enableReadOnlyMode()`} and\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot `MultiRootEditor#enableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch to read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */\n\tpublic disableRoot( rootName: string, lockId: string | symbol ): void {\n\t\tif ( rootName == '$graveyard' ) {\n\t\t\t/**\n\t\t\t * You cannot disable the `$graveyard` root.\n\t\t\t *\n\t\t\t * @error multi-root-editor-cannot-disable-graveyard-root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'multi-root-editor-cannot-disable-graveyard-root', this );\n\t\t}\n\n\t\tconst locksForGivenRoot = this._readOnlyRootLocks.get( rootName );\n\n\t\tif ( locksForGivenRoot ) {\n\t\t\tlocksForGivenRoot.add( lockId );\n\t\t} else {\n\t\t\tthis._readOnlyRootLocks.set( rootName, new Set( [ lockId ] ) );\n\n\t\t\tconst editableRootElement = this.editing.view.document.getRoot( rootName )!;\n\n\t\t\teditableRootElement.isReadOnly = true;\n\n\t\t\t// Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n\t\t\tArray.from( this.commands.commands() ).forEach( command => command.affectsData && command.refresh() );\n\t\t}\n\t}\n\n\t/**\n\t * Removes given read-only lock from the given root.\n\t *\n\t * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor#disableRoot `disableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch back from the read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */\n\tpublic enableRoot( rootName: string, lockId: string | symbol ): void {\n\t\tconst locksForGivenRoot = this._readOnlyRootLocks.get( rootName );\n\n\t\tif ( !locksForGivenRoot || !locksForGivenRoot.has( lockId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( locksForGivenRoot.size === 1 ) {\n\t\t\tthis._readOnlyRootLocks.delete( rootName );\n\n\t\t\tconst editableRootElement = this.editing.view.document.getRoot( rootName )!;\n\n\t\t\teditableRootElement.isReadOnly = this.isReadOnly;\n\n\t\t\t// Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n\t\t\tArray.from( this.commands.commands() ).forEach( command => command.affectsData && command.refresh() );\n\t\t} else {\n\t\t\tlocksForGivenRoot.delete( lockId );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a new multi-root editor instance.\n\t *\n\t * **Note:** remember that `MultiRootEditor` does not append the toolbar element to your web page, so you have to do it manually\n\t * after the editor has been initialized.\n\t *\n\t * There are a few different ways to initialize the multi-root editor.\n\t *\n\t * # Using existing DOM elements:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * The elements' content will be used as the editor data and elements will become editable elements.\n\t *\n\t * # Creating a detached editor\n\t *\n\t * Alternatively, you can initialize the editor by passing the initial data directly as strings.\n\t * In this case, you will have to manually append both the toolbar element and the editable elements to your web page.\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \tsidePanelLeft: '<blockquote>Strong quotation from article.</blockquote>',\n\t * \tsidePanelRight: '<p>List of similar articles...</p>',\n\t * \toutro: '<p>Closing text.</p>'\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t *\n\t * \t// Append DOM editable elements created by the editor.\n\t * \tconst editables = editor.ui.view.editables;\n\t * \tconst container = document.querySelector( '#editable-container' );\n\t *\n\t * \tcontainer.appendChild( editables.intro.element );\n\t * \tcontainer.appendChild( editables.content.element );\n\t * \tcontainer.appendChild( editables.outro.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n\t * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n\t *\n\t * # Using an existing DOM element (and data provided in `config.initialData`)\n\t *\n\t * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * }, {\n\t * \tinitialData: {\n\t * \t\tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \t\tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \t\tsidePanelLeft '<blockquote>Strong quotation from article.</blockquote>':\n\t * \t\tsidePanelRight '<p>List of similar articles...</p>':\n\t * \t\toutro: '<p>Closing text.</p>'\n\t * \t}\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n\t * makes it difficult to set the content of the source element.\n\t *\n\t * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n\t *\n\t * # Configuring the editor\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n\t * customizing plugins, toolbar and more.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t *\n\t * If DOM elements are passed, their content will be automatically loaded to the editor upon initialization and the elements will be\n\t * used as the editor's editable areas. The editor data will be set back to the original element once the editor is destroyed if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy updateSourceElementOnDestroy} option\n\t * is set to `true`.\n\t *\n\t * If the initial data is passed, a detached editor will be created. For each entry in the passed object, one editor root and one\n\t * editable DOM element will be created. You will need to attach the editable elements into the DOM manually. The elements are available\n\t * through the {@link module:editor-multi-root/multirooteditorui~MultiRootEditorUI#getEditableElement `editor.ui.getEditableElement()`}\n\t * method.\n\t * @param config The editor configuration.\n\t * @returns A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n\t */\n\tpublic static override create(\n\t\tsourceElementsOrData: Record<string, HTMLElement> | Record<string, string>,\n\t\tconfig: EditorConfig = {}\n\t): Promise<MultiRootEditor> {\n\t\treturn new Promise( resolve => {\n\t\t\tfor ( const sourceItem of Object.values( sourceElementsOrData ) ) {\n\t\t\t\tif ( isElement( sourceItem ) && sourceItem.tagName === 'TEXTAREA' ) {\n\t\t\t\t\t// Documented in core/editor/editor.js\n\t\t\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\t\t\tthrow new CKEditorError( 'editor-wrong-element', null );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst editor = new this( sourceElementsOrData, config );\n\n\t\t\tresolve(\n\t\t\t\teditor.initPlugins()\n\t\t\t\t\t.then( () => editor.ui.init() )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\t// This is checked directly before setting the initial data,\n\t\t\t\t\t\t// as plugins may change `EditorConfig#initialData` value.\n\t\t\t\t\t\teditor._verifyRootsWithInitialData();\n\n\t\t\t\t\t\treturn editor.data.init( editor.config.get( 'initialData' )! );\n\t\t\t\t\t} )\n\t\t\t\t\t.then( () => editor.fire<EditorReadyEvent>( 'ready' ) )\n\t\t\t\t\t.then( () => editor )\n\t\t\t);\n\t\t} );\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tprivate _verifyRootsWithInitialData(): void {\n\t\tconst initialData = this.config.get( 'initialData' ) as Record<string, string>;\n\n\t\t// Roots that are not in the initial data.\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\tif ( !( rootName in initialData ) ) {\n\t\t\t\t/**\n\t\t\t\t * Editor roots do not match the\n\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t *\n\t\t\t\t * This may happen for one of the two reasons:\n\t\t\t\t *\n\t\t\t\t * * Configuration error. The `sourceElementsOrData` parameter in\n\t\t\t\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} contains different\n\t\t\t\t * roots than {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t * * As the editor was initialized, the {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData`}\n\t\t\t\t * configuration value or the state of the editor roots has been changed.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-root-initial-data-mismatch\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-initial-data-mismatch', null );\n\t\t\t}\n\t\t}\n\n\t\t// Roots that are not in the editor.\n\t\tfor ( const rootName of Object.keys( initialData ) ) {\n\t\t\tconst root = this.model.document.getRoot( rootName );\n\n\t\t\tif ( !root || !root.isAttached() ) {\n\t\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-initial-data-mismatch', null );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getInitialData( sourceElementOrData: HTMLElement | string ): string {\n\treturn isElement( sourceElementOrData ) ? getDataFromElement( sourceElementOrData ) : sourceElementOrData;\n}\n\nfunction isElement( value: any ): value is Element {\n\treturn _isElement( value );\n}\n\n/**\n * Fired whenever a root is {@link ~MultiRootEditor#addRoot added or re-added} to the editor model.\n *\n * Use this event to {@link ~MultiRootEditor#createEditable create a DOM editable} for the added root and append the DOM element\n * in a desired place in your application.\n *\n * The event is fired after all changes from a given batch are applied. The event is not fired, if the root was added and detached\n * in the same batch.\n *\n * @eventName ~MultiRootEditor#addRoot\n * @param root The root that was added.\n */\nexport type AddRootEvent = {\n\tname: 'addRoot';\n\targs: [ root: RootElement ];\n};\n\n/**\n * Fired whenever a root is {@link ~MultiRootEditor#detachRoot detached} from the editor model.\n *\n * Use this event to {@link ~MultiRootEditor#detachEditable destroy a DOM editable} for the detached root and remove the DOM element\n * from your application.\n *\n * The event is fired after all changes from a given batch are applied. The event is not fired, if the root was detached and re-added\n * in the same batch.\n *\n * @eventName ~MultiRootEditor#detachRoot\n * @param root The root that was detached.\n */\nexport type DetachRootEvent = {\n\tname: 'detachRoot';\n\targs: [ root: RootElement ];\n};\n\n/**\n * Event fired when {@link ~MultiRootEditor#loadRoot} method is called.\n *\n * The {@link ~MultiRootEditor#loadRoot default action of that method} is implemented as a\n * listener to this event, so it can be fully customized by the features.\n *\n * @eventName ~MultiRootEditor#loadRoot\n * @param args The arguments passed to the original method.\n */\nexport type LoadRootEvent = DecoratedMethodEvent<MultiRootEditor, 'loadRoot'>;\n\n/**\n * Additional options available when adding a root.\n */\nexport type AddRootOptions = {\n\n\t/**\n\t * Initial data for the root.\n\t */\n\tdata?: string;\n\n\t/**\n\t * Initial attributes for the root.\n\t */\n\tattributes?: RootAttributes;\n\n\t/**\n\t * Element name for the root element in the model. It can be used to set different schema rules for different roots.\n\t */\n\telementName?: string;\n\n\t/**\n\t * Whether creating the root can be undone (using the undo feature) or not.\n\t */\n\tisUndoable?: boolean;\n};\n\n/**\n * Additional options available when loading a root.\n */\nexport type LoadRootOptions = Omit<AddRootOptions, 'elementName' | 'isUndoable'>;\n\n/**\n * Attributes set on a model root element.\n */\nexport type RootAttributes = Record<string, unknown>;\n"]}
1
+ {"version":3,"sources":["index.js","../src/multirooteditorui.ts","../src/multirooteditoruiview.ts","../src/multirooteditor.ts"],"names":["MultiRootEditorUI","EditorUI","constructor","editor","view","_lastFocusedEditableElement","render","focusTracker","on","evt","name","focusedElement","editable","Object","values","editables","element","isFocused","addEditable","_initToolbar","_initMenuBar","menuBarView","fire","placeholder","editableElement","editing","attachDomRoot","setEditableElement","bind","to","_initPlaceholder","removeEditable","detachDomRoot","unbind","removeEditableElement","destroy","toolbar","fillFromConfig","config","get","componentFactory","addToolbar","configPlaceholder","editingView","editingRoot","document","getRoot","enablePlaceholder","isDirectHost","keepOnFocus","MultiRootEditorUIView","EditorUIView","locale","editableNames","options","_editingView","ToolbarView","shouldGroupWhenFull","shouldToolbarGroupWhenFull","MenuBarView","editableName","editableElements","undefined","label","createEditable","extendTemplate","attributes","class","dir","uiLanguageDirection","InlineEditableUIView","isRendered","registerChild","deregisterChild","MultiRootEditor","Editor","editorName","_registeredRootsAttributesKeys","Set","_readOnlyRootLocks","Map","sourceElementsOrData","rootNames","keys","sourceIsData","length","initialData","CKEditorError","sourceElements","rootName","getInitialData","set","secureSourceElement","roots","viewRoot","isReadOnly","has","prop","value","viewRange","createRangeIn","viewItem","getItems","is","model","createRoot","root","_isLoaded","rootsAttributes","entries","key","registerRootAttribute","data","enqueueChange","isUndoable","writer","setAttribute","ui","changedRoots","differ","getChangedRoots","changes","state","listenTo","selection","selectionInReadOnlyRoot","range","getRanges","return","stop","priority","decorate","logWarning","shouldUpdateSourceElement","getData","then","setDataInElement","addRoot","elementName","_addRoot","insert","parse","change","detachRoot","forceRender","detachEditable","loadRoot","_bufferRootLoad","getFullData","getRootNames","getRootAttributes","rootAttributes","hasAttribute","getAttribute","add","schema","extend","allowAttributes","disableRoot","lockId","locksForGivenRoot","editableRootElement","Array","from","commands","forEach","command","affectsData","refresh","enableRoot","size","delete","create","Promise","resolve","sourceItem","isElement","tagName","initPlugins","init","_verifyRootsWithInitialData","isAttached","sourceElementOrData","getDataFromElement","_isElement"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Editor, secureSourceElement } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { CKEditorError, logWarning, setDataInElement, getDataFromElement } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { EditorUI, EditorUIView, ToolbarView, MenuBarView, InlineEditableUIView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { enablePlaceholder } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { isElement as isElement$1 } from 'lodash-es';\n\n/**\n * The multi-root editor UI class.\n */ class MultiRootEditorUI extends EditorUI {\n /**\n\t * The main (top–most) view of the editor UI.\n\t */ view;\n /**\n\t * The editable element that was focused the last time when any of the editables had focus.\n\t */ _lastFocusedEditableElement;\n /**\n\t * Creates an instance of the multi-root editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */ constructor(editor, view){\n super(editor);\n this.view = view;\n this._lastFocusedEditableElement = null;\n }\n /**\n\t * Initializes the UI.\n\t */ init() {\n const view = this.view;\n view.render();\n // Keep track of the last focused editable element. Knowing which one was focused\n // is useful when the focus moves from editable to other UI components like balloons\n // (especially inputs) but the editable remains the \"focus context\" (e.g. link balloon\n // attached to a link in an editable). In this case, the editable should preserve visual\n // focus styles.\n this.focusTracker.on('change:focusedElement', (evt, name, focusedElement)=>{\n for (const editable of Object.values(this.view.editables)){\n if (focusedElement === editable.element) {\n this._lastFocusedEditableElement = editable.element;\n }\n }\n });\n // If the focus tracker loses focus, stop tracking the last focused editable element.\n // Wherever the focus is restored, it will no longer be in the context of that editable\n // because the focus \"came from the outside\", as opposed to the focus moving from one element\n // to another within the editor UI.\n this.focusTracker.on('change:isFocused', (evt, name, isFocused)=>{\n if (!isFocused) {\n this._lastFocusedEditableElement = null;\n }\n });\n for (const editable of Object.values(this.view.editables)){\n this.addEditable(editable);\n }\n this._initToolbar();\n this._initMenuBar(this.view.menuBarView);\n this.fire('ready');\n }\n /**\n\t * Adds the editable to the editor UI.\n\t *\n\t * After the editable is added to the editor UI it can be considered \"active\".\n\t *\n\t * The editable is attached to the editor editing pipeline, which means that it will be updated as the editor model updates and\n\t * changing its content will be reflected in the editor model. Keystrokes, focus handling and placeholder are initialized.\n\t *\n\t * @param editable The editable instance to add.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */ addEditable(editable, placeholder) {\n // The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n // But it can be available earlier if a DOM element has been passed to `MultiRootEditor.create()`.\n const editableElement = editable.element;\n // Bind the editable UI element to the editing view, making it an end– and entry–point\n // of the editor's engine. This is where the engine meets the UI.\n this.editor.editing.view.attachDomRoot(editableElement, editable.name);\n // Register each editable UI view in the editor.\n this.setEditableElement(editable.name, editableElement);\n // Let the editable UI element respond to the changes in the global editor focus\n // tracker. It has been added to the same tracker a few lines above but, in reality, there are\n // many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n // as they have focus, the editable should act like it is focused too (although technically\n // it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n // Doing otherwise will result in editable focus styles disappearing, once e.g. the\n // toolbar gets focused.\n editable.bind('isFocused').to(this.focusTracker, 'isFocused', this.focusTracker, 'focusedElement', (isFocused, focusedElement)=>{\n // When the focus tracker is blurred, it means the focus moved out of the editor UI.\n // No editable will maintain focus then.\n if (!isFocused) {\n return false;\n }\n // If the focus tracker says the editor UI is focused and currently focused element\n // is the editable, then the editable should be visually marked as focused too.\n if (focusedElement === editableElement) {\n return true;\n } else {\n return this._lastFocusedEditableElement === editableElement;\n }\n });\n this._initPlaceholder(editable, placeholder);\n }\n /**\n\t * Removes the editable instance from the editor UI.\n\t *\n\t * Removed editable can be considered \"deactivated\".\n\t *\n\t * The editable is detached from the editing pipeline, so model changes are no longer reflected in it. All handling added in\n\t * {@link #addEditable} is removed.\n\t *\n\t * @param editable Editable to remove from the editor UI.\n\t */ removeEditable(editable) {\n this.editor.editing.view.detachDomRoot(editable.name);\n editable.unbind('isFocused');\n this.removeEditableElement(editable.name);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n for (const editable of Object.values(this.view.editables)){\n this.removeEditable(editable);\n }\n this.view.destroy();\n }\n /**\n\t * Initializes the editor main toolbar and its panel.\n\t */ _initToolbar() {\n const editor = this.editor;\n const view = this.view;\n const toolbar = view.toolbar;\n toolbar.fillFromConfig(editor.config.get('toolbar'), this.componentFactory);\n // Register the toolbar, so it becomes available for Alt+F10 and Esc navigation.\n this.addToolbar(view.toolbar);\n }\n /**\n\t * Enables the placeholder text on a given editable.\n\t *\n\t * @param editable Editable on which the placeholder should be set.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */ _initPlaceholder(editable, placeholder) {\n if (!placeholder) {\n const configPlaceholder = this.editor.config.get('placeholder');\n if (configPlaceholder) {\n placeholder = typeof configPlaceholder === 'string' ? configPlaceholder : configPlaceholder[editable.name];\n }\n }\n const editingView = this.editor.editing.view;\n const editingRoot = editingView.document.getRoot(editable.name);\n if (placeholder) {\n editingRoot.placeholder = placeholder;\n }\n enablePlaceholder({\n view: editingView,\n element: editingRoot,\n isDirectHost: false,\n keepOnFocus: true\n });\n }\n}\n\n/**\n * The multi-root editor UI view. It is a virtual view providing an inline\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#editable} and a\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar}, but without any\n * specific arrangement of the components in the DOM.\n *\n * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}\n * to learn more about this view.\n */ class MultiRootEditorUIView extends EditorUIView {\n /**\n\t * The main toolbar of the multi-root editor UI.\n\t */ toolbar;\n /**\n\t * Editable elements used by the multi-root editor UI.\n\t */ editables;\n editable;\n /**\n\t * Menu bar view instance.\n\t */ menuBarView;\n /**\n\t * The editing view instance this view is related to.\n\t */ _editingView;\n /**\n\t * Creates an instance of the multi-root editor UI view.\n\t *\n\t * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n\t * @param editingView The editing view instance this view is related to.\n\t * @param editableNames Names for all editable views. For each name, one\n\t * {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`} instance will be initialized.\n\t * @param options Configuration options for the view instance.\n\t * @param options.editableElements The editable elements to be used, assigned to their names. If not specified, they will be\n\t * automatically created by {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`}\n\t * instances.\n\t * @param options.shouldToolbarGroupWhenFull When set to `true` enables automatic items grouping\n\t * in the main {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar toolbar}.\n\t * See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.\n\t * @param options.label When set, this value will be used as an accessible `aria-label` of the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView editable view} elements.\n\t */ constructor(locale, editingView, editableNames, options = {}){\n super(locale);\n this._editingView = editingView;\n this.toolbar = new ToolbarView(locale, {\n shouldGroupWhenFull: options.shouldToolbarGroupWhenFull\n });\n this.menuBarView = new MenuBarView(locale);\n this.editables = {};\n // Create `InlineEditableUIView` instance for each editable.\n for (const editableName of editableNames){\n const editableElement = options.editableElements ? options.editableElements[editableName] : undefined;\n let { label } = options;\n if (typeof label === 'object') {\n label = label[editableName];\n }\n this.createEditable(editableName, editableElement, label);\n }\n this.editable = Object.values(this.editables)[0];\n // This toolbar may be placed anywhere in the page so things like font size need to be reset in it.\n // Because of the above, make sure the toolbar supports rounded corners.\n // Also, make sure the toolbar has the proper dir attribute because its ancestor may not have one\n // and some toolbar item styles depend on this attribute.\n this.toolbar.extendTemplate({\n attributes: {\n class: [\n 'ck-reset_all',\n 'ck-rounded-corners'\n ],\n dir: locale.uiLanguageDirection\n }\n });\n this.menuBarView.extendTemplate({\n attributes: {\n class: [\n 'ck-reset_all',\n 'ck-rounded-corners'\n ],\n dir: locale.uiLanguageDirection\n }\n });\n }\n /**\n\t * Creates an editable instance with given name and registers it in the editor UI view.\n\t *\n\t * If `editableElement` is provided, the editable instance will be created on top of it. Otherwise, the editor will create a new\n\t * DOM element and use it instead.\n\t *\n\t * @param editableName The name for the editable.\n\t * @param editableElement DOM element for which the editable should be created.\n\t * @param label The accessible editable label used by assistive technologies.\n\t * @returns The created editable instance.\n\t */ createEditable(editableName, editableElement, label) {\n const editable = new InlineEditableUIView(this.locale, this._editingView, editableElement, {\n label\n });\n this.editables[editableName] = editable;\n editable.name = editableName;\n if (this.isRendered) {\n this.registerChild(editable);\n }\n return editable;\n }\n /**\n\t * Destroys and removes the editable from the editor UI view.\n\t *\n\t * @param editableName The name of the editable that should be removed.\n\t */ removeEditable(editableName) {\n const editable = this.editables[editableName];\n if (this.isRendered) {\n this.deregisterChild(editable);\n }\n delete this.editables[editableName];\n editable.destroy();\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n this.registerChild(Object.values(this.editables));\n this.registerChild(this.toolbar);\n this.registerChild(this.menuBarView);\n }\n}\n\n/**\n * The multi-root editor implementation.\n *\n * The multi-root editor provides multiple inline editable elements and a toolbar. All editable areas are controlled by one editor\n * instance, which means that they share common configuration, document ID, or undo stack.\n *\n * This type of editor is dedicated to integrations which require a customized UI with an open structure, featuring multiple editable areas,\n * allowing developers to have a control over the exact location of these editable areas.\n *\n * In order to create a multi-root editor instance, use the static\n * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method.\n *\n * Note that you will need to attach the editor toolbar to your web page manually, in a desired place, after the editor is initialized.\n */ class MultiRootEditor extends Editor {\n /**\n\t * @inheritDoc\n\t */ static get editorName() {\n return 'MultiRootEditor';\n }\n /**\n\t * @inheritDoc\n\t */ ui;\n /**\n\t * The elements on which the editor has been initialized.\n\t */ sourceElements;\n /**\n\t * Holds attributes keys that were passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `rootsAttributes`}\n\t * config property and should be returned by {@link #getRootsAttributes}.\n\t */ _registeredRootsAttributesKeys = new Set();\n /**\n\t * A set of lock IDs for enabling or disabling particular root.\n\t */ _readOnlyRootLocks = new Map();\n /**\n\t * Creates an instance of the multi-root editor.\n\t *\n\t * **Note:** Do not use the constructor to create editor instances. Use the static\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method instead.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t * For more information see {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}.\n\t * @param config The editor configuration.\n\t */ constructor(sourceElementsOrData, config = {}){\n const rootNames = Object.keys(sourceElementsOrData);\n const sourceIsData = rootNames.length === 0 || typeof sourceElementsOrData[rootNames[0]] === 'string';\n if (sourceIsData && config.initialData !== undefined && Object.keys(config.initialData).length > 0) {\n // Documented in core/editor/editorconfig.jsdoc.\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-create-initial-data', null);\n }\n super(config);\n if (!sourceIsData) {\n this.sourceElements = sourceElementsOrData;\n } else {\n this.sourceElements = {};\n }\n if (this.config.get('initialData') === undefined) {\n // Create initial data object containing data from all roots.\n const initialData = {};\n for (const rootName of rootNames){\n initialData[rootName] = getInitialData(sourceElementsOrData[rootName]);\n }\n this.config.set('initialData', initialData);\n }\n if (!sourceIsData) {\n for (const rootName of rootNames){\n secureSourceElement(this, sourceElementsOrData[rootName]);\n }\n }\n this.editing.view.document.roots.on('add', (evt, viewRoot)=>{\n // Here we change the standard binding of readOnly flag by adding\n // additional constraint that multi-root has (enabling / disabling particular root).\n viewRoot.unbind('isReadOnly');\n viewRoot.bind('isReadOnly').to(this.editing.view.document, 'isReadOnly', (isReadOnly)=>{\n return isReadOnly || this._readOnlyRootLocks.has(viewRoot.rootName);\n });\n // Hacky solution to nested editables.\n // Nested editables should be managed each separately and do not base on view document or view root.\n viewRoot.on('change:isReadOnly', (evt, prop, value)=>{\n const viewRange = this.editing.view.createRangeIn(viewRoot);\n for (const viewItem of viewRange.getItems()){\n if (viewItem.is('editableElement')) {\n viewItem.unbind('isReadOnly');\n viewItem.isReadOnly = value;\n }\n }\n });\n });\n for (const rootName of rootNames){\n // Create root and `UIView` element for each editable container.\n this.model.document.createRoot('$root', rootName);\n }\n if (this.config.get('lazyRoots')) {\n for (const rootName of this.config.get('lazyRoots')){\n const root = this.model.document.createRoot('$root', rootName);\n root._isLoaded = false;\n }\n }\n if (this.config.get('rootsAttributes')) {\n const rootsAttributes = this.config.get('rootsAttributes');\n for (const [rootName, attributes] of Object.entries(rootsAttributes)){\n if (!this.model.document.getRoot(rootName)) {\n /**\n\t\t\t\t\t * Trying to set attributes on a non-existing root.\n\t\t\t\t\t *\n\t\t\t\t\t * Roots specified in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes} do not match initial\n\t\t\t\t\t * editor roots.\n\t\t\t\t\t *\n\t\t\t\t\t * @error multi-root-editor-root-attributes-no-root\n\t\t\t\t\t */ throw new CKEditorError('multi-root-editor-root-attributes-no-root', null);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n }\n }\n this.data.on('init', ()=>{\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>{\n for (const [name, attributes] of Object.entries(rootsAttributes)){\n const root = this.model.document.getRoot(name);\n for (const [key, value] of Object.entries(attributes)){\n if (value !== null) {\n writer.setAttribute(key, value, root);\n }\n }\n }\n });\n });\n }\n const options = {\n shouldToolbarGroupWhenFull: !this.config.get('toolbar.shouldNotGroupWhenFull'),\n editableElements: sourceIsData ? undefined : sourceElementsOrData,\n label: this.config.get('label')\n };\n const view = new MultiRootEditorUIView(this.locale, this.editing.view, rootNames, options);\n this.ui = new MultiRootEditorUI(this, view);\n this.model.document.on('change:data', ()=>{\n const changedRoots = this.model.document.differ.getChangedRoots();\n // Fire detaches first. If there are multiple roots removed and added in one batch, it should be easier to handle if\n // changes aren't mixed. Detaching will usually lead to just removing DOM elements. Detaching first will lead to a clean DOM\n // when new editables are added in `addRoot` event.\n for (const changes of changedRoots){\n const root = this.model.document.getRoot(changes.name);\n if (changes.state == 'detached') {\n this.fire('detachRoot', root);\n }\n }\n for (const changes of changedRoots){\n const root = this.model.document.getRoot(changes.name);\n if (changes.state == 'attached') {\n this.fire('addRoot', root);\n }\n }\n });\n // Overwrite `Model#canEditAt()` decorated method.\n // Check if the provided selection is inside a read-only root. If so, return `false`.\n this.listenTo(this.model, 'canEditAt', (evt, [selection])=>{\n // Skip empty selections.\n if (!selection) {\n return;\n }\n let selectionInReadOnlyRoot = false;\n for (const range of selection.getRanges()){\n const root = range.root;\n if (this._readOnlyRootLocks.has(root.rootName)) {\n selectionInReadOnlyRoot = true;\n break;\n }\n }\n // If selection is in read-only root, return `false` and prevent further processing.\n // Otherwise, allow for other callbacks (or default callback) to evaluate.\n if (selectionInReadOnlyRoot) {\n evt.return = false;\n evt.stop();\n }\n }, {\n priority: 'high'\n });\n this.decorate('loadRoot');\n this.on('loadRoot', (evt, [rootName])=>{\n const root = this.model.document.getRoot(rootName);\n if (!root) {\n /**\n\t\t\t\t * The root to load does not exist.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-no-root\n\t\t\t\t */ throw new CKEditorError('multi-root-editor-load-root-no-root', this, {\n rootName\n });\n }\n if (root._isLoaded) {\n /**\n\t\t\t\t * The root to load was already loaded before. The `loadRoot()` call has no effect.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-already-loaded\n\t\t\t\t */ logWarning('multi-root-editor-load-root-already-loaded');\n evt.stop();\n }\n }, {\n priority: 'highest'\n });\n }\n /**\n\t * Destroys the editor instance, releasing all resources used by it.\n\t *\n\t * Updates the original editor element with the data if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}\n\t * configuration option is set to `true`.\n\t *\n\t * **Note**: The multi-root editor does not remove the toolbar and editable when destroyed. You can\n\t * do that yourself in the destruction chain, if you need to:\n\t *\n\t * ```ts\n\t * editor.destroy().then( () => {\n\t * \t// Remove the toolbar from DOM.\n\t * \teditor.ui.view.toolbar.element.remove();\n\t *\n\t * \t// Remove editable elements from DOM.\n\t * \tfor ( const editable of Object.values( editor.ui.view.editables ) ) {\n\t * \t editable.element.remove();\n\t * \t}\n\t *\n\t * \tconsole.log( 'Editor was destroyed' );\n\t * } );\n\t * ```\n\t */ destroy() {\n const shouldUpdateSourceElement = this.config.get('updateSourceElementOnDestroy');\n // Cache the data and editable DOM elements, then destroy.\n // It's safe to assume that the model->view conversion will not work after `super.destroy()`,\n // same as `ui.getEditableElement()` method will not return editables.\n const data = {};\n for (const rootName of Object.keys(this.sourceElements)){\n data[rootName] = shouldUpdateSourceElement ? this.getData({\n rootName\n }) : '';\n }\n this.ui.destroy();\n return super.destroy().then(()=>{\n for (const rootName of Object.keys(this.sourceElements)){\n setDataInElement(this.sourceElements[rootName], data[rootName]);\n }\n });\n }\n /**\n\t * Adds a new root to the editor.\n\t *\n\t * ```ts\n\t * editor.addRoot( 'myRoot', { data: '<p>Initial root data.</p>' } );\n\t * ```\n\t *\n\t * After a root is added, you will be able to modify and retrieve its data.\n\t *\n\t * All root names must be unique. An error will be thrown if you will try to create a root with the name same as\n\t * an already existing, attached root. However, you can call this method for a detached root. See also {@link #detachRoot}.\n\t *\n\t * Whenever a root is added, the editor instance will fire {@link #event:addRoot `addRoot` event}. The event is also called when\n\t * the root is added indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only adds a root to the editor model. It **does not** create a DOM editable element for the new root.\n\t * Until such element is created (and attached to the root), the root is \"virtual\": it is not displayed anywhere and its data can\n\t * be changed only using the editor API.\n\t *\n\t * To create a DOM editable element for the root, listen to {@link #event:addRoot `addRoot` event} and call {@link #createEditable}.\n\t * Then, insert the DOM element in a desired place, that will depend on the integration with your application and your requirements.\n\t *\n\t * ```ts\n\t * editor.on( 'addRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.createEditable( root );\n\t *\n\t * \t// You may want to create a more complex DOM structure here.\n\t * \t//\n\t * \t// Alternatively, you may want to create a DOM structure before\n\t * \t// calling `editor.addRoot()` and only append `editableElement` at\n\t * \t// a proper place.\n\t *\n\t * \tdocument.querySelector( '#editors' ).appendChild( editableElement );\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.addRoot( 'myRoot' ); // Will create a root, a DOM editable element and append it to `#editors` container element.\n\t * ```\n\t *\n\t * You can set root attributes on the new root while you add it:\n\t *\n\t * ```ts\n\t * // Add a collapsed root at fourth position from top.\n\t * // Keep in mind that these are just examples of attributes. You need to provide your own features that will handle the attributes.\n\t * editor.addRoot( 'myRoot', { attributes: { isCollapsed: true, index: 4 } } );\n\t * ```\n\t *\n\t * Note that attributes added together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for detaching the root using the undo feature.\n\t *\n\t * Additionally, you can group adding multiple roots in one undo step. This can be useful if you add multiple roots that are\n\t * combined into one, bigger UI element, and want them all to be undone together.\n\t *\n\t * ```ts\n\t * let rowId = 0;\n\t *\n\t * editor.model.change( () => {\n\t * \teditor.addRoot( 'left-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'center-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'right-row-' + rowId, { isUndoable: true } );\n\t *\n\t * \trowId++;\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to add.\n\t * @param options Additional options for the added root.\n\t */ addRoot(rootName, { data = '', attributes = {}, elementName = '$root', isUndoable = false } = {}) {\n const _addRoot = (writer)=>{\n const root = writer.addRoot(rootName, elementName);\n if (data) {\n writer.insert(this.data.parse(data, root), root, 0);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n writer.setAttribute(key, attributes[key], root);\n }\n };\n if (isUndoable) {\n this.model.change(_addRoot);\n } else {\n this.model.enqueueChange({\n isUndoable: false\n }, _addRoot);\n }\n }\n /**\n\t * Detaches a root from the editor.\n\t *\n\t * ```ts\n\t * editor.detachRoot( 'myRoot' );\n\t * ```\n\t *\n\t * A detached root is not entirely removed from the editor model, however it can be considered removed.\n\t *\n\t * After a root is detached all its children are removed, all markers inside it are removed, and whenever something is inserted to it,\n\t * it is automatically removed as well. Finally, a detached root is not returned by\n\t * {@link module:engine/model/document~Document#getRootNames} by default.\n\t *\n\t * It is possible to re-add a previously detached root calling {@link #addRoot}.\n\t *\n\t * Whenever a root is detached, the editor instance will fire {@link #event:detachRoot `detachRoot` event}. The event is also\n\t * called when the root is detached indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only detached a root in the editor model. It **does not** destroy the DOM editable element linked with\n\t * the root and it **does not** remove the DOM element from the DOM structure of your application.\n\t *\n\t * To properly remove a DOM editable element after a root was detached, listen to {@link #event:detachRoot `detachRoot` event}\n\t * and call {@link #detachEditable}. Then, remove the DOM element from your application.\n\t *\n\t * ```ts\n\t * editor.on( 'detachRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.detachEditable( root );\n\t *\n\t * \t// You may want to do an additional DOM clean-up here.\n\t *\n\t * \teditableElement.remove();\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.detachRoot( 'myRoot' ); // Will detach the root, and remove the DOM editable element.\n\t * ```\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for re-adding the root using the undo feature.\n\t *\n\t * Additionally, you can group detaching multiple roots in one undo step. This can be useful if the roots are combined into one,\n\t * bigger UI element, and you want them all to be re-added together.\n\t *\n\t * ```ts\n\t * editor.model.change( () => {\n\t * \teditor.detachRoot( 'left-row-3', true );\n\t * \teditor.detachRoot( 'center-row-3', true );\n\t * \teditor.detachRoot( 'right-row-3', true );\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to detach.\n\t * @param isUndoable Whether detaching the root can be undone (using the undo feature) or not.\n\t */ detachRoot(rootName, isUndoable = false) {\n if (isUndoable) {\n this.model.change((writer)=>writer.detachRoot(rootName));\n } else {\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>writer.detachRoot(rootName));\n }\n }\n /**\n\t * Creates and returns a new DOM editable element for the given root element.\n\t *\n\t * The new DOM editable is attached to the model root and can be used to modify the root content.\n\t *\n\t * @param root Root for which the editable element should be created.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t * @param label The accessible label text describing the editable to the assistive technologies.\n\t * @returns The created DOM element. Append it in a desired place in your application.\n\t */ createEditable(root, placeholder, label) {\n const editable = this.ui.view.createEditable(root.rootName, undefined, label);\n this.ui.addEditable(editable, placeholder);\n this.editing.view.forceRender();\n return editable.element;\n }\n /**\n\t * Detaches the DOM editable element that was attached to the given root.\n\t *\n\t * @param root Root for which the editable element should be detached.\n\t * @returns The DOM element that was detached. You may want to remove it from your application DOM structure.\n\t */ detachEditable(root) {\n const rootName = root.rootName;\n const editable = this.ui.view.editables[rootName];\n this.ui.removeEditable(editable);\n this.ui.view.removeEditable(rootName);\n return editable.element;\n }\n /**\n\t * Loads a root that has previously been declared in {@link module:core/editor/editorconfig~EditorConfig#lazyRoots `lazyRoots`}\n\t * configuration option.\n\t *\n\t * Only roots specified in the editor config can be loaded. A root cannot be loaded multiple times. A root cannot be unloaded and\n\t * loading a root cannot be reverted using the undo feature.\n\t *\n\t * When a root becomes loaded, it will be treated by the editor as though it was just added. This, among others, means that all\n\t * related events and mechanisms will be fired, including {@link ~MultiRootEditor#event:addRoot `addRoot` event},\n\t * {@link module:engine/model/document~Document#event:change `model.Document` `change` event}, model post-fixers and conversion.\n\t *\n\t * Until the root becomes loaded, all above mechanisms are suppressed.\n\t *\n\t * This method is {@link module:utils/observablemixin~Observable#decorate decorated}.\n\t *\n\t * Note that attributes loaded together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * When this method is used in real-time collaboration environment, its effects become asynchronous as the editor will first synchronize\n\t * with the remote editing session, before the root is added to the editor.\n\t *\n\t * If the root has been already loaded by any other client, the additional data passed in `loadRoot()` parameters will be ignored.\n\t *\n\t * @param rootName Name of the root to load.\n\t * @param options Additional options for the loaded root.\n\t * @fires loadRoot\n\t */ loadRoot(rootName, { data = '', attributes = {} } = {}) {\n // `root` will be defined as it is guaranteed by a check in a higher priority callback.\n const root = this.model.document.getRoot(rootName);\n this.model.enqueueChange({\n isUndoable: false\n }, (writer)=>{\n if (data) {\n writer.insert(this.data.parse(data, root), root, 0);\n }\n for (const key of Object.keys(attributes)){\n this.registerRootAttribute(key);\n writer.setAttribute(key, attributes[key], root);\n }\n root._isLoaded = true;\n this.model.document.differ._bufferRootLoad(root);\n });\n }\n /**\n\t * Returns the document data for all attached roots.\n\t *\n\t * @param options Additional configuration for the retrieved data.\n\t * Editor features may introduce more configuration options that can be set through this parameter.\n\t * @param options.trim Whether returned data should be trimmed. This option is set to `'empty'` by default,\n\t * which means that whenever editor content is considered empty, an empty string is returned. To turn off trimming\n\t * use `'none'`. In such cases exact content will be returned (for example `'<p>&nbsp;</p>'` for an empty editor).\n\t * @returns The full document data.\n\t */ getFullData(options) {\n const data = {};\n for (const rootName of this.model.document.getRootNames()){\n data[rootName] = this.data.get({\n ...options,\n rootName\n });\n }\n return data;\n }\n /**\n\t * Returns attributes for all attached roots.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t *\n\t * @returns Object with roots attributes. Keys are roots names, while values are attributes set on given root.\n\t */ getRootsAttributes() {\n const rootsAttributes = {};\n for (const rootName of this.model.document.getRootNames()){\n rootsAttributes[rootName] = this.getRootAttributes(rootName);\n }\n return rootsAttributes;\n }\n /**\n\t * Returns attributes for the specified root.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t */ getRootAttributes(rootName) {\n const rootAttributes = {};\n const root = this.model.document.getRoot(rootName);\n for (const key of this._registeredRootsAttributesKeys){\n rootAttributes[key] = root.hasAttribute(key) ? root.getAttribute(key) : null;\n }\n return rootAttributes;\n }\n /**\n\t * Registers given string as a root attribute key. Registered root attributes are added to\n\t * {@link module:engine/model/schema~Schema schema}, and also returned by\n\t * {@link ~MultiRootEditor#getRootAttributes `getRootAttributes()`} and\n\t * {@link ~MultiRootEditor#getRootsAttributes `getRootsAttributes()`}.\n\t *\n\t * Note: attributes passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes`} are\n\t * automatically registered as the editor is initialized. However, registering the same attribute twice does not have any negative\n\t * impact, so it is recommended to use this method in any feature that uses roots attributes.\n\t */ registerRootAttribute(key) {\n if (this._registeredRootsAttributesKeys.has(key)) {\n return;\n }\n this._registeredRootsAttributesKeys.add(key);\n this.editing.model.schema.extend('$root', {\n allowAttributes: key\n });\n }\n /**\n\t * Switches given editor root to the read-only mode.\n\t *\n\t * In contrary to {@link module:core/editor/editor~Editor#enableReadOnlyMode `enableReadOnlyMode()`}, which switches the whole editor\n\t * to the read-only mode, this method turns only a particular root to the read-only mode. This can be useful when you want to prevent\n\t * editing only a part of the editor content.\n\t *\n\t * When you switch a root to the read-only mode, you need provide a unique identifier (`lockId`) that will identify this request. You\n\t * will need to provide the same `lockId` when you will want to\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot re-enable} the root.\n\t *\n\t * ```ts\n\t * const model = editor.model;\n\t * const myRoot = model.document.getRoot( 'myRoot' );\n\t *\n\t * editor.disableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.disableRoot( 'myRoot', 'other-lock' );\n\t * editor.disableRoot( 'myRoot', 'other-lock' ); // Multiple locks with the same ID have no effect.\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'other-lock' );\n\t * model.canEditAt( myRoot ); // `true`\n\t * ```\n\t *\n\t * See also {@link module:core/editor/editor~Editor#enableReadOnlyMode `Editor#enableReadOnlyMode()`} and\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot `MultiRootEditor#enableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch to read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */ disableRoot(rootName, lockId) {\n if (rootName == '$graveyard') {\n /**\n\t\t\t * You cannot disable the `$graveyard` root.\n\t\t\t *\n\t\t\t * @error multi-root-editor-cannot-disable-graveyard-root\n\t\t\t */ throw new CKEditorError('multi-root-editor-cannot-disable-graveyard-root', this);\n }\n const locksForGivenRoot = this._readOnlyRootLocks.get(rootName);\n if (locksForGivenRoot) {\n locksForGivenRoot.add(lockId);\n } else {\n this._readOnlyRootLocks.set(rootName, new Set([\n lockId\n ]));\n const editableRootElement = this.editing.view.document.getRoot(rootName);\n editableRootElement.isReadOnly = true;\n // Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n Array.from(this.commands.commands()).forEach((command)=>command.affectsData && command.refresh());\n }\n }\n /**\n\t * Removes given read-only lock from the given root.\n\t *\n\t * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor#disableRoot `disableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch back from the read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */ enableRoot(rootName, lockId) {\n const locksForGivenRoot = this._readOnlyRootLocks.get(rootName);\n if (!locksForGivenRoot || !locksForGivenRoot.has(lockId)) {\n return;\n }\n if (locksForGivenRoot.size === 1) {\n this._readOnlyRootLocks.delete(rootName);\n const editableRootElement = this.editing.view.document.getRoot(rootName);\n editableRootElement.isReadOnly = this.isReadOnly;\n // Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n Array.from(this.commands.commands()).forEach((command)=>command.affectsData && command.refresh());\n } else {\n locksForGivenRoot.delete(lockId);\n }\n }\n /**\n\t * Creates a new multi-root editor instance.\n\t *\n\t * **Note:** remember that `MultiRootEditor` does not append the toolbar element to your web page, so you have to do it manually\n\t * after the editor has been initialized.\n\t *\n\t * There are a few different ways to initialize the multi-root editor.\n\t *\n\t * # Using existing DOM elements:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * The elements' content will be used as the editor data and elements will become editable elements.\n\t *\n\t * # Creating a detached editor\n\t *\n\t * Alternatively, you can initialize the editor by passing the initial data directly as strings.\n\t * In this case, you will have to manually append both the toolbar element and the editable elements to your web page.\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \tsidePanelLeft: '<blockquote>Strong quotation from article.</blockquote>',\n\t * \tsidePanelRight: '<p>List of similar articles...</p>',\n\t * \toutro: '<p>Closing text.</p>'\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t *\n\t * \t// Append DOM editable elements created by the editor.\n\t * \tconst editables = editor.ui.view.editables;\n\t * \tconst container = document.querySelector( '#editable-container' );\n\t *\n\t * \tcontainer.appendChild( editables.intro.element );\n\t * \tcontainer.appendChild( editables.content.element );\n\t * \tcontainer.appendChild( editables.outro.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n\t * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n\t *\n\t * # Using an existing DOM element (and data provided in `config.initialData`)\n\t *\n\t * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * }, {\n\t * \tinitialData: {\n\t * \t\tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \t\tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \t\tsidePanelLeft '<blockquote>Strong quotation from article.</blockquote>':\n\t * \t\tsidePanelRight '<p>List of similar articles...</p>':\n\t * \t\toutro: '<p>Closing text.</p>'\n\t * \t}\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n\t * makes it difficult to set the content of the source element.\n\t *\n\t * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n\t *\n\t * # Configuring the editor\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n\t * customizing plugins, toolbar and more.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t *\n\t * If DOM elements are passed, their content will be automatically loaded to the editor upon initialization and the elements will be\n\t * used as the editor's editable areas. The editor data will be set back to the original element once the editor is destroyed if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy updateSourceElementOnDestroy} option\n\t * is set to `true`.\n\t *\n\t * If the initial data is passed, a detached editor will be created. For each entry in the passed object, one editor root and one\n\t * editable DOM element will be created. You will need to attach the editable elements into the DOM manually. The elements are available\n\t * through the {@link module:editor-multi-root/multirooteditorui~MultiRootEditorUI#getEditableElement `editor.ui.getEditableElement()`}\n\t * method.\n\t * @param config The editor configuration.\n\t * @returns A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n\t */ static create(sourceElementsOrData, config = {}) {\n return new Promise((resolve)=>{\n for (const sourceItem of Object.values(sourceElementsOrData)){\n if (isElement(sourceItem) && sourceItem.tagName === 'TEXTAREA') {\n // Documented in core/editor/editor.js\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-wrong-element', null);\n }\n }\n const editor = new this(sourceElementsOrData, config);\n resolve(editor.initPlugins().then(()=>editor.ui.init()).then(()=>{\n // This is checked directly before setting the initial data,\n // as plugins may change `EditorConfig#initialData` value.\n editor._verifyRootsWithInitialData();\n return editor.data.init(editor.config.get('initialData'));\n }).then(()=>editor.fire('ready')).then(()=>editor));\n });\n }\n /**\n\t * @internal\n\t */ _verifyRootsWithInitialData() {\n const initialData = this.config.get('initialData');\n // Roots that are not in the initial data.\n for (const rootName of this.model.document.getRootNames()){\n if (!(rootName in initialData)) {\n /**\n\t\t\t\t * Editor roots do not match the\n\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t *\n\t\t\t\t * This may happen for one of the two reasons:\n\t\t\t\t *\n\t\t\t\t * * Configuration error. The `sourceElementsOrData` parameter in\n\t\t\t\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} contains different\n\t\t\t\t * roots than {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t * * As the editor was initialized, the {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData`}\n\t\t\t\t * configuration value or the state of the editor roots has been changed.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-root-initial-data-mismatch\n\t\t\t\t */ throw new CKEditorError('multi-root-editor-root-initial-data-mismatch', null);\n }\n }\n // Roots that are not in the editor.\n for (const rootName of Object.keys(initialData)){\n const root = this.model.document.getRoot(rootName);\n if (!root || !root.isAttached()) {\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('multi-root-editor-root-initial-data-mismatch', null);\n }\n }\n }\n}\nfunction getInitialData(sourceElementOrData) {\n return isElement(sourceElementOrData) ? getDataFromElement(sourceElementOrData) : sourceElementOrData;\n}\nfunction isElement(value) {\n return isElement$1(value);\n}\n\nexport { MultiRootEditor };\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 editor-multi-root/multirooteditorui\n */\n\nimport {\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport {\n\tEditorUI,\n\ttype EditorUIReadyEvent,\n\ttype InlineEditableUIView\n} from 'ckeditor5/src/ui.js';\n\nimport { enablePlaceholder } from 'ckeditor5/src/engine.js';\n\nimport type MultiRootEditorUIView from './multirooteditoruiview.js';\n\n/**\n * The multi-root editor UI class.\n */\nexport default class MultiRootEditorUI extends EditorUI {\n\t/**\n\t * The main (top–most) view of the editor UI.\n\t */\n\tpublic readonly view: MultiRootEditorUIView;\n\n\t/**\n\t * The editable element that was focused the last time when any of the editables had focus.\n\t */\n\tprivate _lastFocusedEditableElement: HTMLElement | null;\n\n\t/**\n\t * Creates an instance of the multi-root editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */\n\tconstructor( editor: Editor, view: MultiRootEditorUIView ) {\n\t\tsuper( editor );\n\n\t\tthis.view = view;\n\t\tthis._lastFocusedEditableElement = null;\n\t}\n\n\t/**\n\t * Initializes the UI.\n\t */\n\tpublic init(): void {\n\t\tconst view = this.view;\n\n\t\tview.render();\n\n\t\t// Keep track of the last focused editable element. Knowing which one was focused\n\t\t// is useful when the focus moves from editable to other UI components like balloons\n\t\t// (especially inputs) but the editable remains the \"focus context\" (e.g. link balloon\n\t\t// attached to a link in an editable). In this case, the editable should preserve visual\n\t\t// focus styles.\n\t\tthis.focusTracker.on( 'change:focusedElement', ( evt, name, focusedElement ) => {\n\t\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\t\tif ( focusedElement === editable.element ) {\n\t\t\t\t\tthis._lastFocusedEditableElement = editable.element;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// If the focus tracker loses focus, stop tracking the last focused editable element.\n\t\t// Wherever the focus is restored, it will no longer be in the context of that editable\n\t\t// because the focus \"came from the outside\", as opposed to the focus moving from one element\n\t\t// to another within the editor UI.\n\t\tthis.focusTracker.on( 'change:isFocused', ( evt, name, isFocused ) => {\n\t\t\tif ( !isFocused ) {\n\t\t\t\tthis._lastFocusedEditableElement = null;\n\t\t\t}\n\t\t} );\n\n\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\tthis.addEditable( editable );\n\t\t}\n\n\t\tthis._initToolbar();\n\t\tthis._initMenuBar( this.view.menuBarView! );\n\t\tthis.fire<EditorUIReadyEvent>( 'ready' );\n\t}\n\n\t/**\n\t * Adds the editable to the editor UI.\n\t *\n\t * After the editable is added to the editor UI it can be considered \"active\".\n\t *\n\t * The editable is attached to the editor editing pipeline, which means that it will be updated as the editor model updates and\n\t * changing its content will be reflected in the editor model. Keystrokes, focus handling and placeholder are initialized.\n\t *\n\t * @param editable The editable instance to add.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */\n\tpublic addEditable( editable: InlineEditableUIView, placeholder?: string ): void {\n\t\t// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n\t\t// But it can be available earlier if a DOM element has been passed to `MultiRootEditor.create()`.\n\t\tconst editableElement = editable.element!;\n\n\t\t// Bind the editable UI element to the editing view, making it an end– and entry–point\n\t\t// of the editor's engine. This is where the engine meets the UI.\n\t\tthis.editor.editing.view.attachDomRoot( editableElement, editable.name! );\n\n\t\t// Register each editable UI view in the editor.\n\t\tthis.setEditableElement( editable.name!, editableElement );\n\n\t\t// Let the editable UI element respond to the changes in the global editor focus\n\t\t// tracker. It has been added to the same tracker a few lines above but, in reality, there are\n\t\t// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n\t\t// as they have focus, the editable should act like it is focused too (although technically\n\t\t// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n\t\t// Doing otherwise will result in editable focus styles disappearing, once e.g. the\n\t\t// toolbar gets focused.\n\t\teditable.bind( 'isFocused' ).to( this.focusTracker, 'isFocused', this.focusTracker, 'focusedElement',\n\t\t\t( isFocused: boolean, focusedElement: Element | null ) => {\n\t\t\t\t// When the focus tracker is blurred, it means the focus moved out of the editor UI.\n\t\t\t\t// No editable will maintain focus then.\n\t\t\t\tif ( !isFocused ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// If the focus tracker says the editor UI is focused and currently focused element\n\t\t\t\t// is the editable, then the editable should be visually marked as focused too.\n\t\t\t\tif ( focusedElement === editableElement ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// If the focus tracker says the editor UI is focused but the focused element is\n\t\t\t\t// not an editable, it is possible that the editable is still (context–)focused.\n\t\t\t\t// For instance, the focused element could be an input inside of a balloon attached\n\t\t\t\t// to the content in the editable. In such case, the editable should remain _visually_\n\t\t\t\t// focused even though technically the focus is somewhere else. The focus moved from\n\t\t\t\t// the editable to the input but the focus context remained the same.\n\t\t\t\telse {\n\t\t\t\t\treturn this._lastFocusedEditableElement === editableElement;\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis._initPlaceholder( editable, placeholder );\n\t}\n\n\t/**\n\t * Removes the editable instance from the editor UI.\n\t *\n\t * Removed editable can be considered \"deactivated\".\n\t *\n\t * The editable is detached from the editing pipeline, so model changes are no longer reflected in it. All handling added in\n\t * {@link #addEditable} is removed.\n\t *\n\t * @param editable Editable to remove from the editor UI.\n\t */\n\tpublic removeEditable( editable: InlineEditableUIView ): void {\n\t\tthis.editor.editing.view.detachDomRoot( editable.name! );\n\t\teditable.unbind( 'isFocused' );\n\t\tthis.removeEditableElement( editable.name! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tfor ( const editable of Object.values( this.view.editables ) ) {\n\t\t\tthis.removeEditable( editable );\n\t\t}\n\n\t\tthis.view.destroy();\n\t}\n\n\t/**\n\t * Initializes the editor main toolbar and its panel.\n\t */\n\tprivate _initToolbar(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = this.view;\n\t\tconst toolbar = view.toolbar;\n\n\t\ttoolbar.fillFromConfig( editor.config.get( 'toolbar' ), this.componentFactory );\n\n\t\t// Register the toolbar, so it becomes available for Alt+F10 and Esc navigation.\n\t\tthis.addToolbar( view.toolbar );\n\t}\n\n\t/**\n\t * Enables the placeholder text on a given editable.\n\t *\n\t * @param editable Editable on which the placeholder should be set.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t */\n\tprivate _initPlaceholder( editable: InlineEditableUIView, placeholder?: string ): void {\n\t\tif ( !placeholder ) {\n\t\t\tconst configPlaceholder = this.editor.config.get( 'placeholder' );\n\n\t\t\tif ( configPlaceholder ) {\n\t\t\t\tplaceholder = typeof configPlaceholder === 'string' ? configPlaceholder : configPlaceholder[ editable.name! ];\n\t\t\t}\n\t\t}\n\n\t\tconst editingView = this.editor.editing.view;\n\t\tconst editingRoot = editingView.document.getRoot( editable.name! )!;\n\n\t\tif ( placeholder ) {\n\t\t\teditingRoot.placeholder = placeholder;\n\t\t}\n\n\t\tenablePlaceholder( {\n\t\t\tview: editingView,\n\t\t\telement: editingRoot,\n\t\t\tisDirectHost: false,\n\t\t\tkeepOnFocus: true\n\t\t} );\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 editor-multi-root/multirooteditoruiview\n */\n\nimport { EditorUIView, InlineEditableUIView, MenuBarView, ToolbarView } from 'ckeditor5/src/ui.js';\nimport type { Locale } from 'ckeditor5/src/utils.js';\nimport type { EditingView } from 'ckeditor5/src/engine.js';\n\n/**\n * The multi-root editor UI view. It is a virtual view providing an inline\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#editable} and a\n * {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar}, but without any\n * specific arrangement of the components in the DOM.\n *\n * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}\n * to learn more about this view.\n */\nexport default class MultiRootEditorUIView extends EditorUIView {\n\t/**\n\t * The main toolbar of the multi-root editor UI.\n\t */\n\tpublic readonly toolbar: ToolbarView;\n\n\t/**\n\t * Editable elements used by the multi-root editor UI.\n\t */\n\tpublic readonly editables: Record<string, InlineEditableUIView>;\n\n\tpublic readonly editable: InlineEditableUIView;\n\n\t/**\n\t * Menu bar view instance.\n\t */\n\tpublic override menuBarView: MenuBarView;\n\n\t/**\n\t * The editing view instance this view is related to.\n\t */\n\tprivate readonly _editingView: EditingView;\n\n\t/**\n\t * Creates an instance of the multi-root editor UI view.\n\t *\n\t * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n\t * @param editingView The editing view instance this view is related to.\n\t * @param editableNames Names for all editable views. For each name, one\n\t * {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`} instance will be initialized.\n\t * @param options Configuration options for the view instance.\n\t * @param options.editableElements The editable elements to be used, assigned to their names. If not specified, they will be\n\t * automatically created by {@link module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView `InlineEditableUIView`}\n\t * instances.\n\t * @param options.shouldToolbarGroupWhenFull When set to `true` enables automatic items grouping\n\t * in the main {@link module:editor-multi-root/multirooteditoruiview~MultiRootEditorUIView#toolbar toolbar}.\n\t * See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.\n\t * @param options.label When set, this value will be used as an accessible `aria-label` of the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView editable view} elements.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableNames: Array<string>,\n\t\toptions: {\n\t\t\teditableElements?: Record<string, HTMLElement>;\n\t\t\tshouldToolbarGroupWhenFull?: boolean;\n\t\t\tlabel?: string | Record<string, string>;\n\t\t} = {}\n\t) {\n\t\tsuper( locale );\n\n\t\tthis._editingView = editingView;\n\n\t\tthis.toolbar = new ToolbarView( locale, {\n\t\t\tshouldGroupWhenFull: options.shouldToolbarGroupWhenFull\n\t\t} );\n\n\t\tthis.menuBarView = new MenuBarView( locale );\n\n\t\tthis.editables = {};\n\n\t\t// Create `InlineEditableUIView` instance for each editable.\n\t\tfor ( const editableName of editableNames ) {\n\t\t\tconst editableElement = options.editableElements ? options.editableElements[ editableName ] : undefined;\n\t\t\tlet { label } = options;\n\n\t\t\tif ( typeof label === 'object' ) {\n\t\t\t\tlabel = label[ editableName ];\n\t\t\t}\n\n\t\t\tthis.createEditable( editableName, editableElement, label );\n\t\t}\n\n\t\tthis.editable = Object.values( this.editables )[ 0 ];\n\n\t\t// This toolbar may be placed anywhere in the page so things like font size need to be reset in it.\n\t\t// Because of the above, make sure the toolbar supports rounded corners.\n\t\t// Also, make sure the toolbar has the proper dir attribute because its ancestor may not have one\n\t\t// and some toolbar item styles depend on this attribute.\n\t\tthis.toolbar.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-reset_all',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tdir: locale.uiLanguageDirection\n\t\t\t}\n\t\t} );\n\n\t\tthis.menuBarView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-reset_all',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tdir: locale.uiLanguageDirection\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Creates an editable instance with given name and registers it in the editor UI view.\n\t *\n\t * If `editableElement` is provided, the editable instance will be created on top of it. Otherwise, the editor will create a new\n\t * DOM element and use it instead.\n\t *\n\t * @param editableName The name for the editable.\n\t * @param editableElement DOM element for which the editable should be created.\n\t * @param label The accessible editable label used by assistive technologies.\n\t * @returns The created editable instance.\n\t */\n\tpublic createEditable( editableName: string, editableElement?: HTMLElement, label?: string ): InlineEditableUIView {\n\t\tconst editable = new InlineEditableUIView( this.locale, this._editingView, editableElement, {\n\t\t\tlabel\n\t\t} );\n\n\t\tthis.editables[ editableName ] = editable;\n\t\teditable.name = editableName;\n\n\t\tif ( this.isRendered ) {\n\t\t\tthis.registerChild( editable );\n\t\t}\n\n\t\treturn editable;\n\t}\n\n\t/**\n\t * Destroys and removes the editable from the editor UI view.\n\t *\n\t * @param editableName The name of the editable that should be removed.\n\t */\n\tpublic removeEditable( editableName: string ): void {\n\t\tconst editable = this.editables[ editableName ];\n\n\t\tif ( this.isRendered ) {\n\t\t\tthis.deregisterChild( editable );\n\t\t}\n\n\t\tdelete this.editables[ editableName ];\n\n\t\teditable.destroy();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.registerChild( Object.values( this.editables ) );\n\t\tthis.registerChild( this.toolbar );\n\t\tthis.registerChild( this.menuBarView );\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 editor-multi-root/multirooteditor\n */\n\nimport {\n\tEditor,\n\tsecureSourceElement,\n\ttype EditorConfig,\n\ttype EditorReadyEvent\n} from 'ckeditor5/src/core.js';\n\nimport {\n\tCKEditorError,\n\tgetDataFromElement,\n\tsetDataInElement,\n\tlogWarning,\n\ttype CollectionAddEvent,\n\ttype DecoratedMethodEvent\n} from 'ckeditor5/src/utils.js';\n\nimport MultiRootEditorUI from './multirooteditorui.js';\nimport MultiRootEditorUIView from './multirooteditoruiview.js';\n\nimport { isElement as _isElement } from 'lodash-es';\nimport {\n\ttype RootElement,\n\ttype ViewRootEditableElement,\n\ttype Writer,\n\ttype ModelCanEditAtEvent\n} from 'ckeditor5/src/engine.js';\n\n/**\n * The multi-root editor implementation.\n *\n * The multi-root editor provides multiple inline editable elements and a toolbar. All editable areas are controlled by one editor\n * instance, which means that they share common configuration, document ID, or undo stack.\n *\n * This type of editor is dedicated to integrations which require a customized UI with an open structure, featuring multiple editable areas,\n * allowing developers to have a control over the exact location of these editable areas.\n *\n * In order to create a multi-root editor instance, use the static\n * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method.\n *\n * Note that you will need to attach the editor toolbar to your web page manually, in a desired place, after the editor is initialized.\n */\nexport default class MultiRootEditor extends Editor {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get editorName(): 'MultiRootEditor' {\n\t\treturn 'MultiRootEditor';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic readonly ui: MultiRootEditorUI;\n\n\t/**\n\t * The elements on which the editor has been initialized.\n\t */\n\tpublic readonly sourceElements: Record<string, HTMLElement>;\n\n\t/**\n\t * Holds attributes keys that were passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `rootsAttributes`}\n\t * config property and should be returned by {@link #getRootsAttributes}.\n\t */\n\tprivate readonly _registeredRootsAttributesKeys = new Set<string>();\n\n\t/**\n\t * A set of lock IDs for enabling or disabling particular root.\n\t */\n\tprivate readonly _readOnlyRootLocks = new Map<string, Set<symbol | string>>();\n\n\t/**\n\t * Creates an instance of the multi-root editor.\n\t *\n\t * **Note:** Do not use the constructor to create editor instances. Use the static\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} method instead.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t * For more information see {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`}.\n\t * @param config The editor configuration.\n\t */\n\tprotected constructor( sourceElementsOrData: Record<string, HTMLElement> | Record<string, string>, config: EditorConfig = {} ) {\n\t\tconst rootNames = Object.keys( sourceElementsOrData );\n\t\tconst sourceIsData = rootNames.length === 0 || typeof sourceElementsOrData[ rootNames[ 0 ] ] === 'string';\n\n\t\tif ( sourceIsData && config.initialData !== undefined && Object.keys( config.initialData ).length > 0 ) {\n\t\t\t// Documented in core/editor/editorconfig.jsdoc.\n\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\tthrow new CKEditorError( 'editor-create-initial-data', null );\n\t\t}\n\n\t\tsuper( config );\n\n\t\tif ( !sourceIsData ) {\n\t\t\tthis.sourceElements = sourceElementsOrData as Record<string, HTMLElement>;\n\t\t} else {\n\t\t\tthis.sourceElements = {};\n\t\t}\n\n\t\tif ( this.config.get( 'initialData' ) === undefined ) {\n\t\t\t// Create initial data object containing data from all roots.\n\t\t\tconst initialData: Record<string, string> = {};\n\n\t\t\tfor ( const rootName of rootNames ) {\n\t\t\t\tinitialData[ rootName ] = getInitialData( sourceElementsOrData[ rootName ] );\n\t\t\t}\n\n\t\t\tthis.config.set( 'initialData', initialData );\n\t\t}\n\n\t\tif ( !sourceIsData ) {\n\t\t\tfor ( const rootName of rootNames ) {\n\t\t\t\tsecureSourceElement( this, sourceElementsOrData[ rootName ] as HTMLElement );\n\t\t\t}\n\t\t}\n\n\t\tthis.editing.view.document.roots.on<CollectionAddEvent<ViewRootEditableElement>>( 'add', ( evt, viewRoot ) => {\n\t\t\t// Here we change the standard binding of readOnly flag by adding\n\t\t\t// additional constraint that multi-root has (enabling / disabling particular root).\n\t\t\tviewRoot.unbind( 'isReadOnly' );\n\t\t\tviewRoot.bind( 'isReadOnly' ).to( this.editing.view.document, 'isReadOnly', isReadOnly => {\n\t\t\t\treturn isReadOnly || this._readOnlyRootLocks.has( viewRoot.rootName );\n\t\t\t} );\n\n\t\t\t// Hacky solution to nested editables.\n\t\t\t// Nested editables should be managed each separately and do not base on view document or view root.\n\t\t\tviewRoot.on( 'change:isReadOnly', ( evt, prop, value ) => {\n\t\t\t\tconst viewRange = this.editing.view.createRangeIn( viewRoot );\n\n\t\t\t\tfor ( const viewItem of viewRange.getItems() ) {\n\t\t\t\t\tif ( viewItem.is( 'editableElement' ) ) {\n\t\t\t\t\t\tviewItem.unbind( 'isReadOnly' );\n\t\t\t\t\t\tviewItem.isReadOnly = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\tfor ( const rootName of rootNames ) {\n\t\t\t// Create root and `UIView` element for each editable container.\n\t\t\tthis.model.document.createRoot( '$root', rootName );\n\t\t}\n\n\t\tif ( this.config.get( 'lazyRoots' ) ) {\n\t\t\tfor ( const rootName of this.config.get( 'lazyRoots' )! ) {\n\t\t\t\tconst root = this.model.document.createRoot( '$root', rootName );\n\n\t\t\t\troot._isLoaded = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( this.config.get( 'rootsAttributes' ) ) {\n\t\t\tconst rootsAttributes = this.config.get( 'rootsAttributes' )!;\n\n\t\t\tfor ( const [ rootName, attributes ] of Object.entries( rootsAttributes ) ) {\n\t\t\t\tif ( !this.model.document.getRoot( rootName ) ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Trying to set attributes on a non-existing root.\n\t\t\t\t\t *\n\t\t\t\t\t * Roots specified in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes} do not match initial\n\t\t\t\t\t * editor roots.\n\t\t\t\t\t *\n\t\t\t\t\t * @error multi-root-editor-root-attributes-no-root\n\t\t\t\t\t */\n\t\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-attributes-no-root', null );\n\t\t\t\t}\n\n\t\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\t\tthis.registerRootAttribute( key );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.data.on( 'init', () => {\n\t\t\t\tthis.model.enqueueChange( { isUndoable: false }, writer => {\n\t\t\t\t\tfor ( const [ name, attributes ] of Object.entries( rootsAttributes ) ) {\n\t\t\t\t\t\tconst root = this.model.document.getRoot( name )!;\n\n\t\t\t\t\t\tfor ( const [ key, value ] of Object.entries( attributes ) ) {\n\t\t\t\t\t\t\tif ( value !== null ) {\n\t\t\t\t\t\t\t\twriter.setAttribute( key, value, root! );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\n\t\tconst options = {\n\t\t\tshouldToolbarGroupWhenFull: !this.config.get( 'toolbar.shouldNotGroupWhenFull' ),\n\t\t\teditableElements: sourceIsData ? undefined : sourceElementsOrData as Record<string, HTMLElement>,\n\t\t\tlabel: this.config.get( 'label' )\n\t\t};\n\n\t\tconst view = new MultiRootEditorUIView( this.locale, this.editing.view, rootNames, options );\n\n\t\tthis.ui = new MultiRootEditorUI( this, view );\n\n\t\tthis.model.document.on( 'change:data', () => {\n\t\t\tconst changedRoots = this.model.document.differ.getChangedRoots();\n\n\t\t\t// Fire detaches first. If there are multiple roots removed and added in one batch, it should be easier to handle if\n\t\t\t// changes aren't mixed. Detaching will usually lead to just removing DOM elements. Detaching first will lead to a clean DOM\n\t\t\t// when new editables are added in `addRoot` event.\n\t\t\tfor ( const changes of changedRoots ) {\n\t\t\t\tconst root = this.model.document.getRoot( changes.name )!;\n\n\t\t\t\tif ( changes.state == 'detached' ) {\n\t\t\t\t\tthis.fire<DetachRootEvent>( 'detachRoot', root );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( const changes of changedRoots ) {\n\t\t\t\tconst root = this.model.document.getRoot( changes.name )!;\n\n\t\t\t\tif ( changes.state == 'attached' ) {\n\t\t\t\t\tthis.fire<AddRootEvent>( 'addRoot', root );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Overwrite `Model#canEditAt()` decorated method.\n\t\t// Check if the provided selection is inside a read-only root. If so, return `false`.\n\t\tthis.listenTo<ModelCanEditAtEvent>( this.model, 'canEditAt', ( evt, [ selection ] ) => {\n\t\t\t// Skip empty selections.\n\t\t\tif ( !selection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet selectionInReadOnlyRoot = false;\n\n\t\t\tfor ( const range of selection.getRanges() ) {\n\t\t\t\tconst root = range.root as RootElement;\n\n\t\t\t\tif ( this._readOnlyRootLocks.has( root.rootName ) ) {\n\t\t\t\t\tselectionInReadOnlyRoot = true;\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If selection is in read-only root, return `false` and prevent further processing.\n\t\t\t// Otherwise, allow for other callbacks (or default callback) to evaluate.\n\t\t\tif ( selectionInReadOnlyRoot ) {\n\t\t\t\tevt.return = false;\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\n\t\tthis.decorate( 'loadRoot' );\n\t\tthis.on<LoadRootEvent>( 'loadRoot', ( evt, [ rootName ] ) => {\n\t\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\t\tif ( !root ) {\n\t\t\t\t/**\n\t\t\t\t * The root to load does not exist.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-no-root\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-load-root-no-root', this, { rootName } );\n\t\t\t}\n\n\t\t\tif ( root._isLoaded ) {\n\t\t\t\t/**\n\t\t\t\t * The root to load was already loaded before. The `loadRoot()` call has no effect.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-load-root-already-loaded\n\t\t\t\t */\n\t\t\t\tlogWarning( 'multi-root-editor-load-root-already-loaded' );\n\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'highest' } );\n\t}\n\n\t/**\n\t * Destroys the editor instance, releasing all resources used by it.\n\t *\n\t * Updates the original editor element with the data if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}\n\t * configuration option is set to `true`.\n\t *\n\t * **Note**: The multi-root editor does not remove the toolbar and editable when destroyed. You can\n\t * do that yourself in the destruction chain, if you need to:\n\t *\n\t * ```ts\n\t * editor.destroy().then( () => {\n\t * \t// Remove the toolbar from DOM.\n\t * \teditor.ui.view.toolbar.element.remove();\n\t *\n\t * \t// Remove editable elements from DOM.\n\t * \tfor ( const editable of Object.values( editor.ui.view.editables ) ) {\n\t * \t editable.element.remove();\n\t * \t}\n\t *\n\t * \tconsole.log( 'Editor was destroyed' );\n\t * } );\n\t * ```\n\t */\n\tpublic override destroy(): Promise<unknown> {\n\t\tconst shouldUpdateSourceElement = this.config.get( 'updateSourceElementOnDestroy' );\n\t\t// Cache the data and editable DOM elements, then destroy.\n\t\t// It's safe to assume that the model->view conversion will not work after `super.destroy()`,\n\t\t// same as `ui.getEditableElement()` method will not return editables.\n\t\tconst data: Record<string, string> = {};\n\n\t\tfor ( const rootName of Object.keys( this.sourceElements ) ) {\n\t\t\tdata[ rootName ] = shouldUpdateSourceElement ? this.getData( { rootName } ) : '';\n\t\t}\n\n\t\tthis.ui.destroy();\n\n\t\treturn super.destroy()\n\t\t\t.then( () => {\n\t\t\t\tfor ( const rootName of Object.keys( this.sourceElements ) ) {\n\t\t\t\t\tsetDataInElement( this.sourceElements[ rootName ], data[ rootName ] );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t/**\n\t * Adds a new root to the editor.\n\t *\n\t * ```ts\n\t * editor.addRoot( 'myRoot', { data: '<p>Initial root data.</p>' } );\n\t * ```\n\t *\n\t * After a root is added, you will be able to modify and retrieve its data.\n\t *\n\t * All root names must be unique. An error will be thrown if you will try to create a root with the name same as\n\t * an already existing, attached root. However, you can call this method for a detached root. See also {@link #detachRoot}.\n\t *\n\t * Whenever a root is added, the editor instance will fire {@link #event:addRoot `addRoot` event}. The event is also called when\n\t * the root is added indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only adds a root to the editor model. It **does not** create a DOM editable element for the new root.\n\t * Until such element is created (and attached to the root), the root is \"virtual\": it is not displayed anywhere and its data can\n\t * be changed only using the editor API.\n\t *\n\t * To create a DOM editable element for the root, listen to {@link #event:addRoot `addRoot` event} and call {@link #createEditable}.\n\t * Then, insert the DOM element in a desired place, that will depend on the integration with your application and your requirements.\n\t *\n\t * ```ts\n\t * editor.on( 'addRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.createEditable( root );\n\t *\n\t * \t// You may want to create a more complex DOM structure here.\n\t * \t//\n\t * \t// Alternatively, you may want to create a DOM structure before\n\t * \t// calling `editor.addRoot()` and only append `editableElement` at\n\t * \t// a proper place.\n\t *\n\t * \tdocument.querySelector( '#editors' ).appendChild( editableElement );\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.addRoot( 'myRoot' ); // Will create a root, a DOM editable element and append it to `#editors` container element.\n\t * ```\n\t *\n\t * You can set root attributes on the new root while you add it:\n\t *\n\t * ```ts\n\t * // Add a collapsed root at fourth position from top.\n\t * // Keep in mind that these are just examples of attributes. You need to provide your own features that will handle the attributes.\n\t * editor.addRoot( 'myRoot', { attributes: { isCollapsed: true, index: 4 } } );\n\t * ```\n\t *\n\t * Note that attributes added together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for detaching the root using the undo feature.\n\t *\n\t * Additionally, you can group adding multiple roots in one undo step. This can be useful if you add multiple roots that are\n\t * combined into one, bigger UI element, and want them all to be undone together.\n\t *\n\t * ```ts\n\t * let rowId = 0;\n\t *\n\t * editor.model.change( () => {\n\t * \teditor.addRoot( 'left-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'center-row-' + rowId, { isUndoable: true } );\n\t * \teditor.addRoot( 'right-row-' + rowId, { isUndoable: true } );\n\t *\n\t * \trowId++;\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to add.\n\t * @param options Additional options for the added root.\n\t */\n\tpublic addRoot(\n\t\trootName: string,\n\t\t{ data = '', attributes = {}, elementName = '$root', isUndoable = false }: AddRootOptions = {}\n\t): void {\n\t\tconst _addRoot = ( writer: Writer ) => {\n\t\t\tconst root = writer.addRoot( rootName, elementName );\n\n\t\t\tif ( data ) {\n\t\t\t\twriter.insert( this.data.parse( data, root ), root, 0 );\n\t\t\t}\n\n\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\tthis.registerRootAttribute( key );\n\t\t\t\twriter.setAttribute( key, attributes[ key ], root );\n\t\t\t}\n\t\t};\n\n\t\tif ( isUndoable ) {\n\t\t\tthis.model.change( _addRoot );\n\t\t} else {\n\t\t\tthis.model.enqueueChange( { isUndoable: false }, _addRoot );\n\t\t}\n\t}\n\n\t/**\n\t * Detaches a root from the editor.\n\t *\n\t * ```ts\n\t * editor.detachRoot( 'myRoot' );\n\t * ```\n\t *\n\t * A detached root is not entirely removed from the editor model, however it can be considered removed.\n\t *\n\t * After a root is detached all its children are removed, all markers inside it are removed, and whenever something is inserted to it,\n\t * it is automatically removed as well. Finally, a detached root is not returned by\n\t * {@link module:engine/model/document~Document#getRootNames} by default.\n\t *\n\t * It is possible to re-add a previously detached root calling {@link #addRoot}.\n\t *\n\t * Whenever a root is detached, the editor instance will fire {@link #event:detachRoot `detachRoot` event}. The event is also\n\t * called when the root is detached indirectly, e.g. by the undo feature or on a remote client during real-time collaboration.\n\t *\n\t * Note, that this method only detached a root in the editor model. It **does not** destroy the DOM editable element linked with\n\t * the root and it **does not** remove the DOM element from the DOM structure of your application.\n\t *\n\t * To properly remove a DOM editable element after a root was detached, listen to {@link #event:detachRoot `detachRoot` event}\n\t * and call {@link #detachEditable}. Then, remove the DOM element from your application.\n\t *\n\t * ```ts\n\t * editor.on( 'detachRoot', ( evt, root ) => {\n\t * \tconst editableElement = editor.detachEditable( root );\n\t *\n\t * \t// You may want to do an additional DOM clean-up here.\n\t *\n\t * \teditableElement.remove();\n\t * } );\n\t *\n\t * // ...\n\t *\n\t * editor.detachRoot( 'myRoot' ); // Will detach the root, and remove the DOM editable element.\n\t * ```\n\t *\n\t * By setting `isUndoable` flag to `true`, you can allow for re-adding the root using the undo feature.\n\t *\n\t * Additionally, you can group detaching multiple roots in one undo step. This can be useful if the roots are combined into one,\n\t * bigger UI element, and you want them all to be re-added together.\n\t *\n\t * ```ts\n\t * editor.model.change( () => {\n\t * \teditor.detachRoot( 'left-row-3', true );\n\t * \teditor.detachRoot( 'center-row-3', true );\n\t * \teditor.detachRoot( 'right-row-3', true );\n\t * } );\n\t * ```\n\t *\n\t * @param rootName Name of the root to detach.\n\t * @param isUndoable Whether detaching the root can be undone (using the undo feature) or not.\n\t */\n\tpublic detachRoot( rootName: string, isUndoable = false ): void {\n\t\tif ( isUndoable ) {\n\t\t\tthis.model.change( writer => writer.detachRoot( rootName ) );\n\t\t} else {\n\t\t\tthis.model.enqueueChange( { isUndoable: false }, writer => writer.detachRoot( rootName ) );\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a new DOM editable element for the given root element.\n\t *\n\t * The new DOM editable is attached to the model root and can be used to modify the root content.\n\t *\n\t * @param root Root for which the editable element should be created.\n\t * @param placeholder Placeholder for the editable element. If not set, placeholder value from the\n\t * {@link module:core/editor/editorconfig~EditorConfig#placeholder editor configuration} will be used (if it was provided).\n\t * @param label The accessible label text describing the editable to the assistive technologies.\n\t * @returns The created DOM element. Append it in a desired place in your application.\n\t */\n\tpublic createEditable( root: RootElement, placeholder?: string, label?: string ): HTMLElement {\n\t\tconst editable = this.ui.view.createEditable( root.rootName, undefined, label );\n\n\t\tthis.ui.addEditable( editable, placeholder );\n\n\t\tthis.editing.view.forceRender();\n\n\t\treturn editable.element!;\n\t}\n\n\t/**\n\t * Detaches the DOM editable element that was attached to the given root.\n\t *\n\t * @param root Root for which the editable element should be detached.\n\t * @returns The DOM element that was detached. You may want to remove it from your application DOM structure.\n\t */\n\tpublic detachEditable( root: RootElement ): HTMLElement {\n\t\tconst rootName = root.rootName;\n\t\tconst editable = this.ui.view.editables[ rootName ];\n\n\t\tthis.ui.removeEditable( editable );\n\t\tthis.ui.view.removeEditable( rootName );\n\n\t\treturn editable.element!;\n\t}\n\n\t/**\n\t * Loads a root that has previously been declared in {@link module:core/editor/editorconfig~EditorConfig#lazyRoots `lazyRoots`}\n\t * configuration option.\n\t *\n\t * Only roots specified in the editor config can be loaded. A root cannot be loaded multiple times. A root cannot be unloaded and\n\t * loading a root cannot be reverted using the undo feature.\n\t *\n\t * When a root becomes loaded, it will be treated by the editor as though it was just added. This, among others, means that all\n\t * related events and mechanisms will be fired, including {@link ~MultiRootEditor#event:addRoot `addRoot` event},\n\t * {@link module:engine/model/document~Document#event:change `model.Document` `change` event}, model post-fixers and conversion.\n\t *\n\t * Until the root becomes loaded, all above mechanisms are suppressed.\n\t *\n\t * This method is {@link module:utils/observablemixin~Observable#decorate decorated}.\n\t *\n\t * Note that attributes loaded together with a root are automatically registered.\n\t *\n\t * See also {@link ~MultiRootEditor#registerRootAttribute `MultiRootEditor#registerRootAttribute()`} and\n\t * {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes` configuration option}.\n\t *\n\t * When this method is used in real-time collaboration environment, its effects become asynchronous as the editor will first synchronize\n\t * with the remote editing session, before the root is added to the editor.\n\t *\n\t * If the root has been already loaded by any other client, the additional data passed in `loadRoot()` parameters will be ignored.\n\t *\n\t * @param rootName Name of the root to load.\n\t * @param options Additional options for the loaded root.\n\t * @fires loadRoot\n\t */\n\tpublic loadRoot(\n\t\trootName: string,\n\t\t{ data = '', attributes = {} as Record<string, unknown> }: LoadRootOptions = {}\n\t): void {\n\t\t// `root` will be defined as it is guaranteed by a check in a higher priority callback.\n\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\tthis.model.enqueueChange( { isUndoable: false }, writer => {\n\t\t\tif ( data ) {\n\t\t\t\twriter.insert( this.data.parse( data, root ), root, 0 );\n\t\t\t}\n\n\t\t\tfor ( const key of Object.keys( attributes ) ) {\n\t\t\t\tthis.registerRootAttribute( key );\n\n\t\t\t\twriter.setAttribute( key, attributes[ key ], root );\n\t\t\t}\n\n\t\t\troot._isLoaded = true;\n\n\t\t\tthis.model.document.differ._bufferRootLoad( root );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the document data for all attached roots.\n\t *\n\t * @param options Additional configuration for the retrieved data.\n\t * Editor features may introduce more configuration options that can be set through this parameter.\n\t * @param options.trim Whether returned data should be trimmed. This option is set to `'empty'` by default,\n\t * which means that whenever editor content is considered empty, an empty string is returned. To turn off trimming\n\t * use `'none'`. In such cases exact content will be returned (for example `'<p>&nbsp;</p>'` for an empty editor).\n\t * @returns The full document data.\n\t */\n\tpublic getFullData( options?: Record<string, unknown> ): Record<string, string> {\n\t\tconst data: Record<string, string> = {};\n\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\tdata[ rootName ] = this.data.get( { ...options, rootName } );\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns attributes for all attached roots.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t *\n\t * @returns Object with roots attributes. Keys are roots names, while values are attributes set on given root.\n\t */\n\tpublic getRootsAttributes(): Record<string, RootAttributes> {\n\t\tconst rootsAttributes: Record<string, RootAttributes> = {};\n\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\trootsAttributes[ rootName ] = this.getRootAttributes( rootName );\n\t\t}\n\n\t\treturn rootsAttributes;\n\t}\n\n\t/**\n\t * Returns attributes for the specified root.\n\t *\n\t * Note: all and only {@link ~MultiRootEditor#registerRootAttribute registered} roots attributes will be returned.\n\t * If a registered root attribute is not set for a given root, `null` will be returned.\n\t */\n\tpublic getRootAttributes( rootName: string ): RootAttributes {\n\t\tconst rootAttributes: RootAttributes = {};\n\t\tconst root = this.model.document.getRoot( rootName )!;\n\n\t\tfor ( const key of this._registeredRootsAttributesKeys ) {\n\t\t\trootAttributes[ key ] = root.hasAttribute( key ) ? root.getAttribute( key ) : null;\n\t\t}\n\n\t\treturn rootAttributes;\n\t}\n\n\t/**\n\t * Registers given string as a root attribute key. Registered root attributes are added to\n\t * {@link module:engine/model/schema~Schema schema}, and also returned by\n\t * {@link ~MultiRootEditor#getRootAttributes `getRootAttributes()`} and\n\t * {@link ~MultiRootEditor#getRootsAttributes `getRootsAttributes()`}.\n\t *\n\t * Note: attributes passed in {@link module:core/editor/editorconfig~EditorConfig#rootsAttributes `config.rootsAttributes`} are\n\t * automatically registered as the editor is initialized. However, registering the same attribute twice does not have any negative\n\t * impact, so it is recommended to use this method in any feature that uses roots attributes.\n\t */\n\tpublic registerRootAttribute( key: string ): void {\n\t\tif ( this._registeredRootsAttributesKeys.has( key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._registeredRootsAttributesKeys.add( key );\n\t\tthis.editing.model.schema.extend( '$root', { allowAttributes: key } );\n\t}\n\n\t/**\n\t * Switches given editor root to the read-only mode.\n\t *\n\t * In contrary to {@link module:core/editor/editor~Editor#enableReadOnlyMode `enableReadOnlyMode()`}, which switches the whole editor\n\t * to the read-only mode, this method turns only a particular root to the read-only mode. This can be useful when you want to prevent\n\t * editing only a part of the editor content.\n\t *\n\t * When you switch a root to the read-only mode, you need provide a unique identifier (`lockId`) that will identify this request. You\n\t * will need to provide the same `lockId` when you will want to\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot re-enable} the root.\n\t *\n\t * ```ts\n\t * const model = editor.model;\n\t * const myRoot = model.document.getRoot( 'myRoot' );\n\t *\n\t * editor.disableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.disableRoot( 'myRoot', 'other-lock' );\n\t * editor.disableRoot( 'myRoot', 'other-lock' ); // Multiple locks with the same ID have no effect.\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'my-lock' );\n\t * model.canEditAt( myRoot ); // `false`\n\t *\n\t * editor.enableRoot( 'myRoot', 'other-lock' );\n\t * model.canEditAt( myRoot ); // `true`\n\t * ```\n\t *\n\t * See also {@link module:core/editor/editor~Editor#enableReadOnlyMode `Editor#enableReadOnlyMode()`} and\n\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor#enableRoot `MultiRootEditor#enableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch to read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */\n\tpublic disableRoot( rootName: string, lockId: string | symbol ): void {\n\t\tif ( rootName == '$graveyard' ) {\n\t\t\t/**\n\t\t\t * You cannot disable the `$graveyard` root.\n\t\t\t *\n\t\t\t * @error multi-root-editor-cannot-disable-graveyard-root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'multi-root-editor-cannot-disable-graveyard-root', this );\n\t\t}\n\n\t\tconst locksForGivenRoot = this._readOnlyRootLocks.get( rootName );\n\n\t\tif ( locksForGivenRoot ) {\n\t\t\tlocksForGivenRoot.add( lockId );\n\t\t} else {\n\t\t\tthis._readOnlyRootLocks.set( rootName, new Set( [ lockId ] ) );\n\n\t\t\tconst editableRootElement = this.editing.view.document.getRoot( rootName )!;\n\n\t\t\teditableRootElement.isReadOnly = true;\n\n\t\t\t// Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n\t\t\tArray.from( this.commands.commands() ).forEach( command => command.affectsData && command.refresh() );\n\t\t}\n\t}\n\n\t/**\n\t * Removes given read-only lock from the given root.\n\t *\n\t * See {@link module:editor-multi-root/multirooteditor~MultiRootEditor#disableRoot `disableRoot()`}.\n\t *\n\t * @param rootName Name of the root to switch back from the read-only mode.\n\t * @param lockId A unique ID for setting the editor to the read-only state.\n\t */\n\tpublic enableRoot( rootName: string, lockId: string | symbol ): void {\n\t\tconst locksForGivenRoot = this._readOnlyRootLocks.get( rootName );\n\n\t\tif ( !locksForGivenRoot || !locksForGivenRoot.has( lockId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( locksForGivenRoot.size === 1 ) {\n\t\t\tthis._readOnlyRootLocks.delete( rootName );\n\n\t\t\tconst editableRootElement = this.editing.view.document.getRoot( rootName )!;\n\n\t\t\teditableRootElement.isReadOnly = this.isReadOnly;\n\n\t\t\t// Since one of the roots has changed read-only state, we need to refresh all commands that affect data.\n\t\t\tArray.from( this.commands.commands() ).forEach( command => command.affectsData && command.refresh() );\n\t\t} else {\n\t\t\tlocksForGivenRoot.delete( lockId );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a new multi-root editor instance.\n\t *\n\t * **Note:** remember that `MultiRootEditor` does not append the toolbar element to your web page, so you have to do it manually\n\t * after the editor has been initialized.\n\t *\n\t * There are a few different ways to initialize the multi-root editor.\n\t *\n\t * # Using existing DOM elements:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * The elements' content will be used as the editor data and elements will become editable elements.\n\t *\n\t * # Creating a detached editor\n\t *\n\t * Alternatively, you can initialize the editor by passing the initial data directly as strings.\n\t * In this case, you will have to manually append both the toolbar element and the editable elements to your web page.\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \tsidePanelLeft: '<blockquote>Strong quotation from article.</blockquote>',\n\t * \tsidePanelRight: '<p>List of similar articles...</p>',\n\t * \toutro: '<p>Closing text.</p>'\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t *\n\t * \t// Append DOM editable elements created by the editor.\n\t * \tconst editables = editor.ui.view.editables;\n\t * \tconst container = document.querySelector( '#editable-container' );\n\t *\n\t * \tcontainer.appendChild( editables.intro.element );\n\t * \tcontainer.appendChild( editables.content.element );\n\t * \tcontainer.appendChild( editables.outro.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n\t * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n\t *\n\t * # Using an existing DOM element (and data provided in `config.initialData`)\n\t *\n\t * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n\t *\n\t * ```ts\n\t * MultiRootEditor.create( {\n\t * \tintro: document.querySelector( '#editor-intro' ),\n\t * \tcontent: document.querySelector( '#editor-content' ),\n\t * \tsidePanelLeft: document.querySelector( '#editor-side-left' ),\n\t * \tsidePanelRight: document.querySelector( '#editor-side-right' ),\n\t * \toutro: document.querySelector( '#editor-outro' )\n\t * }, {\n\t * \tinitialData: {\n\t * \t\tintro: '<p><strong>Exciting</strong> intro text to an article.</p>',\n\t * \t\tcontent: '<p>Lorem ipsum dolor sit amet.</p>',\n\t * \t\tsidePanelLeft '<blockquote>Strong quotation from article.</blockquote>':\n\t * \t\tsidePanelRight '<p>List of similar articles...</p>':\n\t * \t\toutro: '<p>Closing text.</p>'\n\t * \t}\n\t * } )\n\t * .then( editor => {\n\t * \tconsole.log( 'Editor was initialized', editor );\n\t *\n\t * \t// Append the toolbar inside a provided DOM element.\n\t * \tdocument.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );\n\t * } )\n\t * .catch( err => {\n\t * \tconsole.error( err.stack );\n\t * } );\n\t * ```\n\t *\n\t * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n\t * makes it difficult to set the content of the source element.\n\t *\n\t * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n\t *\n\t * # Configuring the editor\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n\t * customizing plugins, toolbar and more.\n\t *\n\t * @param sourceElementsOrData The DOM elements that will be the source for the created editor\n\t * or the editor's initial data. The editor will initialize multiple roots with names according to the keys in the passed object.\n\t *\n\t * If DOM elements are passed, their content will be automatically loaded to the editor upon initialization and the elements will be\n\t * used as the editor's editable areas. The editor data will be set back to the original element once the editor is destroyed if the\n\t * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy updateSourceElementOnDestroy} option\n\t * is set to `true`.\n\t *\n\t * If the initial data is passed, a detached editor will be created. For each entry in the passed object, one editor root and one\n\t * editable DOM element will be created. You will need to attach the editable elements into the DOM manually. The elements are available\n\t * through the {@link module:editor-multi-root/multirooteditorui~MultiRootEditorUI#getEditableElement `editor.ui.getEditableElement()`}\n\t * method.\n\t * @param config The editor configuration.\n\t * @returns A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n\t */\n\tpublic static override create(\n\t\tsourceElementsOrData: Record<string, HTMLElement> | Record<string, string>,\n\t\tconfig: EditorConfig = {}\n\t): Promise<MultiRootEditor> {\n\t\treturn new Promise( resolve => {\n\t\t\tfor ( const sourceItem of Object.values( sourceElementsOrData ) ) {\n\t\t\t\tif ( isElement( sourceItem ) && sourceItem.tagName === 'TEXTAREA' ) {\n\t\t\t\t\t// Documented in core/editor/editor.js\n\t\t\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\t\t\tthrow new CKEditorError( 'editor-wrong-element', null );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst editor = new this( sourceElementsOrData, config );\n\n\t\t\tresolve(\n\t\t\t\teditor.initPlugins()\n\t\t\t\t\t.then( () => editor.ui.init() )\n\t\t\t\t\t.then( () => {\n\t\t\t\t\t\t// This is checked directly before setting the initial data,\n\t\t\t\t\t\t// as plugins may change `EditorConfig#initialData` value.\n\t\t\t\t\t\teditor._verifyRootsWithInitialData();\n\n\t\t\t\t\t\treturn editor.data.init( editor.config.get( 'initialData' )! );\n\t\t\t\t\t} )\n\t\t\t\t\t.then( () => editor.fire<EditorReadyEvent>( 'ready' ) )\n\t\t\t\t\t.then( () => editor )\n\t\t\t);\n\t\t} );\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tprivate _verifyRootsWithInitialData(): void {\n\t\tconst initialData = this.config.get( 'initialData' ) as Record<string, string>;\n\n\t\t// Roots that are not in the initial data.\n\t\tfor ( const rootName of this.model.document.getRootNames() ) {\n\t\t\tif ( !( rootName in initialData ) ) {\n\t\t\t\t/**\n\t\t\t\t * Editor roots do not match the\n\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t *\n\t\t\t\t * This may happen for one of the two reasons:\n\t\t\t\t *\n\t\t\t\t * * Configuration error. The `sourceElementsOrData` parameter in\n\t\t\t\t * {@link module:editor-multi-root/multirooteditor~MultiRootEditor.create `MultiRootEditor.create()`} contains different\n\t\t\t\t * roots than {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData` configuration}.\n\t\t\t\t * * As the editor was initialized, the {@link module:core/editor/editorconfig~EditorConfig#initialData `initialData`}\n\t\t\t\t * configuration value or the state of the editor roots has been changed.\n\t\t\t\t *\n\t\t\t\t * @error multi-root-editor-root-initial-data-mismatch\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-initial-data-mismatch', null );\n\t\t\t}\n\t\t}\n\n\t\t// Roots that are not in the editor.\n\t\tfor ( const rootName of Object.keys( initialData ) ) {\n\t\t\tconst root = this.model.document.getRoot( rootName );\n\n\t\t\tif ( !root || !root.isAttached() ) {\n\t\t\t\t// eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n\t\t\t\tthrow new CKEditorError( 'multi-root-editor-root-initial-data-mismatch', null );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getInitialData( sourceElementOrData: HTMLElement | string ): string {\n\treturn isElement( sourceElementOrData ) ? getDataFromElement( sourceElementOrData ) : sourceElementOrData;\n}\n\nfunction isElement( value: any ): value is Element {\n\treturn _isElement( value );\n}\n\n/**\n * Fired whenever a root is {@link ~MultiRootEditor#addRoot added or re-added} to the editor model.\n *\n * Use this event to {@link ~MultiRootEditor#createEditable create a DOM editable} for the added root and append the DOM element\n * in a desired place in your application.\n *\n * The event is fired after all changes from a given batch are applied. The event is not fired, if the root was added and detached\n * in the same batch.\n *\n * @eventName ~MultiRootEditor#addRoot\n * @param root The root that was added.\n */\nexport type AddRootEvent = {\n\tname: 'addRoot';\n\targs: [ root: RootElement ];\n};\n\n/**\n * Fired whenever a root is {@link ~MultiRootEditor#detachRoot detached} from the editor model.\n *\n * Use this event to {@link ~MultiRootEditor#detachEditable destroy a DOM editable} for the detached root and remove the DOM element\n * from your application.\n *\n * The event is fired after all changes from a given batch are applied. The event is not fired, if the root was detached and re-added\n * in the same batch.\n *\n * @eventName ~MultiRootEditor#detachRoot\n * @param root The root that was detached.\n */\nexport type DetachRootEvent = {\n\tname: 'detachRoot';\n\targs: [ root: RootElement ];\n};\n\n/**\n * Event fired when {@link ~MultiRootEditor#loadRoot} method is called.\n *\n * The {@link ~MultiRootEditor#loadRoot default action of that method} is implemented as a\n * listener to this event, so it can be fully customized by the features.\n *\n * @eventName ~MultiRootEditor#loadRoot\n * @param args The arguments passed to the original method.\n */\nexport type LoadRootEvent = DecoratedMethodEvent<MultiRootEditor, 'loadRoot'>;\n\n/**\n * Additional options available when adding a root.\n */\nexport type AddRootOptions = {\n\n\t/**\n\t * Initial data for the root.\n\t */\n\tdata?: string;\n\n\t/**\n\t * Initial attributes for the root.\n\t */\n\tattributes?: RootAttributes;\n\n\t/**\n\t * Element name for the root element in the model. It can be used to set different schema rules for different roots.\n\t */\n\telementName?: string;\n\n\t/**\n\t * Whether creating the root can be undone (using the undo feature) or not.\n\t */\n\tisUndoable?: boolean;\n};\n\n/**\n * Additional options available when loading a root.\n */\nexport type LoadRootOptions = Omit<AddRootOptions, 'elementName' | 'isUndoable'>;\n\n/**\n * Attributes set on a model root element.\n */\nexport type RootAttributes = Record<string, unknown>;\n"]}