@ckeditor/ckeditor5-restricted-editing 47.1.0-alpha.2 → 47.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/restricted-editing.js +2 -2
- package/build/translations/af.js +1 -1
- package/build/translations/ar.js +1 -1
- package/build/translations/ast.js +1 -1
- package/build/translations/az.js +1 -1
- package/build/translations/be.js +1 -1
- package/build/translations/bg.js +1 -1
- package/build/translations/bn.js +1 -1
- package/build/translations/bs.js +1 -1
- package/build/translations/ca.js +1 -1
- package/build/translations/cs.js +1 -1
- package/build/translations/da.js +1 -1
- package/build/translations/de-ch.js +1 -1
- package/build/translations/de.js +1 -1
- package/build/translations/el.js +1 -1
- package/build/translations/en-au.js +1 -1
- package/build/translations/en-gb.js +1 -1
- package/build/translations/eo.js +1 -1
- package/build/translations/es-co.js +1 -1
- package/build/translations/es.js +1 -1
- package/build/translations/et.js +1 -1
- package/build/translations/eu.js +1 -1
- package/build/translations/fa.js +1 -1
- package/build/translations/fi.js +1 -1
- package/build/translations/fr.js +1 -1
- package/build/translations/gl.js +1 -1
- package/build/translations/gu.js +1 -1
- package/build/translations/he.js +1 -1
- package/build/translations/hi.js +1 -1
- package/build/translations/hr.js +1 -1
- package/build/translations/hu.js +1 -1
- package/build/translations/hy.js +1 -1
- package/build/translations/id.js +1 -1
- package/build/translations/it.js +1 -1
- package/build/translations/ja.js +1 -1
- package/build/translations/jv.js +1 -1
- package/build/translations/kk.js +1 -1
- package/build/translations/km.js +1 -1
- package/build/translations/kn.js +1 -1
- package/build/translations/ko.js +1 -1
- package/build/translations/ku.js +1 -1
- package/build/translations/lt.js +1 -1
- package/build/translations/lv.js +1 -1
- package/build/translations/ms.js +1 -1
- package/build/translations/nb.js +1 -1
- package/build/translations/ne.js +1 -1
- package/build/translations/nl.js +1 -1
- package/build/translations/no.js +1 -1
- package/build/translations/oc.js +1 -1
- package/build/translations/pl.js +1 -1
- package/build/translations/pt-br.js +1 -1
- package/build/translations/pt.js +1 -1
- package/build/translations/ro.js +1 -1
- package/build/translations/ru.js +1 -1
- package/build/translations/si.js +1 -1
- package/build/translations/sk.js +1 -1
- package/build/translations/sl.js +1 -1
- package/build/translations/sq.js +1 -1
- package/build/translations/sr-latn.js +1 -1
- package/build/translations/sr.js +1 -1
- package/build/translations/sv.js +1 -1
- package/build/translations/th.js +1 -1
- package/build/translations/ti.js +1 -1
- package/build/translations/tk.js +1 -1
- package/build/translations/tr.js +1 -1
- package/build/translations/tt.js +1 -1
- package/build/translations/ug.js +1 -1
- package/build/translations/uk.js +1 -1
- package/build/translations/ur.js +1 -1
- package/build/translations/uz.js +1 -1
- package/build/translations/vi.js +1 -1
- package/build/translations/zh-cn.js +1 -1
- package/build/translations/zh.js +1 -1
- package/ckeditor5-metadata.json +20 -2
- package/dist/index.js +564 -105
- package/dist/index.js.map +1 -1
- package/dist/translations/af.js +1 -1
- package/dist/translations/af.umd.js +1 -1
- package/dist/translations/ar.js +1 -1
- package/dist/translations/ar.umd.js +1 -1
- package/dist/translations/ast.js +1 -1
- package/dist/translations/ast.umd.js +1 -1
- package/dist/translations/az.js +1 -1
- package/dist/translations/az.umd.js +1 -1
- package/dist/translations/be.js +1 -1
- package/dist/translations/be.umd.js +1 -1
- package/dist/translations/bg.js +1 -1
- package/dist/translations/bg.umd.js +1 -1
- package/dist/translations/bn.js +1 -1
- package/dist/translations/bn.umd.js +1 -1
- package/dist/translations/bs.js +1 -1
- package/dist/translations/bs.umd.js +1 -1
- package/dist/translations/ca.js +1 -1
- package/dist/translations/ca.umd.js +1 -1
- package/dist/translations/cs.js +1 -1
- package/dist/translations/cs.umd.js +1 -1
- package/dist/translations/da.js +1 -1
- package/dist/translations/da.umd.js +1 -1
- package/dist/translations/de-ch.js +1 -1
- package/dist/translations/de-ch.umd.js +1 -1
- package/dist/translations/de.js +1 -1
- package/dist/translations/de.umd.js +1 -1
- package/dist/translations/el.js +1 -1
- package/dist/translations/el.umd.js +1 -1
- package/dist/translations/en-au.js +1 -1
- package/dist/translations/en-au.umd.js +1 -1
- package/dist/translations/en-gb.js +1 -1
- package/dist/translations/en-gb.umd.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/translations/en.umd.js +1 -1
- package/dist/translations/eo.js +1 -1
- package/dist/translations/eo.umd.js +1 -1
- package/dist/translations/es-co.js +1 -1
- package/dist/translations/es-co.umd.js +1 -1
- package/dist/translations/es.js +1 -1
- package/dist/translations/es.umd.js +1 -1
- package/dist/translations/et.js +1 -1
- package/dist/translations/et.umd.js +1 -1
- package/dist/translations/eu.js +1 -1
- package/dist/translations/eu.umd.js +1 -1
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fa.umd.js +1 -1
- package/dist/translations/fi.js +1 -1
- package/dist/translations/fi.umd.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/fr.umd.js +1 -1
- package/dist/translations/gl.js +1 -1
- package/dist/translations/gl.umd.js +1 -1
- package/dist/translations/gu.js +1 -1
- package/dist/translations/gu.umd.js +1 -1
- package/dist/translations/he.js +1 -1
- package/dist/translations/he.umd.js +1 -1
- package/dist/translations/hi.js +1 -1
- package/dist/translations/hi.umd.js +1 -1
- package/dist/translations/hr.js +1 -1
- package/dist/translations/hr.umd.js +1 -1
- package/dist/translations/hu.js +1 -1
- package/dist/translations/hu.umd.js +1 -1
- package/dist/translations/hy.js +1 -1
- package/dist/translations/hy.umd.js +1 -1
- package/dist/translations/id.js +1 -1
- package/dist/translations/id.umd.js +1 -1
- package/dist/translations/it.js +1 -1
- package/dist/translations/it.umd.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/translations/ja.umd.js +1 -1
- package/dist/translations/jv.js +1 -1
- package/dist/translations/jv.umd.js +1 -1
- package/dist/translations/kk.js +1 -1
- package/dist/translations/kk.umd.js +1 -1
- package/dist/translations/km.js +1 -1
- package/dist/translations/km.umd.js +1 -1
- package/dist/translations/kn.js +1 -1
- package/dist/translations/kn.umd.js +1 -1
- package/dist/translations/ko.js +1 -1
- package/dist/translations/ko.umd.js +1 -1
- package/dist/translations/ku.js +1 -1
- package/dist/translations/ku.umd.js +1 -1
- package/dist/translations/lt.js +1 -1
- package/dist/translations/lt.umd.js +1 -1
- package/dist/translations/lv.js +1 -1
- package/dist/translations/lv.umd.js +1 -1
- package/dist/translations/ms.js +1 -1
- package/dist/translations/ms.umd.js +1 -1
- package/dist/translations/nb.js +1 -1
- package/dist/translations/nb.umd.js +1 -1
- package/dist/translations/ne.js +1 -1
- package/dist/translations/ne.umd.js +1 -1
- package/dist/translations/nl.js +1 -1
- package/dist/translations/nl.umd.js +1 -1
- package/dist/translations/no.js +1 -1
- package/dist/translations/no.umd.js +1 -1
- package/dist/translations/oc.js +1 -1
- package/dist/translations/oc.umd.js +1 -1
- package/dist/translations/pl.js +1 -1
- package/dist/translations/pl.umd.js +1 -1
- package/dist/translations/pt-br.js +1 -1
- package/dist/translations/pt-br.umd.js +1 -1
- package/dist/translations/pt.js +1 -1
- package/dist/translations/pt.umd.js +1 -1
- package/dist/translations/ro.js +1 -1
- package/dist/translations/ro.umd.js +1 -1
- package/dist/translations/ru.js +1 -1
- package/dist/translations/ru.umd.js +1 -1
- package/dist/translations/si.js +1 -1
- package/dist/translations/si.umd.js +1 -1
- package/dist/translations/sk.js +1 -1
- package/dist/translations/sk.umd.js +1 -1
- package/dist/translations/sl.js +1 -1
- package/dist/translations/sl.umd.js +1 -1
- package/dist/translations/sq.js +1 -1
- package/dist/translations/sq.umd.js +1 -1
- package/dist/translations/sr-latn.js +1 -1
- package/dist/translations/sr-latn.umd.js +1 -1
- package/dist/translations/sr.js +1 -1
- package/dist/translations/sr.umd.js +1 -1
- package/dist/translations/sv.js +1 -1
- package/dist/translations/sv.umd.js +1 -1
- package/dist/translations/th.js +1 -1
- package/dist/translations/th.umd.js +1 -1
- package/dist/translations/ti.js +1 -1
- package/dist/translations/ti.umd.js +1 -1
- package/dist/translations/tk.js +1 -1
- package/dist/translations/tk.umd.js +1 -1
- package/dist/translations/tr.js +1 -1
- package/dist/translations/tr.umd.js +1 -1
- package/dist/translations/tt.js +1 -1
- package/dist/translations/tt.umd.js +1 -1
- package/dist/translations/ug.js +1 -1
- package/dist/translations/ug.umd.js +1 -1
- package/dist/translations/uk.js +1 -1
- package/dist/translations/uk.umd.js +1 -1
- package/dist/translations/ur.js +1 -1
- package/dist/translations/ur.umd.js +1 -1
- package/dist/translations/uz.js +1 -1
- package/dist/translations/uz.umd.js +1 -1
- package/dist/translations/vi.js +1 -1
- package/dist/translations/vi.umd.js +1 -1
- package/dist/translations/zh-cn.js +1 -1
- package/dist/translations/zh-cn.umd.js +1 -1
- package/dist/translations/zh.js +1 -1
- package/dist/translations/zh.umd.js +1 -1
- package/lang/contexts.json +4 -1
- package/lang/translations/af.po +16 -4
- package/lang/translations/ar.po +16 -4
- package/lang/translations/ast.po +16 -4
- package/lang/translations/az.po +16 -4
- package/lang/translations/be.po +16 -4
- package/lang/translations/bg.po +16 -4
- package/lang/translations/bn.po +16 -4
- package/lang/translations/bs.po +16 -4
- package/lang/translations/ca.po +16 -4
- package/lang/translations/cs.po +16 -4
- package/lang/translations/da.po +16 -4
- package/lang/translations/de-ch.po +16 -4
- package/lang/translations/de.po +16 -4
- package/lang/translations/el.po +16 -4
- package/lang/translations/en-au.po +16 -4
- package/lang/translations/en-gb.po +16 -4
- package/lang/translations/en.po +16 -4
- package/lang/translations/eo.po +16 -4
- package/lang/translations/es-co.po +16 -4
- package/lang/translations/es.po +16 -4
- package/lang/translations/et.po +16 -4
- package/lang/translations/eu.po +16 -4
- package/lang/translations/fa.po +16 -4
- package/lang/translations/fi.po +16 -4
- package/lang/translations/fr.po +16 -4
- package/lang/translations/gl.po +16 -4
- package/lang/translations/gu.po +16 -4
- package/lang/translations/he.po +16 -4
- package/lang/translations/hi.po +16 -4
- package/lang/translations/hr.po +16 -4
- package/lang/translations/hu.po +16 -4
- package/lang/translations/hy.po +16 -4
- package/lang/translations/id.po +16 -4
- package/lang/translations/it.po +16 -4
- package/lang/translations/ja.po +16 -4
- package/lang/translations/jv.po +16 -4
- package/lang/translations/kk.po +16 -4
- package/lang/translations/km.po +16 -4
- package/lang/translations/kn.po +16 -4
- package/lang/translations/ko.po +16 -4
- package/lang/translations/ku.po +16 -4
- package/lang/translations/lt.po +16 -4
- package/lang/translations/lv.po +16 -4
- package/lang/translations/ms.po +16 -4
- package/lang/translations/nb.po +16 -4
- package/lang/translations/ne.po +16 -4
- package/lang/translations/nl.po +16 -4
- package/lang/translations/no.po +16 -4
- package/lang/translations/oc.po +16 -4
- package/lang/translations/pl.po +16 -4
- package/lang/translations/pt-br.po +16 -4
- package/lang/translations/pt.po +16 -4
- package/lang/translations/ro.po +16 -4
- package/lang/translations/ru.po +16 -4
- package/lang/translations/si.po +16 -4
- package/lang/translations/sk.po +16 -4
- package/lang/translations/sl.po +16 -4
- package/lang/translations/sq.po +16 -4
- package/lang/translations/sr-latn.po +16 -4
- package/lang/translations/sr.po +16 -4
- package/lang/translations/sv.po +16 -4
- package/lang/translations/th.po +16 -4
- package/lang/translations/ti.po +16 -4
- package/lang/translations/tk.po +16 -4
- package/lang/translations/tr.po +16 -4
- package/lang/translations/tt.po +16 -4
- package/lang/translations/ug.po +16 -4
- package/lang/translations/uk.po +16 -4
- package/lang/translations/ur.po +16 -4
- package/lang/translations/uz.po +16 -4
- package/lang/translations/vi.po +16 -4
- package/lang/translations/zh-cn.po +16 -4
- package/lang/translations/zh.po +16 -4
- package/package.json +7 -7
- package/src/augmentation.d.ts +2 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/restrictededitingconfig.d.ts +2 -2
- package/src/restrictededitingexceptionblockcommand.d.ts +57 -0
- package/src/restrictededitingexceptionblockcommand.js +203 -0
- package/src/restrictededitingmode/converters.d.ts +1 -0
- package/src/restrictededitingmode/converters.js +33 -6
- package/src/restrictededitingmode/utils.d.ts +8 -2
- package/src/restrictededitingmode/utils.js +16 -3
- package/src/restrictededitingmodeediting.d.ts +4 -0
- package/src/restrictededitingmodeediting.js +83 -35
- package/src/restrictededitingmodenavigationcommand.js +2 -1
- package/src/standardeditingmodeediting.js +135 -3
- package/src/standardeditingmodeui.js +75 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js","../src/restrictededitingmodenavigationcommand.ts","../src/restrictededitingmode/utils.ts","../src/restrictededitingmode/converters.ts","../src/restrictededitingmodeediting.ts","../src/restrictededitingmodeui.ts","../src/restrictededitingmode.ts","../src/restrictededitingexceptioncommand.ts","../src/standardeditingmodeediting.ts","../src/standardeditingmodeui.ts","../src/standardeditingmode.ts"],"names":["RestrictedEditingModeNavigationCommand","Command","_direction","editor","direction","affectsData","refresh","isEnabled","_checkEnabled","execute","position","getNearestExceptionRange","model","change","writer","setSelection","selection","document","selectionPosition","getFirstPosition","markerRanges","marker","markers","getMarkersGroup","markerRange","getRange","isMarkerRangeTouching","isTouching","start","hasSameParentAs","end","containsPosition","isAfter","push","isBefore","length","sort","rangeA","rangeB","shift","getMarkerAtPosition","isPositionInRangeBoundaries","name","startsWith","range","isEqual","isSelectionInMarker","isCollapsed","focus","containsRange","getFirstRange","HIGHLIGHT_CLASS","setupExceptionHighlighting","view","editing","highlightedMarkers","Set","registerPostFixer","modelSelection","anchor","viewElement","mapper","markerNameToElements","addClass","add","conversion","for","dispatcher","on","removeHighlight","priority","item","values","removeClass","delete","resurrectCollapsedMarkerPostFixer","changeApplied","data","differ","getChangedMarkers","newRange","root","rootName","updateMarker","createRange","createPositionAt","oldRange","extendMarkerOnTypingPostFixer","schema","getChanges","type","checkChild","_tryExtendMarkerStart","_tryExtendMarkedEnd","upcastHighlightToMarker","config","evt","conversionApi","matcher","Matcher","matcherResult","match","viewItem","modelRange","convertedChildrenRange","convertChildren","modelCursor","consumable","consume","markerName","fakeMarkerStart","createElement","fakeMarkerEnd","insert","createPositionBefore","createPositionAfter","markerAtStart","getShiftedBy","getStart","getEnd","markerAtEnd","COMMAND_FORCE_DISABLE_ID","RestrictedEditingModeEditing","Plugin","_alwaysEnabled","_allowedInException","pluginName","licenseFeatureCode","isOfficialPlugin","isPremiumPlugin","define","allowedCommands","allowedAttributes","init","editingView","get","forEach","commandName","_setupConversion","_setupCommandsToggling","_setupRestrictions","commands","listenTo","shiftKey","command","preventDefault","stopPropagation","stop","context","keystrokes","set","getSelectAllHandler","roots","removeMarker","enableCommand","clearForceDisabled","doc","markerNumber","classes","is","isInline","viewWriter","createAttributeElement","class","id","viewRange","toViewRange","rangeAfterWrap","wrap","element","getItems","isSimilar","bindElementToMarker","markerToHighlight","markerToElement","markerData","createUIElement","createEmptyElement","ensureNewMarkerIsFlatPostFixer","viewDoc","clipboard","plugins","restrictDeleteContent","insertTextCommand","disallowInputExecForWrongRange","isRangeInsideSingleMarker","method","addAttributeCheck","onlyAllowAttributesFromList","addChildCheck","allowTextOnlyInClipboardHolder","_disableCommands","_checkCommands","bind","rangeCount","_enableCommands","has","isDeleteCommandOnMarkerBoundaries","forceDisabled","_","cancel","selectionRange","args","allowedToDelete","getIntersection","setTo","options","changedMarkers","isFlat","startIsHigherInTree","path","fixedStart","parent","fixedEnd","attributeName","includes","childDefinition","RestrictedEditingModeUI","t","ui","componentFactory","locale","dropdownView","createDropdown","listItems","Collection","_getButtonDefinitions","label","keystroke","_getButtonDefinition","addListToDropdown","role","buttonView","icon","IconContentLock","tooltip","isOn","_commandName","source","menuView","MenuBarMenuView","listView","MenuBarMenuListView","ariaLabel","panelView","children","listItemView","MenuBarMenuListItemView","_createMenuBarButton","delegate","to","items","MenuBarMenuListItemButtonView","definition","UIModel","withText","withKeystroke","RestrictedEditingMode","requires","RestrictedEditingExceptionCommand","value","getAttribute","checkAttributeInSelection","valueToSet","forceValue","undefined","ranges","getValidRanges","getRanges","setSelectionAttribute","isSameException","exceptionStart","getLastMatchingPosition","exceptionEnd","removeSelectionAttribute","removeAttribute","setAttribute","StandardEditingModeEditing","extend","allowAttributes","elementToAttribute","attributeToElement","modelAttributeValue","StandardEditingModeUI","button","_createButton","ButtonView","isToggleable","ButtonClass","IconContentUnlock","StandardEditingMode"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { Matcher } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { IconContentLock, IconContentUnlock } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, UIModel, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * The command that allows navigation across the exceptions in the edited document.\n */ class RestrictedEditingModeNavigationCommand extends Command {\n /**\n\t * The direction of the command.\n\t */ _direction;\n /**\n\t * Creates an instance of the command.\n\t *\n\t * @param editor The editor instance.\n\t * @param direction The direction that the command works.\n\t */ constructor(editor, direction){\n super(editor);\n // It does not affect data so should be enabled in read-only mode and in restricted editing mode.\n this.affectsData = false;\n this._direction = direction;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */ execute() {\n const position = getNearestExceptionRange(this.editor.model, this._direction);\n if (!position) {\n return;\n }\n this.editor.model.change((writer)=>{\n writer.setSelection(position);\n });\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */ _checkEnabled() {\n return !!getNearestExceptionRange(this.editor.model, this._direction);\n }\n}\n/**\n * Returns the range of the exception marker closest to the last position of the model selection.\n */ function getNearestExceptionRange(model, direction) {\n const selection = model.document.selection;\n const selectionPosition = selection.getFirstPosition();\n const markerRanges = [];\n // Get all exception marker positions that start after/before the selection position.\n for (const marker of model.markers.getMarkersGroup('restrictedEditingException')){\n const markerRange = marker.getRange();\n // Checking parent because there two positions <paragraph>foo^</paragraph><paragraph>^bar</paragraph>\n // are touching but they will represent different markers.\n const isMarkerRangeTouching = selectionPosition.isTouching(markerRange.start) && selectionPosition.hasSameParentAs(markerRange.start) || selectionPosition.isTouching(markerRange.end) && selectionPosition.hasSameParentAs(markerRange.end);\n // <paragraph>foo <marker≥b[]ar</marker> baz</paragraph>\n // <paragraph>foo <marker≥b[ar</marker> ba]z</paragraph>\n // <paragraph>foo <marker≥bar</marker>[] baz</paragraph>\n // <paragraph>foo []<marker≥bar</marker> baz</paragraph>\n if (markerRange.containsPosition(selectionPosition) || isMarkerRangeTouching) {\n continue;\n }\n if (direction === 'forward' && markerRange.start.isAfter(selectionPosition)) {\n markerRanges.push(markerRange);\n } else if (direction === 'backward' && markerRange.end.isBefore(selectionPosition)) {\n markerRanges.push(markerRange);\n }\n }\n if (!markerRanges.length) {\n return;\n }\n // Get the marker closest to the selection position among many. To know that, we need to sort\n // them first.\n return markerRanges.sort((rangeA, rangeB)=>{\n if (direction === 'forward') {\n return rangeA.start.isAfter(rangeB.start) ? 1 : -1;\n } else {\n return rangeA.start.isBefore(rangeB.start) ? 1 : -1;\n }\n }).shift();\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module restricted-editing/restrictededitingmode/utils\n */ /**\n * Returns a single \"restricted-editing-exception\" marker at a given position. Contrary to\n * {@link module:engine/model/markercollection~MarkerCollection#getMarkersAtPosition}, it returnd a marker also when the postion is\n * equal to one of the marker's start or end positions.\n *\n * @internal\n */ function getMarkerAtPosition(editor, position) {\n for (const marker of editor.model.markers){\n const markerRange = marker.getRange();\n if (isPositionInRangeBoundaries(markerRange, position)) {\n if (marker.name.startsWith('restrictedEditingException:')) {\n return marker;\n }\n }\n }\n}\n/**\n * Checks if the position is fully contained in the range. Positions equal to range start or end are considered \"in\".\n *\n * @internal\n */ function isPositionInRangeBoundaries(range, position) {\n return range.containsPosition(position) || range.end.isEqual(position) || range.start.isEqual(position);\n}\n/**\n * Checks if the selection is fully contained in the marker. Positions on marker boundaries are considered \"in\".\n *\n * ```xml\n * <marker>[]foo</marker> -> true\n * <marker>f[oo]</marker> -> true\n * <marker>f[oo</marker> ba]r -> false\n * <marker>foo</marker> []bar -> false\n * ```\n *\n * @internal\n */ function isSelectionInMarker(selection, marker) {\n if (!marker) {\n return false;\n }\n const markerRange = marker.getRange();\n if (selection.isCollapsed) {\n return isPositionInRangeBoundaries(markerRange, selection.focus);\n }\n return markerRange.containsRange(selection.getFirstRange(), true);\n}\n\nconst HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';\n/**\n * Adds a visual highlight style to a restricted editing exception that the selection is anchored to.\n *\n * The highlight is turned on by adding the `.restricted-editing-exception_selected` class to the\n * exception in the view:\n *\n * * The class is removed before the conversion starts, as callbacks added with the `'highest'` priority\n * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n * * The class is added in the view post-fixer, after other changes in the model tree are converted to the view.\n *\n * This way, adding and removing the highlight does not interfere with conversion.\n *\n * @internal\n */ function setupExceptionHighlighting(editor) {\n const view = editor.editing.view;\n const model = editor.model;\n const highlightedMarkers = new Set();\n // Adding the class.\n view.document.registerPostFixer((writer)=>{\n const modelSelection = model.document.selection;\n const marker = getMarkerAtPosition(editor, modelSelection.anchor);\n if (!marker) {\n return false;\n }\n for (const viewElement of editor.editing.mapper.markerNameToElements(marker.name)){\n writer.addClass(HIGHLIGHT_CLASS, viewElement);\n highlightedMarkers.add(viewElement);\n }\n return false;\n });\n // Removing the class.\n editor.conversion.for('editingDowncast').add((dispatcher)=>{\n // Make sure the highlight is removed on every possible event, before conversion is started.\n dispatcher.on('insert', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('remove', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('attribute', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('cleanSelection', removeHighlight);\n function removeHighlight() {\n view.change((writer)=>{\n for (const item of highlightedMarkers.values()){\n writer.removeClass(HIGHLIGHT_CLASS, item);\n highlightedMarkers.delete(item);\n }\n });\n }\n });\n}\n/**\n * A post-fixer that prevents removing a collapsed marker from the document.\n *\n * @internal\n */ function resurrectCollapsedMarkerPostFixer(editor) {\n // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n return (writer)=>{\n let changeApplied = false;\n for (const { name, data } of editor.model.document.differ.getChangedMarkers()){\n if (name.startsWith('restrictedEditingException') && data.newRange && data.newRange.root.rootName == '$graveyard') {\n writer.updateMarker(name, {\n range: writer.createRange(writer.createPositionAt(data.oldRange.start))\n });\n changeApplied = true;\n }\n }\n return changeApplied;\n };\n}\n/**\n * A post-fixer that extends a marker when the user types on its boundaries.\n *\n * @internal\n */ function extendMarkerOnTypingPostFixer(editor) {\n // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n return (writer)=>{\n let changeApplied = false;\n const schema = editor.model.schema;\n for (const change of editor.model.document.differ.getChanges()){\n if (change.type == 'insert' && schema.checkChild('$block', change.name)) {\n changeApplied = _tryExtendMarkerStart(editor, change.position, change.length, writer) || changeApplied;\n changeApplied = _tryExtendMarkedEnd(editor, change.position, change.length, writer) || changeApplied;\n }\n }\n return changeApplied;\n };\n}\n/**\n * A view highlight-to-marker conversion helper.\n *\n * @param config Conversion configuration.\n * @internal\n */ function upcastHighlightToMarker(config) {\n return (dispatcher)=>dispatcher.on('element:span', (evt, data, conversionApi)=>{\n const { writer } = conversionApi;\n const matcher = new Matcher(config.view);\n const matcherResult = matcher.match(data.viewItem);\n // If there is no match, this callback should not do anything.\n if (!matcherResult) {\n return;\n }\n const match = matcherResult.match;\n // Force consuming element's name (taken from upcast helpers elementToElement converter).\n match.name = true;\n const { modelRange: convertedChildrenRange } = conversionApi.convertChildren(data.viewItem, data.modelCursor);\n conversionApi.consumable.consume(data.viewItem, match);\n const markerName = config.model();\n const fakeMarkerStart = writer.createElement('$marker', {\n 'data-name': markerName\n });\n const fakeMarkerEnd = writer.createElement('$marker', {\n 'data-name': markerName\n });\n // Insert in reverse order to use converter content positions directly (without recalculating).\n writer.insert(fakeMarkerEnd, convertedChildrenRange.end);\n writer.insert(fakeMarkerStart, convertedChildrenRange.start);\n data.modelRange = writer.createRange(writer.createPositionBefore(fakeMarkerStart), writer.createPositionAfter(fakeMarkerEnd));\n data.modelCursor = data.modelRange.end;\n });\n}\n/**\n * Extend marker if change detected on marker's start position.\n */ function _tryExtendMarkerStart(editor, position, length, writer) {\n const markerAtStart = getMarkerAtPosition(editor, position.getShiftedBy(length));\n if (markerAtStart && markerAtStart.getStart().isEqual(position.getShiftedBy(length))) {\n writer.updateMarker(markerAtStart, {\n range: writer.createRange(markerAtStart.getStart().getShiftedBy(-length), markerAtStart.getEnd())\n });\n return true;\n }\n return false;\n}\n/**\n * Extend marker if change detected on marker's end position.\n */ function _tryExtendMarkedEnd(editor, position, length, writer) {\n const markerAtEnd = getMarkerAtPosition(editor, position);\n if (markerAtEnd && markerAtEnd.getEnd().isEqual(position)) {\n writer.updateMarker(markerAtEnd, {\n range: writer.createRange(markerAtEnd.getStart(), markerAtEnd.getEnd().getShiftedBy(length))\n });\n return true;\n }\n return false;\n}\n\nconst COMMAND_FORCE_DISABLE_ID = 'RestrictedEditingMode';\n/**\n * The restricted editing mode editing feature.\n *\n * * It introduces the exception marker group that renders to `<span>` elements with the `restricted-editing-exception` CSS class.\n * * It registers the `'goToPreviousRestrictedEditingException'` and `'goToNextRestrictedEditingException'` commands.\n * * It also enables highlighting exception markers that are selected.\n */ class RestrictedEditingModeEditing extends Plugin {\n /**\n\t * Command names that are enabled outside the non-restricted regions.\n\t */ _alwaysEnabled;\n /**\n\t * Commands allowed in non-restricted areas.\n\t *\n\t * Commands always enabled combine typing feature commands: `'input'`, `'insertText'`, `'delete'`, and `'deleteForward'` with\n\t * commands defined in the feature configuration.\n\t */ _allowedInException;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingModeEditing';\n }\n /**\n\t * @inheritDoc\n\t * @internal\n\t */ static get licenseFeatureCode() {\n return 'RED';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get isPremiumPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('restrictedEditing', {\n allowedCommands: [\n 'bold',\n 'italic',\n 'link',\n 'unlink'\n ],\n allowedAttributes: [\n 'bold',\n 'italic',\n 'linkHref'\n ]\n });\n this._alwaysEnabled = new Set([\n 'undo',\n 'redo'\n ]);\n this._allowedInException = new Set([\n 'input',\n 'insertText',\n 'delete',\n 'deleteForward'\n ]);\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const allowedCommands = editor.config.get('restrictedEditing.allowedCommands');\n allowedCommands.forEach((commandName)=>this._allowedInException.add(commandName));\n this._setupConversion();\n this._setupCommandsToggling();\n this._setupRestrictions();\n // Commands & keystrokes that allow navigation in the content.\n editor.commands.add('goToPreviousRestrictedEditingException', new RestrictedEditingModeNavigationCommand(editor, 'backward'));\n editor.commands.add('goToNextRestrictedEditingException', new RestrictedEditingModeNavigationCommand(editor, 'forward'));\n this.listenTo(editingView.document, 'tab', (evt, data)=>{\n const commandName = !data.shiftKey ? 'goToNextRestrictedEditingException' : 'goToPreviousRestrictedEditingException';\n const command = editor.commands.get(commandName);\n if (command.isEnabled) {\n editor.execute(commandName);\n // Stop the event in the DOM: no listener in the web page will be triggered by this event.\n data.preventDefault();\n data.stopPropagation();\n }\n // Stop the event bubbling in the editor: no more callbacks will be executed for this keystroke.\n evt.stop();\n }, {\n context: '$capture'\n });\n editor.keystrokes.set('Ctrl+A', getSelectAllHandler(editor));\n editingView.change((writer)=>{\n for (const root of editingView.document.roots){\n writer.addClass('ck-restricted-editing_mode_restricted', root);\n }\n });\n // Remove existing restricted editing markers when setting new data to prevent marker resurrection.\n // Without this, markers from removed content would be incorrectly restored due to the resurrection mechanism.\n // See more: https://github.com/ckeditor/ckeditor5/issues/9646#issuecomment-843064995\n editor.data.on('set', ()=>{\n editor.model.change((writer)=>{\n for (const marker of editor.model.markers.getMarkersGroup('restrictedEditingException')){\n writer.removeMarker(marker.name);\n }\n });\n }, {\n priority: 'high'\n });\n }\n /**\n\t * Makes the given command always enabled in the restricted editing mode (regardless\n\t * of selection location).\n\t *\n\t * To enable some commands in non-restricted areas of the content use\n\t * {@link module:restricted-editing/restrictededitingconfig~RestrictedEditingConfig#allowedCommands} configuration option.\n\t *\n\t * @param commandName Name of the command to enable.\n\t */ enableCommand(commandName) {\n const command = this.editor.commands.get(commandName);\n command.clearForceDisabled(COMMAND_FORCE_DISABLE_ID);\n this._alwaysEnabled.add(commandName);\n }\n /**\n\t * Sets up the restricted mode editing conversion:\n\t *\n\t * * ucpast & downcast converters,\n\t * * marker highlighting in the edting area,\n\t * * marker post-fixers.\n\t */ _setupConversion() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // The restricted editing does not attach additional data to the zones so there's no need for smarter markers managing.\n // Also, the markers will only be created when loading the data.\n let markerNumber = 0;\n editor.conversion.for('upcast').add(upcastHighlightToMarker({\n view: {\n name: 'span',\n classes: 'restricted-editing-exception'\n },\n model: ()=>{\n markerNumber++; // Starting from restrictedEditingException:1 marker.\n return `restrictedEditingException:${markerNumber}`;\n }\n }));\n // Currently the marker helpers are tied to other use-cases and do not render a collapsed marker as highlight.\n // Also, markerToHighlight cannot convert marker on an inline object. It handles only text and widgets,\n // but it is not a case in the data pipeline. That's why there are 3 downcast converters for them:\n //\n // 1. The custom inline item (text or inline object) converter (but not the selection).\n editor.conversion.for('downcast').add((dispatcher)=>{\n dispatcher.on('addMarker:restrictedEditingException', (evt, data, conversionApi)=>{\n // Only convert per-item conversion.\n if (!data.item) {\n return;\n }\n // Do not convert the selection or non-inline items.\n if (data.item.is('selection') || !conversionApi.schema.isInline(data.item)) {\n return;\n }\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewElement = viewWriter.createAttributeElement('span', {\n class: 'restricted-editing-exception'\n }, {\n id: data.markerName,\n priority: -10\n });\n const viewRange = conversionApi.mapper.toViewRange(data.range);\n const rangeAfterWrap = viewWriter.wrap(viewRange, viewElement);\n for (const element of rangeAfterWrap.getItems()){\n if (element.is('attributeElement') && element.isSimilar(viewElement)) {\n conversionApi.mapper.bindElementToMarker(element, data.markerName);\n break;\n }\n }\n });\n });\n // 2. The marker-to-highlight converter for the document selection.\n editor.conversion.for('downcast').markerToHighlight({\n model: 'restrictedEditingException',\n // Use callback to return new object every time new marker instance is created - otherwise it will be seen as the same marker.\n view: ()=>{\n return {\n name: 'span',\n classes: 'restricted-editing-exception',\n priority: -10\n };\n }\n });\n // 3. And for collapsed marker we need to render it as an element.\n // Additionally, the editing pipeline should always display a collapsed marker.\n editor.conversion.for('editingDowncast').markerToElement({\n model: 'restrictedEditingException',\n view: (markerData, { writer })=>{\n return writer.createUIElement('span', {\n class: 'restricted-editing-exception restricted-editing-exception_collapsed'\n });\n }\n });\n editor.conversion.for('dataDowncast').markerToElement({\n model: 'restrictedEditingException',\n view: (markerData, { writer })=>{\n return writer.createEmptyElement('span', {\n class: 'restricted-editing-exception'\n });\n }\n });\n doc.registerPostFixer(extendMarkerOnTypingPostFixer(editor));\n doc.registerPostFixer(resurrectCollapsedMarkerPostFixer(editor));\n doc.registerPostFixer(ensureNewMarkerIsFlatPostFixer(editor));\n setupExceptionHighlighting(editor);\n }\n /**\n\t * Setups additional editing restrictions beyond command toggling:\n\t *\n\t * * delete content range trimming\n\t * * disabling input command outside exception marker\n\t * * restricting clipboard holder to text only\n\t * * restricting text attributes in content\n\t */ _setupRestrictions() {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const viewDoc = editor.editing.view.document;\n const clipboard = editor.plugins.get('ClipboardPipeline');\n this.listenTo(model, 'deleteContent', restrictDeleteContent(editor), {\n priority: 'high'\n });\n const insertTextCommand = editor.commands.get('insertText');\n // The restricted editing might be configured without insert text support - ie allow only bolding or removing text.\n // This check is bit synthetic since only tests are used this way.\n if (insertTextCommand) {\n this.listenTo(insertTextCommand, 'execute', disallowInputExecForWrongRange(editor), {\n priority: 'high'\n });\n }\n // Block clipboard outside exception marker on paste and drop.\n this.listenTo(clipboard, 'contentInsertion', (evt)=>{\n if (!isRangeInsideSingleMarker(editor, selection.getFirstRange())) {\n evt.stop();\n }\n });\n // Block clipboard outside exception marker on cut.\n this.listenTo(viewDoc, 'clipboardOutput', (evt, data)=>{\n if (data.method == 'cut' && !isRangeInsideSingleMarker(editor, selection.getFirstRange())) {\n evt.stop();\n }\n }, {\n priority: 'high'\n });\n const allowedAttributes = editor.config.get('restrictedEditing.allowedAttributes');\n model.schema.addAttributeCheck(onlyAllowAttributesFromList(allowedAttributes));\n model.schema.addChildCheck(allowTextOnlyInClipboardHolder());\n }\n /**\n\t * Sets up the command toggling which enables or disables commands based on the user selection.\n\t */ _setupCommandsToggling() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n this._disableCommands();\n this.listenTo(doc.selection, 'change', this._checkCommands.bind(this));\n this.listenTo(doc, 'change:data', this._checkCommands.bind(this));\n }\n /**\n\t * Checks if commands should be enabled or disabled based on the current selection.\n\t */ _checkCommands() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n if (selection.rangeCount > 1) {\n this._disableCommands();\n return;\n }\n const marker = getMarkerAtPosition(editor, selection.focus);\n this._disableCommands();\n if (isSelectionInMarker(selection, marker)) {\n this._enableCommands(marker);\n }\n }\n /**\n\t * Enables commands in non-restricted regions.\n\t */ _enableCommands(marker) {\n const editor = this.editor;\n for (const [commandName, command] of editor.commands){\n if (!command.affectsData || this._alwaysEnabled.has(commandName)) {\n continue;\n }\n // Enable ony those commands that are allowed in the exception marker.\n if (!this._allowedInException.has(commandName)) {\n continue;\n }\n // Do not enable 'delete' and 'deleteForward' commands on the exception marker boundaries.\n if (isDeleteCommandOnMarkerBoundaries(commandName, editor.model.document.selection, marker.getRange())) {\n continue;\n }\n command.clearForceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n\t * Disables commands outside non-restricted regions.\n\t */ _disableCommands() {\n const editor = this.editor;\n for (const [commandName, command] of editor.commands){\n if (!command.affectsData || this._alwaysEnabled.has(commandName)) {\n continue;\n }\n command.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n}\n/**\n * Helper for handling Ctrl+A keydown behaviour.\n */ function getSelectAllHandler(editor) {\n return (_, cancel)=>{\n const model = editor.model;\n const selection = editor.model.document.selection;\n const marker = getMarkerAtPosition(editor, selection.focus);\n if (!marker) {\n return;\n }\n // If selection range is inside a restricted editing exception, select text only within the exception.\n //\n // Note: Second Ctrl+A press is also blocked and it won't select the entire text in the editor.\n const selectionRange = selection.getFirstRange();\n const markerRange = marker.getRange();\n if (markerRange.containsRange(selectionRange, true) || selection.isCollapsed) {\n cancel();\n model.change((writer)=>{\n writer.setSelection(marker.getRange());\n });\n }\n };\n}\n/**\n * Additional rule for enabling \"delete\" and \"deleteForward\" commands if selection is on range boundaries:\n *\n * Does not allow to enable command when selection focus is:\n * - is on marker start - \"delete\" - to prevent removing content before marker\n * - is on marker end - \"deleteForward\" - to prevent removing content after marker\n */ function isDeleteCommandOnMarkerBoundaries(commandName, selection, markerRange) {\n if (commandName == 'delete' && markerRange.start.isEqual(selection.focus)) {\n return true;\n }\n // Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.\n if (commandName == 'deleteForward' && selection.isCollapsed && markerRange.end.isEqual(selection.focus)) {\n return true;\n }\n return false;\n}\n/**\n * Ensures that model.deleteContent() does not delete outside exception markers ranges.\n *\n * The enforced restrictions are:\n * - only execute deleteContent() inside exception markers\n * - restrict passed selection to exception marker\n */ function restrictDeleteContent(editor) {\n return (evt, args)=>{\n const [selection] = args;\n const marker = getMarkerAtPosition(editor, selection.focus) || getMarkerAtPosition(editor, selection.anchor);\n // Stop method execution if marker was not found at selection focus.\n if (!marker) {\n evt.stop();\n return;\n }\n // Collapsed selection inside exception marker does not require fixing.\n if (selection.isCollapsed) {\n return;\n }\n // Shrink the selection to the range inside exception marker.\n const allowedToDelete = marker.getRange().getIntersection(selection.getFirstRange());\n // Some features uses selection passed to model.deleteContent() to set the selection afterwards. For this we need to properly modify\n // either the document selection using change block...\n if (selection.is('documentSelection')) {\n editor.model.change((writer)=>{\n writer.setSelection(allowedToDelete);\n });\n } else {\n selection.setTo(allowedToDelete);\n }\n };\n}\n/**\n * Ensures that input command is executed with a range that is inside exception marker.\n *\n * This restriction is due to fact that using native spell check changes text outside exception marker.\n */ function disallowInputExecForWrongRange(editor) {\n return (evt, args)=>{\n const [options] = args;\n const { range } = options;\n // Only check \"input\" command executed with a range value.\n // Selection might be set in exception marker but passed range might point elsewhere.\n if (!range) {\n return;\n }\n if (!isRangeInsideSingleMarker(editor, range)) {\n evt.stop();\n }\n };\n}\nfunction isRangeInsideSingleMarker(editor, range) {\n const markerAtStart = getMarkerAtPosition(editor, range.start);\n const markerAtEnd = getMarkerAtPosition(editor, range.end);\n return markerAtStart && markerAtEnd && markerAtEnd === markerAtStart;\n}\n/**\n * Checks if new marker range is flat. Non-flat ranges might appear during upcast conversion in nested structures, ie tables.\n *\n * Note: This marker fixer only consider case which is possible to create using StandardEditing mode plugin.\n * Markers created by developer in the data might break in many other ways.\n *\n * See #6003.\n */ function ensureNewMarkerIsFlatPostFixer(editor) {\n return (writer)=>{\n let changeApplied = false;\n const changedMarkers = editor.model.document.differ.getChangedMarkers();\n for (const { data, name } of changedMarkers){\n if (!name.startsWith('restrictedEditingException')) {\n continue;\n }\n const newRange = data.newRange;\n if (!data.oldRange && !newRange.isFlat) {\n const start = newRange.start;\n const end = newRange.end;\n const startIsHigherInTree = start.path.length > end.path.length;\n const fixedStart = startIsHigherInTree ? newRange.start : writer.createPositionAt(end.parent, 0);\n const fixedEnd = startIsHigherInTree ? writer.createPositionAt(start.parent, 'end') : newRange.end;\n writer.updateMarker(name, {\n range: writer.createRange(fixedStart, fixedEnd)\n });\n changeApplied = true;\n }\n }\n return changeApplied;\n };\n}\nfunction onlyAllowAttributesFromList(allowedAttributes) {\n return (context, attributeName)=>{\n if (context.startsWith('$clipboardHolder')) {\n return allowedAttributes.includes(attributeName);\n }\n };\n}\nfunction allowTextOnlyInClipboardHolder() {\n return (context, childDefinition)=>{\n if (context.startsWith('$clipboardHolder')) {\n return childDefinition.name === '$text';\n }\n };\n}\n\n/**\n * The restricted editing mode UI feature.\n *\n * It introduces the `'restrictedEditing'` dropdown that offers tools to navigate between exceptions across\n * the document.\n */ class RestrictedEditingModeUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingModeUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('restrictedEditing', (locale)=>{\n const dropdownView = createDropdown(locale);\n const listItems = new Collection();\n this._getButtonDefinitions().forEach(({ commandName, label, keystroke })=>{\n listItems.add(this._getButtonDefinition(commandName, label, keystroke));\n });\n addListToDropdown(dropdownView, listItems, {\n role: 'menu'\n });\n dropdownView.buttonView.set({\n label: t('Navigate editable regions'),\n icon: IconContentLock,\n tooltip: true,\n isEnabled: true,\n isOn: false\n });\n this.listenTo(dropdownView, 'execute', (evt)=>{\n const { _commandName } = evt.source;\n editor.execute(_commandName);\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n editor.ui.componentFactory.add('menuBar:restrictedEditing', (locale)=>{\n const menuView = new MenuBarMenuView(locale);\n const listView = new MenuBarMenuListView(locale);\n listView.set({\n ariaLabel: t('Navigate editable regions'),\n role: 'menu'\n });\n menuView.buttonView.set({\n label: t('Navigate editable regions'),\n icon: IconContentLock\n });\n menuView.panelView.children.add(listView);\n this._getButtonDefinitions().forEach(({ commandName, label, keystroke })=>{\n const listItemView = new MenuBarMenuListItemView(locale, menuView);\n const buttonView = this._createMenuBarButton(label, commandName, keystroke);\n buttonView.delegate('execute').to(menuView);\n listItemView.children.add(buttonView);\n listView.items.add(listItemView);\n });\n return menuView;\n });\n }\n /**\n\t * Creates a button for restricted editing command to use in menu bar.\n\t */ _createMenuBarButton(label, commandName, keystroke) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const view = new MenuBarMenuListItemButtonView(editor.locale);\n view.set({\n label,\n keystroke,\n isEnabled: true,\n isOn: false\n });\n view.bind('isEnabled').to(command);\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n }\n /**\n\t * Returns a definition of the navigation button to be used in the dropdown.\n\t *\n\t * @param commandName The name of the command that the button represents.\n\t * @param label The translated label of the button.\n\t * @param keystroke The button keystroke.\n\t */ _getButtonDefinition(commandName, label, keystroke) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const definition = {\n type: 'button',\n model: new UIModel({\n label,\n withText: true,\n keystroke,\n withKeystroke: true,\n role: 'menuitem',\n _commandName: commandName\n })\n };\n definition.model.bind('isEnabled').to(command, 'isEnabled');\n return definition;\n }\n /**\n\t * Returns definitions for UI buttons.\n\t *\n\t * @internal\n\t */ _getButtonDefinitions() {\n const t = this.editor.locale.t;\n return [\n {\n commandName: 'goToPreviousRestrictedEditingException',\n label: t('Previous editable region'),\n keystroke: 'Shift+Tab'\n },\n {\n commandName: 'goToNextRestrictedEditingException',\n label: t('Next editable region'),\n keystroke: 'Tab'\n }\n ];\n }\n}\n\n/**\n * The restricted editing mode plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:restricted-editing/restrictededitingmodeediting~RestrictedEditingModeEditing restricted mode editing feature}.\n * * The {@link module:restricted-editing/restrictededitingmodeui~RestrictedEditingModeUI restricted mode UI feature}.\n */ class RestrictedEditingMode extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingMode';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n RestrictedEditingModeEditing,\n RestrictedEditingModeUI\n ];\n }\n}\n\n/**\n * The command that toggles exceptions from the restricted editing on text.\n */ class RestrictedEditingExceptionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = !!doc.selection.getAttribute('restrictedEditingException');\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'restrictedEditingException');\n }\n /**\n\t * @inheritDoc\n\t */ execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const valueToSet = options.forceValue === undefined ? !this.value : options.forceValue;\n model.change((writer)=>{\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'restrictedEditingException');\n if (selection.isCollapsed) {\n if (valueToSet) {\n writer.setSelectionAttribute('restrictedEditingException', valueToSet);\n } else {\n const isSameException = (value)=>{\n return value.item.getAttribute('restrictedEditingException') === this.value;\n };\n const focus = selection.focus;\n const exceptionStart = focus.getLastMatchingPosition(isSameException, {\n direction: 'backward'\n });\n const exceptionEnd = focus.getLastMatchingPosition(isSameException);\n writer.removeSelectionAttribute('restrictedEditingException');\n if (!(focus.isEqual(exceptionStart) || focus.isEqual(exceptionEnd))) {\n writer.removeAttribute('restrictedEditingException', writer.createRange(exceptionStart, exceptionEnd));\n }\n }\n } else {\n for (const range of ranges){\n if (valueToSet) {\n writer.setAttribute('restrictedEditingException', valueToSet, range);\n } else {\n writer.removeAttribute('restrictedEditingException', range);\n }\n }\n }\n });\n }\n}\n\n/**\n * The standard editing mode editing feature.\n *\n * * It introduces the `restrictedEditingException` text attribute that is rendered as\n * a `<span>` element with the `restricted-editing-exception` CSS class.\n * * It registers the `'restrictedEditingException'` command.\n */ class StandardEditingModeEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingModeEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.model.schema.extend('$text', {\n allowAttributes: [\n 'restrictedEditingException'\n ]\n });\n editor.conversion.for('upcast').elementToAttribute({\n model: 'restrictedEditingException',\n view: {\n name: 'span',\n classes: 'restricted-editing-exception'\n }\n });\n editor.conversion.for('downcast').attributeToElement({\n model: 'restrictedEditingException',\n view: (modelAttributeValue, { writer })=>{\n if (modelAttributeValue) {\n // Make the restricted editing <span> outer-most in the view.\n return writer.createAttributeElement('span', {\n class: 'restricted-editing-exception'\n }, {\n priority: -10\n });\n }\n }\n });\n editor.commands.add('restrictedEditingException', new RestrictedEditingExceptionCommand(editor));\n editor.editing.view.change((writer)=>{\n for (const root of editor.editing.view.document.roots){\n writer.addClass('ck-restricted-editing_mode_standard', root);\n }\n });\n }\n}\n\n/**\n * The standard editing mode UI feature.\n *\n * It introduces the `'restrictedEditingException'` button that marks text as unrestricted for editing.\n */ class StandardEditingModeUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingModeUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('restrictedEditingException', ()=>{\n const button = this._createButton(ButtonView);\n button.set({\n tooltip: true,\n isToggleable: true\n });\n return button;\n });\n editor.ui.componentFactory.add('menuBar:restrictedEditingException', ()=>{\n return this._createButton(MenuBarMenuListItemButtonView);\n });\n }\n /**\n\t * Creates a button for restricted editing exception command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const command = this.editor.commands.get('restrictedEditingException');\n const view = new ButtonClass(locale);\n const t = locale.t;\n view.icon = IconContentUnlock;\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.bind('label').to(command, 'value', (value)=>{\n return value ? t('Disable editing') : t('Enable editing');\n });\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute('restrictedEditingException');\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The standard editing mode plugin.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:restricted-editing/standardeditingmodeediting~StandardEditingModeEditing standard mode editing feature}.\n * * The {@link module:restricted-editing/standardeditingmodeui~StandardEditingModeUI standard mode UI feature}.\n */ class StandardEditingMode extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingMode';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n static get requires() {\n return [\n StandardEditingModeEditing,\n StandardEditingModeUI\n ];\n }\n}\n\nexport { RestrictedEditingExceptionCommand, RestrictedEditingMode, RestrictedEditingModeEditing, RestrictedEditingModeNavigationCommand, RestrictedEditingModeUI, StandardEditingMode, StandardEditingModeEditing, StandardEditingModeUI, extendMarkerOnTypingPostFixer as _extendRestrictedEditingMarkerOnTypingPostFixer, getMarkerAtPosition as _getRestrictedEditingMarkerAtPosition, isPositionInRangeBoundaries as _isRestrictedEditingPositionInRangeBoundaries, isSelectionInMarker as _isRestrictedEditingSelectionInMarker, resurrectCollapsedMarkerPostFixer as _resurrectRestrictedEditingCollapsedMarkerPostFixer, setupExceptionHighlighting as _setupRestrictedEditingExceptionHighlighting, upcastHighlightToMarker as _upcastRestrictedEditingHighlightToMarker };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodenavigationcommand\n */\n\nimport type { Model, ModelRange } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\n\n/**\n * The command that allows navigation across the exceptions in the edited document.\n */\nexport class RestrictedEditingModeNavigationCommand extends Command {\n\t/**\n\t * The direction of the command.\n\t */\n\tprivate _direction: RestrictedEditingModeNavigationDirection;\n\n\t/**\n\t * Creates an instance of the command.\n\t *\n\t * @param editor The editor instance.\n\t * @param direction The direction that the command works.\n\t */\n\tconstructor( editor: Editor, direction: RestrictedEditingModeNavigationDirection ) {\n\t\tsuper( editor );\n\n\t\t// It does not affect data so should be enabled in read-only mode and in restricted editing mode.\n\t\tthis.affectsData = false;\n\t\tthis._direction = direction;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */\n\tpublic override execute(): void {\n\t\tconst position = getNearestExceptionRange( this.editor.model, this._direction );\n\n\t\tif ( !position ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.model.change( writer => {\n\t\t\twriter.setSelection( position );\n\t\t} );\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */\n\tprivate _checkEnabled(): boolean {\n\t\treturn !!getNearestExceptionRange( this.editor.model, this._direction );\n\t}\n}\n\n/**\n * Returns the range of the exception marker closest to the last position of the model selection.\n */\nfunction getNearestExceptionRange( model: Model, direction: RestrictedEditingModeNavigationDirection ): ModelRange | undefined {\n\tconst selection = model.document.selection;\n\tconst selectionPosition = selection.getFirstPosition()!;\n\tconst markerRanges = [];\n\n\t// Get all exception marker positions that start after/before the selection position.\n\tfor ( const marker of model.markers.getMarkersGroup( 'restrictedEditingException' ) ) {\n\t\tconst markerRange = marker.getRange();\n\n\t\t// Checking parent because there two positions <paragraph>foo^</paragraph><paragraph>^bar</paragraph>\n\t\t// are touching but they will represent different markers.\n\t\tconst isMarkerRangeTouching =\n\t\t\tselectionPosition.isTouching( markerRange.start ) && selectionPosition.hasSameParentAs( markerRange.start ) ||\n\t\t\tselectionPosition.isTouching( markerRange.end ) && selectionPosition.hasSameParentAs( markerRange.end );\n\n\t\t// <paragraph>foo <marker≥b[]ar</marker> baz</paragraph>\n\t\t// <paragraph>foo <marker≥b[ar</marker> ba]z</paragraph>\n\t\t// <paragraph>foo <marker≥bar</marker>[] baz</paragraph>\n\t\t// <paragraph>foo []<marker≥bar</marker> baz</paragraph>\n\t\tif ( markerRange.containsPosition( selectionPosition ) || isMarkerRangeTouching ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( direction === 'forward' && markerRange.start.isAfter( selectionPosition ) ) {\n\t\t\tmarkerRanges.push( markerRange );\n\t\t} else if ( direction === 'backward' && markerRange.end.isBefore( selectionPosition ) ) {\n\t\t\tmarkerRanges.push( markerRange );\n\t\t}\n\t}\n\n\tif ( !markerRanges.length ) {\n\t\treturn;\n\t}\n\n\t// Get the marker closest to the selection position among many. To know that, we need to sort\n\t// them first.\n\treturn markerRanges\n\t\t.sort( ( rangeA, rangeB ) => {\n\t\t\tif ( direction === 'forward' ) {\n\t\t\t\treturn rangeA.start.isAfter( rangeB.start ) ? 1 : -1;\n\t\t\t} else {\n\t\t\t\treturn rangeA.start.isBefore( rangeB.start ) ? 1 : -1;\n\t\t\t}\n\t\t} )\n\t\t.shift();\n}\n\n/**\n * Directions in which the\n * {@link module:restricted-editing/restrictededitingmodenavigationcommand~RestrictedEditingModeNavigationCommand} can work.\n */\nexport type RestrictedEditingModeNavigationDirection = 'forward' | 'backward';\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport type { ModelDocumentSelection, Marker, ModelPosition, ModelRange } from 'ckeditor5/src/engine.js';\n\n/**\n * @module restricted-editing/restrictededitingmode/utils\n */\n\n/**\n * Returns a single \"restricted-editing-exception\" marker at a given position. Contrary to\n * {@link module:engine/model/markercollection~MarkerCollection#getMarkersAtPosition}, it returnd a marker also when the postion is\n * equal to one of the marker's start or end positions.\n *\n * @internal\n */\nexport function getMarkerAtPosition( editor: Editor, position: ModelPosition ): Marker | undefined {\n\tfor ( const marker of editor.model.markers ) {\n\t\tconst markerRange = marker.getRange();\n\n\t\tif ( isPositionInRangeBoundaries( markerRange, position ) ) {\n\t\t\tif ( marker.name.startsWith( 'restrictedEditingException:' ) ) {\n\t\t\t\treturn marker;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Checks if the position is fully contained in the range. Positions equal to range start or end are considered \"in\".\n *\n * @internal\n */\nexport function isPositionInRangeBoundaries( range: ModelRange, position: ModelPosition ): boolean {\n\treturn (\n\t\trange.containsPosition( position ) ||\n\t\trange.end.isEqual( position ) ||\n\t\trange.start.isEqual( position )\n\t);\n}\n\n/**\n * Checks if the selection is fully contained in the marker. Positions on marker boundaries are considered \"in\".\n *\n * ```xml\n * <marker>[]foo</marker> -> true\n * <marker>f[oo]</marker> -> true\n * <marker>f[oo</marker> ba]r -> false\n * <marker>foo</marker> []bar -> false\n * ```\n *\n * @internal\n */\nexport function isSelectionInMarker( selection: ModelDocumentSelection, marker?: Marker ): boolean {\n\tif ( !marker ) {\n\t\treturn false;\n\t}\n\n\tconst markerRange = marker.getRange();\n\n\tif ( selection.isCollapsed ) {\n\t\treturn isPositionInRangeBoundaries( markerRange, selection.focus! );\n\t}\n\n\treturn markerRange.containsRange( selection.getFirstRange()!, true );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmode/converters\n */\n\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport {\n\tMatcher,\n\ttype ViewDowncastWriter,\n\ttype MatcherPattern,\n\ttype ModelPostFixer,\n\ttype ModelPosition,\n\ttype UpcastDispatcher,\n\ttype ModelWriter,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport { getMarkerAtPosition } from './utils.js';\n\nconst HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';\n\n/**\n * Adds a visual highlight style to a restricted editing exception that the selection is anchored to.\n *\n * The highlight is turned on by adding the `.restricted-editing-exception_selected` class to the\n * exception in the view:\n *\n * * The class is removed before the conversion starts, as callbacks added with the `'highest'` priority\n * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n * * The class is added in the view post-fixer, after other changes in the model tree are converted to the view.\n *\n * This way, adding and removing the highlight does not interfere with conversion.\n *\n * @internal\n */\nexport function setupExceptionHighlighting( editor: Editor ): void {\n\tconst view = editor.editing.view;\n\tconst model = editor.model;\n\tconst highlightedMarkers = new Set<ViewElement>();\n\n\t// Adding the class.\n\tview.document.registerPostFixer( ( writer: ViewDowncastWriter ): boolean => {\n\t\tconst modelSelection = model.document.selection;\n\n\t\tconst marker = getMarkerAtPosition( editor, modelSelection.anchor! );\n\n\t\tif ( !marker ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor ( const viewElement of editor.editing.mapper.markerNameToElements( marker.name )! ) {\n\t\t\twriter.addClass( HIGHLIGHT_CLASS, viewElement );\n\t\t\thighlightedMarkers.add( viewElement );\n\t\t}\n\n\t\treturn false;\n\t} );\n\n\t// Removing the class.\n\teditor.conversion.for( 'editingDowncast' ).add( dispatcher => {\n\t\t// Make sure the highlight is removed on every possible event, before conversion is started.\n\t\tdispatcher.on( 'insert', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'remove', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'attribute', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'cleanSelection', removeHighlight );\n\n\t\tfunction removeHighlight() {\n\t\t\tview.change( writer => {\n\t\t\t\tfor ( const item of highlightedMarkers.values() ) {\n\t\t\t\t\twriter.removeClass( HIGHLIGHT_CLASS, item );\n\t\t\t\t\thighlightedMarkers.delete( item );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n/**\n * A post-fixer that prevents removing a collapsed marker from the document.\n *\n * @internal\n */\nexport function resurrectCollapsedMarkerPostFixer( editor: Editor ): ModelPostFixer {\n\t// This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n\treturn writer => {\n\t\tlet changeApplied = false;\n\n\t\tfor ( const { name, data } of editor.model.document.differ.getChangedMarkers() ) {\n\t\t\tif ( name.startsWith( 'restrictedEditingException' ) && data.newRange && data.newRange.root.rootName == '$graveyard' ) {\n\t\t\t\twriter.updateMarker( name, {\n\t\t\t\t\trange: writer.createRange( writer.createPositionAt( data.oldRange!.start ) )\n\t\t\t\t} );\n\n\t\t\t\tchangeApplied = true;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n\n/**\n * A post-fixer that extends a marker when the user types on its boundaries.\n *\n * @internal\n */\nexport function extendMarkerOnTypingPostFixer( editor: Editor ): ModelPostFixer {\n\t// This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n\treturn writer => {\n\t\tlet changeApplied = false;\n\t\tconst schema = editor.model.schema;\n\n\t\tfor ( const change of editor.model.document.differ.getChanges() ) {\n\t\t\tif ( change.type == 'insert' && schema.checkChild( '$block', change.name ) ) {\n\t\t\t\tchangeApplied = _tryExtendMarkerStart( editor, change.position, change.length, writer ) || changeApplied;\n\t\t\t\tchangeApplied = _tryExtendMarkedEnd( editor, change.position, change.length, writer ) || changeApplied;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n\n/**\n * A view highlight-to-marker conversion helper.\n *\n * @param config Conversion configuration.\n * @internal\n */\nexport function upcastHighlightToMarker( config: { view: MatcherPattern; model: () => string } ) {\n\treturn ( dispatcher: UpcastDispatcher ): void => dispatcher.on( 'element:span', ( evt, data, conversionApi ) => {\n\t\tconst { writer } = conversionApi;\n\n\t\tconst matcher = new Matcher( config.view );\n\t\tconst matcherResult = matcher.match( data.viewItem );\n\n\t\t// If there is no match, this callback should not do anything.\n\t\tif ( !matcherResult ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst match = matcherResult.match;\n\n\t\t// Force consuming element's name (taken from upcast helpers elementToElement converter).\n\t\tmatch.name = true;\n\n\t\tconst { modelRange: convertedChildrenRange } = conversionApi.convertChildren( data.viewItem, data.modelCursor );\n\t\tconversionApi.consumable.consume( data.viewItem, match );\n\n\t\tconst markerName = config.model();\n\t\tconst fakeMarkerStart = writer.createElement( '$marker', { 'data-name': markerName } );\n\t\tconst fakeMarkerEnd = writer.createElement( '$marker', { 'data-name': markerName } );\n\n\t\t// Insert in reverse order to use converter content positions directly (without recalculating).\n\t\twriter.insert( fakeMarkerEnd, convertedChildrenRange.end );\n\t\twriter.insert( fakeMarkerStart, convertedChildrenRange.start );\n\n\t\tdata.modelRange = writer.createRange(\n\t\t\twriter.createPositionBefore( fakeMarkerStart ),\n\t\t\twriter.createPositionAfter( fakeMarkerEnd )\n\t\t);\n\t\tdata.modelCursor = data.modelRange.end;\n\t} );\n}\n\n/**\n * Extend marker if change detected on marker's start position.\n */\nfunction _tryExtendMarkerStart( editor: Editor, position: ModelPosition, length: number, writer: ModelWriter ): boolean {\n\tconst markerAtStart = getMarkerAtPosition( editor, position.getShiftedBy( length ) );\n\n\tif ( markerAtStart && markerAtStart.getStart().isEqual( position.getShiftedBy( length ) ) ) {\n\t\twriter.updateMarker( markerAtStart, {\n\t\t\trange: writer.createRange( markerAtStart.getStart().getShiftedBy( -length ), markerAtStart.getEnd() )\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Extend marker if change detected on marker's end position.\n */\nfunction _tryExtendMarkedEnd( editor: Editor, position: ModelPosition, length: number, writer: ModelWriter ): boolean {\n\tconst markerAtEnd = getMarkerAtPosition( editor, position );\n\n\tif ( markerAtEnd && markerAtEnd.getEnd().isEqual( position ) ) {\n\t\twriter.updateMarker( markerAtEnd, {\n\t\t\trange: writer.createRange( markerAtEnd.getStart(), markerAtEnd.getEnd().getShiftedBy( length ) )\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodeediting\n */\n\nimport {\n\tPlugin,\n\ttype Command,\n\ttype Editor,\n\ttype EditingKeystrokeCallback\n} from 'ckeditor5/src/core.js';\nimport type {\n\tModelDocumentSelection,\n\tMarker,\n\tDowncastAddMarkerEvent,\n\tModelDeleteContentEvent,\n\tModelPostFixer,\n\tModelRange,\n\tModelSchemaAttributeCheckCallback,\n\tModelSchemaChildCheckCallback,\n\tViewDocumentTabEvent\n} from 'ckeditor5/src/engine.js';\nimport type { BaseEvent, GetCallback } from 'ckeditor5/src/utils.js';\nimport type { InsertTextCommand, InsertTextCommandExecuteEvent } from 'ckeditor5/src/typing.js';\nimport type {\n\tClipboardContentInsertionEvent,\n\tViewDocumentClipboardOutputEvent,\n\tClipboardPipeline\n} from 'ckeditor5/src/clipboard.js';\n\nimport { RestrictedEditingModeNavigationCommand } from './restrictededitingmodenavigationcommand.js';\nimport {\n\textendMarkerOnTypingPostFixer,\n\tresurrectCollapsedMarkerPostFixer,\n\tsetupExceptionHighlighting,\n\tupcastHighlightToMarker\n} from './restrictededitingmode/converters.js';\nimport { getMarkerAtPosition, isSelectionInMarker } from './restrictededitingmode/utils.js';\nimport type { RestrictedEditingConfig } from './restrictededitingconfig.js';\n\nconst COMMAND_FORCE_DISABLE_ID = 'RestrictedEditingMode';\n\n/**\n * The restricted editing mode editing feature.\n *\n * * It introduces the exception marker group that renders to `<span>` elements with the `restricted-editing-exception` CSS class.\n * * It registers the `'goToPreviousRestrictedEditingException'` and `'goToNextRestrictedEditingException'` commands.\n * * It also enables highlighting exception markers that are selected.\n */\nexport class RestrictedEditingModeEditing extends Plugin {\n\t/**\n\t * Command names that are enabled outside the non-restricted regions.\n\t */\n\tprivate _alwaysEnabled: Set<string>;\n\n\t/**\n\t * Commands allowed in non-restricted areas.\n\t *\n\t * Commands always enabled combine typing feature commands: `'input'`, `'insertText'`, `'delete'`, and `'deleteForward'` with\n\t * commands defined in the feature configuration.\n\t */\n\tprivate _allowedInException: Set<string>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingModeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @internal\n\t */\n\tpublic static get licenseFeatureCode(): string {\n\t\treturn 'RED';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isPremiumPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'restrictedEditing', {\n\t\t\tallowedCommands: [ 'bold', 'italic', 'link', 'unlink' ],\n\t\t\tallowedAttributes: [ 'bold', 'italic', 'linkHref' ]\n\t\t} );\n\n\t\tthis._alwaysEnabled = new Set( [ 'undo', 'redo' ] );\n\t\tthis._allowedInException = new Set( [ 'input', 'insertText', 'delete', 'deleteForward' ] );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\t\tconst allowedCommands: RestrictedEditingConfig['allowedCommands'] = editor.config.get( 'restrictedEditing.allowedCommands' )!;\n\n\t\tallowedCommands.forEach( commandName => this._allowedInException.add( commandName ) );\n\n\t\tthis._setupConversion();\n\t\tthis._setupCommandsToggling();\n\t\tthis._setupRestrictions();\n\n\t\t// Commands & keystrokes that allow navigation in the content.\n\t\teditor.commands.add(\n\t\t\t'goToPreviousRestrictedEditingException',\n\t\t\tnew RestrictedEditingModeNavigationCommand( editor, 'backward' )\n\t\t);\n\n\t\teditor.commands.add(\n\t\t\t'goToNextRestrictedEditingException',\n\t\t\tnew RestrictedEditingModeNavigationCommand( editor, 'forward' )\n\t\t);\n\n\t\tthis.listenTo<ViewDocumentTabEvent>( editingView.document, 'tab', ( evt, data ) => {\n\t\t\tconst commandName = !data.shiftKey ? 'goToNextRestrictedEditingException' : 'goToPreviousRestrictedEditingException';\n\t\t\tconst command: Command = editor.commands.get( commandName )!;\n\n\t\t\tif ( command.isEnabled ) {\n\t\t\t\teditor.execute( commandName );\n\n\t\t\t\t// Stop the event in the DOM: no listener in the web page will be triggered by this event.\n\t\t\t\tdata.preventDefault();\n\t\t\t\tdata.stopPropagation();\n\t\t\t}\n\n\t\t\t// Stop the event bubbling in the editor: no more callbacks will be executed for this keystroke.\n\t\t\tevt.stop();\n\t\t}, { context: '$capture' } );\n\n\t\teditor.keystrokes.set( 'Ctrl+A', getSelectAllHandler( editor ) );\n\n\t\teditingView.change( writer => {\n\t\t\tfor ( const root of editingView.document.roots ) {\n\t\t\t\twriter.addClass( 'ck-restricted-editing_mode_restricted', root );\n\t\t\t}\n\t\t} );\n\n\t\t// Remove existing restricted editing markers when setting new data to prevent marker resurrection.\n\t\t// Without this, markers from removed content would be incorrectly restored due to the resurrection mechanism.\n\t\t// See more: https://github.com/ckeditor/ckeditor5/issues/9646#issuecomment-843064995\n\t\teditor.data.on( 'set', () => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tfor ( const marker of editor.model.markers.getMarkersGroup( 'restrictedEditingException' ) ) {\n\t\t\t\t\twriter.removeMarker( marker.name );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Makes the given command always enabled in the restricted editing mode (regardless\n\t * of selection location).\n\t *\n\t * To enable some commands in non-restricted areas of the content use\n\t * {@link module:restricted-editing/restrictededitingconfig~RestrictedEditingConfig#allowedCommands} configuration option.\n\t *\n\t * @param commandName Name of the command to enable.\n\t */\n\tpublic enableCommand( commandName: string ): void {\n\t\tconst command: Command = this.editor.commands.get( commandName )!;\n\n\t\tcommand.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );\n\n\t\tthis._alwaysEnabled.add( commandName );\n\t}\n\n\t/**\n\t * Sets up the restricted mode editing conversion:\n\t *\n\t * * ucpast & downcast converters,\n\t * * marker highlighting in the edting area,\n\t * * marker post-fixers.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// The restricted editing does not attach additional data to the zones so there's no need for smarter markers managing.\n\t\t// Also, the markers will only be created when loading the data.\n\t\tlet markerNumber = 0;\n\n\t\teditor.conversion.for( 'upcast' ).add( upcastHighlightToMarker( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t},\n\t\t\tmodel: () => {\n\t\t\t\tmarkerNumber++; // Starting from restrictedEditingException:1 marker.\n\n\t\t\t\treturn `restrictedEditingException:${ markerNumber }`;\n\t\t\t}\n\t\t} ) );\n\n\t\t// Currently the marker helpers are tied to other use-cases and do not render a collapsed marker as highlight.\n\t\t// Also, markerToHighlight cannot convert marker on an inline object. It handles only text and widgets,\n\t\t// but it is not a case in the data pipeline. That's why there are 3 downcast converters for them:\n\t\t//\n\t\t// 1. The custom inline item (text or inline object) converter (but not the selection).\n\t\teditor.conversion.for( 'downcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<DowncastAddMarkerEvent>( 'addMarker:restrictedEditingException', ( evt, data, conversionApi ): void => {\n\t\t\t\t// Only convert per-item conversion.\n\t\t\t\tif ( !data.item ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Do not convert the selection or non-inline items.\n\t\t\t\tif ( data.item.is( 'selection' ) || !conversionApi.schema.isInline( data.item ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst viewElement = viewWriter.createAttributeElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{\n\t\t\t\t\t\tclass: 'restricted-editing-exception'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: data.markerName,\n\t\t\t\t\t\tpriority: -10\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tconst viewRange = conversionApi.mapper.toViewRange( data.range! );\n\t\t\t\tconst rangeAfterWrap = viewWriter.wrap( viewRange, viewElement );\n\n\t\t\t\tfor ( const element of rangeAfterWrap.getItems() ) {\n\t\t\t\t\tif ( element.is( 'attributeElement' ) && element.isSimilar( viewElement ) ) {\n\t\t\t\t\t\tconversionApi.mapper.bindElementToMarker( element, data.markerName );\n\n\t\t\t\t\t\t// One attribute element is enough, because all of them are bound together by the view writer.\n\t\t\t\t\t\t// Mapper uses this binding to get all the elements no matter how many of them are registered in the mapper.\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\t// 2. The marker-to-highlight converter for the document selection.\n\t\teditor.conversion.for( 'downcast' ).markerToHighlight( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\t// Use callback to return new object every time new marker instance is created - otherwise it will be seen as the same marker.\n\t\t\tview: () => {\n\t\t\t\treturn {\n\t\t\t\t\tname: 'span',\n\t\t\t\t\tclasses: 'restricted-editing-exception',\n\t\t\t\t\tpriority: -10\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// 3. And for collapsed marker we need to render it as an element.\n\t\t// Additionally, the editing pipeline should always display a collapsed marker.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\tview: ( markerData, { writer } ) => {\n\t\t\t\treturn writer.createUIElement( 'span', {\n\t\t\t\t\tclass: 'restricted-editing-exception restricted-editing-exception_collapsed'\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'dataDowncast' ).markerToElement( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\tview: ( markerData, { writer } ) => {\n\t\t\t\treturn writer.createEmptyElement( 'span', {\n\t\t\t\t\tclass: 'restricted-editing-exception'\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tdoc.registerPostFixer( extendMarkerOnTypingPostFixer( editor ) );\n\t\tdoc.registerPostFixer( resurrectCollapsedMarkerPostFixer( editor ) );\n\t\tdoc.registerPostFixer( ensureNewMarkerIsFlatPostFixer( editor ) );\n\n\t\tsetupExceptionHighlighting( editor );\n\t}\n\n\t/**\n\t * Setups additional editing restrictions beyond command toggling:\n\t *\n\t * * delete content range trimming\n\t * * disabling input command outside exception marker\n\t * * restricting clipboard holder to text only\n\t * * restricting text attributes in content\n\t */\n\tprivate _setupRestrictions() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst viewDoc = editor.editing.view.document;\n\t\tconst clipboard: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tthis.listenTo<ModelDeleteContentEvent>( model, 'deleteContent', restrictDeleteContent( editor ), { priority: 'high' } );\n\n\t\tconst insertTextCommand: InsertTextCommand | undefined = editor.commands.get( 'insertText' );\n\n\t\t// The restricted editing might be configured without insert text support - ie allow only bolding or removing text.\n\t\t// This check is bit synthetic since only tests are used this way.\n\t\tif ( insertTextCommand ) {\n\t\t\tthis.listenTo<InsertTextCommandExecuteEvent>(\n\t\t\t\tinsertTextCommand,\n\t\t\t\t'execute',\n\t\t\t\tdisallowInputExecForWrongRange( editor ),\n\t\t\t\t{ priority: 'high' }\n\t\t\t);\n\t\t}\n\n\t\t// Block clipboard outside exception marker on paste and drop.\n\t\tthis.listenTo<ClipboardContentInsertionEvent>( clipboard, 'contentInsertion', evt => {\n\t\t\tif ( !isRangeInsideSingleMarker( editor, selection.getFirstRange()! ) ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t} );\n\n\t\t// Block clipboard outside exception marker on cut.\n\t\tthis.listenTo<ViewDocumentClipboardOutputEvent>( viewDoc, 'clipboardOutput', ( evt, data ) => {\n\t\t\tif ( data.method == 'cut' && !isRangeInsideSingleMarker( editor, selection.getFirstRange()! ) ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\n\t\tconst allowedAttributes: RestrictedEditingConfig['allowedAttributes'] = editor.config.get( 'restrictedEditing.allowedAttributes' )!;\n\t\tmodel.schema.addAttributeCheck( onlyAllowAttributesFromList( allowedAttributes ) );\n\t\tmodel.schema.addChildCheck( allowTextOnlyInClipboardHolder() );\n\t}\n\n\t/**\n\t * Sets up the command toggling which enables or disables commands based on the user selection.\n\t */\n\tprivate _setupCommandsToggling(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis._disableCommands();\n\n\t\tthis.listenTo( doc.selection, 'change', this._checkCommands.bind( this ) );\n\t\tthis.listenTo( doc, 'change:data', this._checkCommands.bind( this ) );\n\t}\n\n\t/**\n\t * Checks if commands should be enabled or disabled based on the current selection.\n\t */\n\tprivate _checkCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\n\t\tif ( selection.rangeCount > 1 ) {\n\t\t\tthis._disableCommands();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus! );\n\n\t\tthis._disableCommands();\n\n\t\tif ( isSelectionInMarker( selection, marker ) ) {\n\t\t\tthis._enableCommands( marker! );\n\t\t}\n\t}\n\n\t/**\n\t * Enables commands in non-restricted regions.\n\t */\n\tprivate _enableCommands( marker: Marker ): void {\n\t\tconst editor = this.editor;\n\n\t\tfor ( const [ commandName, command ] of editor.commands ) {\n\t\t\tif ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Enable ony those commands that are allowed in the exception marker.\n\t\t\tif ( !this._allowedInException.has( commandName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Do not enable 'delete' and 'deleteForward' commands on the exception marker boundaries.\n\t\t\tif ( isDeleteCommandOnMarkerBoundaries( commandName, editor.model.document.selection, marker.getRange() ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcommand.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Disables commands outside non-restricted regions.\n\t */\n\tprivate _disableCommands(): void {\n\t\tconst editor = this.editor;\n\n\t\tfor ( const [ commandName, command ] of editor.commands ) {\n\t\t\tif ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n}\n\n/**\n * Helper for handling Ctrl+A keydown behaviour.\n */\nfunction getSelectAllHandler( editor: Editor ): EditingKeystrokeCallback {\n\treturn ( _, cancel ) => {\n\t\tconst model = editor.model;\n\t\tconst selection = editor.model.document.selection;\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus! );\n\n\t\tif ( !marker ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If selection range is inside a restricted editing exception, select text only within the exception.\n\t\t//\n\t\t// Note: Second Ctrl+A press is also blocked and it won't select the entire text in the editor.\n\t\tconst selectionRange = selection.getFirstRange()!;\n\t\tconst markerRange = marker.getRange();\n\n\t\tif ( markerRange.containsRange( selectionRange, true ) || selection.isCollapsed ) {\n\t\t\tcancel();\n\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setSelection( marker.getRange() );\n\t\t\t} );\n\t\t}\n\t};\n}\n\n/**\n * Additional rule for enabling \"delete\" and \"deleteForward\" commands if selection is on range boundaries:\n *\n * Does not allow to enable command when selection focus is:\n * - is on marker start - \"delete\" - to prevent removing content before marker\n * - is on marker end - \"deleteForward\" - to prevent removing content after marker\n */\nfunction isDeleteCommandOnMarkerBoundaries( commandName: string, selection: ModelDocumentSelection, markerRange: ModelRange ) {\n\tif ( commandName == 'delete' && markerRange.start.isEqual( selection.focus! ) ) {\n\t\treturn true;\n\t}\n\n\t// Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.\n\tif ( commandName == 'deleteForward' && selection.isCollapsed && markerRange.end.isEqual( selection.focus! ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Ensures that model.deleteContent() does not delete outside exception markers ranges.\n *\n * The enforced restrictions are:\n * - only execute deleteContent() inside exception markers\n * - restrict passed selection to exception marker\n */\nfunction restrictDeleteContent( editor: Editor ): GetCallback<BaseEvent> {\n\treturn ( evt, args ) => {\n\t\tconst [ selection ] = args;\n\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus ) || getMarkerAtPosition( editor, selection.anchor );\n\n\t\t// Stop method execution if marker was not found at selection focus.\n\t\tif ( !marker ) {\n\t\t\tevt.stop();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Collapsed selection inside exception marker does not require fixing.\n\t\tif ( selection.isCollapsed ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Shrink the selection to the range inside exception marker.\n\t\tconst allowedToDelete = marker.getRange().getIntersection( selection.getFirstRange() );\n\n\t\t// Some features uses selection passed to model.deleteContent() to set the selection afterwards. For this we need to properly modify\n\t\t// either the document selection using change block...\n\t\tif ( selection.is( 'documentSelection' ) ) {\n\t\t\teditor.model.change( writer => {\n\t\t\t\twriter.setSelection( allowedToDelete );\n\t\t\t} );\n\t\t}\n\t\t// ... or by modifying passed selection instance directly.\n\t\telse {\n\t\t\tselection.setTo( allowedToDelete );\n\t\t}\n\t};\n}\n\n/**\n * Ensures that input command is executed with a range that is inside exception marker.\n *\n * This restriction is due to fact that using native spell check changes text outside exception marker.\n */\nfunction disallowInputExecForWrongRange( editor: Editor ): GetCallback<InsertTextCommandExecuteEvent> {\n\treturn ( evt, args ) => {\n\t\tconst [ options ] = args;\n\t\tconst { range } = options;\n\n\t\t// Only check \"input\" command executed with a range value.\n\t\t// Selection might be set in exception marker but passed range might point elsewhere.\n\t\tif ( !range ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !isRangeInsideSingleMarker( editor, range ) ) {\n\t\t\tevt.stop();\n\t\t}\n\t};\n}\n\nfunction isRangeInsideSingleMarker( editor: Editor, range: ModelRange ) {\n\tconst markerAtStart = getMarkerAtPosition( editor, range.start );\n\tconst markerAtEnd = getMarkerAtPosition( editor, range.end );\n\n\treturn markerAtStart && markerAtEnd && markerAtEnd === markerAtStart;\n}\n\n/**\n * Checks if new marker range is flat. Non-flat ranges might appear during upcast conversion in nested structures, ie tables.\n *\n * Note: This marker fixer only consider case which is possible to create using StandardEditing mode plugin.\n * Markers created by developer in the data might break in many other ways.\n *\n * See #6003.\n */\nfunction ensureNewMarkerIsFlatPostFixer( editor: Editor ): ModelPostFixer {\n\treturn writer => {\n\t\tlet changeApplied = false;\n\n\t\tconst changedMarkers = editor.model.document.differ.getChangedMarkers();\n\n\t\tfor ( const { data, name } of changedMarkers ) {\n\t\t\tif ( !name.startsWith( 'restrictedEditingException' ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newRange = data.newRange!;\n\n\t\t\tif ( !data.oldRange && !newRange.isFlat ) {\n\t\t\t\tconst start = newRange.start;\n\t\t\t\tconst end = newRange.end;\n\n\t\t\t\tconst startIsHigherInTree = start.path.length > end.path.length;\n\n\t\t\t\tconst fixedStart = startIsHigherInTree ? newRange.start : writer.createPositionAt( end.parent, 0 );\n\t\t\t\tconst fixedEnd = startIsHigherInTree ? writer.createPositionAt( start.parent, 'end' ) : newRange.end;\n\n\t\t\t\twriter.updateMarker( name, {\n\t\t\t\t\trange: writer.createRange( fixedStart, fixedEnd )\n\t\t\t\t} );\n\n\t\t\t\tchangeApplied = true;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n\nfunction onlyAllowAttributesFromList( allowedAttributes: RestrictedEditingConfig['allowedAttributes'] ): ModelSchemaAttributeCheckCallback {\n\treturn ( context, attributeName ) => {\n\t\tif ( context.startsWith( '$clipboardHolder' ) ) {\n\t\t\treturn allowedAttributes.includes( attributeName );\n\t\t}\n\t};\n}\n\nfunction allowTextOnlyInClipboardHolder(): ModelSchemaChildCheckCallback {\n\treturn ( context, childDefinition ) => {\n\t\tif ( context.startsWith( '$clipboardHolder' ) ) {\n\t\t\treturn childDefinition.name === '$text';\n\t\t}\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodeui\n */\n\nimport { Plugin, type Command } from 'ckeditor5/src/core.js';\nimport { IconContentLock } from 'ckeditor5/src/icons.js';\nimport {\n\tUIModel,\n\tcreateDropdown,\n\taddListToDropdown,\n\tMenuBarMenuListItemButtonView,\n\ttype ButtonExecuteEvent,\n\ttype ListDropdownItemDefinition, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView\n} from 'ckeditor5/src/ui.js';\nimport { Collection } from 'ckeditor5/src/utils.js';\n\n/**\n * The restricted editing mode UI feature.\n *\n * It introduces the `'restrictedEditing'` dropdown that offers tools to navigate between exceptions across\n * the document.\n */\nexport class RestrictedEditingModeUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingModeUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'restrictedEditing', locale => {\n\t\t\tconst dropdownView = createDropdown( locale );\n\t\t\tconst listItems = new Collection<ListDropdownItemDefinition>();\n\n\t\t\tthis._getButtonDefinitions().forEach( ( { commandName, label, keystroke } ) => {\n\t\t\t\tlistItems.add( this._getButtonDefinition( commandName, label, keystroke ) );\n\t\t\t} );\n\n\t\t\taddListToDropdown( dropdownView, listItems, {\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.set( {\n\t\t\t\tlabel: t( 'Navigate editable regions' ),\n\t\t\t\ticon: IconContentLock,\n\t\t\t\ttooltip: true,\n\t\t\t\tisEnabled: true,\n\t\t\t\tisOn: false\n\t\t\t} );\n\n\t\t\tthis.listenTo<ButtonExecuteEvent>( dropdownView, 'execute', evt => {\n\t\t\t\tconst { _commandName } = evt.source as any;\n\t\t\t\teditor.execute( _commandName );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:restrictedEditing', locale => {\n\t\t\tconst menuView = new MenuBarMenuView( locale );\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\n\t\t\tlistView.set( {\n\t\t\t\tariaLabel: t( 'Navigate editable regions' ),\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tmenuView.buttonView.set( {\n\t\t\t\tlabel: t( 'Navigate editable regions' ),\n\t\t\t\ticon: IconContentLock\n\t\t\t} );\n\n\t\t\tmenuView.panelView.children.add( listView );\n\n\t\t\tthis._getButtonDefinitions().forEach( ( { commandName, label, keystroke } ) => {\n\t\t\t\tconst listItemView = new MenuBarMenuListItemView( locale, menuView );\n\t\t\t\tconst buttonView = this._createMenuBarButton( label, commandName, keystroke );\n\n\t\t\t\tbuttonView.delegate( 'execute' ).to( menuView );\n\n\t\t\t\tlistItemView.children.add( buttonView );\n\t\t\t\tlistView.items.add( listItemView );\n\t\t\t} );\n\n\t\t\treturn menuView;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for restricted editing command to use in menu bar.\n\t */\n\tprivate _createMenuBarButton( label: string, commandName: string, keystroke: string ): MenuBarMenuListItemButtonView {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( commandName )!;\n\t\tconst view = new MenuBarMenuListItemButtonView( editor.locale );\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\tkeystroke,\n\t\t\tisEnabled: true,\n\t\t\tisOn: false\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( commandName );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Returns a definition of the navigation button to be used in the dropdown.\n\t *\n\t * @param commandName The name of the command that the button represents.\n\t * @param label The translated label of the button.\n\t * @param keystroke The button keystroke.\n\t */\n\tprivate _getButtonDefinition( commandName: string, label: string, keystroke: string ): ListDropdownItemDefinition {\n\t\tconst editor = this.editor;\n\t\tconst command: Command = editor.commands.get( commandName )!;\n\t\tconst definition: ListDropdownItemDefinition = {\n\t\t\ttype: 'button' as const,\n\t\t\tmodel: new UIModel( {\n\t\t\t\tlabel,\n\t\t\t\twithText: true,\n\t\t\t\tkeystroke,\n\t\t\t\twithKeystroke: true,\n\t\t\t\trole: 'menuitem',\n\t\t\t\t_commandName: commandName\n\t\t\t} )\n\t\t};\n\n\t\tdefinition.model.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\treturn definition;\n\t}\n\n\t/**\n\t * Returns definitions for UI buttons.\n\t *\n\t * @internal\n\t */\n\tprivate _getButtonDefinitions() {\n\t\tconst t = this.editor.locale.t;\n\n\t\treturn [\n\t\t\t{ commandName: 'goToPreviousRestrictedEditingException', label: t( 'Previous editable region' ), keystroke: 'Shift+Tab' },\n\t\t\t{ commandName: 'goToNextRestrictedEditingException', label: t( 'Next editable region' ), keystroke: 'Tab' }\n\t\t];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmode\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { RestrictedEditingModeEditing } from './restrictededitingmodeediting.js';\nimport { RestrictedEditingModeUI } from './restrictededitingmodeui.js';\n\nimport '../theme/restrictedediting.css';\n\n/**\n * The restricted editing mode plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:restricted-editing/restrictededitingmodeediting~RestrictedEditingModeEditing restricted mode editing feature}.\n * * The {@link module:restricted-editing/restrictededitingmodeui~RestrictedEditingModeUI restricted mode UI feature}.\n */\nexport class RestrictedEditingMode extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingMode' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ RestrictedEditingModeEditing, RestrictedEditingModeUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingexceptioncommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { ModelTreeWalkerValue } from 'ckeditor5/src/engine.js';\n\n/**\n * The command that toggles exceptions from the restricted editing on text.\n */\nexport class RestrictedEditingExceptionCommand extends Command {\n\t/**\n\t * A flag indicating whether the command is active\n\t *\n\t * @readonly\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.value = !!doc.selection.getAttribute( 'restrictedEditingException' );\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'restrictedEditingException' );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute( options: RestrictedEditingExceptionCommandParams = {} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\t\tconst valueToSet = ( options.forceValue === undefined ) ? !this.value : options.forceValue;\n\n\t\tmodel.change( writer => {\n\t\t\tconst ranges = model.schema.getValidRanges( selection.getRanges(), 'restrictedEditingException' );\n\n\t\t\tif ( selection.isCollapsed ) {\n\t\t\t\tif ( valueToSet ) {\n\t\t\t\t\twriter.setSelectionAttribute( 'restrictedEditingException', valueToSet );\n\t\t\t\t} else {\n\t\t\t\t\tconst isSameException = ( value: ModelTreeWalkerValue ) => {\n\t\t\t\t\t\treturn value.item.getAttribute( 'restrictedEditingException' ) === this.value;\n\t\t\t\t\t};\n\n\t\t\t\t\tconst focus = selection.focus!;\n\t\t\t\t\tconst exceptionStart = focus.getLastMatchingPosition( isSameException, { direction: 'backward' } );\n\t\t\t\t\tconst exceptionEnd = focus.getLastMatchingPosition( isSameException );\n\n\t\t\t\t\twriter.removeSelectionAttribute( 'restrictedEditingException' );\n\n\t\t\t\t\tif ( !( focus.isEqual( exceptionStart ) || focus.isEqual( exceptionEnd ) ) ) {\n\t\t\t\t\t\twriter.removeAttribute( 'restrictedEditingException', writer.createRange( exceptionStart, exceptionEnd ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( const range of ranges ) {\n\t\t\t\t\tif ( valueToSet ) {\n\t\t\t\t\t\twriter.setAttribute( 'restrictedEditingException', valueToSet, range );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.removeAttribute( 'restrictedEditingException', range );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport interface RestrictedEditingExceptionCommandParams {\n\tforceValue?: unknown;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmodeediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { RestrictedEditingExceptionCommand } from './restrictededitingexceptioncommand.js';\n\n/**\n * The standard editing mode editing feature.\n *\n * * It introduces the `restrictedEditingException` text attribute that is rendered as\n * a `<span>` element with the `restricted-editing-exception` CSS class.\n * * It registers the `'restrictedEditingException'` command.\n */\nexport class StandardEditingModeEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingModeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.model.schema.extend( '$text', { allowAttributes: [ 'restrictedEditingException' ] } );\n\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\tview: ( modelAttributeValue, { writer } ) => {\n\t\t\t\tif ( modelAttributeValue ) {\n\t\t\t\t\t// Make the restricted editing <span> outer-most in the view.\n\t\t\t\t\treturn writer.createAttributeElement( 'span', { class: 'restricted-editing-exception' }, { priority: -10 } );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\teditor.commands.add( 'restrictedEditingException', new RestrictedEditingExceptionCommand( editor ) );\n\n\t\teditor.editing.view.change( writer => {\n\t\t\tfor ( const root of editor.editing.view.document.roots ) {\n\t\t\t\twriter.addClass( 'ck-restricted-editing_mode_standard', root );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmodeui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { IconContentUnlock } from 'ckeditor5/src/icons.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\n/**\n * The standard editing mode UI feature.\n *\n * It introduces the `'restrictedEditingException'` button that marks text as unrestricted for editing.\n */\nexport class StandardEditingModeUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingModeUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'restrictedEditingException', () => {\n\t\t\tconst button = this._createButton( ButtonView );\n\n\t\t\tbutton.set( {\n\t\t\t\ttooltip: true,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:restrictedEditingException', () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for restricted editing exception command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command = this.editor.commands.get( 'restrictedEditingException' )!;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.icon = IconContentUnlock;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\t\tview.bind( 'label' ).to( command, 'value', value => {\n\t\t\treturn value ? t( 'Disable editing' ) : t( 'Enable editing' );\n\t\t} );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( 'restrictedEditingException' );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmode\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { StandardEditingModeEditing } from './standardeditingmodeediting.js';\nimport { StandardEditingModeUI } from './standardeditingmodeui.js';\n\nimport '../theme/restrictedediting.css';\n\n/**\n * The standard editing mode plugin.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:restricted-editing/standardeditingmodeediting~StandardEditingModeEditing standard mode editing feature}.\n * * The {@link module:restricted-editing/standardeditingmodeui~StandardEditingModeUI standard mode UI feature}.\n */\nexport class StandardEditingMode extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingMode' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic static get requires() {\n\t\treturn [ StandardEditingModeEditing, StandardEditingModeUI ] as const;\n\t}\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["index.js","../src/restrictededitingmode/utils.ts","../src/restrictededitingmodenavigationcommand.ts","../src/restrictededitingmode/converters.ts","../src/restrictededitingmodeediting.ts","../src/restrictededitingmodeui.ts","../src/restrictededitingmode.ts","../src/restrictededitingexceptioncommand.ts","../src/restrictededitingexceptionblockcommand.ts","../src/standardeditingmodeediting.ts","../src/standardeditingmodeui.ts","../src/standardeditingmode.ts"],"names":["getMarkerAtPosition","editor","position","marker","model","markers","markerRange","getExceptionRange","isPositionInRangeBoundaries","name","startsWith","range","containsPosition","end","isEqual","start","isSelectionInMarker","selection","isCollapsed","focus","containsRange","getFirstRange","getRange","wrapperElement","getContainedElement","is","createRangeIn","RestrictedEditingModeNavigationCommand","Command","_direction","direction","affectsData","refresh","isEnabled","_checkEnabled","execute","getNearestExceptionRange","change","writer","setSelection","document","selectionPosition","getFirstPosition","markerRanges","getMarkersGroup","isMarkerRangeTouching","isTouching","hasSameParentAs","isAfter","push","isBefore","length","sort","rangeA","rangeB","shift","HIGHLIGHT_CLASS","setupExceptionHighlighting","view","editing","highlightedMarkers","Set","registerPostFixer","modelSelection","anchor","modelWrapperElement","viewElement","mapper","toViewElement","addClass","add","markerNameToElements","conversion","for","dispatcher","on","removeHighlight","priority","item","values","removeClass","delete","resurrectCollapsedMarkerPostFixer","changeApplied","data","differ","getChangedMarkers","newRange","root","rootName","updateMarker","createRange","createPositionAt","oldRange","extendMarkerOnTypingPostFixer","schema","getChanges","type","checkChild","_tryExtendMarkerStart","_tryExtendMarkedEnd","upcastHighlightToMarker","config","evt","conversionApi","matcher","Matcher","matcherResult","match","viewItem","consumable","test","modelCursor","useWrapperElement","createElement","insert","modelRange","convertedChildrenRange","convertChildren","consume","markerName","fakeMarkerStart","fakeMarkerEnd","createPositionBefore","createPositionAfter","markerAtStart","getShiftedBy","getStart","getEnd","markerAtEnd","COMMAND_FORCE_DISABLE_ID","RestrictedEditingModeEditing","Plugin","_alwaysEnabled","_allowedInException","pluginName","licenseFeatureCode","isOfficialPlugin","isPremiumPlugin","define","allowedCommands","allowedAttributes","init","editingView","get","forEach","commandName","_setupSchema","_setupConversion","_setupCommandsToggling","_setupRestrictions","commands","listenTo","shiftKey","command","preventDefault","stopPropagation","stop","context","getSelectAllHandler","roots","removeMarker","enableCommand","clearForceDisabled","register","allowWhere","allowContentOf","isLimit","doc","markerNumber","classes","elementToElement","isInline","viewWriter","createAttributeElement","class","id","viewRange","toViewRange","rangeAfterWrap","wrap","element","getItems","isSimilar","bindElementToMarker","markerToHighlight","markerToElement","markerData","createUIElement","createEmptyElement","ensureNewMarkerIsFlatPostFixer","viewDoc","clipboard","plugins","restrictDeleteContent","insertTextCommand","disallowInputExecForWrongRange","isRangeInsideSingleMarker","content","createDocumentFragment","textNodes","Array","from","filter","node","attr","getAttributeKeys","includes","removeAttribute","append","method","addChildCheck","_disableCommands","_checkCommands","bind","rangeCount","_enableCommands","has","isDeleteCommandOnMarkerBoundaries","forceDisabled","eventInfo","domEventData","getCode","parseKeystroke","selectionRange","args","allowedToDelete","getIntersection","setTo","options","changedMarkers","isFlat","startIsHigherInTree","path","fixedStart","parent","fixedEnd","RestrictedEditingModeUI","t","ui","componentFactory","locale","dropdownView","createDropdown","listItems","Collection","_getButtonDefinitions","label","keystroke","_getButtonDefinition","addListToDropdown","role","buttonView","set","icon","IconContentLock","tooltip","isOn","_commandName","source","menuView","MenuBarMenuView","listView","MenuBarMenuListView","ariaLabel","panelView","children","listItemView","MenuBarMenuListItemView","_createMenuBarButton","delegate","to","items","MenuBarMenuListItemButtonView","definition","UIModel","withText","withKeystroke","RestrictedEditingMode","requires","RestrictedEditingExceptionCommand","value","getAttribute","checkAttributeInSelection","valueToSet","forceValue","undefined","ranges","getValidRanges","getRanges","setSelectionAttribute","isSameException","exceptionStart","getLastMatchingPosition","exceptionEnd","removeSelectionAttribute","setAttribute","RestrictedEditingExceptionBlockCommand","_getValue","blocks","getSelectedBlocks","blocksToUnwrap","map","block","findExceptionContentBlock","exception","_removeException","blocksToWrap","findException","checkCanBeWrapped","_applyException","firstBlock","first","getRangesOfBlockGroups","reverse","groupRange","isAtStart","isAtEnd","unwrap","positionBefore","move","split","positionAfter","exceptionsToMerge","previousSibling","at","nextSibling","unshift","reduce","currentException","nextException","merge","removeDisallowedAttributes","elementOrPosition","findAncestor","includeSelf","startPosition","i","nextBlock","parentContext","createContext","StandardEditingModeEditing","extend","allowAttributes","addAttributeCheck","changes","remove","changed","entry","child","isEmpty","hasAttribute","checkAttribute","getChildren","nodeBefore","nodeAfter","elementToAttribute","registerFallbackUpcastConverter","attributeToElement","modelAttributeValue","modelText","createText","restrictedEditingException","safeInsert","offsetSize","StandardEditingModeUI","buttons","create","button","addToolbarToDropdown","enableActiveItemFocusOnDropdownOpen","isVertical","IconContentUnlock","extendTemplate","attributes","toMany","areEnabled","some","_createButton","ButtonView","isToggleable","ButtonClass","StandardEditingMode"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { getCode, parseKeystroke, Collection, first } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { Matcher } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { IconContentLock, IconContentUnlock } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, UIModel, addToolbarToDropdown, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module restricted-editing/restrictededitingmode/utils\n */ /**\n * Returns a single \"restricted-editing-exception\" marker at a given position. Contrary to\n * {@link module:engine/model/markercollection~MarkerCollection#getMarkersAtPosition}, it returnd a marker also when the postion is\n * equal to one of the marker's start or end positions.\n *\n * @internal\n */ function getMarkerAtPosition(editor, position) {\n for (const marker of editor.model.markers){\n const markerRange = getExceptionRange(marker, editor.model);\n if (isPositionInRangeBoundaries(markerRange, position)) {\n if (marker.name.startsWith('restrictedEditingException:')) {\n return marker;\n }\n }\n }\n}\n/**\n * Checks if the position is fully contained in the range. Positions equal to range start or end are considered \"in\".\n *\n * @internal\n */ function isPositionInRangeBoundaries(range, position) {\n return range.containsPosition(position) || range.end.isEqual(position) || range.start.isEqual(position);\n}\n/**\n * Checks if the selection is fully contained in the marker. Positions on marker boundaries are considered \"in\".\n *\n * ```xml\n * <marker>[]foo</marker> -> true\n * <marker>f[oo]</marker> -> true\n * <marker>f[oo</marker> ba]r -> false\n * <marker>foo</marker> []bar -> false\n * ```\n *\n * @internal\n */ function isSelectionInMarker(selection, model, marker) {\n if (!marker) {\n return false;\n }\n const markerRange = getExceptionRange(marker, model);\n if (selection.isCollapsed) {\n return isPositionInRangeBoundaries(markerRange, selection.focus);\n }\n return markerRange.containsRange(selection.getFirstRange(), true);\n}\n/**\n * Returns the marker range asjusted to the inside of exception wrapper element if needed.\n *\n * @internal\n */ function getExceptionRange(marker, model) {\n const markerRange = marker.getRange();\n const wrapperElement = markerRange.getContainedElement();\n if (wrapperElement && wrapperElement.is('element', 'restrictedEditingException')) {\n return model.createRangeIn(wrapperElement);\n }\n return markerRange;\n}\n\n/**\n * The command that allows navigation across the exceptions in the edited document.\n */ class RestrictedEditingModeNavigationCommand extends Command {\n /**\n\t * The direction of the command.\n\t */ _direction;\n /**\n\t * Creates an instance of the command.\n\t *\n\t * @param editor The editor instance.\n\t * @param direction The direction that the command works.\n\t */ constructor(editor, direction){\n super(editor);\n // It does not affect data so should be enabled in read-only mode and in restricted editing mode.\n this.affectsData = false;\n this._direction = direction;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */ execute() {\n const position = getNearestExceptionRange(this.editor.model, this._direction);\n if (!position) {\n return;\n }\n this.editor.model.change((writer)=>{\n writer.setSelection(position);\n });\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */ _checkEnabled() {\n return !!getNearestExceptionRange(this.editor.model, this._direction);\n }\n}\n/**\n * Returns the range of the exception marker closest to the last position of the model selection.\n */ function getNearestExceptionRange(model, direction) {\n const selection = model.document.selection;\n const selectionPosition = selection.getFirstPosition();\n const markerRanges = [];\n // Get all exception marker positions that start after/before the selection position.\n for (const marker of model.markers.getMarkersGroup('restrictedEditingException')){\n const markerRange = getExceptionRange(marker, model);\n // Checking parent because there two positions <paragraph>foo^</paragraph><paragraph>^bar</paragraph>\n // are touching but they will represent different markers.\n const isMarkerRangeTouching = selectionPosition.isTouching(markerRange.start) && selectionPosition.hasSameParentAs(markerRange.start) || selectionPosition.isTouching(markerRange.end) && selectionPosition.hasSameParentAs(markerRange.end);\n // <paragraph>foo <marker≥b[]ar</marker> baz</paragraph>\n // <paragraph>foo <marker≥b[ar</marker> ba]z</paragraph>\n // <paragraph>foo <marker≥bar</marker>[] baz</paragraph>\n // <paragraph>foo []<marker≥bar</marker> baz</paragraph>\n if (markerRange.containsPosition(selectionPosition) || isMarkerRangeTouching) {\n continue;\n }\n if (direction === 'forward' && markerRange.start.isAfter(selectionPosition)) {\n markerRanges.push(markerRange);\n } else if (direction === 'backward' && markerRange.end.isBefore(selectionPosition)) {\n markerRanges.push(markerRange);\n }\n }\n if (!markerRanges.length) {\n return;\n }\n // Get the marker closest to the selection position among many. To know that, we need to sort\n // them first.\n return markerRanges.sort((rangeA, rangeB)=>{\n if (direction === 'forward') {\n return rangeA.start.isAfter(rangeB.start) ? 1 : -1;\n } else {\n return rangeA.start.isBefore(rangeB.start) ? 1 : -1;\n }\n }).shift();\n}\n\nconst HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';\n/**\n * Adds a visual highlight style to a restricted editing exception that the selection is anchored to.\n *\n * The highlight is turned on by adding the `.restricted-editing-exception_selected` class to the\n * exception in the view:\n *\n * * The class is removed before the conversion starts, as callbacks added with the `'highest'` priority\n * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n * * The class is added in the view post-fixer, after other changes in the model tree are converted to the view.\n *\n * This way, adding and removing the highlight does not interfere with conversion.\n *\n * @internal\n */ function setupExceptionHighlighting(editor) {\n const view = editor.editing.view;\n const model = editor.model;\n const highlightedMarkers = new Set();\n // Adding the class.\n view.document.registerPostFixer((writer)=>{\n const modelSelection = model.document.selection;\n const marker = getMarkerAtPosition(editor, modelSelection.anchor);\n if (!marker) {\n return false;\n }\n const modelWrapperElement = marker.getRange().getContainedElement();\n if (modelWrapperElement && modelWrapperElement.is('element', 'restrictedEditingException')) {\n const viewElement = editor.editing.mapper.toViewElement(modelWrapperElement);\n writer.addClass(HIGHLIGHT_CLASS, viewElement);\n highlightedMarkers.add(viewElement);\n } else {\n for (const viewElement of editor.editing.mapper.markerNameToElements(marker.name)){\n writer.addClass(HIGHLIGHT_CLASS, viewElement);\n highlightedMarkers.add(viewElement);\n }\n }\n return false;\n });\n // Removing the class.\n editor.conversion.for('editingDowncast').add((dispatcher)=>{\n // Make sure the highlight is removed on every possible event, before conversion is started.\n dispatcher.on('insert', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('remove', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('attribute', removeHighlight, {\n priority: 'highest'\n });\n dispatcher.on('cleanSelection', removeHighlight);\n function removeHighlight() {\n view.change((writer)=>{\n for (const item of highlightedMarkers.values()){\n writer.removeClass(HIGHLIGHT_CLASS, item);\n highlightedMarkers.delete(item);\n }\n });\n }\n });\n}\n/**\n * A post-fixer that prevents removing a collapsed marker from the document.\n *\n * @internal\n */ function resurrectCollapsedMarkerPostFixer(editor) {\n // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n return (writer)=>{\n let changeApplied = false;\n for (const { name, data } of editor.model.document.differ.getChangedMarkers()){\n if (name.startsWith('restrictedEditingException') && data.newRange && data.newRange.root.rootName == '$graveyard') {\n writer.updateMarker(name, {\n range: writer.createRange(writer.createPositionAt(data.oldRange.start))\n });\n changeApplied = true;\n }\n }\n return changeApplied;\n };\n}\n/**\n * A post-fixer that extends a marker when the user types on its boundaries.\n *\n * @internal\n */ function extendMarkerOnTypingPostFixer(editor) {\n // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n return (writer)=>{\n let changeApplied = false;\n const schema = editor.model.schema;\n for (const change of editor.model.document.differ.getChanges()){\n if (change.type == 'insert' && schema.checkChild('$block', change.name)) {\n changeApplied = _tryExtendMarkerStart(editor, change.position, change.length, writer) || changeApplied;\n changeApplied = _tryExtendMarkedEnd(editor, change.position, change.length, writer) || changeApplied;\n }\n }\n return changeApplied;\n };\n}\n/**\n * A view highlight-to-marker conversion helper.\n *\n * @param config Conversion configuration.\n * @internal\n */ function upcastHighlightToMarker(config) {\n return (dispatcher)=>dispatcher.on('element', (evt, data, conversionApi)=>{\n const { writer } = conversionApi;\n const matcher = new Matcher(config.view);\n const matcherResult = matcher.match(data.viewItem);\n // If there is no match, this callback should not do anything.\n if (!matcherResult) {\n return;\n }\n const match = matcherResult.match;\n // Force consuming element's name (taken from upcast helpers elementToElement converter).\n match.name = true;\n if (!conversionApi.consumable.test(data.viewItem, match)) {\n return;\n }\n let position = data.modelCursor;\n let wrapperElement = null;\n if (config.useWrapperElement) {\n if (!conversionApi.schema.checkChild(position, 'restrictedEditingException')) {\n return;\n }\n wrapperElement = writer.createElement('restrictedEditingException');\n writer.insert(wrapperElement, position);\n position = writer.createPositionAt(wrapperElement, 0);\n }\n const { modelRange: convertedChildrenRange } = conversionApi.convertChildren(data.viewItem, position);\n conversionApi.consumable.consume(data.viewItem, match);\n const markerName = config.model();\n const fakeMarkerStart = writer.createElement('$marker', {\n 'data-name': markerName\n });\n const fakeMarkerEnd = writer.createElement('$marker', {\n 'data-name': markerName\n });\n if (wrapperElement) {\n writer.insert(fakeMarkerStart, writer.createPositionBefore(wrapperElement));\n writer.insert(fakeMarkerEnd, writer.createPositionAfter(wrapperElement));\n } else {\n // Insert in reverse order to use converter content positions directly (without recalculating).\n writer.insert(fakeMarkerEnd, convertedChildrenRange.end);\n writer.insert(fakeMarkerStart, convertedChildrenRange.start);\n }\n data.modelRange = writer.createRange(writer.createPositionBefore(fakeMarkerStart), writer.createPositionAfter(fakeMarkerEnd));\n data.modelCursor = data.modelRange.end;\n });\n}\n/**\n * Extend marker if change detected on marker's start position.\n */ function _tryExtendMarkerStart(editor, position, length, writer) {\n const markerAtStart = getMarkerAtPosition(editor, position.getShiftedBy(length));\n if (markerAtStart && markerAtStart.getStart().isEqual(position.getShiftedBy(length))) {\n writer.updateMarker(markerAtStart, {\n range: writer.createRange(markerAtStart.getStart().getShiftedBy(-length), markerAtStart.getEnd())\n });\n return true;\n }\n return false;\n}\n/**\n * Extend marker if change detected on marker's end position.\n */ function _tryExtendMarkedEnd(editor, position, length, writer) {\n const markerAtEnd = getMarkerAtPosition(editor, position);\n if (markerAtEnd && markerAtEnd.getEnd().isEqual(position)) {\n writer.updateMarker(markerAtEnd, {\n range: writer.createRange(markerAtEnd.getStart(), markerAtEnd.getEnd().getShiftedBy(length))\n });\n return true;\n }\n return false;\n}\n\nconst COMMAND_FORCE_DISABLE_ID = 'RestrictedEditingMode';\n/**\n * The restricted editing mode editing feature.\n *\n * * It introduces the exception marker group that renders to `<span>` elements with the `restricted-editing-exception` CSS class.\n * * It registers the `'goToPreviousRestrictedEditingException'` and `'goToNextRestrictedEditingException'` commands.\n * * It also enables highlighting exception markers that are selected.\n */ class RestrictedEditingModeEditing extends Plugin {\n /**\n\t * Command names that are enabled outside the non-restricted regions.\n\t */ _alwaysEnabled;\n /**\n\t * Commands allowed in non-restricted areas.\n\t *\n\t * Commands always enabled combine typing feature commands: `'input'`, `'insertText'`, `'delete'`, and `'deleteForward'` with\n\t * commands defined in the feature configuration.\n\t */ _allowedInException;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingModeEditing';\n }\n /**\n\t * @inheritDoc\n\t * @internal\n\t */ static get licenseFeatureCode() {\n return 'RED';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get isPremiumPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('restrictedEditing', {\n allowedCommands: [\n 'bold',\n 'italic',\n 'link',\n 'unlink'\n ],\n allowedAttributes: [\n 'bold',\n 'italic',\n 'linkHref'\n ]\n });\n this._alwaysEnabled = new Set([\n 'undo',\n 'redo'\n ]);\n this._allowedInException = new Set([\n 'input',\n 'insertText',\n 'delete',\n 'deleteForward'\n ]);\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const allowedCommands = editor.config.get('restrictedEditing.allowedCommands');\n allowedCommands.forEach((commandName)=>this._allowedInException.add(commandName));\n this._setupSchema();\n this._setupConversion();\n this._setupCommandsToggling();\n this._setupRestrictions();\n // Commands & keystrokes that allow navigation in the content.\n editor.commands.add('goToPreviousRestrictedEditingException', new RestrictedEditingModeNavigationCommand(editor, 'backward'));\n editor.commands.add('goToNextRestrictedEditingException', new RestrictedEditingModeNavigationCommand(editor, 'forward'));\n this.listenTo(editingView.document, 'tab', (evt, data)=>{\n const commandName = !data.shiftKey ? 'goToNextRestrictedEditingException' : 'goToPreviousRestrictedEditingException';\n const command = editor.commands.get(commandName);\n if (command.isEnabled) {\n editor.execute(commandName);\n // Stop the event in the DOM: no listener in the web page will be triggered by this event.\n data.preventDefault();\n data.stopPropagation();\n }\n // Stop the event bubbling in the editor: no more callbacks will be executed for this keystroke.\n evt.stop();\n }, {\n context: '$capture'\n });\n this.listenTo(editingView.document, 'keydown', getSelectAllHandler(editor), {\n priority: 'high'\n });\n editingView.change((writer)=>{\n for (const root of editingView.document.roots){\n writer.addClass('ck-restricted-editing_mode_restricted', root);\n }\n });\n // Remove existing restricted editing markers when setting new data to prevent marker resurrection.\n // Without this, markers from removed content would be incorrectly restored due to the resurrection mechanism.\n // See more: https://github.com/ckeditor/ckeditor5/issues/9646#issuecomment-843064995\n editor.data.on('set', ()=>{\n editor.model.change((writer)=>{\n for (const marker of editor.model.markers.getMarkersGroup('restrictedEditingException')){\n writer.removeMarker(marker.name);\n }\n });\n }, {\n priority: 'high'\n });\n }\n /**\n\t * Makes the given command always enabled in the restricted editing mode (regardless\n\t * of selection location).\n\t *\n\t * To enable some commands in non-restricted areas of the content use\n\t * {@link module:restricted-editing/restrictededitingconfig~RestrictedEditingConfig#allowedCommands} configuration option.\n\t *\n\t * @param commandName Name of the command to enable.\n\t */ enableCommand(commandName) {\n const command = this.editor.commands.get(commandName);\n command.clearForceDisabled(COMMAND_FORCE_DISABLE_ID);\n this._alwaysEnabled.add(commandName);\n }\n /**\n\t * Registers block exception wrapper in the schema.\n\t */ _setupSchema() {\n const schema = this.editor.model.schema;\n schema.register('restrictedEditingException', {\n allowWhere: '$block',\n allowContentOf: '$container',\n isLimit: true\n });\n }\n /**\n\t * Sets up the restricted mode editing conversion:\n\t *\n\t * * ucpast & downcast converters,\n\t * * marker highlighting in the edting area,\n\t * * marker post-fixers.\n\t */ _setupConversion() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n // The restricted editing does not attach additional data to the zones so there's no need for smarter markers managing.\n // Also, the markers will only be created when loading the data.\n let markerNumber = 0;\n editor.conversion.for('upcast').add(upcastHighlightToMarker({\n view: {\n name: 'span',\n classes: 'restricted-editing-exception'\n },\n model: ()=>{\n markerNumber++; // Starting from restrictedEditingException:1 marker.\n return `restrictedEditingException:inline:${markerNumber}`;\n }\n }));\n editor.conversion.for('upcast').add(upcastHighlightToMarker({\n view: {\n name: 'div',\n classes: 'restricted-editing-exception'\n },\n model: ()=>{\n markerNumber++; // Starting from restrictedEditingException:1 marker.\n return `restrictedEditingException:block:${markerNumber}`;\n },\n useWrapperElement: true\n }));\n // Block exception wrapper.\n editor.conversion.for('downcast').elementToElement({\n model: 'restrictedEditingException',\n view: {\n name: 'div',\n classes: 'restricted-editing-exception'\n }\n });\n // Currently the marker helpers are tied to other use-cases and do not render a collapsed marker as highlight.\n // Also, markerToHighlight cannot convert marker on an inline object. It handles only text and widgets,\n // but it is not a case in the data pipeline. That's why there are 3 downcast converters for them:\n //\n // 1. The custom inline item (text or inline object) converter (but not the selection).\n editor.conversion.for('downcast').add((dispatcher)=>{\n dispatcher.on('addMarker:restrictedEditingException:inline', (evt, data, conversionApi)=>{\n // Only convert per-item conversion.\n if (!data.item) {\n return;\n }\n // Do not convert the selection or non-inline items.\n if (data.item.is('selection') || !conversionApi.schema.isInline(data.item)) {\n return;\n }\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewElement = viewWriter.createAttributeElement('span', {\n class: 'restricted-editing-exception'\n }, {\n id: data.markerName,\n priority: -10\n });\n const viewRange = conversionApi.mapper.toViewRange(data.range);\n const rangeAfterWrap = viewWriter.wrap(viewRange, viewElement);\n for (const element of rangeAfterWrap.getItems()){\n if (element.is('attributeElement') && element.isSimilar(viewElement)) {\n conversionApi.mapper.bindElementToMarker(element, data.markerName);\n break;\n }\n }\n });\n });\n // 2. The marker-to-highlight converter for the document selection.\n editor.conversion.for('downcast').markerToHighlight({\n model: 'restrictedEditingException:inline',\n // Use callback to return new object every time new marker instance is created - otherwise it will be seen as the same marker.\n view: ()=>{\n return {\n name: 'span',\n classes: 'restricted-editing-exception',\n priority: -10\n };\n }\n });\n // 3. And for collapsed marker we need to render it as an element.\n // Additionally, the editing pipeline should always display a collapsed marker.\n editor.conversion.for('editingDowncast').markerToElement({\n model: 'restrictedEditingException:inline',\n view: (markerData, { writer })=>{\n return writer.createUIElement('span', {\n class: 'restricted-editing-exception restricted-editing-exception_collapsed'\n });\n }\n });\n editor.conversion.for('dataDowncast').markerToElement({\n model: 'restrictedEditingException:inline',\n view: (markerData, { writer })=>{\n return writer.createEmptyElement('span', {\n class: 'restricted-editing-exception'\n });\n }\n });\n doc.registerPostFixer(extendMarkerOnTypingPostFixer(editor));\n doc.registerPostFixer(resurrectCollapsedMarkerPostFixer(editor));\n doc.registerPostFixer(ensureNewMarkerIsFlatPostFixer(editor));\n setupExceptionHighlighting(editor);\n }\n /**\n\t * Setups additional editing restrictions beyond command toggling:\n\t *\n\t * * delete content range trimming\n\t * * disabling input command outside exception marker\n\t * * restricting clipboard holder to text only\n\t * * restricting text attributes in content\n\t */ _setupRestrictions() {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const viewDoc = editor.editing.view.document;\n const clipboard = editor.plugins.get('ClipboardPipeline');\n this.listenTo(model, 'deleteContent', restrictDeleteContent(editor), {\n priority: 'high'\n });\n const insertTextCommand = editor.commands.get('insertText');\n // The restricted editing might be configured without insert text support - ie allow only bolding or removing text.\n // This check is bit synthetic since only tests are used this way.\n if (insertTextCommand) {\n this.listenTo(insertTextCommand, 'execute', disallowInputExecForWrongRange(editor), {\n priority: 'high'\n });\n }\n // Block clipboard outside exception marker on paste and drop.\n this.listenTo(clipboard, 'contentInsertion', (evt, data)=>{\n if (!isRangeInsideSingleMarker(editor, selection.getFirstRange())) {\n evt.stop();\n }\n const marker = getMarkerAtPosition(editor, selection.focus);\n // Reduce content pasted into inline exception to text nodes only. Also strip not allowed attributes.\n if (marker && marker.name.startsWith('restrictedEditingException:inline:')) {\n const allowedAttributes = editor.config.get('restrictedEditing.allowedAttributes');\n model.change((writer)=>{\n const content = writer.createDocumentFragment();\n const textNodes = Array.from(writer.createRangeIn(data.content).getItems()).filter((node)=>node.is('$textProxy'));\n for (const item of textNodes){\n for (const attr of item.getAttributeKeys()){\n if (!allowedAttributes.includes(attr)) {\n writer.removeAttribute(attr, item);\n }\n }\n writer.append(item, content);\n }\n data.content = content;\n });\n }\n });\n // Block clipboard outside exception marker on cut.\n this.listenTo(viewDoc, 'clipboardOutput', (evt, data)=>{\n if (data.method == 'cut' && !isRangeInsideSingleMarker(editor, selection.getFirstRange())) {\n evt.stop();\n }\n }, {\n priority: 'high'\n });\n // Do not allow pasting/dropping block exception wrapper.\n model.schema.addChildCheck((context)=>{\n if (context.startsWith('$clipboardHolder')) {\n return false;\n }\n }, 'restrictedEditingException');\n }\n /**\n\t * Sets up the command toggling which enables or disables commands based on the user selection.\n\t */ _setupCommandsToggling() {\n const editor = this.editor;\n const model = editor.model;\n const doc = model.document;\n this._disableCommands();\n this.listenTo(doc.selection, 'change', this._checkCommands.bind(this));\n this.listenTo(doc, 'change:data', this._checkCommands.bind(this));\n }\n /**\n\t * Checks if commands should be enabled or disabled based on the current selection.\n\t */ _checkCommands() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n if (selection.rangeCount > 1) {\n this._disableCommands();\n return;\n }\n const marker = getMarkerAtPosition(editor, selection.focus);\n this._disableCommands();\n if (isSelectionInMarker(selection, editor.model, marker)) {\n this._enableCommands(marker);\n }\n }\n /**\n\t * Enables commands in non-restricted regions.\n\t */ _enableCommands(marker) {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n for (const [commandName, command] of editor.commands){\n if (!command.affectsData || this._alwaysEnabled.has(commandName)) {\n continue;\n }\n // Enable ony those commands that are allowed in the exception marker.\n // In block exceptions all commands are enabled.\n if (!marker.name.startsWith('restrictedEditingException:block:') && !this._allowedInException.has(commandName)) {\n continue;\n }\n // Do not enable 'delete' and 'deleteForward' commands on the exception marker boundaries.\n if (isDeleteCommandOnMarkerBoundaries(commandName, selection, getExceptionRange(marker, editor.model))) {\n continue;\n }\n command.clearForceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n\t * Disables commands outside non-restricted regions.\n\t */ _disableCommands() {\n const editor = this.editor;\n for (const [commandName, command] of editor.commands){\n if (!command.affectsData || this._alwaysEnabled.has(commandName)) {\n continue;\n }\n command.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n}\n/**\n * Helper for handling Ctrl+A keydown behaviour.\n */ function getSelectAllHandler(editor) {\n return (eventInfo, domEventData)=>{\n if (getCode(domEventData) != parseKeystroke('Ctrl+A')) {\n return;\n }\n const model = editor.model;\n const selection = editor.model.document.selection;\n const marker = getMarkerAtPosition(editor, selection.focus);\n if (!marker) {\n return;\n }\n // If selection range is inside a restricted editing exception, select text only within the exception.\n //\n // Note: Second Ctrl+A press is also blocked and it won't select the entire text in the editor.\n const selectionRange = selection.getFirstRange();\n const markerRange = getExceptionRange(marker, editor.model);\n if (markerRange.containsRange(selectionRange, true) || selection.isCollapsed) {\n eventInfo.stop();\n domEventData.preventDefault();\n domEventData.stopPropagation();\n model.change((writer)=>{\n writer.setSelection(markerRange);\n });\n }\n };\n}\n/**\n * Additional rule for enabling \"delete\" and \"deleteForward\" commands if selection is on range boundaries:\n *\n * Does not allow to enable command when selection focus is:\n * - is on marker start - \"delete\" - to prevent removing content before marker\n * - is on marker end - \"deleteForward\" - to prevent removing content after marker\n */ function isDeleteCommandOnMarkerBoundaries(commandName, selection, markerRange) {\n if (commandName == 'delete' && selection.isCollapsed && markerRange.start.isTouching(selection.focus)) {\n return true;\n }\n // Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.\n if (commandName == 'deleteForward' && selection.isCollapsed && markerRange.end.isTouching(selection.focus)) {\n return true;\n }\n return false;\n}\n/**\n * Ensures that model.deleteContent() does not delete outside exception markers ranges.\n *\n * The enforced restrictions are:\n * - only execute deleteContent() inside exception markers\n * - restrict passed selection to exception marker\n */ function restrictDeleteContent(editor) {\n return (evt, args)=>{\n const [selection] = args;\n const marker = getMarkerAtPosition(editor, selection.focus) || getMarkerAtPosition(editor, selection.anchor);\n // Stop method execution if marker was not found at selection focus.\n if (!marker) {\n evt.stop();\n return;\n }\n // Collapsed selection inside exception marker does not require fixing.\n if (selection.isCollapsed) {\n return;\n }\n // Shrink the selection to the range inside exception marker.\n const allowedToDelete = getExceptionRange(marker, editor.model).getIntersection(selection.getFirstRange());\n // Some features uses selection passed to model.deleteContent() to set the selection afterwards. For this we need to properly modify\n // either the document selection using change block...\n if (selection.is('documentSelection')) {\n editor.model.change((writer)=>{\n writer.setSelection(allowedToDelete);\n });\n } else {\n selection.setTo(allowedToDelete);\n }\n };\n}\n/**\n * Ensures that input command is executed with a range that is inside exception marker.\n *\n * This restriction is due to fact that using native spell check changes text outside exception marker.\n */ function disallowInputExecForWrongRange(editor) {\n return (evt, args)=>{\n const [options] = args;\n const { range } = options;\n // Only check \"input\" command executed with a range value.\n // Selection might be set in exception marker but passed range might point elsewhere.\n if (!range) {\n return;\n }\n if (!isRangeInsideSingleMarker(editor, range)) {\n evt.stop();\n }\n };\n}\nfunction isRangeInsideSingleMarker(editor, range) {\n const markerAtStart = getMarkerAtPosition(editor, range.start);\n const markerAtEnd = getMarkerAtPosition(editor, range.end);\n return markerAtStart && markerAtEnd && markerAtEnd === markerAtStart;\n}\n/**\n * Checks if new marker range is flat. Non-flat ranges might appear during upcast conversion in nested structures, ie tables.\n *\n * Note: This marker fixer only consider case which is possible to create using StandardEditing mode plugin.\n * Markers created by developer in the data might break in many other ways.\n *\n * See #6003.\n */ function ensureNewMarkerIsFlatPostFixer(editor) {\n return (writer)=>{\n let changeApplied = false;\n const changedMarkers = editor.model.document.differ.getChangedMarkers();\n for (const { data, name } of changedMarkers){\n if (!name.startsWith('restrictedEditingException')) {\n continue;\n }\n const newRange = data.newRange;\n if (!data.oldRange && !newRange.isFlat) {\n const start = newRange.start;\n const end = newRange.end;\n const startIsHigherInTree = start.path.length > end.path.length;\n const fixedStart = startIsHigherInTree ? newRange.start : writer.createPositionAt(end.parent, 0);\n const fixedEnd = startIsHigherInTree ? writer.createPositionAt(start.parent, 'end') : newRange.end;\n writer.updateMarker(name, {\n range: writer.createRange(fixedStart, fixedEnd)\n });\n changeApplied = true;\n }\n }\n return changeApplied;\n };\n}\n\n/**\n * The restricted editing mode UI feature.\n *\n * It introduces the `'restrictedEditing'` dropdown that offers tools to navigate between exceptions across\n * the document.\n */ class RestrictedEditingModeUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingModeUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('restrictedEditing', (locale)=>{\n const dropdownView = createDropdown(locale);\n const listItems = new Collection();\n this._getButtonDefinitions().forEach(({ commandName, label, keystroke })=>{\n listItems.add(this._getButtonDefinition(commandName, label, keystroke));\n });\n addListToDropdown(dropdownView, listItems, {\n role: 'menu'\n });\n dropdownView.buttonView.set({\n label: t('Navigate editable regions'),\n icon: IconContentLock,\n tooltip: true,\n isEnabled: true,\n isOn: false\n });\n this.listenTo(dropdownView, 'execute', (evt)=>{\n const { _commandName } = evt.source;\n editor.execute(_commandName);\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n editor.ui.componentFactory.add('menuBar:restrictedEditing', (locale)=>{\n const menuView = new MenuBarMenuView(locale);\n const listView = new MenuBarMenuListView(locale);\n listView.set({\n ariaLabel: t('Navigate editable regions'),\n role: 'menu'\n });\n menuView.buttonView.set({\n label: t('Navigate editable regions'),\n icon: IconContentLock\n });\n menuView.panelView.children.add(listView);\n this._getButtonDefinitions().forEach(({ commandName, label, keystroke })=>{\n const listItemView = new MenuBarMenuListItemView(locale, menuView);\n const buttonView = this._createMenuBarButton(label, commandName, keystroke);\n buttonView.delegate('execute').to(menuView);\n listItemView.children.add(buttonView);\n listView.items.add(listItemView);\n });\n return menuView;\n });\n }\n /**\n\t * Creates a button for restricted editing command to use in menu bar.\n\t */ _createMenuBarButton(label, commandName, keystroke) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const view = new MenuBarMenuListItemButtonView(editor.locale);\n view.set({\n label,\n keystroke,\n isEnabled: true,\n isOn: false\n });\n view.bind('isEnabled').to(command);\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n }\n /**\n\t * Returns a definition of the navigation button to be used in the dropdown.\n\t *\n\t * @param commandName The name of the command that the button represents.\n\t * @param label The translated label of the button.\n\t * @param keystroke The button keystroke.\n\t */ _getButtonDefinition(commandName, label, keystroke) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const definition = {\n type: 'button',\n model: new UIModel({\n label,\n withText: true,\n keystroke,\n withKeystroke: true,\n role: 'menuitem',\n _commandName: commandName\n })\n };\n definition.model.bind('isEnabled').to(command, 'isEnabled');\n return definition;\n }\n /**\n\t * Returns definitions for UI buttons.\n\t *\n\t * @internal\n\t */ _getButtonDefinitions() {\n const t = this.editor.locale.t;\n return [\n {\n commandName: 'goToPreviousRestrictedEditingException',\n label: t('Previous editable region'),\n keystroke: 'Shift+Tab'\n },\n {\n commandName: 'goToNextRestrictedEditingException',\n label: t('Next editable region'),\n keystroke: 'Tab'\n }\n ];\n }\n}\n\n/**\n * The restricted editing mode plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:restricted-editing/restrictededitingmodeediting~RestrictedEditingModeEditing restricted mode editing feature}.\n * * The {@link module:restricted-editing/restrictededitingmodeui~RestrictedEditingModeUI restricted mode UI feature}.\n */ class RestrictedEditingMode extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'RestrictedEditingMode';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n RestrictedEditingModeEditing,\n RestrictedEditingModeUI\n ];\n }\n}\n\n/**\n * The command that toggles exceptions from the restricted editing on text.\n */ class RestrictedEditingExceptionCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = !!doc.selection.getAttribute('restrictedEditingException');\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'restrictedEditingException');\n }\n /**\n\t * @inheritDoc\n\t */ execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const valueToSet = options.forceValue === undefined ? !this.value : options.forceValue;\n model.change((writer)=>{\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'restrictedEditingException');\n if (selection.isCollapsed) {\n if (valueToSet) {\n writer.setSelectionAttribute('restrictedEditingException', valueToSet);\n } else {\n const isSameException = (value)=>{\n return value.item.getAttribute('restrictedEditingException') === this.value;\n };\n const focus = selection.focus;\n const exceptionStart = focus.getLastMatchingPosition(isSameException, {\n direction: 'backward'\n });\n const exceptionEnd = focus.getLastMatchingPosition(isSameException);\n writer.removeSelectionAttribute('restrictedEditingException');\n if (!(focus.isEqual(exceptionStart) || focus.isEqual(exceptionEnd))) {\n writer.removeAttribute('restrictedEditingException', writer.createRange(exceptionStart, exceptionEnd));\n }\n }\n } else {\n for (const range of ranges){\n if (valueToSet) {\n writer.setAttribute('restrictedEditingException', valueToSet, range);\n } else {\n writer.removeAttribute('restrictedEditingException', range);\n }\n }\n }\n });\n }\n}\n\n/**\n * The command that toggles exception blocks for the restricted editing.\n */ class RestrictedEditingExceptionBlockCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * Wraps or unwraps the selected blocks with non-restricted area.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.forceValue If set, it will force the command behavior. If `true`, the command will apply a block exception,\n\t * otherwise the command will remove the block exception. If not set, the command will act basing on its current value.\n\t */ execute(options = {}) {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n const blocks = Array.from(selection.getSelectedBlocks());\n const value = options.forceValue === undefined ? !this.value : options.forceValue;\n model.change((writer)=>{\n if (!value) {\n const blocksToUnwrap = blocks.map((block)=>{\n // Find blocks directly nested inside an exception.\n return findExceptionContentBlock(block);\n }).filter((exception)=>!!exception);\n this._removeException(writer, blocksToUnwrap);\n } else {\n const blocksToWrap = blocks.filter((block)=>{\n // Already wrapped blocks needs to be considered while wrapping too\n // in order to reuse their wrapper elements.\n return findException(block) || checkCanBeWrapped(schema, block);\n });\n this._applyException(writer, blocksToWrap);\n }\n });\n }\n /**\n\t * Checks the command's {@link #value}.\n\t */ _getValue() {\n const selection = this.editor.model.document.selection;\n const firstBlock = first(selection.getSelectedBlocks());\n return !!(firstBlock && findException(firstBlock));\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */ _checkEnabled() {\n if (this.value) {\n return true;\n }\n const selection = this.editor.model.document.selection;\n const schema = this.editor.model.schema;\n const firstBlock = first(selection.getSelectedBlocks());\n if (!firstBlock) {\n return false;\n }\n return checkCanBeWrapped(schema, firstBlock);\n }\n /**\n\t * Unwraps the exception from given blocks.\n\t *\n\t * If blocks which are supposed to be unwrapped are in the middle of an exception,\n\t * start it or end it, then the exception will be split (if needed) and the blocks\n\t * will be moved out of it, so other exception blocks remained wrapped.\n\t */ _removeException(writer, blocks) {\n // Unwrap all groups of block. Iterate in the reverse order to not break following ranges.\n getRangesOfBlockGroups(writer, blocks).reverse().forEach((groupRange)=>{\n if (groupRange.start.isAtStart && groupRange.end.isAtEnd) {\n writer.unwrap(groupRange.start.parent);\n return;\n }\n // The group of blocks are at the beginning of an exception so let's move them left (out of the exception).\n if (groupRange.start.isAtStart) {\n const positionBefore = writer.createPositionBefore(groupRange.start.parent);\n writer.move(groupRange, positionBefore);\n return;\n }\n // The blocks are in the middle of an exception so we need to split the exception after the last block\n // so we move the items there.\n if (!groupRange.end.isAtEnd) {\n writer.split(groupRange.end);\n }\n // Now we are sure that groupRange.end.isAtEnd is true, so let's move the blocks right.\n const positionAfter = writer.createPositionAfter(groupRange.end.parent);\n writer.move(groupRange, positionAfter);\n });\n }\n /**\n\t * Applies the exception to given blocks.\n\t */ _applyException(writer, blocks) {\n const schema = this.editor.model.schema;\n const exceptionsToMerge = [];\n // Wrap all groups of block. Iterate in the reverse order to not break following ranges.\n getRangesOfBlockGroups(writer, blocks).reverse().forEach((groupRange)=>{\n let exception = findException(groupRange.start);\n if (!exception) {\n exception = writer.createElement('restrictedEditingException');\n writer.wrap(groupRange, exception);\n }\n exceptionsToMerge.push(exception);\n });\n // Merge subsequent exception elements. Reverse the order again because this time we want to go through\n // the exception elements in the source order (due to how merge works – it moves the right element's content\n // to the first element and removes the right one. Since we may need to merge a couple of subsequent exception elements\n // we want to keep the reference to the first (furthest left) one.\n exceptionsToMerge.reverse();\n // But first add any neighbouring block exceptions to the list.\n if (exceptionsToMerge.length) {\n const previousSibling = exceptionsToMerge.at(0).previousSibling;\n const nextSibling = exceptionsToMerge.at(-1).nextSibling;\n if (previousSibling?.is('element', 'restrictedEditingException')) {\n exceptionsToMerge.unshift(previousSibling);\n }\n if (nextSibling?.is('element', 'restrictedEditingException')) {\n exceptionsToMerge.push(nextSibling);\n }\n }\n // Merge subsequent exceptions.\n exceptionsToMerge.reduce((currentException, nextException)=>{\n if (currentException.nextSibling == nextException) {\n writer.merge(writer.createPositionAfter(currentException));\n return currentException;\n }\n return nextException;\n });\n // Remove inline exceptions from block exception.\n schema.removeDisallowedAttributes(blocks, writer);\n }\n}\nfunction findException(elementOrPosition) {\n return elementOrPosition.findAncestor('restrictedEditingException', {\n includeSelf: true\n });\n}\nfunction findExceptionContentBlock(element) {\n let node = element;\n while(node.parent){\n if (node.parent.name == 'restrictedEditingException') {\n return node;\n }\n node = node.parent;\n }\n return null;\n}\n/**\n * Returns a minimal array of ranges containing groups of subsequent blocks.\n *\n * content: abcdefgh\n * blocks: [ a, b, d, f, g, h ]\n * output ranges: [ab]c[d]e[fgh]\n */ function getRangesOfBlockGroups(writer, blocks) {\n let startPosition;\n let i = 0;\n const ranges = [];\n while(i < blocks.length){\n const block = blocks[i];\n const nextBlock = blocks[i + 1];\n if (!startPosition) {\n startPosition = writer.createPositionBefore(block);\n }\n if (!nextBlock || block.nextSibling != nextBlock) {\n ranges.push(writer.createRange(startPosition, writer.createPositionAfter(block)));\n startPosition = null;\n }\n i++;\n }\n return ranges;\n}\n/**\n * Checks whether exception can wrap the block.\n */ function checkCanBeWrapped(schema, block) {\n const parentContext = schema.createContext(block.parent);\n // Is block exception allowed in parent of block.\n if (!schema.checkChild(parentContext, 'restrictedEditingException')) {\n return false;\n }\n // Is block allowed inside block exception.\n if (!schema.checkChild(parentContext.push('restrictedEditingException'), block)) {\n return false;\n }\n return true;\n}\n\n/**\n * The standard editing mode editing feature.\n *\n * * It introduces the `restrictedEditingException` text attribute that is rendered as\n * a `<span>` element with the `restricted-editing-exception` CSS class.\n * * It registers the `'restrictedEditingException'` command.\n */ class StandardEditingModeEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingModeEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n schema.extend('$text', {\n allowAttributes: [\n 'restrictedEditingException'\n ]\n });\n schema.register('restrictedEditingException', {\n allowWhere: '$container',\n allowContentOf: '$container'\n });\n // Don't allow nesting of block exceptions.\n schema.addChildCheck((context)=>{\n for (const item of context){\n if (item.name == 'restrictedEditingException') {\n return false;\n }\n }\n }, 'restrictedEditingException');\n // Don't allow nesting inline exceptions inside block exceptions.\n schema.addAttributeCheck((context)=>{\n for (const item of context){\n if (item.name == 'restrictedEditingException') {\n return false;\n }\n }\n }, 'restrictedEditingException');\n // Post-fixer to ensure proper structure.\n editor.model.document.registerPostFixer((writer)=>{\n const changes = editor.model.document.differ.getChanges();\n const unwrap = new Set();\n const remove = new Set();\n const merge = new Set();\n let changed = false;\n for (const entry of changes){\n if (entry.type == 'insert') {\n const range = writer.createRange(entry.position, entry.position.getShiftedBy(entry.length));\n for (const child of range.getItems()){\n if (child.is('element', 'restrictedEditingException')) {\n // Make sure that block exception is not nested or added in invalid place.\n if (!schema.checkChild(writer.createPositionBefore(child), child)) {\n unwrap.add(child);\n } else if (child.isEmpty) {\n remove.add(child);\n } else {\n merge.add(child);\n }\n } else if (child.is('$textProxy') && child.hasAttribute('restrictedEditingException') && !schema.checkAttribute(child, 'restrictedEditingException')) {\n writer.removeAttribute('restrictedEditingException', child);\n changed = true;\n }\n }\n } else if (entry.type == 'remove') {\n const parent = entry.position.parent;\n if (parent.is('element', 'restrictedEditingException') && parent.isEmpty) {\n remove.add(parent);\n }\n // Verify if some block exceptions are siblings now after element removed between.\n for (const child of parent.getChildren()){\n if (child.is('element', 'restrictedEditingException')) {\n merge.add(child);\n }\n }\n }\n }\n for (const child of unwrap){\n writer.unwrap(child);\n changed = true;\n }\n for (const child of remove){\n writer.remove(child);\n changed = true;\n }\n for (const child of merge){\n if (child.root.rootName == '$graveyard') {\n continue;\n }\n const nodeBefore = child.previousSibling;\n const nodeAfter = child.nextSibling;\n if (nodeBefore && nodeBefore.is('element', 'restrictedEditingException')) {\n writer.merge(writer.createPositionBefore(child));\n }\n if (nodeAfter && nodeAfter.is('element', 'restrictedEditingException')) {\n writer.merge(writer.createPositionAfter(child));\n }\n }\n return changed;\n });\n editor.conversion.for('upcast').elementToAttribute({\n model: 'restrictedEditingException',\n view: {\n name: 'span',\n classes: 'restricted-editing-exception'\n }\n }).elementToElement({\n model: 'restrictedEditingException',\n view: {\n name: 'div',\n classes: 'restricted-editing-exception'\n }\n });\n registerFallbackUpcastConverter(editor);\n editor.conversion.for('downcast').attributeToElement({\n model: 'restrictedEditingException',\n view: (modelAttributeValue, { writer })=>{\n if (modelAttributeValue) {\n // Make the restricted editing <span> outer-most in the view.\n return writer.createAttributeElement('span', {\n class: 'restricted-editing-exception'\n }, {\n priority: -10\n });\n }\n }\n }).elementToElement({\n model: 'restrictedEditingException',\n view: {\n name: 'div',\n classes: 'restricted-editing-exception'\n }\n });\n editor.commands.add('restrictedEditingException', new RestrictedEditingExceptionCommand(editor));\n editor.commands.add('restrictedEditingExceptionBlock', new RestrictedEditingExceptionBlockCommand(editor));\n editor.editing.view.change((writer)=>{\n for (const root of editor.editing.view.document.roots){\n writer.addClass('ck-restricted-editing_mode_standard', root);\n }\n });\n }\n}\n/**\n * Fallback upcast converter for empty exception span inside a table cell.\n */ function registerFallbackUpcastConverter(editor) {\n const matcher = new Matcher({\n name: 'span',\n classes: 'restricted-editing-exception'\n });\n // See: https://github.com/ckeditor/ckeditor5/issues/16376.\n editor.conversion.for('upcast').add((dispatcher)=>dispatcher.on('element:span', (evt, data, conversionApi)=>{\n const matcherResult = matcher.match(data.viewItem);\n if (!matcherResult) {\n return;\n }\n const match = matcherResult.match;\n if (!conversionApi.consumable.test(data.viewItem, match)) {\n return;\n }\n const modelText = conversionApi.writer.createText(' ', {\n restrictedEditingException: true\n });\n if (!conversionApi.safeInsert(modelText, data.modelCursor)) {\n return;\n }\n conversionApi.consumable.consume(data.viewItem, match);\n data.modelRange = conversionApi.writer.createRange(data.modelCursor, data.modelCursor.getShiftedBy(modelText.offsetSize));\n data.modelCursor = data.modelRange.end;\n }, {\n priority: 'low'\n }));\n}\n\n/**\n * The standard editing mode UI feature.\n *\n * It introduces the `'restrictedEditingException'` button that marks text as unrestricted for editing.\n */ class StandardEditingModeUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingModeUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const componentFactory = editor.ui.componentFactory;\n componentFactory.add('restrictedEditingException:dropdown', (locale)=>{\n const dropdownView = createDropdown(locale);\n const t = locale.t;\n const buttons = [\n componentFactory.create('restrictedEditingException:inline'),\n componentFactory.create('restrictedEditingException:block')\n ];\n for (const button of buttons){\n button.set({\n withText: true,\n tooltip: false\n });\n }\n addToolbarToDropdown(dropdownView, buttons, {\n enableActiveItemFocusOnDropdownOpen: true,\n isVertical: true,\n ariaLabel: t('Enable editing')\n });\n dropdownView.buttonView.set({\n label: t('Enable editing'),\n icon: IconContentUnlock,\n tooltip: true\n });\n dropdownView.extendTemplate({\n attributes: {\n class: 'ck-restricted-editing-dropdown'\n }\n });\n // Enable button if any of the buttons is enabled.\n dropdownView.bind('isEnabled').toMany(buttons, 'isEnabled', (...areEnabled)=>{\n return areEnabled.some((isEnabled)=>isEnabled);\n });\n // Focus the editable after executing the command.\n this.listenTo(dropdownView, 'execute', ()=>{\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n componentFactory.add('restrictedEditingException:inline', ()=>{\n const button = this._createButton('restrictedEditingException', ButtonView);\n button.set({\n tooltip: true,\n isToggleable: true\n });\n return button;\n });\n componentFactory.add('restrictedEditingException:block', ()=>{\n const button = this._createButton('restrictedEditingExceptionBlock', ButtonView);\n button.set({\n tooltip: true,\n isToggleable: true\n });\n return button;\n });\n componentFactory.add('menuBar:restrictedEditingException:inline', ()=>{\n return this._createButton('restrictedEditingException', MenuBarMenuListItemButtonView);\n });\n componentFactory.add('menuBar:restrictedEditingException:block', ()=>{\n return this._createButton('restrictedEditingExceptionBlock', MenuBarMenuListItemButtonView);\n });\n // Aliases for backward compatibility.\n componentFactory.add('restrictedEditingException', ()=>{\n return componentFactory.create('restrictedEditingException:inline');\n });\n componentFactory.add('menuBar:restrictedEditingException', ()=>{\n return componentFactory.create('menuBar:restrictedEditingException:inline');\n });\n }\n /**\n\t * Creates a button for restricted editing exception command to use either in toolbar or in menu bar.\n\t */ _createButton(commandName, ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const command = this.editor.commands.get(commandName);\n const view = new ButtonClass(locale);\n const t = locale.t;\n view.icon = IconContentUnlock;\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n if (commandName == 'restrictedEditingExceptionBlock') {\n view.bind('label').to(command, 'value', (value)=>{\n return value ? t('Disable block editing') : t('Enable block editing');\n });\n } else {\n view.bind('label').to(command, 'value', (value)=>{\n return value ? t('Disable inline editing') : t('Enable inline editing');\n });\n }\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The standard editing mode plugin.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:restricted-editing/standardeditingmodeediting~StandardEditingModeEditing standard mode editing feature}.\n * * The {@link module:restricted-editing/standardeditingmodeui~StandardEditingModeUI standard mode UI feature}.\n */ class StandardEditingMode extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'StandardEditingMode';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n static get requires() {\n return [\n StandardEditingModeEditing,\n StandardEditingModeUI\n ];\n }\n}\n\nexport { RestrictedEditingExceptionBlockCommand, RestrictedEditingExceptionCommand, RestrictedEditingMode, RestrictedEditingModeEditing, RestrictedEditingModeNavigationCommand, RestrictedEditingModeUI, StandardEditingMode, StandardEditingModeEditing, StandardEditingModeUI, extendMarkerOnTypingPostFixer as _extendRestrictedEditingMarkerOnTypingPostFixer, getMarkerAtPosition as _getRestrictedEditingMarkerAtPosition, isPositionInRangeBoundaries as _isRestrictedEditingPositionInRangeBoundaries, isSelectionInMarker as _isRestrictedEditingSelectionInMarker, resurrectCollapsedMarkerPostFixer as _resurrectRestrictedEditingCollapsedMarkerPostFixer, setupExceptionHighlighting as _setupRestrictedEditingExceptionHighlighting, upcastHighlightToMarker as _upcastRestrictedEditingHighlightToMarker };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport type { ModelDocumentSelection, Marker, ModelPosition, ModelRange, Model } from 'ckeditor5/src/engine.js';\n\n/**\n * @module restricted-editing/restrictededitingmode/utils\n */\n\n/**\n * Returns a single \"restricted-editing-exception\" marker at a given position. Contrary to\n * {@link module:engine/model/markercollection~MarkerCollection#getMarkersAtPosition}, it returnd a marker also when the postion is\n * equal to one of the marker's start or end positions.\n *\n * @internal\n */\nexport function getMarkerAtPosition( editor: Editor, position: ModelPosition ): Marker | undefined {\n\tfor ( const marker of editor.model.markers ) {\n\t\tconst markerRange = getExceptionRange( marker, editor.model );\n\n\t\tif ( isPositionInRangeBoundaries( markerRange, position ) ) {\n\t\t\tif ( marker.name.startsWith( 'restrictedEditingException:' ) ) {\n\t\t\t\treturn marker;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Checks if the position is fully contained in the range. Positions equal to range start or end are considered \"in\".\n *\n * @internal\n */\nexport function isPositionInRangeBoundaries( range: ModelRange, position: ModelPosition ): boolean {\n\treturn (\n\t\trange.containsPosition( position ) ||\n\t\trange.end.isEqual( position ) ||\n\t\trange.start.isEqual( position )\n\t);\n}\n\n/**\n * Checks if the selection is fully contained in the marker. Positions on marker boundaries are considered \"in\".\n *\n * ```xml\n * <marker>[]foo</marker> -> true\n * <marker>f[oo]</marker> -> true\n * <marker>f[oo</marker> ba]r -> false\n * <marker>foo</marker> []bar -> false\n * ```\n *\n * @internal\n */\nexport function isSelectionInMarker( selection: ModelDocumentSelection, model: Model, marker?: Marker ): boolean {\n\tif ( !marker ) {\n\t\treturn false;\n\t}\n\n\tconst markerRange = getExceptionRange( marker, model );\n\n\tif ( selection.isCollapsed ) {\n\t\treturn isPositionInRangeBoundaries( markerRange, selection.focus! );\n\t}\n\n\treturn markerRange.containsRange( selection.getFirstRange()!, true );\n}\n\n/**\n * Returns the marker range asjusted to the inside of exception wrapper element if needed.\n *\n * @internal\n */\nexport function getExceptionRange( marker: Marker, model: Model ): ModelRange {\n\tconst markerRange = marker.getRange();\n\tconst wrapperElement = markerRange.getContainedElement();\n\n\tif ( wrapperElement && wrapperElement.is( 'element', 'restrictedEditingException' ) ) {\n\t\treturn model.createRangeIn( wrapperElement );\n\t}\n\n\treturn markerRange;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodenavigationcommand\n */\n\nimport type { Model, ModelRange } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { getExceptionRange } from './restrictededitingmode/utils.js';\n\n/**\n * The command that allows navigation across the exceptions in the edited document.\n */\nexport class RestrictedEditingModeNavigationCommand extends Command {\n\t/**\n\t * The direction of the command.\n\t */\n\tprivate _direction: RestrictedEditingModeNavigationDirection;\n\n\t/**\n\t * Creates an instance of the command.\n\t *\n\t * @param editor The editor instance.\n\t * @param direction The direction that the command works.\n\t */\n\tconstructor( editor: Editor, direction: RestrictedEditingModeNavigationDirection ) {\n\t\tsuper( editor );\n\n\t\t// It does not affect data so should be enabled in read-only mode and in restricted editing mode.\n\t\tthis.affectsData = false;\n\t\tthis._direction = direction;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */\n\tpublic override execute(): void {\n\t\tconst position = getNearestExceptionRange( this.editor.model, this._direction );\n\n\t\tif ( !position ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.model.change( writer => {\n\t\t\twriter.setSelection( position );\n\t\t} );\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */\n\tprivate _checkEnabled(): boolean {\n\t\treturn !!getNearestExceptionRange( this.editor.model, this._direction );\n\t}\n}\n\n/**\n * Returns the range of the exception marker closest to the last position of the model selection.\n */\nfunction getNearestExceptionRange( model: Model, direction: RestrictedEditingModeNavigationDirection ): ModelRange | undefined {\n\tconst selection = model.document.selection;\n\tconst selectionPosition = selection.getFirstPosition()!;\n\tconst markerRanges = [];\n\n\t// Get all exception marker positions that start after/before the selection position.\n\tfor ( const marker of model.markers.getMarkersGroup( 'restrictedEditingException' ) ) {\n\t\tconst markerRange = getExceptionRange( marker, model );\n\n\t\t// Checking parent because there two positions <paragraph>foo^</paragraph><paragraph>^bar</paragraph>\n\t\t// are touching but they will represent different markers.\n\t\tconst isMarkerRangeTouching =\n\t\t\tselectionPosition.isTouching( markerRange.start ) && selectionPosition.hasSameParentAs( markerRange.start ) ||\n\t\t\tselectionPosition.isTouching( markerRange.end ) && selectionPosition.hasSameParentAs( markerRange.end );\n\n\t\t// <paragraph>foo <marker≥b[]ar</marker> baz</paragraph>\n\t\t// <paragraph>foo <marker≥b[ar</marker> ba]z</paragraph>\n\t\t// <paragraph>foo <marker≥bar</marker>[] baz</paragraph>\n\t\t// <paragraph>foo []<marker≥bar</marker> baz</paragraph>\n\t\tif ( markerRange.containsPosition( selectionPosition ) || isMarkerRangeTouching ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( direction === 'forward' && markerRange.start.isAfter( selectionPosition ) ) {\n\t\t\tmarkerRanges.push( markerRange );\n\t\t} else if ( direction === 'backward' && markerRange.end.isBefore( selectionPosition ) ) {\n\t\t\tmarkerRanges.push( markerRange );\n\t\t}\n\t}\n\n\tif ( !markerRanges.length ) {\n\t\treturn;\n\t}\n\n\t// Get the marker closest to the selection position among many. To know that, we need to sort\n\t// them first.\n\treturn markerRanges\n\t\t.sort( ( rangeA, rangeB ) => {\n\t\t\tif ( direction === 'forward' ) {\n\t\t\t\treturn rangeA.start.isAfter( rangeB.start ) ? 1 : -1;\n\t\t\t} else {\n\t\t\t\treturn rangeA.start.isBefore( rangeB.start ) ? 1 : -1;\n\t\t\t}\n\t\t} )\n\t\t.shift();\n}\n\n/**\n * Directions in which the\n * {@link module:restricted-editing/restrictededitingmodenavigationcommand~RestrictedEditingModeNavigationCommand} can work.\n */\nexport type RestrictedEditingModeNavigationDirection = 'forward' | 'backward';\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmode/converters\n */\n\nimport type { Editor } from 'ckeditor5/src/core.js';\nimport {\n\tMatcher,\n\ttype ViewDowncastWriter,\n\ttype MatcherPattern,\n\ttype ModelPostFixer,\n\ttype ModelPosition,\n\ttype UpcastDispatcher,\n\ttype ModelWriter,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport { getMarkerAtPosition } from './utils.js';\n\nconst HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';\n\n/**\n * Adds a visual highlight style to a restricted editing exception that the selection is anchored to.\n *\n * The highlight is turned on by adding the `.restricted-editing-exception_selected` class to the\n * exception in the view:\n *\n * * The class is removed before the conversion starts, as callbacks added with the `'highest'` priority\n * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n * * The class is added in the view post-fixer, after other changes in the model tree are converted to the view.\n *\n * This way, adding and removing the highlight does not interfere with conversion.\n *\n * @internal\n */\nexport function setupExceptionHighlighting( editor: Editor ): void {\n\tconst view = editor.editing.view;\n\tconst model = editor.model;\n\tconst highlightedMarkers = new Set<ViewElement>();\n\n\t// Adding the class.\n\tview.document.registerPostFixer( ( writer: ViewDowncastWriter ): boolean => {\n\t\tconst modelSelection = model.document.selection;\n\n\t\tconst marker = getMarkerAtPosition( editor, modelSelection.anchor! );\n\n\t\tif ( !marker ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst modelWrapperElement = marker.getRange().getContainedElement();\n\n\t\tif ( modelWrapperElement && modelWrapperElement.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\tconst viewElement = editor.editing.mapper.toViewElement( modelWrapperElement )!;\n\n\t\t\twriter.addClass( HIGHLIGHT_CLASS, viewElement );\n\t\t\thighlightedMarkers.add( viewElement );\n\t\t} else {\n\t\t\tfor ( const viewElement of editor.editing.mapper.markerNameToElements( marker.name )! ) {\n\t\t\t\twriter.addClass( HIGHLIGHT_CLASS, viewElement );\n\t\t\t\thighlightedMarkers.add( viewElement );\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t} );\n\n\t// Removing the class.\n\teditor.conversion.for( 'editingDowncast' ).add( dispatcher => {\n\t\t// Make sure the highlight is removed on every possible event, before conversion is started.\n\t\tdispatcher.on( 'insert', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'remove', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'attribute', removeHighlight, { priority: 'highest' } );\n\t\tdispatcher.on( 'cleanSelection', removeHighlight );\n\n\t\tfunction removeHighlight() {\n\t\t\tview.change( writer => {\n\t\t\t\tfor ( const item of highlightedMarkers.values() ) {\n\t\t\t\t\twriter.removeClass( HIGHLIGHT_CLASS, item );\n\t\t\t\t\thighlightedMarkers.delete( item );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n/**\n * A post-fixer that prevents removing a collapsed marker from the document.\n *\n * @internal\n */\nexport function resurrectCollapsedMarkerPostFixer( editor: Editor ): ModelPostFixer {\n\t// This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n\treturn writer => {\n\t\tlet changeApplied = false;\n\n\t\tfor ( const { name, data } of editor.model.document.differ.getChangedMarkers() ) {\n\t\t\tif ( name.startsWith( 'restrictedEditingException' ) && data.newRange && data.newRange.root.rootName == '$graveyard' ) {\n\t\t\t\twriter.updateMarker( name, {\n\t\t\t\t\trange: writer.createRange( writer.createPositionAt( data.oldRange!.start ) )\n\t\t\t\t} );\n\n\t\t\t\tchangeApplied = true;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n\n/**\n * A post-fixer that extends a marker when the user types on its boundaries.\n *\n * @internal\n */\nexport function extendMarkerOnTypingPostFixer( editor: Editor ): ModelPostFixer {\n\t// This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.\n\treturn writer => {\n\t\tlet changeApplied = false;\n\t\tconst schema = editor.model.schema;\n\n\t\tfor ( const change of editor.model.document.differ.getChanges() ) {\n\t\t\tif ( change.type == 'insert' && schema.checkChild( '$block', change.name ) ) {\n\t\t\t\tchangeApplied = _tryExtendMarkerStart( editor, change.position, change.length, writer ) || changeApplied;\n\t\t\t\tchangeApplied = _tryExtendMarkedEnd( editor, change.position, change.length, writer ) || changeApplied;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n\n/**\n * A view highlight-to-marker conversion helper.\n *\n * @param config Conversion configuration.\n * @internal\n */\nexport function upcastHighlightToMarker( config: { view: MatcherPattern; model: () => string; useWrapperElement?: boolean } ) {\n\treturn ( dispatcher: UpcastDispatcher ): void => dispatcher.on( 'element', ( evt, data, conversionApi ) => {\n\t\tconst { writer } = conversionApi;\n\n\t\tconst matcher = new Matcher( config.view );\n\t\tconst matcherResult = matcher.match( data.viewItem );\n\n\t\t// If there is no match, this callback should not do anything.\n\t\tif ( !matcherResult ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst match = matcherResult.match;\n\n\t\t// Force consuming element's name (taken from upcast helpers elementToElement converter).\n\t\tmatch.name = true;\n\n\t\tif ( !conversionApi.consumable.test( data.viewItem, match ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet position = data.modelCursor;\n\t\tlet wrapperElement = null;\n\n\t\tif ( config.useWrapperElement ) {\n\t\t\tif ( !conversionApi.schema.checkChild( position, 'restrictedEditingException' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twrapperElement = writer.createElement( 'restrictedEditingException' );\n\t\t\twriter.insert( wrapperElement, position );\n\t\t\tposition = writer.createPositionAt( wrapperElement, 0 );\n\t\t}\n\n\t\tconst { modelRange: convertedChildrenRange } = conversionApi.convertChildren( data.viewItem, position );\n\n\t\tconversionApi.consumable.consume( data.viewItem, match );\n\n\t\tconst markerName = config.model();\n\t\tconst fakeMarkerStart = writer.createElement( '$marker', { 'data-name': markerName } );\n\t\tconst fakeMarkerEnd = writer.createElement( '$marker', { 'data-name': markerName } );\n\n\t\tif ( wrapperElement ) {\n\t\t\twriter.insert( fakeMarkerStart, writer.createPositionBefore( wrapperElement ) );\n\t\t\twriter.insert( fakeMarkerEnd, writer.createPositionAfter( wrapperElement ) );\n\t\t} else {\n\t\t\t// Insert in reverse order to use converter content positions directly (without recalculating).\n\t\t\twriter.insert( fakeMarkerEnd, convertedChildrenRange.end );\n\t\t\twriter.insert( fakeMarkerStart, convertedChildrenRange.start );\n\t\t}\n\n\t\tdata.modelRange = writer.createRange(\n\t\t\twriter.createPositionBefore( fakeMarkerStart ),\n\t\t\twriter.createPositionAfter( fakeMarkerEnd )\n\t\t);\n\t\tdata.modelCursor = data.modelRange.end;\n\t} );\n}\n\n/**\n * Extend marker if change detected on marker's start position.\n */\nfunction _tryExtendMarkerStart( editor: Editor, position: ModelPosition, length: number, writer: ModelWriter ): boolean {\n\tconst markerAtStart = getMarkerAtPosition( editor, position.getShiftedBy( length ) );\n\n\tif ( markerAtStart && markerAtStart.getStart().isEqual( position.getShiftedBy( length ) ) ) {\n\t\twriter.updateMarker( markerAtStart, {\n\t\t\trange: writer.createRange( markerAtStart.getStart().getShiftedBy( -length ), markerAtStart.getEnd() )\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Extend marker if change detected on marker's end position.\n */\nfunction _tryExtendMarkedEnd( editor: Editor, position: ModelPosition, length: number, writer: ModelWriter ): boolean {\n\tconst markerAtEnd = getMarkerAtPosition( editor, position );\n\n\tif ( markerAtEnd && markerAtEnd.getEnd().isEqual( position ) ) {\n\t\twriter.updateMarker( markerAtEnd, {\n\t\t\trange: writer.createRange( markerAtEnd.getStart(), markerAtEnd.getEnd().getShiftedBy( length ) )\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodeediting\n */\n\nimport {\n\tPlugin,\n\ttype Command,\n\ttype Editor\n} from 'ckeditor5/src/core.js';\n\nimport type {\n\tModelDocumentSelection,\n\tMarker,\n\tDowncastAddMarkerEvent,\n\tModelDeleteContentEvent,\n\tModelPostFixer,\n\tModelRange,\n\tViewDocumentTabEvent,\n\tViewDocumentKeyDownEvent,\n\tViewDocumentKeyEventData\n} from 'ckeditor5/src/engine.js';\n\nimport {\n\tgetCode,\n\tparseKeystroke,\n\ttype BaseEvent,\n\ttype EventInfo,\n\ttype GetCallback\n} from 'ckeditor5/src/utils.js';\n\nimport type {\n\tInsertTextCommand,\n\tInsertTextCommandExecuteEvent\n} from 'ckeditor5/src/typing.js';\n\nimport type {\n\tClipboardContentInsertionEvent,\n\tViewDocumentClipboardOutputEvent,\n\tClipboardPipeline\n} from 'ckeditor5/src/clipboard.js';\n\nimport { RestrictedEditingModeNavigationCommand } from './restrictededitingmodenavigationcommand.js';\nimport type { RestrictedEditingConfig } from './restrictededitingconfig.js';\n\nimport {\n\tgetMarkerAtPosition,\n\tisSelectionInMarker,\n\tgetExceptionRange\n} from './restrictededitingmode/utils.js';\n\nimport {\n\textendMarkerOnTypingPostFixer,\n\tresurrectCollapsedMarkerPostFixer,\n\tsetupExceptionHighlighting,\n\tupcastHighlightToMarker\n} from './restrictededitingmode/converters.js';\n\nconst COMMAND_FORCE_DISABLE_ID = 'RestrictedEditingMode';\n\n/**\n * The restricted editing mode editing feature.\n *\n * * It introduces the exception marker group that renders to `<span>` elements with the `restricted-editing-exception` CSS class.\n * * It registers the `'goToPreviousRestrictedEditingException'` and `'goToNextRestrictedEditingException'` commands.\n * * It also enables highlighting exception markers that are selected.\n */\nexport class RestrictedEditingModeEditing extends Plugin {\n\t/**\n\t * Command names that are enabled outside the non-restricted regions.\n\t */\n\tprivate _alwaysEnabled: Set<string>;\n\n\t/**\n\t * Commands allowed in non-restricted areas.\n\t *\n\t * Commands always enabled combine typing feature commands: `'input'`, `'insertText'`, `'delete'`, and `'deleteForward'` with\n\t * commands defined in the feature configuration.\n\t */\n\tprivate _allowedInException: Set<string>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingModeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @internal\n\t */\n\tpublic static get licenseFeatureCode(): string {\n\t\treturn 'RED';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isPremiumPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'restrictedEditing', {\n\t\t\tallowedCommands: [ 'bold', 'italic', 'link', 'unlink' ],\n\t\t\tallowedAttributes: [ 'bold', 'italic', 'linkHref' ]\n\t\t} );\n\n\t\tthis._alwaysEnabled = new Set( [ 'undo', 'redo' ] );\n\t\tthis._allowedInException = new Set( [ 'input', 'insertText', 'delete', 'deleteForward' ] );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\t\tconst allowedCommands: RestrictedEditingConfig['allowedCommands'] = editor.config.get( 'restrictedEditing.allowedCommands' )!;\n\n\t\tallowedCommands.forEach( commandName => this._allowedInException.add( commandName ) );\n\n\t\tthis._setupSchema();\n\t\tthis._setupConversion();\n\t\tthis._setupCommandsToggling();\n\t\tthis._setupRestrictions();\n\n\t\t// Commands & keystrokes that allow navigation in the content.\n\t\teditor.commands.add(\n\t\t\t'goToPreviousRestrictedEditingException',\n\t\t\tnew RestrictedEditingModeNavigationCommand( editor, 'backward' )\n\t\t);\n\n\t\teditor.commands.add(\n\t\t\t'goToNextRestrictedEditingException',\n\t\t\tnew RestrictedEditingModeNavigationCommand( editor, 'forward' )\n\t\t);\n\n\t\tthis.listenTo<ViewDocumentTabEvent>( editingView.document, 'tab', ( evt, data ) => {\n\t\t\tconst commandName = !data.shiftKey ? 'goToNextRestrictedEditingException' : 'goToPreviousRestrictedEditingException';\n\t\t\tconst command: Command = editor.commands.get( commandName )!;\n\n\t\t\tif ( command.isEnabled ) {\n\t\t\t\teditor.execute( commandName );\n\n\t\t\t\t// Stop the event in the DOM: no listener in the web page will be triggered by this event.\n\t\t\t\tdata.preventDefault();\n\t\t\t\tdata.stopPropagation();\n\t\t\t}\n\n\t\t\t// Stop the event bubbling in the editor: no more callbacks will be executed for this keystroke.\n\t\t\tevt.stop();\n\t\t}, { context: '$capture' } );\n\n\t\tthis.listenTo<ViewDocumentKeyDownEvent>( editingView.document, 'keydown', getSelectAllHandler( editor ), { priority: 'high' } );\n\n\t\teditingView.change( writer => {\n\t\t\tfor ( const root of editingView.document.roots ) {\n\t\t\t\twriter.addClass( 'ck-restricted-editing_mode_restricted', root );\n\t\t\t}\n\t\t} );\n\n\t\t// Remove existing restricted editing markers when setting new data to prevent marker resurrection.\n\t\t// Without this, markers from removed content would be incorrectly restored due to the resurrection mechanism.\n\t\t// See more: https://github.com/ckeditor/ckeditor5/issues/9646#issuecomment-843064995\n\t\teditor.data.on( 'set', () => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tfor ( const marker of editor.model.markers.getMarkersGroup( 'restrictedEditingException' ) ) {\n\t\t\t\t\twriter.removeMarker( marker.name );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Makes the given command always enabled in the restricted editing mode (regardless\n\t * of selection location).\n\t *\n\t * To enable some commands in non-restricted areas of the content use\n\t * {@link module:restricted-editing/restrictededitingconfig~RestrictedEditingConfig#allowedCommands} configuration option.\n\t *\n\t * @param commandName Name of the command to enable.\n\t */\n\tpublic enableCommand( commandName: string ): void {\n\t\tconst command: Command = this.editor.commands.get( commandName )!;\n\n\t\tcommand.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );\n\n\t\tthis._alwaysEnabled.add( commandName );\n\t}\n\n\t/**\n\t * Registers block exception wrapper in the schema.\n\t */\n\tprivate _setupSchema(): void {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tschema.register( 'restrictedEditingException', {\n\t\t\tallowWhere: '$block',\n\t\t\tallowContentOf: '$container',\n\t\t\tisLimit: true\n\t\t} );\n\t}\n\n\t/**\n\t * Sets up the restricted mode editing conversion:\n\t *\n\t * * ucpast & downcast converters,\n\t * * marker highlighting in the edting area,\n\t * * marker post-fixers.\n\t */\n\tprivate _setupConversion(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\t// The restricted editing does not attach additional data to the zones so there's no need for smarter markers managing.\n\t\t// Also, the markers will only be created when loading the data.\n\t\tlet markerNumber = 0;\n\n\t\teditor.conversion.for( 'upcast' ).add( upcastHighlightToMarker( {\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t},\n\t\t\tmodel: () => {\n\t\t\t\tmarkerNumber++; // Starting from restrictedEditingException:1 marker.\n\n\t\t\t\treturn `restrictedEditingException:inline:${ markerNumber }`;\n\t\t\t}\n\t\t} ) );\n\n\t\teditor.conversion.for( 'upcast' ).add( upcastHighlightToMarker( {\n\t\t\tview: {\n\t\t\t\tname: 'div',\n\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t},\n\t\t\tmodel: () => {\n\t\t\t\tmarkerNumber++; // Starting from restrictedEditingException:1 marker.\n\n\t\t\t\treturn `restrictedEditingException:block:${ markerNumber }`;\n\t\t\t},\n\t\t\tuseWrapperElement: true\n\t\t} ) );\n\n\t\t// Block exception wrapper.\n\t\teditor.conversion.for( 'downcast' ).elementToElement( {\n\t\t\tmodel: 'restrictedEditingException',\n\t\t\tview: {\n\t\t\t\tname: 'div',\n\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t}\n\t\t} );\n\n\t\t// Currently the marker helpers are tied to other use-cases and do not render a collapsed marker as highlight.\n\t\t// Also, markerToHighlight cannot convert marker on an inline object. It handles only text and widgets,\n\t\t// but it is not a case in the data pipeline. That's why there are 3 downcast converters for them:\n\t\t//\n\t\t// 1. The custom inline item (text or inline object) converter (but not the selection).\n\t\teditor.conversion.for( 'downcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<DowncastAddMarkerEvent>( 'addMarker:restrictedEditingException:inline', ( evt, data, conversionApi ): void => {\n\t\t\t\t// Only convert per-item conversion.\n\t\t\t\tif ( !data.item ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Do not convert the selection or non-inline items.\n\t\t\t\tif ( data.item.is( 'selection' ) || !conversionApi.schema.isInline( data.item ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( !conversionApi.consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewWriter = conversionApi.writer;\n\t\t\t\tconst viewElement = viewWriter.createAttributeElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{\n\t\t\t\t\t\tclass: 'restricted-editing-exception'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: data.markerName,\n\t\t\t\t\t\tpriority: -10\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tconst viewRange = conversionApi.mapper.toViewRange( data.range! );\n\t\t\t\tconst rangeAfterWrap = viewWriter.wrap( viewRange, viewElement );\n\n\t\t\t\tfor ( const element of rangeAfterWrap.getItems() ) {\n\t\t\t\t\tif ( element.is( 'attributeElement' ) && element.isSimilar( viewElement ) ) {\n\t\t\t\t\t\tconversionApi.mapper.bindElementToMarker( element, data.markerName );\n\n\t\t\t\t\t\t// One attribute element is enough, because all of them are bound together by the view writer.\n\t\t\t\t\t\t// Mapper uses this binding to get all the elements no matter how many of them are registered in the mapper.\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\t// 2. The marker-to-highlight converter for the document selection.\n\t\teditor.conversion.for( 'downcast' ).markerToHighlight( {\n\t\t\tmodel: 'restrictedEditingException:inline',\n\t\t\t// Use callback to return new object every time new marker instance is created - otherwise it will be seen as the same marker.\n\t\t\tview: () => {\n\t\t\t\treturn {\n\t\t\t\t\tname: 'span',\n\t\t\t\t\tclasses: 'restricted-editing-exception',\n\t\t\t\t\tpriority: -10\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// 3. And for collapsed marker we need to render it as an element.\n\t\t// Additionally, the editing pipeline should always display a collapsed marker.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: 'restrictedEditingException:inline',\n\t\t\tview: ( markerData, { writer } ) => {\n\t\t\t\treturn writer.createUIElement( 'span', {\n\t\t\t\t\tclass: 'restricted-editing-exception restricted-editing-exception_collapsed'\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'dataDowncast' ).markerToElement( {\n\t\t\tmodel: 'restrictedEditingException:inline',\n\t\t\tview: ( markerData, { writer } ) => {\n\t\t\t\treturn writer.createEmptyElement( 'span', {\n\t\t\t\t\tclass: 'restricted-editing-exception'\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tdoc.registerPostFixer( extendMarkerOnTypingPostFixer( editor ) );\n\t\tdoc.registerPostFixer( resurrectCollapsedMarkerPostFixer( editor ) );\n\t\tdoc.registerPostFixer( ensureNewMarkerIsFlatPostFixer( editor ) );\n\n\t\tsetupExceptionHighlighting( editor );\n\t}\n\n\t/**\n\t * Setups additional editing restrictions beyond command toggling:\n\t *\n\t * * delete content range trimming\n\t * * disabling input command outside exception marker\n\t * * restricting clipboard holder to text only\n\t * * restricting text attributes in content\n\t */\n\tprivate _setupRestrictions() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst viewDoc = editor.editing.view.document;\n\t\tconst clipboard: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tthis.listenTo<ModelDeleteContentEvent>( model, 'deleteContent', restrictDeleteContent( editor ), { priority: 'high' } );\n\n\t\tconst insertTextCommand: InsertTextCommand | undefined = editor.commands.get( 'insertText' );\n\n\t\t// The restricted editing might be configured without insert text support - ie allow only bolding or removing text.\n\t\t// This check is bit synthetic since only tests are used this way.\n\t\tif ( insertTextCommand ) {\n\t\t\tthis.listenTo<InsertTextCommandExecuteEvent>(\n\t\t\t\tinsertTextCommand,\n\t\t\t\t'execute',\n\t\t\t\tdisallowInputExecForWrongRange( editor ),\n\t\t\t\t{ priority: 'high' }\n\t\t\t);\n\t\t}\n\n\t\t// Block clipboard outside exception marker on paste and drop.\n\t\tthis.listenTo<ClipboardContentInsertionEvent>( clipboard, 'contentInsertion', ( evt, data ) => {\n\t\t\tif ( !isRangeInsideSingleMarker( editor, selection.getFirstRange()! ) ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\n\t\t\tconst marker = getMarkerAtPosition( editor, selection.focus! );\n\n\t\t\t// Reduce content pasted into inline exception to text nodes only. Also strip not allowed attributes.\n\t\t\tif ( marker && marker.name.startsWith( 'restrictedEditingException:inline:' ) ) {\n\t\t\t\tconst allowedAttributes: Array<string> = editor.config.get( 'restrictedEditing.allowedAttributes' )!;\n\n\t\t\t\tmodel.change( writer => {\n\t\t\t\t\tconst content = writer.createDocumentFragment();\n\t\t\t\t\tconst textNodes = Array.from( writer.createRangeIn( data.content ).getItems() )\n\t\t\t\t\t\t.filter( node => node.is( '$textProxy' ) );\n\n\t\t\t\t\tfor ( const item of textNodes ) {\n\t\t\t\t\t\tfor ( const attr of item.getAttributeKeys() ) {\n\t\t\t\t\t\t\tif ( !allowedAttributes.includes( attr ) ) {\n\t\t\t\t\t\t\t\twriter.removeAttribute( attr, item );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twriter.append( item, content );\n\t\t\t\t\t}\n\n\t\t\t\t\tdata.content = content;\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Block clipboard outside exception marker on cut.\n\t\tthis.listenTo<ViewDocumentClipboardOutputEvent>( viewDoc, 'clipboardOutput', ( evt, data ) => {\n\t\t\tif ( data.method == 'cut' && !isRangeInsideSingleMarker( editor, selection.getFirstRange()! ) ) {\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\n\t\t// Do not allow pasting/dropping block exception wrapper.\n\t\tmodel.schema.addChildCheck( context => {\n\t\t\tif ( context.startsWith( '$clipboardHolder' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'restrictedEditingException' );\n\t}\n\n\t/**\n\t * Sets up the command toggling which enables or disables commands based on the user selection.\n\t */\n\tprivate _setupCommandsToggling(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis._disableCommands();\n\n\t\tthis.listenTo( doc.selection, 'change', this._checkCommands.bind( this ) );\n\t\tthis.listenTo( doc, 'change:data', this._checkCommands.bind( this ) );\n\t}\n\n\t/**\n\t * Checks if commands should be enabled or disabled based on the current selection.\n\t */\n\tprivate _checkCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\n\t\tif ( selection.rangeCount > 1 ) {\n\t\t\tthis._disableCommands();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus! );\n\n\t\tthis._disableCommands();\n\n\t\tif ( isSelectionInMarker( selection, editor.model, marker ) ) {\n\t\t\tthis._enableCommands( marker! );\n\t\t}\n\t}\n\n\t/**\n\t * Enables commands in non-restricted regions.\n\t */\n\tprivate _enableCommands( marker: Marker ): void {\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\n\t\tfor ( const [ commandName, command ] of editor.commands ) {\n\t\t\tif ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Enable ony those commands that are allowed in the exception marker.\n\t\t\t// In block exceptions all commands are enabled.\n\t\t\tif (\n\t\t\t\t!marker.name.startsWith( 'restrictedEditingException:block:' ) &&\n\t\t\t\t!this._allowedInException.has( commandName )\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Do not enable 'delete' and 'deleteForward' commands on the exception marker boundaries.\n\t\t\tif ( isDeleteCommandOnMarkerBoundaries( commandName, selection, getExceptionRange( marker, editor.model ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcommand.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Disables commands outside non-restricted regions.\n\t */\n\tprivate _disableCommands(): void {\n\t\tconst editor = this.editor;\n\n\t\tfor ( const [ commandName, command ] of editor.commands ) {\n\t\t\tif ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n}\n\n/**\n * Helper for handling Ctrl+A keydown behaviour.\n */\nfunction getSelectAllHandler( editor: Editor ) {\n\treturn ( eventInfo: EventInfo, domEventData: ViewDocumentKeyEventData ) => {\n\t\tif ( getCode( domEventData ) != parseKeystroke( 'Ctrl+A' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = editor.model;\n\t\tconst selection = editor.model.document.selection;\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus! );\n\n\t\tif ( !marker ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If selection range is inside a restricted editing exception, select text only within the exception.\n\t\t//\n\t\t// Note: Second Ctrl+A press is also blocked and it won't select the entire text in the editor.\n\t\tconst selectionRange = selection.getFirstRange()!;\n\t\tconst markerRange = getExceptionRange( marker, editor.model );\n\n\t\tif ( markerRange.containsRange( selectionRange, true ) || selection.isCollapsed ) {\n\t\t\teventInfo.stop();\n\t\t\tdomEventData.preventDefault();\n\t\t\tdomEventData.stopPropagation();\n\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setSelection( markerRange );\n\t\t\t} );\n\t\t}\n\t};\n}\n\n/**\n * Additional rule for enabling \"delete\" and \"deleteForward\" commands if selection is on range boundaries:\n *\n * Does not allow to enable command when selection focus is:\n * - is on marker start - \"delete\" - to prevent removing content before marker\n * - is on marker end - \"deleteForward\" - to prevent removing content after marker\n */\nfunction isDeleteCommandOnMarkerBoundaries( commandName: string, selection: ModelDocumentSelection, markerRange: ModelRange ) {\n\tif ( commandName == 'delete' && selection.isCollapsed && markerRange.start.isTouching( selection.focus! ) ) {\n\t\treturn true;\n\t}\n\n\t// Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.\n\tif ( commandName == 'deleteForward' && selection.isCollapsed && markerRange.end.isTouching( selection.focus! ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Ensures that model.deleteContent() does not delete outside exception markers ranges.\n *\n * The enforced restrictions are:\n * - only execute deleteContent() inside exception markers\n * - restrict passed selection to exception marker\n */\nfunction restrictDeleteContent( editor: Editor ): GetCallback<BaseEvent> {\n\treturn ( evt, args ) => {\n\t\tconst [ selection ] = args;\n\n\t\tconst marker = getMarkerAtPosition( editor, selection.focus ) || getMarkerAtPosition( editor, selection.anchor );\n\n\t\t// Stop method execution if marker was not found at selection focus.\n\t\tif ( !marker ) {\n\t\t\tevt.stop();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Collapsed selection inside exception marker does not require fixing.\n\t\tif ( selection.isCollapsed ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Shrink the selection to the range inside exception marker.\n\t\tconst allowedToDelete = getExceptionRange( marker, editor.model ).getIntersection( selection.getFirstRange() );\n\n\t\t// Some features uses selection passed to model.deleteContent() to set the selection afterwards. For this we need to properly modify\n\t\t// either the document selection using change block...\n\t\tif ( selection.is( 'documentSelection' ) ) {\n\t\t\teditor.model.change( writer => {\n\t\t\t\twriter.setSelection( allowedToDelete );\n\t\t\t} );\n\t\t}\n\t\t// ... or by modifying passed selection instance directly.\n\t\telse {\n\t\t\tselection.setTo( allowedToDelete );\n\t\t}\n\t};\n}\n\n/**\n * Ensures that input command is executed with a range that is inside exception marker.\n *\n * This restriction is due to fact that using native spell check changes text outside exception marker.\n */\nfunction disallowInputExecForWrongRange( editor: Editor ): GetCallback<InsertTextCommandExecuteEvent> {\n\treturn ( evt, args ) => {\n\t\tconst [ options ] = args;\n\t\tconst { range } = options;\n\n\t\t// Only check \"input\" command executed with a range value.\n\t\t// Selection might be set in exception marker but passed range might point elsewhere.\n\t\tif ( !range ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !isRangeInsideSingleMarker( editor, range ) ) {\n\t\t\tevt.stop();\n\t\t}\n\t};\n}\n\nfunction isRangeInsideSingleMarker( editor: Editor, range: ModelRange ) {\n\tconst markerAtStart = getMarkerAtPosition( editor, range.start );\n\tconst markerAtEnd = getMarkerAtPosition( editor, range.end );\n\n\treturn markerAtStart && markerAtEnd && markerAtEnd === markerAtStart;\n}\n\n/**\n * Checks if new marker range is flat. Non-flat ranges might appear during upcast conversion in nested structures, ie tables.\n *\n * Note: This marker fixer only consider case which is possible to create using StandardEditing mode plugin.\n * Markers created by developer in the data might break in many other ways.\n *\n * See #6003.\n */\nfunction ensureNewMarkerIsFlatPostFixer( editor: Editor ): ModelPostFixer {\n\treturn writer => {\n\t\tlet changeApplied = false;\n\n\t\tconst changedMarkers = editor.model.document.differ.getChangedMarkers();\n\n\t\tfor ( const { data, name } of changedMarkers ) {\n\t\t\tif ( !name.startsWith( 'restrictedEditingException' ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst newRange = data.newRange!;\n\n\t\t\tif ( !data.oldRange && !newRange.isFlat ) {\n\t\t\t\tconst start = newRange.start;\n\t\t\t\tconst end = newRange.end;\n\n\t\t\t\tconst startIsHigherInTree = start.path.length > end.path.length;\n\n\t\t\t\tconst fixedStart = startIsHigherInTree ? newRange.start : writer.createPositionAt( end.parent, 0 );\n\t\t\t\tconst fixedEnd = startIsHigherInTree ? writer.createPositionAt( start.parent, 'end' ) : newRange.end;\n\n\t\t\t\twriter.updateMarker( name, {\n\t\t\t\t\trange: writer.createRange( fixedStart, fixedEnd )\n\t\t\t\t} );\n\n\t\t\t\tchangeApplied = true;\n\t\t\t}\n\t\t}\n\n\t\treturn changeApplied;\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmodeui\n */\n\nimport { Plugin, type Command } from 'ckeditor5/src/core.js';\nimport { IconContentLock } from 'ckeditor5/src/icons.js';\nimport {\n\tUIModel,\n\tcreateDropdown,\n\taddListToDropdown,\n\tMenuBarMenuListItemButtonView,\n\ttype ButtonExecuteEvent,\n\ttype ListDropdownItemDefinition, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView\n} from 'ckeditor5/src/ui.js';\nimport { Collection } from 'ckeditor5/src/utils.js';\n\n/**\n * The restricted editing mode UI feature.\n *\n * It introduces the `'restrictedEditing'` dropdown that offers tools to navigate between exceptions across\n * the document.\n */\nexport class RestrictedEditingModeUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingModeUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'restrictedEditing', locale => {\n\t\t\tconst dropdownView = createDropdown( locale );\n\t\t\tconst listItems = new Collection<ListDropdownItemDefinition>();\n\n\t\t\tthis._getButtonDefinitions().forEach( ( { commandName, label, keystroke } ) => {\n\t\t\t\tlistItems.add( this._getButtonDefinition( commandName, label, keystroke ) );\n\t\t\t} );\n\n\t\t\taddListToDropdown( dropdownView, listItems, {\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.set( {\n\t\t\t\tlabel: t( 'Navigate editable regions' ),\n\t\t\t\ticon: IconContentLock,\n\t\t\t\ttooltip: true,\n\t\t\t\tisEnabled: true,\n\t\t\t\tisOn: false\n\t\t\t} );\n\n\t\t\tthis.listenTo<ButtonExecuteEvent>( dropdownView, 'execute', evt => {\n\t\t\t\tconst { _commandName } = evt.source as any;\n\t\t\t\teditor.execute( _commandName );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:restrictedEditing', locale => {\n\t\t\tconst menuView = new MenuBarMenuView( locale );\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\n\t\t\tlistView.set( {\n\t\t\t\tariaLabel: t( 'Navigate editable regions' ),\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tmenuView.buttonView.set( {\n\t\t\t\tlabel: t( 'Navigate editable regions' ),\n\t\t\t\ticon: IconContentLock\n\t\t\t} );\n\n\t\t\tmenuView.panelView.children.add( listView );\n\n\t\t\tthis._getButtonDefinitions().forEach( ( { commandName, label, keystroke } ) => {\n\t\t\t\tconst listItemView = new MenuBarMenuListItemView( locale, menuView );\n\t\t\t\tconst buttonView = this._createMenuBarButton( label, commandName, keystroke );\n\n\t\t\t\tbuttonView.delegate( 'execute' ).to( menuView );\n\n\t\t\t\tlistItemView.children.add( buttonView );\n\t\t\t\tlistView.items.add( listItemView );\n\t\t\t} );\n\n\t\t\treturn menuView;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for restricted editing command to use in menu bar.\n\t */\n\tprivate _createMenuBarButton( label: string, commandName: string, keystroke: string ): MenuBarMenuListItemButtonView {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( commandName )!;\n\t\tconst view = new MenuBarMenuListItemButtonView( editor.locale );\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\tkeystroke,\n\t\t\tisEnabled: true,\n\t\t\tisOn: false\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( commandName );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Returns a definition of the navigation button to be used in the dropdown.\n\t *\n\t * @param commandName The name of the command that the button represents.\n\t * @param label The translated label of the button.\n\t * @param keystroke The button keystroke.\n\t */\n\tprivate _getButtonDefinition( commandName: string, label: string, keystroke: string ): ListDropdownItemDefinition {\n\t\tconst editor = this.editor;\n\t\tconst command: Command = editor.commands.get( commandName )!;\n\t\tconst definition: ListDropdownItemDefinition = {\n\t\t\ttype: 'button' as const,\n\t\t\tmodel: new UIModel( {\n\t\t\t\tlabel,\n\t\t\t\twithText: true,\n\t\t\t\tkeystroke,\n\t\t\t\twithKeystroke: true,\n\t\t\t\trole: 'menuitem',\n\t\t\t\t_commandName: commandName\n\t\t\t} )\n\t\t};\n\n\t\tdefinition.model.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\treturn definition;\n\t}\n\n\t/**\n\t * Returns definitions for UI buttons.\n\t *\n\t * @internal\n\t */\n\tprivate _getButtonDefinitions() {\n\t\tconst t = this.editor.locale.t;\n\n\t\treturn [\n\t\t\t{ commandName: 'goToPreviousRestrictedEditingException', label: t( 'Previous editable region' ), keystroke: 'Shift+Tab' },\n\t\t\t{ commandName: 'goToNextRestrictedEditingException', label: t( 'Next editable region' ), keystroke: 'Tab' }\n\t\t];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingmode\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { RestrictedEditingModeEditing } from './restrictededitingmodeediting.js';\nimport { RestrictedEditingModeUI } from './restrictededitingmodeui.js';\n\nimport '../theme/restrictedediting.css';\n\n/**\n * The restricted editing mode plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:restricted-editing/restrictededitingmodeediting~RestrictedEditingModeEditing restricted mode editing feature}.\n * * The {@link module:restricted-editing/restrictededitingmodeui~RestrictedEditingModeUI restricted mode UI feature}.\n */\nexport class RestrictedEditingMode extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'RestrictedEditingMode' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ RestrictedEditingModeEditing, RestrictedEditingModeUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingexceptioncommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { ModelTreeWalkerValue } from 'ckeditor5/src/engine.js';\n\n/**\n * The command that toggles exceptions from the restricted editing on text.\n */\nexport class RestrictedEditingExceptionCommand extends Command {\n\t/**\n\t * A flag indicating whether the command is active\n\t *\n\t * @readonly\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.value = !!doc.selection.getAttribute( 'restrictedEditingException' );\n\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'restrictedEditingException' );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute( options: RestrictedEditingExceptionCommandParams = {} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst document = model.document;\n\t\tconst selection = document.selection;\n\t\tconst valueToSet = ( options.forceValue === undefined ) ? !this.value : options.forceValue;\n\n\t\tmodel.change( writer => {\n\t\t\tconst ranges = model.schema.getValidRanges( selection.getRanges(), 'restrictedEditingException' );\n\n\t\t\tif ( selection.isCollapsed ) {\n\t\t\t\tif ( valueToSet ) {\n\t\t\t\t\twriter.setSelectionAttribute( 'restrictedEditingException', valueToSet );\n\t\t\t\t} else {\n\t\t\t\t\tconst isSameException = ( value: ModelTreeWalkerValue ) => {\n\t\t\t\t\t\treturn value.item.getAttribute( 'restrictedEditingException' ) === this.value;\n\t\t\t\t\t};\n\n\t\t\t\t\tconst focus = selection.focus!;\n\t\t\t\t\tconst exceptionStart = focus.getLastMatchingPosition( isSameException, { direction: 'backward' } );\n\t\t\t\t\tconst exceptionEnd = focus.getLastMatchingPosition( isSameException );\n\n\t\t\t\t\twriter.removeSelectionAttribute( 'restrictedEditingException' );\n\n\t\t\t\t\tif ( !( focus.isEqual( exceptionStart ) || focus.isEqual( exceptionEnd ) ) ) {\n\t\t\t\t\t\twriter.removeAttribute( 'restrictedEditingException', writer.createRange( exceptionStart, exceptionEnd ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( const range of ranges ) {\n\t\t\t\t\tif ( valueToSet ) {\n\t\t\t\t\t\twriter.setAttribute( 'restrictedEditingException', valueToSet, range );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.removeAttribute( 'restrictedEditingException', range );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport interface RestrictedEditingExceptionCommandParams {\n\tforceValue?: unknown;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/restrictededitingexceptionblockcommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport { first } from 'ckeditor5/src/utils.js';\nimport type { ModelDocumentFragment, ModelElement, ModelPosition, ModelRange, ModelSchema, ModelWriter } from 'ckeditor5/src/engine.js';\n\n/**\n * The command that toggles exception blocks for the restricted editing.\n */\nexport class RestrictedEditingExceptionBlockCommand extends Command {\n\t/**\n\t * Whether the selection starts in a block exception.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.value = this._getValue();\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * Wraps or unwraps the selected blocks with non-restricted area.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.forceValue If set, it will force the command behavior. If `true`, the command will apply a block exception,\n\t * otherwise the command will remove the block exception. If not set, the command will act basing on its current value.\n\t */\n\tpublic override execute( options: { forceValue?: boolean } = {} ): void {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tconst blocks = Array.from( selection.getSelectedBlocks() );\n\t\tconst value = ( options.forceValue === undefined ) ? !this.value : options.forceValue;\n\n\t\tmodel.change( writer => {\n\t\t\tif ( !value ) {\n\t\t\t\tconst blocksToUnwrap = blocks.map( block => {\n\t\t\t\t\t// Find blocks directly nested inside an exception.\n\t\t\t\t\treturn findExceptionContentBlock( block );\n\t\t\t\t} ).filter( ( exception ): exception is ModelElement => !!exception );\n\n\t\t\t\tthis._removeException( writer, blocksToUnwrap );\n\t\t\t} else {\n\t\t\t\tconst blocksToWrap = blocks.filter( block => {\n\t\t\t\t\t// Already wrapped blocks needs to be considered while wrapping too\n\t\t\t\t\t// in order to reuse their wrapper elements.\n\t\t\t\t\treturn findException( block ) || checkCanBeWrapped( schema, block );\n\t\t\t\t} );\n\n\t\t\t\tthis._applyException( writer, blocksToWrap );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Checks the command's {@link #value}.\n\t */\n\tprivate _getValue(): boolean {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst firstBlock = first( selection.getSelectedBlocks() );\n\n\t\treturn !!( firstBlock && findException( firstBlock ) );\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t *\n\t * @returns Whether the command should be enabled.\n\t */\n\tprivate _checkEnabled(): boolean {\n\t\tif ( this.value ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst schema = this.editor.model.schema;\n\n\t\tconst firstBlock = first( selection.getSelectedBlocks() );\n\n\t\tif ( !firstBlock ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn checkCanBeWrapped( schema, firstBlock );\n\t}\n\n\t/**\n\t * Unwraps the exception from given blocks.\n\t *\n\t * If blocks which are supposed to be unwrapped are in the middle of an exception,\n\t * start it or end it, then the exception will be split (if needed) and the blocks\n\t * will be moved out of it, so other exception blocks remained wrapped.\n\t */\n\tprivate _removeException( writer: ModelWriter, blocks: Array<ModelElement> ): void {\n\t\t// Unwrap all groups of block. Iterate in the reverse order to not break following ranges.\n\t\tgetRangesOfBlockGroups( writer, blocks ).reverse().forEach( groupRange => {\n\t\t\tif ( groupRange.start.isAtStart && groupRange.end.isAtEnd ) {\n\t\t\t\twriter.unwrap( groupRange.start.parent as ModelElement );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The group of blocks are at the beginning of an exception so let's move them left (out of the exception).\n\t\t\tif ( groupRange.start.isAtStart ) {\n\t\t\t\tconst positionBefore = writer.createPositionBefore( groupRange.start.parent as ModelElement );\n\n\t\t\t\twriter.move( groupRange, positionBefore );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The blocks are in the middle of an exception so we need to split the exception after the last block\n\t\t\t// so we move the items there.\n\t\t\tif ( !groupRange.end.isAtEnd ) {\n\t\t\t\twriter.split( groupRange.end );\n\t\t\t}\n\n\t\t\t// Now we are sure that groupRange.end.isAtEnd is true, so let's move the blocks right.\n\n\t\t\tconst positionAfter = writer.createPositionAfter( groupRange.end.parent as ModelElement );\n\n\t\t\twriter.move( groupRange, positionAfter );\n\t\t} );\n\t}\n\n\t/**\n\t * Applies the exception to given blocks.\n\t */\n\tprivate _applyException( writer: ModelWriter, blocks: Array<ModelElement> ): void {\n\t\tconst schema = this.editor.model.schema;\n\t\tconst exceptionsToMerge: Array<ModelElement | ModelDocumentFragment> = [];\n\n\t\t// Wrap all groups of block. Iterate in the reverse order to not break following ranges.\n\t\tgetRangesOfBlockGroups( writer, blocks ).reverse().forEach( groupRange => {\n\t\t\tlet exception = findException( groupRange.start );\n\n\t\t\tif ( !exception ) {\n\t\t\t\texception = writer.createElement( 'restrictedEditingException' );\n\n\t\t\t\twriter.wrap( groupRange, exception );\n\t\t\t}\n\n\t\t\texceptionsToMerge.push( exception );\n\t\t} );\n\n\t\t// Merge subsequent exception elements. Reverse the order again because this time we want to go through\n\t\t// the exception elements in the source order (due to how merge works – it moves the right element's content\n\t\t// to the first element and removes the right one. Since we may need to merge a couple of subsequent exception elements\n\t\t// we want to keep the reference to the first (furthest left) one.\n\t\texceptionsToMerge.reverse();\n\n\t\t// But first add any neighbouring block exceptions to the list.\n\t\tif ( exceptionsToMerge.length ) {\n\t\t\tconst previousSibling = exceptionsToMerge.at( 0 )!.previousSibling;\n\t\t\tconst nextSibling = exceptionsToMerge.at( -1 )!.nextSibling;\n\n\t\t\tif ( previousSibling?.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\texceptionsToMerge.unshift( previousSibling );\n\t\t\t}\n\n\t\t\tif ( nextSibling?.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\texceptionsToMerge.push( nextSibling );\n\t\t\t}\n\t\t}\n\n\t\t// Merge subsequent exceptions.\n\t\texceptionsToMerge.reduce( ( currentException, nextException ) => {\n\t\t\tif ( currentException.nextSibling == nextException ) {\n\t\t\t\twriter.merge( writer.createPositionAfter( currentException ) );\n\n\t\t\t\treturn currentException;\n\t\t\t}\n\n\t\t\treturn nextException;\n\t\t} );\n\n\t\t// Remove inline exceptions from block exception.\n\t\tschema.removeDisallowedAttributes( blocks, writer );\n\t}\n}\n\nfunction findException( elementOrPosition: ModelElement | ModelPosition ): ModelElement | ModelDocumentFragment | null {\n\treturn elementOrPosition.findAncestor( 'restrictedEditingException', { includeSelf: true } );\n}\n\nfunction findExceptionContentBlock( element: ModelElement ): ModelElement | null {\n\tlet node = element;\n\n\twhile ( node.parent ) {\n\t\tif ( node.parent.name == 'restrictedEditingException' ) {\n\t\t\treturn node;\n\t\t}\n\n\t\tnode = node.parent as ModelElement;\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns a minimal array of ranges containing groups of subsequent blocks.\n *\n * content: abcdefgh\n * blocks: [ a, b, d, f, g, h ]\n * output ranges: [ab]c[d]e[fgh]\n */\nfunction getRangesOfBlockGroups( writer: ModelWriter, blocks: Array<ModelElement> ): Array<ModelRange> {\n\tlet startPosition;\n\tlet i = 0;\n\tconst ranges = [];\n\n\twhile ( i < blocks.length ) {\n\t\tconst block = blocks[ i ];\n\t\tconst nextBlock = blocks[ i + 1 ];\n\n\t\tif ( !startPosition ) {\n\t\t\tstartPosition = writer.createPositionBefore( block );\n\t\t}\n\n\t\tif ( !nextBlock || block.nextSibling != nextBlock ) {\n\t\t\tranges.push( writer.createRange( startPosition, writer.createPositionAfter( block ) ) );\n\t\t\tstartPosition = null;\n\t\t}\n\n\t\ti++;\n\t}\n\n\treturn ranges;\n}\n\n/**\n * Checks whether exception can wrap the block.\n */\nfunction checkCanBeWrapped( schema: ModelSchema, block: ModelElement ): boolean {\n\tconst parentContext = schema.createContext( block.parent as ModelElement );\n\n\t// Is block exception allowed in parent of block.\n\tif ( !schema.checkChild( parentContext, 'restrictedEditingException' ) ) {\n\t\treturn false;\n\t}\n\n\t// Is block allowed inside block exception.\n\tif ( !schema.checkChild( parentContext.push( 'restrictedEditingException' ), block ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmodeediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { Matcher, type ModelElement, type UpcastElementEvent } from 'ckeditor5/src/engine.js';\n\nimport { RestrictedEditingExceptionCommand } from './restrictededitingexceptioncommand.js';\nimport { RestrictedEditingExceptionBlockCommand } from './restrictededitingexceptionblockcommand.js';\n\n/**\n * The standard editing mode editing feature.\n *\n * * It introduces the `restrictedEditingException` text attribute that is rendered as\n * a `<span>` element with the `restricted-editing-exception` CSS class.\n * * It registers the `'restrictedEditingException'` command.\n */\nexport class StandardEditingModeEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingModeEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tschema.extend( '$text', { allowAttributes: [ 'restrictedEditingException' ] } );\n\n\t\tschema.register( 'restrictedEditingException', {\n\t\t\tallowWhere: '$container',\n\t\t\tallowContentOf: '$container'\n\t\t} );\n\n\t\t// Don't allow nesting of block exceptions.\n\t\tschema.addChildCheck( context => {\n\t\t\tfor ( const item of context ) {\n\t\t\t\tif ( item.name == 'restrictedEditingException' ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 'restrictedEditingException' );\n\n\t\t// Don't allow nesting inline exceptions inside block exceptions.\n\t\tschema.addAttributeCheck( context => {\n\t\t\tfor ( const item of context ) {\n\t\t\t\tif ( item.name == 'restrictedEditingException' ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 'restrictedEditingException' );\n\n\t\t// Post-fixer to ensure proper structure.\n\t\teditor.model.document.registerPostFixer( writer => {\n\t\t\tconst changes = editor.model.document.differ.getChanges();\n\t\t\tconst unwrap = new Set<ModelElement>();\n\t\t\tconst remove = new Set<ModelElement>();\n\t\t\tconst merge = new Set<ModelElement>();\n\t\t\tlet changed = false;\n\n\t\t\tfor ( const entry of changes ) {\n\t\t\t\tif ( entry.type == 'insert' ) {\n\t\t\t\t\tconst range = writer.createRange( entry.position, entry.position.getShiftedBy( entry.length ) );\n\n\t\t\t\t\tfor ( const child of range.getItems() ) {\n\t\t\t\t\t\tif ( child.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\t\t\t\t// Make sure that block exception is not nested or added in invalid place.\n\t\t\t\t\t\t\tif ( !schema.checkChild( writer.createPositionBefore( child ), child ) ) {\n\t\t\t\t\t\t\t\tunwrap.add( child );\n\t\t\t\t\t\t\t} else if ( child.isEmpty ) {\n\t\t\t\t\t\t\t\tremove.add( child );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmerge.add( child );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tchild.is( '$textProxy' ) &&\n\t\t\t\t\t\t\tchild.hasAttribute( 'restrictedEditingException' ) &&\n\t\t\t\t\t\t\t!schema.checkAttribute( child, 'restrictedEditingException' )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\twriter.removeAttribute( 'restrictedEditingException', child );\n\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( entry.type == 'remove' ) {\n\t\t\t\t\tconst parent = entry.position.parent;\n\n\t\t\t\t\tif ( parent.is( 'element', 'restrictedEditingException' ) && parent.isEmpty ) {\n\t\t\t\t\t\tremove.add( parent );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Verify if some block exceptions are siblings now after element removed between.\n\t\t\t\t\tfor ( const child of parent.getChildren() ) {\n\t\t\t\t\t\tif ( child.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\t\t\t\tmerge.add( child );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( const child of unwrap ) {\n\t\t\t\twriter.unwrap( child );\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tfor ( const child of remove ) {\n\t\t\t\twriter.remove( child );\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tfor ( const child of merge ) {\n\t\t\t\tif ( child.root.rootName == '$graveyard' ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst nodeBefore = child.previousSibling;\n\t\t\t\tconst nodeAfter = child.nextSibling;\n\n\t\t\t\tif ( nodeBefore && nodeBefore.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\t\twriter.merge( writer.createPositionBefore( child ) );\n\t\t\t\t}\n\n\t\t\t\tif ( nodeAfter && nodeAfter.is( 'element', 'restrictedEditingException' ) ) {\n\t\t\t\t\twriter.merge( writer.createPositionAfter( child ) );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn changed;\n\t\t} );\n\n\t\teditor.conversion.for( 'upcast' )\n\t\t\t.elementToAttribute( {\n\t\t\t\tmodel: 'restrictedEditingException',\n\t\t\t\tview: {\n\t\t\t\t\tname: 'span',\n\t\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'restrictedEditingException',\n\t\t\t\tview: {\n\t\t\t\t\tname: 'div',\n\t\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t\t}\n\t\t\t} );\n\n\t\tregisterFallbackUpcastConverter( editor );\n\n\t\teditor.conversion.for( 'downcast' )\n\t\t\t.attributeToElement( {\n\t\t\t\tmodel: 'restrictedEditingException',\n\t\t\t\tview: ( modelAttributeValue, { writer } ) => {\n\t\t\t\t\tif ( modelAttributeValue ) {\n\t\t\t\t\t\t// Make the restricted editing <span> outer-most in the view.\n\t\t\t\t\t\treturn writer.createAttributeElement( 'span', { class: 'restricted-editing-exception' }, { priority: -10 } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.elementToElement( {\n\t\t\t\tmodel: 'restrictedEditingException',\n\t\t\t\tview: {\n\t\t\t\t\tname: 'div',\n\t\t\t\t\tclasses: 'restricted-editing-exception'\n\t\t\t\t}\n\t\t\t} );\n\n\t\teditor.commands.add( 'restrictedEditingException', new RestrictedEditingExceptionCommand( editor ) );\n\t\teditor.commands.add( 'restrictedEditingExceptionBlock', new RestrictedEditingExceptionBlockCommand( editor ) );\n\n\t\teditor.editing.view.change( writer => {\n\t\t\tfor ( const root of editor.editing.view.document.roots ) {\n\t\t\t\twriter.addClass( 'ck-restricted-editing_mode_standard', root );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Fallback upcast converter for empty exception span inside a table cell.\n */\nfunction registerFallbackUpcastConverter( editor: Editor ) {\n\tconst matcher = new Matcher( { name: 'span', classes: 'restricted-editing-exception' } );\n\n\t// See: https://github.com/ckeditor/ckeditor5/issues/16376.\n\teditor.conversion.for( 'upcast' ).add(\n\t\tdispatcher => dispatcher.on<UpcastElementEvent>( 'element:span', ( evt, data, conversionApi ) => {\n\t\t\tconst matcherResult = matcher.match( data.viewItem );\n\n\t\t\tif ( !matcherResult ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst match = matcherResult.match;\n\n\t\t\tif ( !conversionApi.consumable.test( data.viewItem, match ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst modelText = conversionApi.writer.createText( ' ', { restrictedEditingException: true } );\n\n\t\t\tif ( !conversionApi.safeInsert( modelText, data.modelCursor ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconversionApi.consumable.consume( data.viewItem, match );\n\n\t\t\tdata.modelRange = conversionApi.writer.createRange(\n\t\t\t\tdata.modelCursor,\n\t\t\t\tdata.modelCursor.getShiftedBy( modelText.offsetSize )\n\t\t\t);\n\t\t\tdata.modelCursor = data.modelRange.end;\n\t\t}, { priority: 'low' } )\n\t);\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmodeui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { IconContentUnlock } from 'ckeditor5/src/icons.js';\nimport {\n\tButtonView,\n\tMenuBarMenuListItemButtonView,\n\tcreateDropdown,\n\taddToolbarToDropdown\n} from 'ckeditor5/src/ui.js';\n\n/**\n * The standard editing mode UI feature.\n *\n * It introduces the `'restrictedEditingException'` button that marks text as unrestricted for editing.\n */\nexport class StandardEditingModeUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingModeUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst componentFactory = editor.ui.componentFactory;\n\n\t\tcomponentFactory.add( 'restrictedEditingException:dropdown', locale => {\n\t\t\tconst dropdownView = createDropdown( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tconst buttons = [\n\t\t\t\tcomponentFactory.create( 'restrictedEditingException:inline' ),\n\t\t\t\tcomponentFactory.create( 'restrictedEditingException:block' )\n\t\t\t] as Array<ButtonView>;\n\n\t\t\tfor ( const button of buttons ) {\n\t\t\t\tbutton.set( {\n\t\t\t\t\twithText: true,\n\t\t\t\t\ttooltip: false\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\taddToolbarToDropdown(\n\t\t\t\tdropdownView,\n\t\t\t\tbuttons,\n\t\t\t\t{\n\t\t\t\t\tenableActiveItemFocusOnDropdownOpen: true,\n\t\t\t\t\tisVertical: true,\n\t\t\t\t\tariaLabel: t( 'Enable editing' )\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tdropdownView.buttonView.set( {\n\t\t\t\tlabel: t( 'Enable editing' ),\n\t\t\t\ticon: IconContentUnlock,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tdropdownView.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: 'ck-restricted-editing-dropdown'\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Enable button if any of the buttons is enabled.\n\t\t\tdropdownView.bind( 'isEnabled' ).toMany( buttons, 'isEnabled', ( ...areEnabled ) => {\n\t\t\t\treturn areEnabled.some( isEnabled => isEnabled );\n\t\t\t} );\n\n\t\t\t// Focus the editable after executing the command.\n\t\t\tthis.listenTo( dropdownView, 'execute', () => {\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\n\t\tcomponentFactory.add( 'restrictedEditingException:inline', () => {\n\t\t\tconst button = this._createButton( 'restrictedEditingException', ButtonView );\n\n\t\t\tbutton.set( {\n\t\t\t\ttooltip: true,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tcomponentFactory.add( 'restrictedEditingException:block', () => {\n\t\t\tconst button = this._createButton( 'restrictedEditingExceptionBlock', ButtonView );\n\n\t\t\tbutton.set( {\n\t\t\t\ttooltip: true,\n\t\t\t\tisToggleable: true\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tcomponentFactory.add( 'menuBar:restrictedEditingException:inline', () => {\n\t\t\treturn this._createButton( 'restrictedEditingException', MenuBarMenuListItemButtonView );\n\t\t} );\n\n\t\tcomponentFactory.add( 'menuBar:restrictedEditingException:block', () => {\n\t\t\treturn this._createButton( 'restrictedEditingExceptionBlock', MenuBarMenuListItemButtonView );\n\t\t} );\n\n\t\t// Aliases for backward compatibility.\n\t\tcomponentFactory.add( 'restrictedEditingException', () => {\n\t\t\treturn componentFactory.create( 'restrictedEditingException:inline' );\n\t\t} );\n\t\tcomponentFactory.add( 'menuBar:restrictedEditingException', () => {\n\t\t\treturn componentFactory.create( 'menuBar:restrictedEditingException:inline' );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for restricted editing exception command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>(\n\t\tcommandName: 'restrictedEditingException' | 'restrictedEditingExceptionBlock',\n\t\tButtonClass: T\n\t): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command = this.editor.commands.get( commandName )!;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.icon = IconContentUnlock;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tif ( commandName == 'restrictedEditingExceptionBlock' ) {\n\t\t\tview.bind( 'label' ).to( command, 'value', value => {\n\t\t\t\treturn value ? t( 'Disable block editing' ) : t( 'Enable block editing' );\n\t\t\t} );\n\t\t} else {\n\t\t\tview.bind( 'label' ).to( command, 'value', value => {\n\t\t\t\treturn value ? t( 'Disable inline editing' ) : t( 'Enable inline editing' );\n\t\t\t} );\n\t\t}\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( commandName );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module restricted-editing/standardeditingmode\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { StandardEditingModeEditing } from './standardeditingmodeediting.js';\nimport { StandardEditingModeUI } from './standardeditingmodeui.js';\n\nimport '../theme/restrictedediting.css';\n\n/**\n * The standard editing mode plugin.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:restricted-editing/standardeditingmodeediting~StandardEditingModeEditing standard mode editing feature}.\n * * The {@link module:restricted-editing/standardeditingmodeui~StandardEditingModeUI standard mode UI feature}.\n */\nexport class StandardEditingMode extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'StandardEditingMode' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\tpublic static get requires() {\n\t\treturn [ StandardEditingModeEditing, StandardEditingModeUI ] as const;\n\t}\n}\n\n"]}
|