@ckeditor/ckeditor5-restricted-editing 45.2.1 → 46.0.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.
@@ -2,4 +2,4 @@
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var e={21:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},51:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},128:e=>{"use strict";var t={};e.exports=function(e,i){var n=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},237:e=>{"use strict";e.exports=CKEditor5.dll},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},588:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var n=i(758),r=i.n(n),o=i(935),s=i.n(o)()(r());s.push([e.id,":root{--ck-color-restricted-editing-exception-background:rgba(255,169,77,.2);--ck-color-restricted-editing-exception-hover-background:rgba(255,169,77,.35);--ck-color-restricted-editing-exception-brackets:rgba(204,105,0,.4);--ck-color-restricted-editing-selected-exception-background:rgba(255,169,77,.5);--ck-color-restricted-editing-selected-exception-brackets:rgba(204,105,0,.6)}.ck-editor__editable .restricted-editing-exception{background-color:var(--ck-color-restricted-editing-exception-background);border:1px solid;border-image:linear-gradient(to right,var(--ck-color-restricted-editing-exception-brackets) 0,var(--ck-color-restricted-editing-exception-brackets) 5px,transparent 6px,transparent calc(100% - 6px),var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),var(--ck-color-restricted-editing-exception-brackets) 100%) 1;transition:background .2s ease-in-out}@media (prefers-reduced-motion:reduce){.ck-editor__editable .restricted-editing-exception{transition:none}}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected{background-color:var(--ck-color-restricted-editing-selected-exception-background);border-image:linear-gradient(to right,var(--ck-color-restricted-editing-selected-exception-brackets) 0,var(--ck-color-restricted-editing-selected-exception-brackets) 5px,var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),var(--ck-color-restricted-editing-selected-exception-brackets) 100%) 1}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_collapsed{padding-left:1ch}.ck-restricted-editing_mode_restricted,.ck-restricted-editing_mode_restricted *{cursor:default}.ck-restricted-editing_mode_restricted .restricted-editing-exception,.ck-restricted-editing_mode_restricted .restricted-editing-exception *{cursor:text}.ck-restricted-editing_mode_restricted .restricted-editing-exception:hover{background:var(--ck-color-restricted-editing-exception-hover-background)}",""]);const c=s},591:e=>{"use strict";var t=[];function i(e){for(var i=-1,n=0;n<t.length;n++)if(t[n].identifier===e){i=n;break}return i}function n(e,n){for(var o={},s=[],c=0;c<e.length;c++){var a=e[c],d=n.base?a[0]+n.base:a[0],l=o[d]||0,u="".concat(d," ").concat(l);o[d]=l+1;var g=i(u),m={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==g)t[g].references++,t[g].updater(m);else{var p=r(m,n);n.byIndex=c,t.splice(c,0,{identifier:u,updater:p,references:1})}s.push(u)}return s}function r(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,r){var o=n(e=e||[],r=r||{});return function(e){e=e||[];for(var s=0;s<o.length;s++){var c=i(o[s]);t[c].references--}for(var a=n(e,r),d=0;d<o.length;d++){var l=i(o[d]);0===t[l].references&&(t[l].updater(),t.splice(l,1))}o=a}}},639:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function n(e,t,n,r){var o;if(n)o="";else{o="",r.supports&&(o+="@supports (".concat(r.supports,") {")),r.media&&(o+="@media ".concat(r.media," {"));var s=void 0!==r.layer;s&&(o+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),o+=r.css,s&&(o+="}"),r.media&&(o+="}"),r.supports&&(o+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,o);else{var c=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(c,a[t]):e.appendChild(c)}}var r={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=r.singletonCounter++,i=r.singleton||(r.singleton=e.insertStyleElement(e));return{update:function(e){n(i,t,!1,e)},remove:function(e){n(i,t,!0,e)}}}},758:e=>{"use strict";e.exports=function(e){return e[1]}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,n,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var c=0;c<this.length;c++){var a=this[c][0];null!=a&&(s[a]=!0)}for(var d=0;d<e.length;d++){var l=[].concat(e[d]);n&&s[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=o),i&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=i):l[2]=i),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),t.push(l))}},t}}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{RestrictedEditingMode:()=>A,RestrictedEditingModeEditing:()=>g,RestrictedEditingModeUI:()=>E,StandardEditingMode:()=>D,StandardEditingModeEditing:()=>I,StandardEditingModeUI:()=>B});var e=i(782);class t extends e.Command{_direction;constructor(e,t){super(e),this.affectsData=!1,this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=r(this.editor.model,this._direction);e&&this.editor.model.change(t=>{t.setSelection(e)})}_checkEnabled(){return!!r(this.editor.model,this._direction)}}function r(e,t){const i=e.document.selection.getFirstPosition(),n=[];for(const r of e.markers.getMarkersGroup("restrictedEditingException")){const e=r.getRange(),o=i.isTouching(e.start)&&i.hasSameParentAs(e.start)||i.isTouching(e.end)&&i.hasSameParentAs(e.end);e.containsPosition(i)||o||("forward"===t&&e.start.isAfter(i)||"backward"===t&&e.end.isBefore(i))&&n.push(e)}if(n.length)return n.sort((e,i)=>"forward"===t?e.start.isAfter(i.start)?1:-1:e.start.isBefore(i.start)?1:-1).shift()}var o=i(783);function s(e,t){for(const i of e.model.markers){if(c(i.getRange(),t)&&i.name.startsWith("restrictedEditingException:"))return i}}function c(e,t){return e.containsPosition(t)||e.end.isEqual(t)||e.start.isEqual(t)}const a="restricted-editing-exception_selected";function d(e,t,i,n){const r=s(e,t.getShiftedBy(i));return!(!r||!r.getStart().isEqual(t.getShiftedBy(i)))&&(n.updateMarker(r,{range:n.createRange(r.getStart().getShiftedBy(-i),r.getEnd())}),!0)}function l(e,t,i,n){const r=s(e,t);return!(!r||!r.getEnd().isEqual(t))&&(n.updateMarker(r,{range:n.createRange(r.getStart(),r.getEnd().getShiftedBy(i))}),!0)}const u="RestrictedEditingMode";class g extends e.Plugin{_alwaysEnabled;_allowedInException;static get pluginName(){return"RestrictedEditingModeEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("restrictedEditing",{allowedCommands:["bold","italic","link","unlink"],allowedAttributes:["bold","italic","linkHref"]}),this._alwaysEnabled=new Set(["undo","redo"]),this._allowedInException=new Set(["input","insertText","delete","deleteForward"])}init(){const e=this.editor,i=e.editing.view;e.config.get("restrictedEditing.allowedCommands").forEach(e=>this._allowedInException.add(e)),this._setupConversion(),this._setupCommandsToggling(),this._setupRestrictions(),e.commands.add("goToPreviousRestrictedEditingException",new t(e,"backward")),e.commands.add("goToNextRestrictedEditingException",new t(e,"forward")),this.listenTo(i.document,"tab",(t,i)=>{const n=i.shiftKey?"goToPreviousRestrictedEditingException":"goToNextRestrictedEditingException";e.commands.get(n).isEnabled&&(e.execute(n),i.preventDefault(),i.stopPropagation()),t.stop()},{context:"$capture"}),e.keystrokes.set("Ctrl+A",function(e){return(t,i)=>{const n=e.model,r=e.model.document.selection,o=s(e,r.focus);if(!o)return;const c=r.getFirstRange();(o.getRange().containsRange(c,!0)||r.isCollapsed)&&(i(),n.change(e=>{e.setSelection(o.getRange())}))}}(e)),i.change(e=>{for(const t of i.document.roots)e.addClass("ck-restricted-editing_mode_restricted",t)}),e.data.on("set",()=>{e.model.change(t=>{for(const i of e.model.markers.getMarkersGroup("restrictedEditingException"))t.removeMarker(i.name)})},{priority:"high"})}enableCommand(e){this.editor.commands.get(e).clearForceDisabled(u),this._alwaysEnabled.add(e)}_setupConversion(){const e=this.editor,t=e.model.document;let i=0;var n;e.conversion.for("upcast").add((n={view:{name:"span",classes:"restricted-editing-exception"},model:()=>(i++,`restrictedEditingException:${i}`)},e=>e.on("element:span",(e,t,i)=>{const{writer:r}=i,s=new o.Matcher(n.view).match(t.viewItem);if(!s)return;const c=s.match;c.name=!0;const{modelRange:a}=i.convertChildren(t.viewItem,t.modelCursor);i.consumable.consume(t.viewItem,c);const d=n.model(),l=r.createElement("$marker",{"data-name":d}),u=r.createElement("$marker",{"data-name":d});r.insert(u,a.end),r.insert(l,a.start),t.modelRange=r.createRange(r.createPositionBefore(l),r.createPositionAfter(u)),t.modelCursor=t.modelRange.end}))),e.conversion.for("downcast").add(e=>{e.on("addMarker:restrictedEditingException",(e,t,i)=>{if(!t.item)return;if(t.item.is("selection")||!i.schema.isInline(t.item))return;if(!i.consumable.consume(t.item,e.name))return;const n=i.writer,r=n.createAttributeElement("span",{class:"restricted-editing-exception"},{id:t.markerName,priority:-10}),o=i.mapper.toViewRange(t.range),s=n.wrap(o,r);for(const e of s.getItems())if(e.is("attributeElement")&&e.isSimilar(r)){i.mapper.bindElementToMarker(e,t.markerName);break}})}),e.conversion.for("downcast").markerToHighlight({model:"restrictedEditingException",view:()=>({name:"span",classes:"restricted-editing-exception",priority:-10})}),e.conversion.for("editingDowncast").markerToElement({model:"restrictedEditingException",view:(e,{writer:t})=>t.createUIElement("span",{class:"restricted-editing-exception restricted-editing-exception_collapsed"})}),e.conversion.for("dataDowncast").markerToElement({model:"restrictedEditingException",view:(e,{writer:t})=>t.createEmptyElement("span",{class:"restricted-editing-exception"})}),t.registerPostFixer(function(e){return t=>{let i=!1;const n=e.model.schema;for(const r of e.model.document.differ.getChanges())"insert"==r.type&&n.checkChild("$block",r.name)&&(i=d(e,r.position,r.length,t)||i,i=l(e,r.position,r.length,t)||i);return i}}(e)),t.registerPostFixer(function(e){return t=>{let i=!1;for(const{name:n,data:r}of e.model.document.differ.getChangedMarkers())n.startsWith("restrictedEditingException")&&r.newRange&&"$graveyard"==r.newRange.root.rootName&&(t.updateMarker(n,{range:t.createRange(t.createPositionAt(r.oldRange.start))}),i=!0);return i}}(e)),t.registerPostFixer(function(e){return t=>{let i=!1;const n=e.model.document.differ.getChangedMarkers();for(const{data:e,name:r}of n){if(!r.startsWith("restrictedEditingException"))continue;const n=e.newRange;if(!e.oldRange&&!n.isFlat){const e=n.start,o=n.end,s=e.path.length>o.path.length,c=s?n.start:t.createPositionAt(o.parent,0),a=s?t.createPositionAt(e.parent,"end"):n.end;t.updateMarker(r,{range:t.createRange(c,a)}),i=!0}}return i}}(e)),function(e){const t=e.editing.view,i=e.model,n=new Set;t.document.registerPostFixer(t=>{const r=i.document.selection,o=s(e,r.anchor);if(!o)return!1;for(const i of e.editing.mapper.markerNameToElements(o.name))t.addClass(a,i),n.add(i);return!1}),e.conversion.for("editingDowncast").add(e=>{function i(){t.change(e=>{for(const t of n.values())e.removeClass(a,t),n.delete(t)})}e.on("insert",i,{priority:"highest"}),e.on("remove",i,{priority:"highest"}),e.on("attribute",i,{priority:"highest"}),e.on("cleanSelection",i)})}(e)}_setupRestrictions(){const e=this.editor,t=e.model,i=t.document.selection,n=e.editing.view.document,r=e.plugins.get("ClipboardPipeline");this.listenTo(t,"deleteContent",function(e){return(t,i)=>{const[n]=i,r=s(e,n.focus)||s(e,n.anchor);if(!r)return void t.stop();if(n.isCollapsed)return;const o=r.getRange().getIntersection(n.getFirstRange());n.is("documentSelection")?e.model.change(e=>{e.setSelection(o)}):n.setTo(o)}}(e),{priority:"high"});const o=e.commands.get("insertText");o&&this.listenTo(o,"execute",function(e){return(t,i)=>{const[n]=i,{range:r}=n;r&&(p(e,r)||t.stop())}}(e),{priority:"high"}),this.listenTo(r,"contentInsertion",t=>{p(e,i.getFirstRange())||t.stop()}),this.listenTo(n,"clipboardOutput",(t,n)=>{"cut"!=n.method||p(e,i.getFirstRange())||t.stop()},{priority:"high"});const c=e.config.get("restrictedEditing.allowedAttributes");t.schema.addAttributeCheck(function(e){return(t,i)=>{if(t.startsWith("$clipboardHolder"))return e.includes(i)}}(c)),t.schema.addChildCheck((e,t)=>{if(e.startsWith("$clipboardHolder"))return"$text"===t.name})}_setupCommandsToggling(){const e=this.editor.model.document;this._disableCommands(),this.listenTo(e.selection,"change",this._checkCommands.bind(this)),this.listenTo(e,"change:data",this._checkCommands.bind(this))}_checkCommands(){const e=this.editor,t=e.model.document.selection;if(t.rangeCount>1)return void this._disableCommands();const i=s(e,t.focus);this._disableCommands(),function(e,t){if(!t)return!1;const i=t.getRange();return e.isCollapsed?c(i,e.focus):i.containsRange(e.getFirstRange(),!0)}(t,i)&&this._enableCommands(i)}_enableCommands(e){const t=this.editor;for(const[i,n]of t.commands)n.affectsData&&!this._alwaysEnabled.has(i)&&this._allowedInException.has(i)&&(m(i,t.model.document.selection,e.getRange())||n.clearForceDisabled(u))}_disableCommands(){const e=this.editor;for(const[t,i]of e.commands)i.affectsData&&!this._alwaysEnabled.has(t)&&i.forceDisabled(u)}}function m(e,t,i){return!("delete"!=e||!i.start.isEqual(t.focus))||!("deleteForward"!=e||!t.isCollapsed||!i.end.isEqual(t.focus))}function p(e,t){const i=s(e,t.start),n=s(e,t.end);return i&&n&&n===i}var f=i(355),h=i(311),b=i(584);class E extends e.Plugin{static get pluginName(){return"RestrictedEditingModeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditing",i=>{const n=(0,h.createDropdown)(i),r=new b.Collection;return this._getButtonDefinitions().forEach(({commandName:e,label:t,keystroke:i})=>{r.add(this._getButtonDefinition(e,t,i))}),(0,h.addListToDropdown)(n,r,{role:"menu"}),n.buttonView.set({label:t("Navigate editable regions"),icon:f.IconContentLock,tooltip:!0,isEnabled:!0,isOn:!1}),this.listenTo(n,"execute",t=>{const{_commandName:i}=t.source;e.execute(i),e.editing.view.focus()}),n}),e.ui.componentFactory.add("menuBar:restrictedEditing",e=>{const i=new h.MenuBarMenuView(e),n=new h.MenuBarMenuListView(e);return n.set({ariaLabel:t("Navigate editable regions"),role:"menu"}),i.buttonView.set({label:t("Navigate editable regions"),icon:f.IconContentLock}),i.panelView.children.add(n),this._getButtonDefinitions().forEach(({commandName:t,label:r,keystroke:o})=>{const s=new h.MenuBarMenuListItemView(e,i),c=this._createMenuBarButton(r,t,o);c.delegate("execute").to(i),s.children.add(c),n.items.add(s)}),i})}_createMenuBarButton(e,t,i){const n=this.editor,r=n.commands.get(t),o=new h.MenuBarMenuListItemButtonView(n.locale);return o.set({label:e,keystroke:i,isEnabled:!0,isOn:!1}),o.bind("isEnabled").to(r),this.listenTo(o,"execute",()=>{n.execute(t),n.editing.view.focus()}),o}_getButtonDefinition(e,t,i){const n=this.editor.commands.get(e),r={type:"button",model:new h.ViewModel({label:t,withText:!0,keystroke:i,withKeystroke:!0,role:"menuitem",_commandName:e})};return r.model.bind("isEnabled").to(n,"isEnabled"),r}_getButtonDefinitions(){const e=this.editor.locale.t;return[{commandName:"goToPreviousRestrictedEditingException",label:e("Previous editable region"),keystroke:"Shift+Tab"},{commandName:"goToNextRestrictedEditingException",label:e("Next editable region"),keystroke:"Tab"}]}}var x=i(591),v=i.n(x),k=i(639),w=i.n(k),_=i(128),y=i.n(_),C=i(21),R=i.n(C),M=i(51),T=i.n(M),S=i(588),P={attributes:{"data-cke":!0}};P.setAttributes=R(),P.insert=y().bind(null,"head"),P.domAPI=w(),P.insertStyleElement=T();v()(S.A,P);S.A&&S.A.locals&&S.A.locals;class A extends e.Plugin{static get pluginName(){return"RestrictedEditingMode"}static get isOfficialPlugin(){return!0}static get requires(){return[g,E]}}class N extends e.Command{refresh(){const e=this.editor.model,t=e.document;this.value=!!t.selection.getAttribute("restrictedEditingException"),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"restrictedEditingException")}execute(e={}){const t=this.editor.model,i=t.document.selection,n=void 0===e.forceValue?!this.value:e.forceValue;t.change(e=>{const r=t.schema.getValidRanges(i.getRanges(),"restrictedEditingException");if(i.isCollapsed)if(n)e.setSelectionAttribute("restrictedEditingException",n);else{const t=e=>e.item.getAttribute("restrictedEditingException")===this.value,n=i.focus,r=n.getLastMatchingPosition(t,{direction:"backward"}),o=n.getLastMatchingPosition(t);e.removeSelectionAttribute("restrictedEditingException"),n.isEqual(r)||n.isEqual(o)||e.removeAttribute("restrictedEditingException",e.createRange(r,o))}else for(const t of r)n?e.setAttribute("restrictedEditingException",n,t):e.removeAttribute("restrictedEditingException",t)})}}class I extends e.Plugin{static get pluginName(){return"StandardEditingModeEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.extend("$text",{allowAttributes:["restrictedEditingException"]}),e.conversion.for("upcast").elementToAttribute({model:"restrictedEditingException",view:{name:"span",classes:"restricted-editing-exception"}}),e.conversion.for("downcast").attributeToElement({model:"restrictedEditingException",view:(e,{writer:t})=>{if(e)return t.createAttributeElement("span",{class:"restricted-editing-exception"},{priority:-10})}}),e.commands.add("restrictedEditingException",new N(e)),e.editing.view.change(t=>{for(const i of e.editing.view.document.roots)t.addClass("ck-restricted-editing_mode_standard",i)})}}class B extends e.Plugin{static get pluginName(){return"StandardEditingModeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("restrictedEditingException",()=>{const e=this._createButton(h.ButtonView);return e.set({tooltip:!0,isToggleable:!0}),e}),e.ui.componentFactory.add("menuBar:restrictedEditingException",()=>this._createButton(h.MenuBarMenuListItemButtonView))}_createButton(e){const t=this.editor,i=t.locale,n=this.editor.commands.get("restrictedEditingException"),r=new e(i),o=i.t;return r.icon=f.IconContentUnlock,r.bind("isOn","isEnabled").to(n,"value","isEnabled"),r.bind("label").to(n,"value",e=>o(e?"Disable editing":"Enable editing")),this.listenTo(r,"execute",()=>{t.execute("restrictedEditingException"),t.editing.view.focus()}),r}}class D extends e.Plugin{static get pluginName(){return"StandardEditingMode"}static get isOfficialPlugin(){return!0}static get requires(){return[I,B]}}})(),(window.CKEditor5=window.CKEditor5||{}).restrictedEditing=n})();
5
+ */(()=>{var e={21:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},51:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},128:e=>{"use strict";var t={};e.exports=function(e,i){var n=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},237:e=>{"use strict";e.exports=CKEditor5.dll},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},588:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var n=i(758),r=i.n(n),o=i(935),s=i.n(o)()(r());s.push([e.id,":root{--ck-color-restricted-editing-exception-background:rgba(255,169,77,.2);--ck-color-restricted-editing-exception-hover-background:rgba(255,169,77,.35);--ck-color-restricted-editing-exception-brackets:rgba(204,105,0,.4);--ck-color-restricted-editing-selected-exception-background:rgba(255,169,77,.5);--ck-color-restricted-editing-selected-exception-brackets:rgba(204,105,0,.6)}.ck-editor__editable .restricted-editing-exception{background-color:var(--ck-color-restricted-editing-exception-background);border:1px solid;border-image:linear-gradient(to right,var(--ck-color-restricted-editing-exception-brackets) 0,var(--ck-color-restricted-editing-exception-brackets) 5px,transparent 6px,transparent calc(100% - 6px),var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),var(--ck-color-restricted-editing-exception-brackets) 100%) 1;transition:background .2s ease-in-out}@media (prefers-reduced-motion:reduce){.ck-editor__editable .restricted-editing-exception{transition:none}}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected{background-color:var(--ck-color-restricted-editing-selected-exception-background);border-image:linear-gradient(to right,var(--ck-color-restricted-editing-selected-exception-brackets) 0,var(--ck-color-restricted-editing-selected-exception-brackets) 5px,var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),var(--ck-color-restricted-editing-selected-exception-brackets) 100%) 1}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_collapsed{padding-left:1ch}.ck-restricted-editing_mode_restricted,.ck-restricted-editing_mode_restricted *{cursor:default}.ck-restricted-editing_mode_restricted .restricted-editing-exception,.ck-restricted-editing_mode_restricted .restricted-editing-exception *{cursor:text}.ck-restricted-editing_mode_restricted .restricted-editing-exception:hover{background:var(--ck-color-restricted-editing-exception-hover-background)}",""]);const c=s},591:e=>{"use strict";var t=[];function i(e){for(var i=-1,n=0;n<t.length;n++)if(t[n].identifier===e){i=n;break}return i}function n(e,n){for(var o={},s=[],c=0;c<e.length;c++){var a=e[c],d=n.base?a[0]+n.base:a[0],l=o[d]||0,u="".concat(d," ").concat(l);o[d]=l+1;var g=i(u),m={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==g)t[g].references++,t[g].updater(m);else{var p=r(m,n);n.byIndex=c,t.splice(c,0,{identifier:u,updater:p,references:1})}s.push(u)}return s}function r(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,r){var o=n(e=e||[],r=r||{});return function(e){e=e||[];for(var s=0;s<o.length;s++){var c=i(o[s]);t[c].references--}for(var a=n(e,r),d=0;d<o.length;d++){var l=i(o[d]);0===t[l].references&&(t[l].updater(),t.splice(l,1))}o=a}}},639:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function n(e,t,n,r){var o;if(n)o="";else{o="",r.supports&&(o+="@supports (".concat(r.supports,") {")),r.media&&(o+="@media ".concat(r.media," {"));var s=void 0!==r.layer;s&&(o+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),o+=r.css,s&&(o+="}"),r.media&&(o+="}"),r.supports&&(o+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,o);else{var c=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(c,a[t]):e.appendChild(c)}}var r={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=r.singletonCounter++,i=r.singleton||(r.singleton=e.insertStyleElement(e));return{update:function(e){n(i,t,!1,e)},remove:function(e){n(i,t,!0,e)}}}},758:e=>{"use strict";e.exports=function(e){return e[1]}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,n,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var c=0;c<this.length;c++){var a=this[c][0];null!=a&&(s[a]=!0)}for(var d=0;d<e.length;d++){var l=[].concat(e[d]);n&&s[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=o),i&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=i):l[2]=i),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),t.push(l))}},t}}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{RestrictedEditingExceptionCommand:()=>O,RestrictedEditingMode:()=>F,RestrictedEditingModeEditing:()=>E,RestrictedEditingModeNavigationCommand:()=>t,RestrictedEditingModeUI:()=>_,StandardEditingMode:()=>V,StandardEditingModeEditing:()=>L,StandardEditingModeUI:()=>j,_extendRestrictedEditingMarkerOnTypingPostFixer:()=>g,_getRestrictedEditingMarkerAtPosition:()=>s,_isRestrictedEditingPositionInRangeBoundaries:()=>c,_isRestrictedEditingSelectionInMarker:()=>a,_resurrectRestrictedEditingCollapsedMarkerPostFixer:()=>u,_setupRestrictedEditingExceptionHighlighting:()=>l,_upcastRestrictedEditingHighlightToMarker:()=>m});var e=i(782);class t extends e.Command{_direction;constructor(e,t){super(e),this.affectsData=!1,this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=r(this.editor.model,this._direction);e&&this.editor.model.change(t=>{t.setSelection(e)})}_checkEnabled(){return!!r(this.editor.model,this._direction)}}function r(e,t){const i=e.document.selection.getFirstPosition(),n=[];for(const r of e.markers.getMarkersGroup("restrictedEditingException")){const e=r.getRange(),o=i.isTouching(e.start)&&i.hasSameParentAs(e.start)||i.isTouching(e.end)&&i.hasSameParentAs(e.end);e.containsPosition(i)||o||("forward"===t&&e.start.isAfter(i)||"backward"===t&&e.end.isBefore(i))&&n.push(e)}if(n.length)return n.sort((e,i)=>"forward"===t?e.start.isAfter(i.start)?1:-1:e.start.isBefore(i.start)?1:-1).shift()}var o=i(783);function s(e,t){for(const i of e.model.markers){if(c(i.getRange(),t)&&i.name.startsWith("restrictedEditingException:"))return i}}function c(e,t){return e.containsPosition(t)||e.end.isEqual(t)||e.start.isEqual(t)}function a(e,t){if(!t)return!1;const i=t.getRange();return e.isCollapsed?c(i,e.focus):i.containsRange(e.getFirstRange(),!0)}const d="restricted-editing-exception_selected";function l(e){const t=e.editing.view,i=e.model,n=new Set;t.document.registerPostFixer(t=>{const r=i.document.selection,o=s(e,r.anchor);if(!o)return!1;for(const i of e.editing.mapper.markerNameToElements(o.name))t.addClass(d,i),n.add(i);return!1}),e.conversion.for("editingDowncast").add(e=>{function i(){t.change(e=>{for(const t of n.values())e.removeClass(d,t),n.delete(t)})}e.on("insert",i,{priority:"highest"}),e.on("remove",i,{priority:"highest"}),e.on("attribute",i,{priority:"highest"}),e.on("cleanSelection",i)})}function u(e){return t=>{let i=!1;for(const{name:n,data:r}of e.model.document.differ.getChangedMarkers())n.startsWith("restrictedEditingException")&&r.newRange&&"$graveyard"==r.newRange.root.rootName&&(t.updateMarker(n,{range:t.createRange(t.createPositionAt(r.oldRange.start))}),i=!0);return i}}function g(e){return t=>{let i=!1;const n=e.model.schema;for(const r of e.model.document.differ.getChanges())"insert"==r.type&&n.checkChild("$block",r.name)&&(i=p(e,r.position,r.length,t)||i,i=f(e,r.position,r.length,t)||i);return i}}function m(e){return t=>t.on("element:span",(t,i,n)=>{const{writer:r}=n,s=new o.Matcher(e.view).match(i.viewItem);if(!s)return;const c=s.match;c.name=!0;const{modelRange:a}=n.convertChildren(i.viewItem,i.modelCursor);n.consumable.consume(i.viewItem,c);const d=e.model(),l=r.createElement("$marker",{"data-name":d}),u=r.createElement("$marker",{"data-name":d});r.insert(u,a.end),r.insert(l,a.start),i.modelRange=r.createRange(r.createPositionBefore(l),r.createPositionAfter(u)),i.modelCursor=i.modelRange.end})}function p(e,t,i,n){const r=s(e,t.getShiftedBy(i));return!(!r||!r.getStart().isEqual(t.getShiftedBy(i)))&&(n.updateMarker(r,{range:n.createRange(r.getStart().getShiftedBy(-i),r.getEnd())}),!0)}function f(e,t,i,n){const r=s(e,t);return!(!r||!r.getEnd().isEqual(t))&&(n.updateMarker(r,{range:n.createRange(r.getStart(),r.getEnd().getShiftedBy(i))}),!0)}const h="RestrictedEditingMode";class E extends e.Plugin{_alwaysEnabled;_allowedInException;static get pluginName(){return"RestrictedEditingModeEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("restrictedEditing",{allowedCommands:["bold","italic","link","unlink"],allowedAttributes:["bold","italic","linkHref"]}),this._alwaysEnabled=new Set(["undo","redo"]),this._allowedInException=new Set(["input","insertText","delete","deleteForward"])}init(){const e=this.editor,i=e.editing.view;e.config.get("restrictedEditing.allowedCommands").forEach(e=>this._allowedInException.add(e)),this._setupConversion(),this._setupCommandsToggling(),this._setupRestrictions(),e.commands.add("goToPreviousRestrictedEditingException",new t(e,"backward")),e.commands.add("goToNextRestrictedEditingException",new t(e,"forward")),this.listenTo(i.document,"tab",(t,i)=>{const n=i.shiftKey?"goToPreviousRestrictedEditingException":"goToNextRestrictedEditingException";e.commands.get(n).isEnabled&&(e.execute(n),i.preventDefault(),i.stopPropagation()),t.stop()},{context:"$capture"}),e.keystrokes.set("Ctrl+A",function(e){return(t,i)=>{const n=e.model,r=e.model.document.selection,o=s(e,r.focus);if(!o)return;const c=r.getFirstRange();(o.getRange().containsRange(c,!0)||r.isCollapsed)&&(i(),n.change(e=>{e.setSelection(o.getRange())}))}}(e)),i.change(e=>{for(const t of i.document.roots)e.addClass("ck-restricted-editing_mode_restricted",t)}),e.data.on("set",()=>{e.model.change(t=>{for(const i of e.model.markers.getMarkersGroup("restrictedEditingException"))t.removeMarker(i.name)})},{priority:"high"})}enableCommand(e){this.editor.commands.get(e).clearForceDisabled(h),this._alwaysEnabled.add(e)}_setupConversion(){const e=this.editor,t=e.model.document;let i=0;e.conversion.for("upcast").add(m({view:{name:"span",classes:"restricted-editing-exception"},model:()=>(i++,`restrictedEditingException:${i}`)})),e.conversion.for("downcast").add(e=>{e.on("addMarker:restrictedEditingException",(e,t,i)=>{if(!t.item)return;if(t.item.is("selection")||!i.schema.isInline(t.item))return;if(!i.consumable.consume(t.item,e.name))return;const n=i.writer,r=n.createAttributeElement("span",{class:"restricted-editing-exception"},{id:t.markerName,priority:-10}),o=i.mapper.toViewRange(t.range),s=n.wrap(o,r);for(const e of s.getItems())if(e.is("attributeElement")&&e.isSimilar(r)){i.mapper.bindElementToMarker(e,t.markerName);break}})}),e.conversion.for("downcast").markerToHighlight({model:"restrictedEditingException",view:()=>({name:"span",classes:"restricted-editing-exception",priority:-10})}),e.conversion.for("editingDowncast").markerToElement({model:"restrictedEditingException",view:(e,{writer:t})=>t.createUIElement("span",{class:"restricted-editing-exception restricted-editing-exception_collapsed"})}),e.conversion.for("dataDowncast").markerToElement({model:"restrictedEditingException",view:(e,{writer:t})=>t.createEmptyElement("span",{class:"restricted-editing-exception"})}),t.registerPostFixer(g(e)),t.registerPostFixer(u(e)),t.registerPostFixer(function(e){return t=>{let i=!1;const n=e.model.document.differ.getChangedMarkers();for(const{data:e,name:r}of n){if(!r.startsWith("restrictedEditingException"))continue;const n=e.newRange;if(!e.oldRange&&!n.isFlat){const e=n.start,o=n.end,s=e.path.length>o.path.length,c=s?n.start:t.createPositionAt(o.parent,0),a=s?t.createPositionAt(e.parent,"end"):n.end;t.updateMarker(r,{range:t.createRange(c,a)}),i=!0}}return i}}(e)),l(e)}_setupRestrictions(){const e=this.editor,t=e.model,i=t.document.selection,n=e.editing.view.document,r=e.plugins.get("ClipboardPipeline");this.listenTo(t,"deleteContent",function(e){return(t,i)=>{const[n]=i,r=s(e,n.focus)||s(e,n.anchor);if(!r)return void t.stop();if(n.isCollapsed)return;const o=r.getRange().getIntersection(n.getFirstRange());n.is("documentSelection")?e.model.change(e=>{e.setSelection(o)}):n.setTo(o)}}(e),{priority:"high"});const o=e.commands.get("insertText");o&&this.listenTo(o,"execute",function(e){return(t,i)=>{const[n]=i,{range:r}=n;r&&(x(e,r)||t.stop())}}(e),{priority:"high"}),this.listenTo(r,"contentInsertion",t=>{x(e,i.getFirstRange())||t.stop()}),this.listenTo(n,"clipboardOutput",(t,n)=>{"cut"!=n.method||x(e,i.getFirstRange())||t.stop()},{priority:"high"});const c=e.config.get("restrictedEditing.allowedAttributes");t.schema.addAttributeCheck(function(e){return(t,i)=>{if(t.startsWith("$clipboardHolder"))return e.includes(i)}}(c)),t.schema.addChildCheck((e,t)=>{if(e.startsWith("$clipboardHolder"))return"$text"===t.name})}_setupCommandsToggling(){const e=this.editor.model.document;this._disableCommands(),this.listenTo(e.selection,"change",this._checkCommands.bind(this)),this.listenTo(e,"change:data",this._checkCommands.bind(this))}_checkCommands(){const e=this.editor,t=e.model.document.selection;if(t.rangeCount>1)return void this._disableCommands();const i=s(e,t.focus);this._disableCommands(),a(t,i)&&this._enableCommands(i)}_enableCommands(e){const t=this.editor;for(const[i,n]of t.commands)n.affectsData&&!this._alwaysEnabled.has(i)&&this._allowedInException.has(i)&&(b(i,t.model.document.selection,e.getRange())||n.clearForceDisabled(h))}_disableCommands(){const e=this.editor;for(const[t,i]of e.commands)i.affectsData&&!this._alwaysEnabled.has(t)&&i.forceDisabled(h)}}function b(e,t,i){return!("delete"!=e||!i.start.isEqual(t.focus))||!("deleteForward"!=e||!t.isCollapsed||!i.end.isEqual(t.focus))}function x(e,t){const i=s(e,t.start),n=s(e,t.end);return i&&n&&n===i}var v=i(355),k=i(311),w=i(584);class _ extends e.Plugin{static get pluginName(){return"RestrictedEditingModeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditing",i=>{const n=(0,k.createDropdown)(i),r=new w.Collection;return this._getButtonDefinitions().forEach(({commandName:e,label:t,keystroke:i})=>{r.add(this._getButtonDefinition(e,t,i))}),(0,k.addListToDropdown)(n,r,{role:"menu"}),n.buttonView.set({label:t("Navigate editable regions"),icon:v.IconContentLock,tooltip:!0,isEnabled:!0,isOn:!1}),this.listenTo(n,"execute",t=>{const{_commandName:i}=t.source;e.execute(i),e.editing.view.focus()}),n}),e.ui.componentFactory.add("menuBar:restrictedEditing",e=>{const i=new k.MenuBarMenuView(e),n=new k.MenuBarMenuListView(e);return n.set({ariaLabel:t("Navigate editable regions"),role:"menu"}),i.buttonView.set({label:t("Navigate editable regions"),icon:v.IconContentLock}),i.panelView.children.add(n),this._getButtonDefinitions().forEach(({commandName:t,label:r,keystroke:o})=>{const s=new k.MenuBarMenuListItemView(e,i),c=this._createMenuBarButton(r,t,o);c.delegate("execute").to(i),s.children.add(c),n.items.add(s)}),i})}_createMenuBarButton(e,t,i){const n=this.editor,r=n.commands.get(t),o=new k.MenuBarMenuListItemButtonView(n.locale);return o.set({label:e,keystroke:i,isEnabled:!0,isOn:!1}),o.bind("isEnabled").to(r),this.listenTo(o,"execute",()=>{n.execute(t),n.editing.view.focus()}),o}_getButtonDefinition(e,t,i){const n=this.editor.commands.get(e),r={type:"button",model:new k.UIModel({label:t,withText:!0,keystroke:i,withKeystroke:!0,role:"menuitem",_commandName:e})};return r.model.bind("isEnabled").to(n,"isEnabled"),r}_getButtonDefinitions(){const e=this.editor.locale.t;return[{commandName:"goToPreviousRestrictedEditingException",label:e("Previous editable region"),keystroke:"Shift+Tab"},{commandName:"goToNextRestrictedEditingException",label:e("Next editable region"),keystroke:"Tab"}]}}var y=i(591),R=i.n(y),C=i(639),M=i.n(C),T=i(128),P=i.n(T),S=i(21),A=i.n(S),I=i(51),N=i.n(I),B=i(588),D={attributes:{"data-cke":!0}};D.setAttributes=A(),D.insert=P().bind(null,"head"),D.domAPI=M(),D.insertStyleElement=N();R()(B.A,D);B.A&&B.A.locals&&B.A.locals;class F extends e.Plugin{static get pluginName(){return"RestrictedEditingMode"}static get isOfficialPlugin(){return!0}static get requires(){return[E,_]}}class O extends e.Command{refresh(){const e=this.editor.model,t=e.document;this.value=!!t.selection.getAttribute("restrictedEditingException"),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"restrictedEditingException")}execute(e={}){const t=this.editor.model,i=t.document.selection,n=void 0===e.forceValue?!this.value:e.forceValue;t.change(e=>{const r=t.schema.getValidRanges(i.getRanges(),"restrictedEditingException");if(i.isCollapsed)if(n)e.setSelectionAttribute("restrictedEditingException",n);else{const t=e=>e.item.getAttribute("restrictedEditingException")===this.value,n=i.focus,r=n.getLastMatchingPosition(t,{direction:"backward"}),o=n.getLastMatchingPosition(t);e.removeSelectionAttribute("restrictedEditingException"),n.isEqual(r)||n.isEqual(o)||e.removeAttribute("restrictedEditingException",e.createRange(r,o))}else for(const t of r)n?e.setAttribute("restrictedEditingException",n,t):e.removeAttribute("restrictedEditingException",t)})}}class L extends e.Plugin{static get pluginName(){return"StandardEditingModeEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.extend("$text",{allowAttributes:["restrictedEditingException"]}),e.conversion.for("upcast").elementToAttribute({model:"restrictedEditingException",view:{name:"span",classes:"restricted-editing-exception"}}),e.conversion.for("downcast").attributeToElement({model:"restrictedEditingException",view:(e,{writer:t})=>{if(e)return t.createAttributeElement("span",{class:"restricted-editing-exception"},{priority:-10})}}),e.commands.add("restrictedEditingException",new O(e)),e.editing.view.change(t=>{for(const i of e.editing.view.document.roots)t.addClass("ck-restricted-editing_mode_standard",i)})}}class j extends e.Plugin{static get pluginName(){return"StandardEditingModeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("restrictedEditingException",()=>{const e=this._createButton(k.ButtonView);return e.set({tooltip:!0,isToggleable:!0}),e}),e.ui.componentFactory.add("menuBar:restrictedEditingException",()=>this._createButton(k.MenuBarMenuListItemButtonView))}_createButton(e){const t=this.editor,i=t.locale,n=this.editor.commands.get("restrictedEditingException"),r=new e(i),o=i.t;return r.icon=v.IconContentUnlock,r.bind("isOn","isEnabled").to(n,"value","isEnabled"),r.bind("label").to(n,"value",e=>o(e?"Disable editing":"Enable editing")),this.listenTo(r,"execute",()=>{t.execute("restrictedEditingException"),t.editing.view.focus()}),r}}class V extends e.Plugin{static get pluginName(){return"StandardEditingMode"}static get isOfficialPlugin(){return!0}static get requires(){return[L,j]}}})(),(window.CKEditor5=window.CKEditor5||{}).restrictedEditing=n})();
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';
6
6
  import { Matcher } from '@ckeditor/ckeditor5-engine/dist/index.js';
7
7
  import { IconContentLock, IconContentUnlock } from '@ckeditor/ckeditor5-icons/dist/index.js';
8
- import { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, ViewModel, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
8
+ import { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, UIModel, ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
9
9
  import { Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';
10
10
 
11
11
  /**
@@ -99,6 +99,8 @@ import { Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';
99
99
  * Returns a single "restricted-editing-exception" marker at a given position. Contrary to
100
100
  * {@link module:engine/model/markercollection~MarkerCollection#getMarkersAtPosition}, it returnd a marker also when the postion is
101
101
  * equal to one of the marker's start or end positions.
102
+ *
103
+ * @internal
102
104
  */ function getMarkerAtPosition(editor, position) {
103
105
  for (const marker of editor.model.markers){
104
106
  const markerRange = marker.getRange();
@@ -111,6 +113,8 @@ import { Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';
111
113
  }
112
114
  /**
113
115
  * Checks if the position is fully contained in the range. Positions equal to range start or end are considered "in".
116
+ *
117
+ * @internal
114
118
  */ function isPositionInRangeBoundaries(range, position) {
115
119
  return range.containsPosition(position) || range.end.isEqual(position) || range.start.isEqual(position);
116
120
  }
@@ -123,6 +127,8 @@ import { Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';
123
127
  * <marker>f[oo</marker> ba]r -> false
124
128
  * <marker>foo</marker> []bar -> false
125
129
  * ```
130
+ *
131
+ * @internal
126
132
  */ function isSelectionInMarker(selection, marker) {
127
133
  if (!marker) {
128
134
  return false;
@@ -146,6 +152,8 @@ const HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';
146
152
  * * The class is added in the view post-fixer, after other changes in the model tree are converted to the view.
147
153
  *
148
154
  * This way, adding and removing the highlight does not interfere with conversion.
155
+ *
156
+ * @internal
149
157
  */ function setupExceptionHighlighting(editor) {
150
158
  const view = editor.editing.view;
151
159
  const model = editor.model;
@@ -188,6 +196,8 @@ const HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';
188
196
  }
189
197
  /**
190
198
  * A post-fixer that prevents removing a collapsed marker from the document.
199
+ *
200
+ * @internal
191
201
  */ function resurrectCollapsedMarkerPostFixer(editor) {
192
202
  // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.
193
203
  return (writer)=>{
@@ -205,6 +215,8 @@ const HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';
205
215
  }
206
216
  /**
207
217
  * A post-fixer that extends a marker when the user types on its boundaries.
218
+ *
219
+ * @internal
208
220
  */ function extendMarkerOnTypingPostFixer(editor) {
209
221
  // This post-fixer shouldn't be necessary after https://github.com/ckeditor/ckeditor5/issues/5778.
210
222
  return (writer)=>{
@@ -223,6 +235,7 @@ const HIGHLIGHT_CLASS = 'restricted-editing-exception_selected';
223
235
  * A view highlight-to-marker conversion helper.
224
236
  *
225
237
  * @param config Conversion configuration.
238
+ * @internal
226
239
  */ function upcastHighlightToMarker(config) {
227
240
  return (dispatcher)=>dispatcher.on('element:span', (evt, data, conversionApi)=>{
228
241
  const { writer } = conversionApi;
@@ -818,7 +831,7 @@ function allowTextOnlyInClipboardHolder() {
818
831
  const command = editor.commands.get(commandName);
819
832
  const definition = {
820
833
  type: 'button',
821
- model: new ViewModel({
834
+ model: new UIModel({
822
835
  label,
823
836
  withText: true,
824
837
  keystroke,
@@ -1063,5 +1076,5 @@ function allowTextOnlyInClipboardHolder() {
1063
1076
  }
1064
1077
  }
1065
1078
 
1066
- export { RestrictedEditingMode, RestrictedEditingModeEditing, RestrictedEditingModeUI, StandardEditingMode, StandardEditingModeEditing, StandardEditingModeUI };
1079
+ export { 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 };
1067
1080
  //# sourceMappingURL=index.js.map