@ckeditor/ckeditor5-restricted-editing 29.1.0 → 31.1.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.
Files changed (41) hide show
  1. package/build/restricted-editing.js +1 -1
  2. package/build/translations/az.js +1 -0
  3. package/build/translations/cs.js +1 -0
  4. package/build/translations/da.js +1 -0
  5. package/build/translations/de-ch.js +1 -0
  6. package/build/translations/de.js +1 -0
  7. package/build/translations/en-au.js +1 -0
  8. package/build/translations/en-gb.js +1 -0
  9. package/build/translations/es.js +1 -0
  10. package/build/translations/et.js +1 -0
  11. package/build/translations/fa.js +1 -0
  12. package/build/translations/fr.js +1 -0
  13. package/build/translations/gl.js +1 -0
  14. package/build/translations/hi.js +1 -0
  15. package/build/translations/hr.js +1 -0
  16. package/build/translations/hu.js +1 -0
  17. package/build/translations/id.js +1 -0
  18. package/build/translations/it.js +1 -0
  19. package/build/translations/ko.js +1 -0
  20. package/build/translations/ku.js +1 -0
  21. package/build/translations/lv.js +1 -0
  22. package/build/translations/nl.js +1 -0
  23. package/build/translations/no.js +1 -0
  24. package/build/translations/pl.js +1 -0
  25. package/build/translations/pt-br.js +1 -0
  26. package/build/translations/ro.js +1 -0
  27. package/build/translations/ru.js +1 -0
  28. package/build/translations/sk.js +1 -0
  29. package/build/translations/sr-latn.js +1 -0
  30. package/build/translations/sr.js +1 -0
  31. package/build/translations/tk.js +1 -0
  32. package/build/translations/tr.js +1 -0
  33. package/build/translations/uk.js +1 -0
  34. package/build/translations/uz.js +1 -0
  35. package/build/translations/zh-cn.js +1 -0
  36. package/build/translations/zh.js +1 -0
  37. package/lang/translations/uz.po +37 -0
  38. package/package.json +17 -17
  39. package/src/restrictededitingmodeediting.js +32 -35
  40. package/src/restrictededitingmodenavigationcommand.js +3 -0
  41. package/CHANGELOG.md +0 -53
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
- window.CKEditor5=window.CKEditor5||{},window.CKEditor5.restrictedEditing=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=8)}([function(e,t,i){e.exports=i(2)("./src/core.js")},function(e,t,i){e.exports=i(2)("./src/ui.js")},function(e,t){e.exports=CKEditor5.dll},function(e,t,i){var n=i(6),r=i(7);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[e.i,r,""]]);var o={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};n(r,o);e.exports=r.locals||{}},function(e,t,i){e.exports=i(2)("./src/engine.js")},function(e,t,i){e.exports=i(2)("./src/utils.js")},function(e,t,i){"use strict";var n,r=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},o=function(){var e={};return function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}e[t]=i}return e[t]}}(),s=[];function c(e){for(var t=-1,i=0;i<s.length;i++)if(s[i].identifier===e){t=i;break}return t}function d(e,t){for(var i={},n=[],r=0;r<e.length;r++){var o=e[r],d=t.base?o[0]+t.base:o[0],a=i[d]||0,l="".concat(d," ").concat(a);i[d]=a+1;var g=c(l),u={css:o[1],media:o[2],sourceMap:o[3]};-1!==g?(s[g].references++,s[g].updater(u)):s.push({identifier:l,updater:h(u,t),references:1}),n.push(l)}return n}function a(e){var t=document.createElement("style"),n=e.attributes||{};if(void 0===n.nonce){var r=i.nc;r&&(n.nonce=r)}if(Object.keys(n).forEach((function(e){t.setAttribute(e,n[e])})),"function"==typeof e.insert)e.insert(t);else{var s=o(e.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(t)}return t}var l,g=(l=[],function(e,t){return l[e]=t,l.filter(Boolean).join("\n")});function u(e,t,i,n){var r=i?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(e.styleSheet)e.styleSheet.cssText=g(t,r);else{var o=document.createTextNode(r),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function m(e,t,i){var n=i.css,r=i.media,o=i.sourceMap;if(r?e.setAttribute("media",r):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var p=null,f=0;function h(e,t){var i,n,r;if(t.singleton){var o=f++;i=p||(p=a(t)),n=u.bind(null,i,o,!1),r=u.bind(null,i,o,!0)}else i=a(t),n=m.bind(null,i,t),r=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(i)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=r());var i=d(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var n=0;n<i.length;n++){var r=c(i[n]);s[r].references--}for(var o=d(e,t),a=0;a<i.length;a++){var l=c(i[a]);0===s[l].references&&(s[l].updater(),s.splice(l,1))}i=o}}}},function(e,t){e.exports=":root{--ck-color-restricted-editing-exception-background:rgba(255,169,77,0.2);--ck-color-restricted-editing-exception-hover-background:rgba(255,169,77,0.35);--ck-color-restricted-editing-exception-brackets:rgba(204,105,0,0.4);--ck-color-restricted-editing-selected-exception-background:rgba(255,169,77,0.5);--ck-color-restricted-editing-selected-exception-brackets:rgba(204,105,0,0.6)}.ck-editor__editable .restricted-editing-exception{transition:background .2s ease-in-out;background-color:var(--ck-color-restricted-editing-exception-background);border:1px solid;border-image:linear-gradient(90deg,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)) 1}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected{background-color:var(--ck-color-restricted-editing-selected-exception-background);border-image:linear-gradient(90deg,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)) 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)}"},function(e,t,i){"use strict";i.r(t),i.d(t,"RestrictedEditingMode",(function(){return E})),i.d(t,"RestrictedEditingModeEditing",(function(){return g})),i.d(t,"RestrictedEditingModeUI",(function(){return b})),i.d(t,"StandardEditingMode",(function(){return k})),i.d(t,"StandardEditingModeEditing",(function(){return x})),i.d(t,"StandardEditingModeUI",(function(){return w}));var n=i(0);class r extends n.Command{constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=o(this.editor.model,this._direction);this.editor.model.change(t=>{t.setSelection(e)})}_checkEnabled(){return!!o(this.editor.model,this._direction)}}function o(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)}return n.length?n.sort((e,i)=>"forward"===t?e.start.isAfter(i.start)?1:-1:e.start.isBefore(i.start)?1:-1).shift():null}var s=i(4);function c(e,t){for(const i of e.model.markers){if(d(i.getRange(),t)&&i.name.startsWith("restrictedEditingException:"))return i}}function d(e,t){return e.containsPosition(t)||e.end.isEqual(t)||e.start.isEqual(t)}function a(e,t,i,n){const r=c(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=c(e,t);return!(!r||!r.getEnd().isEqual(t))&&(n.updateMarker(r,{range:n.createRange(r.getStart(),r.getEnd().getShiftedBy(i))}),!0)}class g extends n.Plugin{static get pluginName(){return"RestrictedEditingModeEditing"}constructor(e){super(e),e.config.define("restrictedEditing",{allowedCommands:["bold","italic","link","unlink"],allowedAttributes:["bold","italic","linkHref"]}),this._alwaysEnabled=new Set(["undo","redo","goToPreviousRestrictedEditingException","goToNextRestrictedEditingException"]),this._allowedInException=new Set(["input","delete","deleteForward"])}init(){const e=this.editor,t=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 r(e,"backward")),e.commands.add("goToNextRestrictedEditingException",new r(e,"forward")),e.keystrokes.set("Tab",u(e,"goToNextRestrictedEditingException")),e.keystrokes.set("Shift+Tab",u(e,"goToPreviousRestrictedEditingException")),e.keystrokes.set("Ctrl+A",function(e){return(t,i)=>{const n=e.model,r=e.model.document.selection,o=c(e,r.focus);if(!o)return;const s=r.getFirstRange();(o.getRange().containsRange(s,!0)||r.isCollapsed)&&(i(),n.change(e=>{e.setSelection(o.getRange())}))}}(e)),t.change(e=>{for(const i of t.document.roots)e.addClass("ck-restricted-editing_mode_restricted",i)})}enableCommand(e){this.editor.commands.get(e).clearForceDisabled("RestrictedEditingMode"),this._alwaysEnabled.add(e)}_setupConversion(){const e=this.editor,t=e.model,i=t.document;let n=0;var r;e.conversion.for("upcast").add((r={view:{name:"span",classes:"restricted-editing-exception"},model:()=>(n++,"restrictedEditingException:"+n)},e=>e.on("element:span",(e,t,i)=>{const{writer:n}=i,o=new s.Matcher(r.view).match(t.viewItem);if(!o)return;const c=o.match;c.name=!0;const{modelRange:d}=i.convertChildren(t.viewItem,t.modelCursor);i.consumable.consume(t.viewItem,c);const a=r.model(t.viewItem),l=n.createElement("$marker",{"data-name":a}),g=n.createElement("$marker",{"data-name":a});n.insert(g,d.end),n.insert(l,d.start),t.modelRange=n.createRange(n.createPositionBefore(l),n.createPositionAfter(g)),t.modelCursor=t.modelRange.end}))),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"})}),i.registerPostFixer(function(e){return t=>{let i=!1;for(const n of e.model.document.differ.getChanges())"insert"==n.type&&"$text"==n.name&&(i=a(e,n.position,n.length,t)||i,i=l(e,n.position,n.length,t)||i);return!1}}(e)),i.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.markers.on("update:restrictedEditingException",function(e){const t=e.model;return(e,i,n,r)=>{n||r.isFlat||t.change(e=>{const t=r.start,n=r.end,o=t.path.length>n.path.length,s=o?r.start:e.createPositionAt(n.parent,0),c=o?e.createPositionAt(t.parent,"end"):r.end;e.updateMarker(i,{range:e.createRange(s,c)})})}}(e)),function(e){const t=e.editing.view,i=e.model,n=new Set;t.document.registerPostFixer(t=>{const r=i.document.selection,o=c(e,r.anchor);if(o)for(const i of e.editing.mapper.markerNameToElements(o.name))t.addClass("restricted-editing-exception_selected",i),n.add(i)}),e.conversion.for("editingDowncast").add(e=>{function i(){t.change(e=>{for(const t of n.values())e.removeClass("restricted-editing-exception_selected",t),n.delete(t)})}e.on("insert",i,{priority:"highest"}),e.on("remove",i,{priority:"highest"}),e.on("attribute",i,{priority:"highest"}),e.on("selection",i,{priority:"highest"})})}(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=c(e,n.focus)||c(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("input");o&&this.listenTo(o,"execute",function(e){return(t,i)=>{const[n]=i,{range:r}=n;r&&(m(e,r)||t.stop())}}(e),{priority:"high"}),this.listenTo(r,"contentInsertion",t=>{m(e,i.getFirstRange())||t.stop()}),this.listenTo(n,"clipboardOutput",(t,n)=>{"cut"!=n.method||m(e,i.getFirstRange())||t.stop()},{priority:"high"});const s=e.config.get("restrictedEditing.allowedAttributes");t.schema.addAttributeCheck(function(e){return(t,i)=>{if(t.startsWith("$clipboardHolder"))return e.includes(i)}}(s)),t.schema.addChildCheck(p)}_setupCommandsToggling(){const e=this.editor,t=e.model.document;this._disableCommands(e),this.listenTo(t.selection,"change",this._checkCommands.bind(this)),this.listenTo(t,"change:data",this._checkCommands.bind(this))}_checkCommands(){const e=this.editor,t=e.model.document.selection;if(t.rangeCount>1)return void this._disableCommands(e);const i=c(e,t.focus);this._disableCommands(),function(e,t){if(!t)return!1;const i=t.getRange();return e.isCollapsed?d(i,e.focus):i.containsRange(e.getFirstRange(),!0)}(t,i)&&this._enableCommands(i)}_enableCommands(e){const t=this.editor,i=this._getCommandNamesToToggle(t,this._allowedInException).filter(e=>this._allowedInException.has(e)).filter((n=t.model.document.selection,r=e.getRange(),e=>!("delete"==e&&r.start.isEqual(n.focus)||"deleteForward"==e&&n.isCollapsed&&r.end.isEqual(n.focus)))).map(e=>t.commands.get(e));var n,r;for(const e of i)e.clearForceDisabled("RestrictedEditingMode")}_disableCommands(){const e=this.editor,t=this._getCommandNamesToToggle(e).map(t=>e.commands.get(t));for(const e of t)e.forceDisabled("RestrictedEditingMode")}_getCommandNamesToToggle(e){return Array.from(e.commands.names()).filter(e=>!this._alwaysEnabled.has(e))}}function u(e,t){return(i,n)=>{e.commands.get(t).isEnabled&&(e.execute(t),n())}}function m(e,t){const i=c(e,t.start),n=c(e,t.end);return i&&n&&n===i}function p(e,t){if(e.startsWith("$clipboardHolder"))return"$text"===t.name}var f=i(1),h=i(5);class b extends n.Plugin{static get pluginName(){return"RestrictedEditingModeUI"}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditing",i=>{const n=Object(f.createDropdown)(i),r=new h.Collection;return r.add(this._getButtonDefinition("goToPreviousRestrictedEditingException",t("Previous editable region"),"Shift+Tab")),r.add(this._getButtonDefinition("goToNextRestrictedEditingException",t("Next editable region"),"Tab")),Object(f.addListToDropdown)(n,r),n.buttonView.set({label:t("Navigate editable regions"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15.5 6.5a3.5 3.5 0 0 1 3.495 3.308L19 10v2a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1v-2l.005-.192A3.5 3.5 0 0 1 15.5 6.5zm0 7.5a.5.5 0 0 0-.492.41L15 14.5v2a.5.5 0 0 0 .992.09L16 16.5v-2a.5.5 0 0 0-.5-.5zm0-6a2 2 0 0 0-2 2v2h4v-2a2 2 0 0 0-2-2zm-9.25 8a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm0-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm3-5a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1 0-1.5h8.5zm6-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 0 1 0-1.5h14.5z"/></svg>',tooltip:!0,isEnabled:!0,isOn:!1}),this.listenTo(n,"execute",t=>{e.execute(t.source._commandName),e.editing.view.focus()}),n})}_getButtonDefinition(e,t,i){const n=this.editor.commands.get(e),r={type:"button",model:new f.Model({label:t,withText:!0,keystroke:i,withKeystroke:!0,_commandName:e})};return r.model.bind("isEnabled").to(n,"isEnabled"),r}}i(3);class E extends n.Plugin{static get pluginName(){return"RestrictedEditingMode"}static get requires(){return[g,b]}}class v extends n.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.getLastMatchingPosition(t,{direction:"backward"}),r=i.focus.getLastMatchingPosition(t),o=i.focus;e.removeSelectionAttribute("restrictedEditingException"),o.isEqual(n)||o.isEqual(r)||e.removeAttribute("restrictedEditingException",e.createRange(n,r))}else for(const t of r)n?e.setAttribute("restrictedEditingException",n,t):e.removeAttribute("restrictedEditingException",t)})}}class x extends n.Plugin{static get pluginName(){return"StandardEditingModeEditing"}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 v(e)),e.editing.view.change(t=>{for(const i of e.editing.view.document.roots)t.addClass("ck-restricted-editing_mode_standard",i)})}}class w extends n.Plugin{init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditingException",i=>{const n=e.commands.get("restrictedEditingException"),r=new f.ButtonView(i);return r.set({icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.25 16a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm0-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm3-5a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1 0-1.5h8.5zm6-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 0 1 0-1.5h14.5zm.25 5.5a3.5 3.5 0 0 1 3.143 1.959.75.75 0 0 1-1.36.636A2 2 0 0 0 13.5 10v2H19a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1v-2l.005-.192A3.5 3.5 0 0 1 15.5 6.5zm0 7.5a.5.5 0 0 0-.492.41L15 14.5v2a.5.5 0 0 0 .992.09L16 16.5v-2a.5.5 0 0 0-.5-.5z"/></svg>',tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(n,"value","isEnabled"),r.bind("label").to(n,"value",e=>t(e?"Disable editing":"Enable editing")),this.listenTo(r,"execute",()=>{e.execute("restrictedEditingException"),e.editing.view.focus()}),r})}}class k extends n.Plugin{static get pluginName(){return"StandardEditingMode"}static get requires(){return[x,w]}}}]);
5
+ !function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Disable editing":"Disable editing","Enable editing":"Enable editing","Navigate editable regions":"Navigate editable regions","Next editable region":"Next editable region","Previous editable region":"Previous editable region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),window.CKEditor5=window.CKEditor5||{},window.CKEditor5.restrictedEditing=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=8)}([function(e,t,i){e.exports=i(2)("./src/core.js")},function(e,t,i){e.exports=i(2)("./src/ui.js")},function(e,t){e.exports=CKEditor5.dll},function(e,t,i){var n=i(6),r=i(7);"string"==typeof(r=r.__esModule?r.default:r)&&(r=[[e.i,r,""]]);var o={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};n(r,o);e.exports=r.locals||{}},function(e,t,i){e.exports=i(2)("./src/engine.js")},function(e,t,i){e.exports=i(2)("./src/utils.js")},function(e,t,i){"use strict";var n,r=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},o=function(){var e={};return function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}e[t]=i}return e[t]}}(),s=[];function c(e){for(var t=-1,i=0;i<s.length;i++)if(s[i].identifier===e){t=i;break}return t}function d(e,t){for(var i={},n=[],r=0;r<e.length;r++){var o=e[r],d=t.base?o[0]+t.base:o[0],a=i[d]||0,l="".concat(d," ").concat(a);i[d]=a+1;var u=c(l),g={css:o[1],media:o[2],sourceMap:o[3]};-1!==u?(s[u].references++,s[u].updater(g)):s.push({identifier:l,updater:h(g,t),references:1}),n.push(l)}return n}function a(e){var t=document.createElement("style"),n=e.attributes||{};if(void 0===n.nonce){var r=i.nc;r&&(n.nonce=r)}if(Object.keys(n).forEach((function(e){t.setAttribute(e,n[e])})),"function"==typeof e.insert)e.insert(t);else{var s=o(e.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(t)}return t}var l,u=(l=[],function(e,t){return l[e]=t,l.filter(Boolean).join("\n")});function g(e,t,i,n){var r=i?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(e.styleSheet)e.styleSheet.cssText=u(t,r);else{var o=document.createTextNode(r),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function m(e,t,i){var n=i.css,r=i.media,o=i.sourceMap;if(r?e.setAttribute("media",r):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var p=null,f=0;function h(e,t){var i,n,r;if(t.singleton){var o=f++;i=p||(p=a(t)),n=g.bind(null,i,o,!1),r=g.bind(null,i,o,!0)}else i=a(t),n=m.bind(null,i,t),r=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(i)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=r());var i=d(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var n=0;n<i.length;n++){var r=c(i[n]);s[r].references--}for(var o=d(e,t),a=0;a<i.length;a++){var l=c(i[a]);0===s[l].references&&(s[l].updater(),s.splice(l,1))}i=o}}}},function(e,t){e.exports=":root{--ck-color-restricted-editing-exception-background:rgba(255,169,77,0.2);--ck-color-restricted-editing-exception-hover-background:rgba(255,169,77,0.35);--ck-color-restricted-editing-exception-brackets:rgba(204,105,0,0.4);--ck-color-restricted-editing-selected-exception-background:rgba(255,169,77,0.5);--ck-color-restricted-editing-selected-exception-brackets:rgba(204,105,0,0.6)}.ck-editor__editable .restricted-editing-exception{transition:background .2s ease-in-out;background-color:var(--ck-color-restricted-editing-exception-background);border:1px solid;border-image:linear-gradient(90deg,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)) 1}.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected{background-color:var(--ck-color-restricted-editing-selected-exception-background);border-image:linear-gradient(90deg,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)) 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)}"},function(e,t,i){"use strict";i.r(t),i.d(t,"RestrictedEditingMode",(function(){return v})),i.d(t,"RestrictedEditingModeEditing",(function(){return u})),i.d(t,"RestrictedEditingModeUI",(function(){return E})),i.d(t,"StandardEditingMode",(function(){return _})),i.d(t,"StandardEditingModeEditing",(function(){return w})),i.d(t,"StandardEditingModeUI",(function(){return k}));var n=i(0);class r extends n.Command{constructor(e,t){super(e),this.affectsData=!1,this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=o(this.editor.model,this._direction);this.editor.model.change(t=>{t.setSelection(e)})}_checkEnabled(){return!!o(this.editor.model,this._direction)}}function o(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)}return n.length?n.sort((e,i)=>"forward"===t?e.start.isAfter(i.start)?1:-1:e.start.isBefore(i.start)?1:-1).shift():null}var s=i(4);function c(e,t){for(const i of e.model.markers){if(d(i.getRange(),t)&&i.name.startsWith("restrictedEditingException:"))return i}}function d(e,t){return e.containsPosition(t)||e.end.isEqual(t)||e.start.isEqual(t)}function a(e,t,i,n){const r=c(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=c(e,t);return!(!r||!r.getEnd().isEqual(t))&&(n.updateMarker(r,{range:n.createRange(r.getStart(),r.getEnd().getShiftedBy(i))}),!0)}class u extends n.Plugin{static get pluginName(){return"RestrictedEditingModeEditing"}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","delete","deleteForward"])}init(){const e=this.editor,t=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 r(e,"backward")),e.commands.add("goToNextRestrictedEditingException",new r(e,"forward")),e.keystrokes.set("Tab",g(e,"goToNextRestrictedEditingException")),e.keystrokes.set("Shift+Tab",g(e,"goToPreviousRestrictedEditingException")),e.keystrokes.set("Ctrl+A",function(e){return(t,i)=>{const n=e.model,r=e.model.document.selection,o=c(e,r.focus);if(!o)return;const s=r.getFirstRange();(o.getRange().containsRange(s,!0)||r.isCollapsed)&&(i(),n.change(e=>{e.setSelection(o.getRange())}))}}(e)),t.change(e=>{for(const i of t.document.roots)e.addClass("ck-restricted-editing_mode_restricted",i)})}enableCommand(e){this.editor.commands.get(e).clearForceDisabled("RestrictedEditingMode"),this._alwaysEnabled.add(e)}_setupConversion(){const e=this.editor,t=e.model,i=t.document;let n=0;var r;e.conversion.for("upcast").add((r={view:{name:"span",classes:"restricted-editing-exception"},model:()=>(n++,"restrictedEditingException:"+n)},e=>e.on("element:span",(e,t,i)=>{const{writer:n}=i,o=new s.Matcher(r.view).match(t.viewItem);if(!o)return;const c=o.match;c.name=!0;const{modelRange:d}=i.convertChildren(t.viewItem,t.modelCursor);i.consumable.consume(t.viewItem,c);const a=r.model(t.viewItem),l=n.createElement("$marker",{"data-name":a}),u=n.createElement("$marker",{"data-name":a});n.insert(u,d.end),n.insert(l,d.start),t.modelRange=n.createRange(n.createPositionBefore(l),n.createPositionAfter(u)),t.modelCursor=t.modelRange.end}))),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"})}),i.registerPostFixer(function(e){return t=>{let i=!1;for(const n of e.model.document.differ.getChanges())"insert"==n.type&&"$text"==n.name&&(i=a(e,n.position,n.length,t)||i,i=l(e,n.position,n.length,t)||i);return!1}}(e)),i.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.markers.on("update:restrictedEditingException",function(e){const t=e.model;return(e,i,n,r)=>{n||r.isFlat||t.change(e=>{const t=r.start,n=r.end,o=t.path.length>n.path.length,s=o?r.start:e.createPositionAt(n.parent,0),c=o?e.createPositionAt(t.parent,"end"):r.end;e.updateMarker(i,{range:e.createRange(s,c)})})}}(e)),function(e){const t=e.editing.view,i=e.model,n=new Set;t.document.registerPostFixer(t=>{const r=i.document.selection,o=c(e,r.anchor);if(o)for(const i of e.editing.mapper.markerNameToElements(o.name))t.addClass("restricted-editing-exception_selected",i),n.add(i)}),e.conversion.for("editingDowncast").add(e=>{function i(){t.change(e=>{for(const t of n.values())e.removeClass("restricted-editing-exception_selected",t),n.delete(t)})}e.on("insert",i,{priority:"highest"}),e.on("remove",i,{priority:"highest"}),e.on("attribute",i,{priority:"highest"}),e.on("selection",i,{priority:"highest"})})}(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=c(e,n.focus)||c(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("input");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 s=e.config.get("restrictedEditing.allowedAttributes");t.schema.addAttributeCheck(function(e){return(t,i)=>{if(t.startsWith("$clipboardHolder"))return e.includes(i)}}(s)),t.schema.addChildCheck(f)}_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=c(e,t.focus);this._disableCommands(),function(e,t){if(!t)return!1;const i=t.getRange();return e.isCollapsed?d(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("RestrictedEditingMode"))}_disableCommands(){const e=this.editor;for(const[t,i]of e.commands)i.affectsData&&!this._alwaysEnabled.has(t)&&i.forceDisabled("RestrictedEditingMode")}}function g(e,t){return(i,n)=>{e.commands.get(t).isEnabled&&(e.execute(t),n())}}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=c(e,t.start),n=c(e,t.end);return i&&n&&n===i}function f(e,t){if(e.startsWith("$clipboardHolder"))return"$text"===t.name}var h=i(1),b=i(5);class E extends n.Plugin{static get pluginName(){return"RestrictedEditingModeUI"}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditing",i=>{const n=Object(h.createDropdown)(i),r=new b.Collection;return r.add(this._getButtonDefinition("goToPreviousRestrictedEditingException",t("Previous editable region"),"Shift+Tab")),r.add(this._getButtonDefinition("goToNextRestrictedEditingException",t("Next editable region"),"Tab")),Object(h.addListToDropdown)(n,r),n.buttonView.set({label:t("Navigate editable regions"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15.5 6.5a3.5 3.5 0 0 1 3.495 3.308L19 10v2a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1v-2l.005-.192A3.5 3.5 0 0 1 15.5 6.5zm0 7.5a.5.5 0 0 0-.492.41L15 14.5v2a.5.5 0 0 0 .992.09L16 16.5v-2a.5.5 0 0 0-.5-.5zm0-6a2 2 0 0 0-2 2v2h4v-2a2 2 0 0 0-2-2zm-9.25 8a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm0-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm3-5a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1 0-1.5h8.5zm6-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 0 1 0-1.5h14.5z"/></svg>',tooltip:!0,isEnabled:!0,isOn:!1}),this.listenTo(n,"execute",t=>{e.execute(t.source._commandName),e.editing.view.focus()}),n})}_getButtonDefinition(e,t,i){const n=this.editor.commands.get(e),r={type:"button",model:new h.Model({label:t,withText:!0,keystroke:i,withKeystroke:!0,_commandName:e})};return r.model.bind("isEnabled").to(n,"isEnabled"),r}}i(3);class v extends n.Plugin{static get pluginName(){return"RestrictedEditingMode"}static get requires(){return[u,E]}}class x extends n.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.getLastMatchingPosition(t,{direction:"backward"}),r=i.focus.getLastMatchingPosition(t),o=i.focus;e.removeSelectionAttribute("restrictedEditingException"),o.isEqual(n)||o.isEqual(r)||e.removeAttribute("restrictedEditingException",e.createRange(n,r))}else for(const t of r)n?e.setAttribute("restrictedEditingException",n,t):e.removeAttribute("restrictedEditingException",t)})}}class w extends n.Plugin{static get pluginName(){return"StandardEditingModeEditing"}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 x(e)),e.editing.view.change(t=>{for(const i of e.editing.view.document.roots)t.addClass("ck-restricted-editing_mode_standard",i)})}}class k extends n.Plugin{init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("restrictedEditingException",i=>{const n=e.commands.get("restrictedEditingException"),r=new h.ButtonView(i);return r.set({icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.25 16a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm0-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h5.5zm3-5a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1 0-1.5h8.5zm6-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 0 1 0-1.5h14.5zm.25 5.5a3.5 3.5 0 0 1 3.143 1.959.75.75 0 0 1-1.36.636A2 2 0 0 0 13.5 10v2H19a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1v-2l.005-.192A3.5 3.5 0 0 1 15.5 6.5zm0 7.5a.5.5 0 0 0-.492.41L15 14.5v2a.5.5 0 0 0 .992.09L16 16.5v-2a.5.5 0 0 0-.5-.5z"/></svg>',tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(n,"value","isEnabled"),r.bind("label").to(n,"value",e=>t(e?"Disable editing":"Enable editing")),this.listenTo(r,"execute",()=>{e.execute("restrictedEditingException"),e.editing.view.focus()}),r})}}class _ extends n.Plugin{static get pluginName(){return"StandardEditingMode"}static get requires(){return[w,k]}}}]);
@@ -0,0 +1 @@
1
+ !function(i){const n=i.az=i.az||{};n.dictionary=Object.assign(n.dictionary||{},{"Disable editing":"","Enable editing":"","Navigate editable regions":"","Next editable region":"Sonrakı düzəliş olunan bölgə","Previous editable region":"Əvvəlki düzəliş olunan bölgə"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.cs=i.cs||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Zakázat úpravy","Enable editing":"Povolit úpravy","Navigate editable regions":"Procházet upravitelnými oblastmi","Next editable region":"Následující upravitelná oblast","Previous editable region":"Předchozí upravitelná oblast"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.da=e.da||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Deaktivér redigering","Enable editing":"Aktivér redigering","Navigate editable regions":"Gennemgå redigérbare regioner","Next editable region":"Næste redigérbare region","Previous editable region":"Forrige redigérbare region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e["de-ch"]=e["de-ch"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Bearbeitung deaktivieren","Enable editing":"Bearbeitung zulassen","Navigate editable regions":"Durch bearbeitbare Bereiche navigieren","Next editable region":"Nächster bearbeitbarer Bereich","Previous editable region":"Vorheriger bearbeitbarer Bereich"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.de=e.de||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Bearbeitung deaktivieren","Enable editing":"Bearbeitung zulassen","Navigate editable regions":"Durch bearbeitbare Bereiche navigieren","Next editable region":"Nächster bearbeitbarer Bereich","Previous editable region":"Vorheriger bearbeitbarer Bereich"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e["en-au"]=e["en-au"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Disable editing","Enable editing":"Enable editing","Navigate editable regions":"Navigate editable regions","Next editable region":"Next editable region","Previous editable region":"Previous editable region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e["en-gb"]=e["en-gb"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"","Enable editing":"Enable editing","Navigate editable regions":"Navigate editable regions","Next editable region":"Next editable region","Previous editable region":"Previous editable region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.es=i.es||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Inhabilitar edición","Enable editing":"Habilitar edición","Navigate editable regions":"Navegar por las zonas editables","Next editable region":"Siguiente zona editable","Previous editable region":"Anterior zona editable"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.et=i.et||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Keela muutmine","Enable editing":"Luba muutmine","Navigate editable regions":"Muudetavate piirkondade vahel liikumine","Next editable region":"Järgmine muudetav piirkond","Previous editable region":"Eelmine muudetav piirkond"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.fa=i.fa||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"غیرفعال کردن ویرایش","Enable editing":"فعال کردن ویرایش","Navigate editable regions":"","Next editable region":"","Previous editable region":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.fr=i.fr||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Désactiver l'édition","Enable editing":"Activer l'édition","Navigate editable regions":"Naviguer vers","Next editable region":"Région éditable suivante","Previous editable region":"Région éditable précédente"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.gl=e.gl||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Desactivar a edición","Enable editing":"Activar a edición","Navigate editable regions":"Navegar polas áreas editábeiss","Next editable region":"Seguinte área editábel","Previous editable region":"Área editábel anterior"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.hi=i.hi||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Disable editing","Enable editing":"Enable editing","Navigate editable regions":"Navigate editable regions","Next editable region":"Next editable region","Previous editable region":"Previous editable region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.hr=e.hr||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Onemogući uređivanje","Enable editing":"Omogući uređivanje","Navigate editable regions":"Navigiraj regijama koje je moguće uređivati","Next editable region":"Sljedeća regija koju je moguće uređivati","Previous editable region":"Prethodna regija koju je moguće uređivati"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const t=e.hu=e.hu||{};t.dictionary=Object.assign(t.dictionary||{},{"Disable editing":"Szerkesztés letiltása","Enable editing":"Szerkesztés engedélyezése","Navigate editable regions":"Szerkeszthető területek navigálása","Next editable region":"Következő szerkeszthető terület","Previous editable region":"Előző szerkeszthető terület"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(n){const i=n.id=n.id||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Nonaktifkan penyuntingan","Enable editing":"Aktifkan penyuntingan","Navigate editable regions":"Posisikan bagian-bagian penyuntingan","Next editable region":"Bagian penyuntingan berikutnya","Previous editable region":"Bagian penyuntingan sebelumnya"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.it=i.it||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Disabilita modifica","Enable editing":"Abilita modifica","Navigate editable regions":"Spostati tra regioni modificabili","Next editable region":"Regione modificabile successiva","Previous editable region":"Regione modificabile precedente"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.ko=i.ko||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"편집 비활성화","Enable editing":"편집 활성화","Navigate editable regions":"편집 가능한 구역 탐색","Next editable region":"다음 편집 가능한 구역","Previous editable region":"이전 편집 가능한 구역"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.ku=i.ku||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"لەکارخستنی جاکسازی","Enable editing":"بەکارخستنی چاکسازی","Navigate editable regions":"چوون بۆ ناوچەی چاکسازی","Next editable region":"ناوچەی چاکسازی داهاتوو","Previous editable region":"ناوچەی چاکسازی پێشوو"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const a=i.lv=i.lv||{};a.dictionary=Object.assign(a.dictionary||{},{"Disable editing":"Atspējot labošanu","Enable editing":"Iespējot labošanu","Navigate editable regions":"Navigēt caur labojamajiem reģioniem","Next editable region":"Nākamais labošanas reģions","Previous editable region":"Iepriekšējais labošanas reģions"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.nl=e.nl||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Bewerken uitschakelen","Enable editing":"Bewerken inschakelen","Navigate editable regions":"Navigeer bewerkbare gebieden","Next editable region":"Volgend bewerkbaar gebied","Previous editable region":"Vorig bewerkbaar gebied"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.no=e.no||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Deaktivere redigering","Enable editing":"Aktivere redigering","Navigate editable regions":"Naviger redigerbare regioner","Next editable region":"Neste redigerbare region","Previous editable region":"Forrige redigerbare region"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.pl=e.pl||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Zablokuj edycję","Enable editing":"Odblokuj edycję","Navigate editable regions":"Przejdź między polami do edycji","Next editable region":"Następne pole do edycji","Previous editable region":"Poprzednie pole do edycji"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i["pt-br"]=i["pt-br"]||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Desabilitar edição","Enable editing":"Habilitar edição","Navigate editable regions":"Navegar entre as regiões editáveis","Next editable region":"Ir para próxima região editável","Previous editable region":"Ir para região editável anterior"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.ro=e.ro||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Dezactivează editarea","Enable editing":"Activează editarea","Navigate editable regions":"Navighează la regiunile editabile","Next editable region":"Regiunea editabilă următoare","Previous editable region":"Regiunea editabilă precedentă"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.ru=i.ru||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Отключить редактирование","Enable editing":"Разрешить редактирование","Navigate editable regions":"Навигация по редактируемым регионам","Next editable region":"Следующий редактируемый регион","Previous editable region":"Предыдущий редактируемый регион"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const a=i.sk=i.sk||{};a.dictionary=Object.assign(a.dictionary||{},{"Disable editing":"Vypnúť režim úprav","Enable editing":"Zapnúť režim úprav","Navigate editable regions":"Navigácia v oblasti úprav","Next editable region":"Nasledujúca oblasť úprav","Previous editable region":"Predchádzajúca oblasť úprav"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e["sr-latn"]=e["sr-latn"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Nemoguće uređivanje","Enable editing":"Omogući uređivanje","Navigate editable regions":"Pronađi regije za uređivanje","Next editable region":"Sledeća regija za uređivanje","Previous editable region":"Prethodna regija za uređivanje"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.sr=i.sr||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Немогуће уређивање","Enable editing":"Омогући уређивање","Navigate editable regions":"Пронђи регије за уређивање","Next editable region":"Следећа регија за уређивање","Previous editable region":"Претходна регија за уређивање"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.tk=i.tk||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Redaktirlemegi öçüriň","Enable editing":"Redaktirlemegi işjeňleşdiriň","Navigate editable regions":"Düzedip bolýan sebitlere geçiň","Next editable region":"Indiki redaktirläp bolýan sebit","Previous editable region":"Öňki redaktirläp bolýan sebit"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(e){const i=e.tr=e.tr||{};i.dictionary=Object.assign(i.dictionary||{},{"Disable editing":"Düzenlemeyi devre dışı bırak","Enable editing":"Düzenlemeyi etkinleştir","Navigate editable regions":"Düzenlenebilir alanlara git","Next editable region":"Sonraki düzenlenebilir alan","Previous editable region":"Önceki düzenlenebilir alan"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.uk=i.uk||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"Вимкнути редагування","Enable editing":"Увімкнути редагування","Navigate editable regions":"Навігація по областях редагування","Next editable region":"Наступна область редагування","Previous editable region":"Попередня область редагування"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const a=i.uz=i.uz||{};a.dictionary=Object.assign(a.dictionary||{},{"Disable editing":"Tahrirlashni o‘chirib qo‘yish","Enable editing":"Tahrirlashga ruxsat berish","Navigate editable regions":"Tahrirlanadigan hududlar boʻylab navigatsiya","Next editable region":"Keyingi tahrirlanadigan hudud","Previous editable region":"Avvalgi tahrirlanadigan hudud"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i["zh-cn"]=i["zh-cn"]||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"禁用编辑","Enable editing":"允许编辑","Navigate editable regions":"导航至可编辑区域","Next editable region":"下一个可编辑区域","Previous editable region":"上一个可编辑区域"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1 @@
1
+ !function(i){const e=i.zh=i.zh||{};e.dictionary=Object.assign(e.dictionary||{},{"Disable editing":"停用編輯","Enable editing":"啟用編輯","Navigate editable regions":"編輯區域導航","Next editable region":"下一個可編輯區域","Previous editable region":"上一個可編輯區域"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
2
+ #
3
+ # !!! IMPORTANT !!!
4
+ #
5
+ # Before you edit this file, please keep in mind that contributing to the project
6
+ # translations is possible ONLY via the Transifex online service.
7
+ #
8
+ # To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
9
+ #
10
+ # To learn more, check out the official contributor's guide:
11
+ # https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
12
+ #
13
+ msgid ""
14
+ msgstr ""
15
+ "Language-Team: Uzbek (https://www.transifex.com/ckeditor/teams/11143/uz/)\n"
16
+ "Language: uz\n"
17
+ "Plural-Forms: nplurals=1; plural=0;\n"
18
+
19
+ msgctxt "A label of the button indicating that using this button will make a selected text non–editable."
20
+ msgid "Disable editing"
21
+ msgstr "Tahrirlashni o‘chirib qo‘yish"
22
+
23
+ msgctxt "A label of the button indicating that using this button will make a selected text editable."
24
+ msgid "Enable editing"
25
+ msgstr "Tahrirlashga ruxsat berish"
26
+
27
+ msgctxt "A label of the button that moves selection to the previous editable region in the content."
28
+ msgid "Previous editable region"
29
+ msgstr "Avvalgi tahrirlanadigan hudud"
30
+
31
+ msgctxt "A label of the button that moves selection to the next editable region in the content."
32
+ msgid "Next editable region"
33
+ msgstr "Keyingi tahrirlanadigan hudud"
34
+
35
+ msgctxt "A label of the dropdown that provides controls to navigate editable regions in the content."
36
+ msgid "Navigate editable regions"
37
+ msgstr "Tahrirlanadigan hududlar boʻylab navigatsiya"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-restricted-editing",
3
- "version": "29.1.0",
3
+ "version": "31.1.0",
4
4
  "description": "Restricted editing feature for CKEditor 5 editors.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -11,24 +11,24 @@
11
11
  ],
12
12
  "main": "src/index.js",
13
13
  "dependencies": {
14
- "ckeditor5": "^29.1.0"
14
+ "ckeditor5": "^31.1.0"
15
15
  },
16
16
  "devDependencies": {
17
- "@ckeditor/ckeditor5-basic-styles": "^29.1.0",
18
- "@ckeditor/ckeditor5-block-quote": "^29.1.0",
19
- "@ckeditor/ckeditor5-clipboard": "^29.1.0",
20
- "@ckeditor/ckeditor5-core": "^29.1.0",
21
- "@ckeditor/ckeditor5-dev-utils": "^25.3.0",
22
- "@ckeditor/ckeditor5-editor-classic": "^29.1.0",
23
- "@ckeditor/ckeditor5-engine": "^29.1.0",
24
- "@ckeditor/ckeditor5-link": "^29.1.0",
25
- "@ckeditor/ckeditor5-paragraph": "^29.1.0",
26
- "@ckeditor/ckeditor5-table": "^29.1.0",
27
- "@ckeditor/ckeditor5-theme-lark": "^29.1.0",
28
- "@ckeditor/ckeditor5-typing": "^29.1.0",
29
- "@ckeditor/ckeditor5-ui": "^29.1.0",
30
- "@ckeditor/ckeditor5-undo": "^29.1.0",
31
- "@ckeditor/ckeditor5-utils": "^29.1.0",
17
+ "@ckeditor/ckeditor5-basic-styles": "^31.1.0",
18
+ "@ckeditor/ckeditor5-block-quote": "^31.1.0",
19
+ "@ckeditor/ckeditor5-clipboard": "^31.1.0",
20
+ "@ckeditor/ckeditor5-core": "^31.1.0",
21
+ "@ckeditor/ckeditor5-dev-utils": "^26.0.0",
22
+ "@ckeditor/ckeditor5-editor-classic": "^31.1.0",
23
+ "@ckeditor/ckeditor5-engine": "^31.1.0",
24
+ "@ckeditor/ckeditor5-link": "^31.1.0",
25
+ "@ckeditor/ckeditor5-paragraph": "^31.1.0",
26
+ "@ckeditor/ckeditor5-table": "^31.1.0",
27
+ "@ckeditor/ckeditor5-theme-lark": "^31.1.0",
28
+ "@ckeditor/ckeditor5-typing": "^31.1.0",
29
+ "@ckeditor/ckeditor5-ui": "^31.1.0",
30
+ "@ckeditor/ckeditor5-undo": "^31.1.0",
31
+ "@ckeditor/ckeditor5-utils": "^31.1.0",
32
32
  "webpack": "^4.43.0",
33
33
  "webpack-cli": "^3.3.11"
34
34
  },
@@ -54,7 +54,7 @@ export default class RestrictedEditingModeEditing extends Plugin {
54
54
  * @type {Set.<String>}
55
55
  * @private
56
56
  */
57
- this._alwaysEnabled = new Set( [ 'undo', 'redo', 'goToPreviousRestrictedEditingException', 'goToNextRestrictedEditingException' ] );
57
+ this._alwaysEnabled = new Set( [ 'undo', 'redo' ] );
58
58
 
59
59
  /**
60
60
  * Commands allowed in non-restricted areas.
@@ -241,7 +241,7 @@ export default class RestrictedEditingModeEditing extends Plugin {
241
241
  const model = editor.model;
242
242
  const doc = model.document;
243
243
 
244
- this._disableCommands( editor );
244
+ this._disableCommands();
245
245
 
246
246
  this.listenTo( doc.selection, 'change', this._checkCommands.bind( this ) );
247
247
  this.listenTo( doc, 'change:data', this._checkCommands.bind( this ) );
@@ -257,7 +257,7 @@ export default class RestrictedEditingModeEditing extends Plugin {
257
257
  const selection = editor.model.document.selection;
258
258
 
259
259
  if ( selection.rangeCount > 1 ) {
260
- this._disableCommands( editor );
260
+ this._disableCommands();
261
261
 
262
262
  return;
263
263
  }
@@ -280,12 +280,21 @@ export default class RestrictedEditingModeEditing extends Plugin {
280
280
  _enableCommands( marker ) {
281
281
  const editor = this.editor;
282
282
 
283
- const commands = this._getCommandNamesToToggle( editor, this._allowedInException )
284
- .filter( name => this._allowedInException.has( name ) )
285
- .filter( filterDeleteCommandsOnMarkerBoundaries( editor.model.document.selection, marker.getRange() ) )
286
- .map( name => editor.commands.get( name ) );
283
+ for ( const [ commandName, command ] of editor.commands ) {
284
+ if ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {
285
+ continue;
286
+ }
287
+
288
+ // Enable ony those commands that are allowed in the exception marker.
289
+ if ( !this._allowedInException.has( commandName ) ) {
290
+ continue;
291
+ }
292
+
293
+ // Do not enable 'delete' and 'deleteForward' commands on the exception marker boundaries.
294
+ if ( isDeleteCommandOnMarkerBoundaries( commandName, editor.model.document.selection, marker.getRange() ) ) {
295
+ continue;
296
+ }
287
297
 
288
- for ( const command of commands ) {
289
298
  command.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );
290
299
  }
291
300
  }
@@ -297,25 +306,15 @@ export default class RestrictedEditingModeEditing extends Plugin {
297
306
  */
298
307
  _disableCommands() {
299
308
  const editor = this.editor;
300
- const commands = this._getCommandNamesToToggle( editor )
301
- .map( name => editor.commands.get( name ) );
302
309
 
303
- for ( const command of commands ) {
310
+ for ( const [ commandName, command ] of editor.commands ) {
311
+ if ( !command.affectsData || this._alwaysEnabled.has( commandName ) ) {
312
+ continue;
313
+ }
314
+
304
315
  command.forceDisabled( COMMAND_FORCE_DISABLE_ID );
305
316
  }
306
317
  }
307
-
308
- /**
309
- * Returns command names that should be toggleable.
310
- *
311
- * @param {module:core/editor/editor~Editor} editor
312
- * @returns {Array.<String>}
313
- * @private
314
- */
315
- _getCommandNamesToToggle( editor ) {
316
- return Array.from( editor.commands.names() )
317
- .filter( name => !this._alwaysEnabled.has( name ) );
318
- }
319
318
  }
320
319
 
321
320
  // Helper method for executing enabled commands only.
@@ -357,24 +356,22 @@ function getSelectAllHandler( editor ) {
357
356
  };
358
357
  }
359
358
 
360
- // Additional filtering rule for enabling "delete" and "deleteForward" commands if selection is on range boundaries:
359
+ // Additional rule for enabling "delete" and "deleteForward" commands if selection is on range boundaries:
361
360
  //
362
361
  // Does not allow to enable command when selection focus is:
363
362
  // - is on marker start - "delete" - to prevent removing content before marker
364
363
  // - is on marker end - "deleteForward" - to prevent removing content after marker
365
- function filterDeleteCommandsOnMarkerBoundaries( selection, markerRange ) {
366
- return name => {
367
- if ( name == 'delete' && markerRange.start.isEqual( selection.focus ) ) {
368
- return false;
369
- }
370
-
371
- // Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.
372
- if ( name == 'deleteForward' && selection.isCollapsed && markerRange.end.isEqual( selection.focus ) ) {
373
- return false;
374
- }
364
+ function isDeleteCommandOnMarkerBoundaries( commandName, selection, markerRange ) {
365
+ if ( commandName == 'delete' && markerRange.start.isEqual( selection.focus ) ) {
366
+ return true;
367
+ }
375
368
 
369
+ // Only for collapsed selection - non-collapsed selection that extends over a marker is handled elsewhere.
370
+ if ( commandName == 'deleteForward' && selection.isCollapsed && markerRange.end.isEqual( selection.focus ) ) {
376
371
  return true;
377
- };
372
+ }
373
+
374
+ return false;
378
375
  }
379
376
 
380
377
  // Ensures that model.deleteContent() does not delete outside exception markers ranges.
@@ -24,6 +24,9 @@ export default class RestrictedEditingModeNavigationCommand extends Command {
24
24
  constructor( editor, direction ) {
25
25
  super( editor );
26
26
 
27
+ // It does not affect data so should be enabled in read-only mode and in restricted editing mode.
28
+ this.affectsData = false;
29
+
27
30
  /**
28
31
  * The direction of the command. Can be `'forward'` or `'backward'`.
29
32
  *
package/CHANGELOG.md DELETED
@@ -1,53 +0,0 @@
1
- Changelog
2
- =========
3
-
4
- All changes in the package are documented in the main repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
5
-
6
- Changes for the past releases are available below.
7
-
8
- ## [19.0.0](https://github.com/ckeditor/ckeditor5-restricted-editing/compare/v18.0.0...v19.0.0) (2020-04-29)
9
-
10
- ### Other changes
11
-
12
- * Updated translations. ([4d7336d](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/4d7336d))
13
-
14
-
15
- ## [18.0.0](https://github.com/ckeditor/ckeditor5-restricted-editing/compare/v17.0.0...v18.0.0) (2020-03-19)
16
-
17
- ### Other changes
18
-
19
- * Updated translations. ([e2a6a7d](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/e2a6a7d))
20
-
21
-
22
- ## [17.0.0](https://github.com/ckeditor/ckeditor5-restricted-editing/compare/v16.0.0...v17.0.0) (2020-02-19)
23
-
24
- ### MAJOR BREAKING CHANGES
25
-
26
- * Changed the class denoting the exception spans from `ck-restricted-editing-exception` to `restricted-editing-exception`. See [ckeditor/ckeditor5-restricted-editing#6](https://github.com/ckeditor/ckeditor5-restricted-editing/pull/6).
27
-
28
- The data produced by version 16.0.0 of this package will not be recognized by the new version of this package. The easiest migration method is to replace all occurrences of `class="ck-restricted-editing-exception"` with `class="restricted-editing-exception"` prior to loading the data into the editor.
29
-
30
- ### Features
31
-
32
- * Add `enableCommand()` method to `RestrictedEditingModeEditing`. Closes [ckeditor/ckeditor5#6041](https://github.com/ckeditor/ckeditor5/issues/6041). Closes [ckeditor/ckeditor5#6011](https://github.com/ckeditor/ckeditor5/issues/6011). ([e617559](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/e617559))
33
- * Allow pasting content into exception areas in the restricted editing mode. Closes [ckeditor/ckeditor5#5802](https://github.com/ckeditor/ckeditor5/issues/5802). ([6704d21](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/6704d21))
34
- * Pressing Ctrl+A when the selection range is inside an exception selects text only within an exception in restricted editing. Second Ctrl+A selects the entire text in the editor. Closes [ckeditor/ckeditor5#5826](https://github.com/ckeditor/ckeditor5/issues/5826). ([569d588](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/569d588))
35
- * Remove the entire exception when collapsed selection is inside text with restricted attribute. Closes [#5828](https://github.com/ckeditor/ckeditor5-restricted-editing/issues/5828). ([44f443e](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/44f443e))
36
-
37
- ### Bug fixes
38
-
39
- * Fix non-flat exception markers. Closes [ckeditor/ckeditor5#6003](https://github.com/ckeditor/ckeditor5/issues/6003). ([70e3e12](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/70e3e12))
40
- * Focus the editor before executing toolbar buttons' command. See [ckeditor/ckeditor5#353](https://github.com/ckeditor/ckeditor5/issues/353). ([e7f9d23](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/e7f9d23))
41
- * Pressing "Tab" or "Shift+Tab" should move focus outside the editor in restricted mode if the selection is anchored in the last (or first) exception. Closes [ckeditor/ckeditor5#5834](https://github.com/ckeditor/ckeditor5/issues/5834). ([dc26f4c](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/dc26f4c))
42
- * Restricted editing boundaries should not be crossed by delete content and input command. Closes [ckeditor/ckeditor5#5840](https://github.com/ckeditor/ckeditor5/issues/5840). ([3ae681a](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/3ae681a))
43
-
44
- ### Other changes
45
-
46
- * Added CSS classes to the editable elements to differentiate between the restricted and standard modes. See [ckeditor/ckeditor5#5829](https://github.com/ckeditor/ckeditor5/issues/5829). ([de38be8](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/de38be8))
47
- * Align CSS class names to the changes in the restricted editing feature. See [ckeditor/ckeditor5#5899](https://github.com/ckeditor/ckeditor5/issues/5899). ([3ba00b0](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/3ba00b0))
48
- * Updated translations. ([c076842](https://github.com/ckeditor/ckeditor5-restricted-editing/commit/c076842))
49
-
50
-
51
- ## [16.0.0](https://github.com/ckeditor/ckeditor5-restricted-editing/tree/v16.0.0) (2019-12-04)
52
-
53
- The initial release.