@ckeditor/ckeditor5-import-word 39.0.2 → 40.0.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-2023, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var t={722:(t,e,r)=>{"use strict";r.d(e,{Z:()=>i});var o=r(758),n=r.n(o)()((function(t){return t[1]}));n.push([t.id,":root{--ck-toolbar-spinner-size:18px}.ck-importword_status-pending{position:relative}.ck.ck-importword__spinner-container{display:none}.ck.ck-importword__spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);width:var(--ck-toolbar-spinner-size);z-index:1}.ck-importword_status-pending .ck.ck-importword__spinner-container{animation:rotate 1.5s linear infinite;display:block;height:var(--ck-toolbar-spinner-size);position:absolute;width:var(--ck-toolbar-spinner-size)}.ck-importword_status-pending .ck.ck-button__icon{color:transparent}@keyframes rotate{to{transform:rotate(1turn)}}",""]);const i=n},758:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var r=t(e);return e[2]?"@media ".concat(e[2]," {").concat(r,"}"):r})).join("")},e.i=function(t,r,o){"string"==typeof t&&(t=[[null,t,""]]);var n={};if(o)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(n[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);o&&n[c[0]]||(r&&(c[2]?c[2]="".concat(r," and ").concat(c[2]):c[2]=r),e.push(c))}},e}},278:(t,e,r)=>{"use strict";var o,n=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},i=function(){var t={};return function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(t){r=null}t[e]=r}return t[e]}}(),s=[];function a(t){for(var e=-1,r=0;r<s.length;r++)if(s[r].identifier===t){e=r;break}return e}function c(t,e){for(var r={},o=[],n=0;n<t.length;n++){var i=t[n],c=e.base?i[0]+e.base:i[0],l=r[c]||0,d="".concat(c," ").concat(l);r[c]=l+1;var u=a(d),p={css:i[1],media:i[2],sourceMap:i[3]};-1!==u?(s[u].references++,s[u].updater(p)):s.push({identifier:d,updater:g(p,e),references:1}),o.push(d)}return o}function l(t){var e=document.createElement("style"),o=t.attributes||{};if(void 0===o.nonce){var n=r.nc;n&&(o.nonce=n)}if(Object.keys(o).forEach((function(t){e.setAttribute(t,o[t])})),"function"==typeof t.insert)t.insert(e);else{var s=i(t.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(e)}return e}var d,u=(d=[],function(t,e){return d[t]=e,d.filter(Boolean).join("\n")});function p(t,e,r,o){var n=r?"":o.media?"@media ".concat(o.media," {").concat(o.css,"}"):o.css;if(t.styleSheet)t.styleSheet.cssText=u(e,n);else{var i=document.createTextNode(n),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function h(t,e,r){var o=r.css,n=r.media,i=r.sourceMap;if(n?t.setAttribute("media",n):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=o;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(o))}}var m=null,f=0;function g(t,e){var r,o,n;if(e.singleton){var i=f++;r=m||(m=l(e)),o=p.bind(null,r,i,!1),n=p.bind(null,r,i,!0)}else r=l(e),o=h.bind(null,r,e),n=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(r)};return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else n()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=n());var r=c(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var o=0;o<r.length;o++){var n=a(r[o]);s[n].references--}for(var i=c(t,e),l=0;l<r.length;l++){var d=a(r[l]);0===s[d].references&&(s[d].updater(),s.splice(d,1))}r=i}}}},945:(t,e,r)=>{t.exports=r(79)("./src/clipboard.js")},704:(t,e,r)=>{t.exports=r(79)("./src/core.js")},492:(t,e,r)=>{t.exports=r(79)("./src/engine.js")},273:(t,e,r)=>{t.exports=r(79)("./src/ui.js")},448:(t,e,r)=>{t.exports=r(79)("./src/upload.js")},209:(t,e,r)=>{t.exports=r(79)("./src/utils.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function r(o){var n=e[o];if(void 0!==n)return n.exports;var i=e[o]={id:o,exports:{}};return t[o](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var o in e)r.o(e,o)&&!r.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nc=void 0;var o={};(()=>{"use strict";r.r(o),r.d(o,{ImportWord:()=>y,ImportWordEditing:()=>b,ImportWordUI:()=>l});var t=r(704),e=r(273),n=r(448);var i=r(278),s=r.n(i),a=r(722),c={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};s()(a.Z,c);a.Z.locals;class l extends t.Plugin{static get pluginName(){return"ImportWordUI"}init(){const t=this.editor,r=t.t;t.ui.componentFactory.add("importWord",(o=>{const i=t.commands.get("importWord"),s=new n.FileDialogButtonView(o);s.set({acceptedType:"application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template"}),s.buttonView.set({label:r("Import from Word"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m14 0 5 4.5v8.892l-1.5-1.8V6.5h-5v-5h-8v3H3V0h11Zm0 2v3h3.3L14 2Z"/><path d="M10.74 18a2.76 2.76 0 0 1-.469-.5H3V19h9.25v-.374A2.737 2.737 0 0 1 10.74 18Z"/><path d="M8.5 6a1.5 1.5 0 0 1 1.493 1.356L10 7.5v7a1.5 1.5 0 0 1-1.356 1.493L8.5 16h-7a1.5 1.5 0 0 1-1.493-1.356L0 14.5v-7a1.5 1.5 0 0 1 1.356-1.493L1.5 6h7ZM7.483 8.795l-.042.088-.986 2.534-.947-2.528-.043-.092a.601.601 0 0 0-1.042.008l-.042.093-.883 2.465-.937-2.475-.042-.089a.6.6 0 0 0-1.107.42l.027.093 1.514 4 .044.092a.6.6 0 0 0 1.041-.01l.041-.092.88-2.458.925 2.467.046.096a.602.602 0 0 0 1.032 0l.043-.09 1.554-4 .028-.093a.6.6 0 0 0-1.104-.43v.001ZM11.674 15.407a.75.75 0 1 0 1.152.96L14 14.96V20h1.5v-5.04l1.174 1.408a.75.75 0 1 0 1.152-.96l-2.346-2.816a.95.95 0 0 0-1.46 0l-2.346 2.815Z"/></svg>\n',tooltip:!0}),s.buttonView.bind("isOn","isEnabled").to(i,"isBusy","isEnabled"),s.buttonView.extendTemplate({attributes:{class:[s.buttonView.bindTemplate.if("isOn","ck-importword_status-pending")]}});const a=new e.View;return a.setTemplate({tag:"span",attributes:{class:["ck","ck-importword__spinner-container"]},children:[{tag:"span",attributes:{class:["ck","ck-importword__spinner"]}}]}),s.buttonView.children.add(a),s.on("done",((e,r)=>{t.execute("importWord",r[0],{}),t.editing.view.focus()})),s}))}}var d=r(945),u=r(492),p=r(209);class h extends t.Command{constructor(t){super(t),this.set("isBusy",!1),this._importMarker=null,this._undoStepBatch=null,this._abortController=null,this.on("dataInsert",((e,r)=>{const o=new DataTransfer;o.setData("text/html",r.html);const n=this._importMarker.getRange();this.editor.model.enqueueChange(this._undoStepBatch,(e=>{this._importMarker.stopListening(),e.setSelection(n),t.editing.view.document.fire("clipboardInput",{dataTransfer:o})}))}),{priority:"low"})}refresh(){this.isEnabled=this._checkEnabled()}execute(t,e={}){if(this.isBusy)return Promise.resolve();const r=this.editor.config.get("importWord"),o={url:r.converterUrl,file:t,serviceConfig:{...e,default_styles:r.defaultStyles}};return this._prepareForImport(),this._sendImportRequest(o).then(this._handleImportResponse.bind(this)).catch(this._handleImportFailure.bind(this)).finally(this._cleanUpAfterImport.bind(this))}_checkEnabled(){if(this.isBusy)return!1;const t=this.editor.model,e=t.schema,r=t.document.selection,o=(0,p.first)(r.getSelectedBlocks());return!!o&&e.checkChild(o.parent,"paragraph")}_prepareForImport(){const t=this.editor,e=t.model,r=e.document.selection;this._abortController=new AbortController,this._undoStepBatch=t.model.createBatch({isUndoable:!0}),e.enqueueChange(this._undoStepBatch,(t=>{r.isCollapsed||e.deleteContent(r,{leaveUnmerged:!0});const o=r.getFirstPosition(),n=(0,p.first)(r.getSelectedBlocks());let i;i=n.is("element","paragraph")&&n.isEmpty?o:o.isAtStart?e.createPositionBefore(n):o.isAtEnd?e.createPositionAfter(n):t.split(o).position,this._importMarker=t.addMarker("importWord:"+(0,p.uid)(),{usingOperation:!1,affectsData:!1,range:new u.Range(i)}),this._importMarker.on("change:range",(()=>{"$graveyard"===this._importMarker.getRange().root.rootName&&this._abortController.abort()}))})),this.isBusy=!0,this.refresh()}_cleanUpAfterImport(){const t=this.editor.model;t.markers.has(this._importMarker)&&t.enqueueChange(this._undoStepBatch,(t=>{t.removeMarker(this._importMarker)})),this._importMarker=null,this._undoStepBatch=null,this._abortController=null,this.isBusy=!1,this.refresh()}_sendImportRequest({url:t,file:e,serviceConfig:r}){const o=this.editor.plugins.get("ImportWordEditing").getToken(),n=new FormData;n.set("config",JSON.stringify(r)),n.set("file",e);const i={method:"POST",headers:{},body:n,signal:this._abortController.signal};return o&&(i.headers.Authorization=o.value),fetch(t,i)}_handleImportResponse(t){return t.ok?t.json().then((t=>{this.editor.model.markers.has(this._importMarker)&&"$graveyard"!==this._importMarker.getRange().root.rootName&&this.fire("dataInsert",t)})):Promise.reject()}_handleImportFailure(){if(this._abortController.signal.aborted)return void(0,p.logWarning)("import-word-plugin-import-cancelled");const t=this.editor,e=(0,t.t)("An error occurred while importing the Word file.");t.plugins.get("Notification").showWarning(e),(0,p.logError)("import-word-plugin-conversion-failed")}}const m=["https://docx-converter.cke-cs.com/v2/convert/docx-html","get","config","add","getToken","CloudServices","tokenUrl","_token","plugins","editor","importWord","requires","init","pluginName","token"];var f,g;f=m,g=375,function(t){for(;--t;)f.push(f.shift())}(++g);const v=function(t,e){return m[t-=0]};class b extends t.Plugin{static get[v("0xd")](){return"ImportWordEditing"}static get[v("0xb")](){return[e.Notification,d.ClipboardPipeline,v("0x5")]}constructor(t){super(t),this[v("0x7")]=null}async[v("0xc")](){const t=this[v("0x9")];t.config.define(v("0xa"),{converterUrl:v("0x0"),tokenUrl:(t.config[v("0x1")]("cloudServices")||{})[v("0x6")],defaultStyles:!1}),t.commands[v("0x3")](v("0xa"),new h(t));const{tokenUrl:e}=t.config[v("0x1")]("importWord");if(e){const{tokenUrl:r}=t[v("0x2")][v("0x1")]("cloudServices")||{};this[v("0x7")]=e===r?t.plugins.get(v("0x5"))[v("0xe")]:await t[v("0x8")][v("0x1")]("CloudServices").registerTokenUrl(e)}}[v("0x4")](){return this[v("0x7")]}}var x,w,_=["ImportWord","pluginName"];x=_,w=331,function(t){for(;--t;)x.push(x.shift())}(++w);var k=function(t,e){return _[t-=0]};class y extends t.Plugin{static get[k("0x0")](){return k("0x1")}static get requires(){return[b,l]}}})(),(window.CKEditor5=window.CKEditor5||{}).importWord=o})();
5
+ */(()=>{var t={945:(t,e,r)=>{t.exports=r(79)("./src/clipboard.js")},704:(t,e,r)=>{t.exports=r(79)("./src/core.js")},492:(t,e,r)=>{t.exports=r(79)("./src/engine.js")},273:(t,e,r)=>{t.exports=r(79)("./src/ui.js")},448:(t,e,r)=>{t.exports=r(79)("./src/upload.js")},209:(t,e,r)=>{t.exports=r(79)("./src/utils.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function r(o){var i=e[o];if(void 0!==i)return i.exports;var n=e[o]={exports:{}};return t[o](n,n.exports,r),n.exports}r.d=(t,e)=>{for(var o in e)r.o(e,o)&&!r.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};(()=>{"use strict";r.r(o),r.d(o,{ImportWord:()=>b,ImportWordEditing:()=>m,ImportWordUI:()=>n});var t=r(704),e=r(273),i=r(448);class n extends t.Plugin{static get pluginName(){return"ImportWordUI"}init(){const t=this.editor,r=t.t;t.ui.componentFactory.add("importWord",(o=>{const n=t.commands.get("importWord"),s=new i.FileDialogButtonView(o),a=new e.SpinnerView;return s.set({acceptedType:"application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template"}),s.buttonView.set({label:r("Import from Word"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m14 0 5 4.5v8.892l-1.5-1.8V6.5h-5v-5h-8v3H3V0h11Zm0 2v3h3.3L14 2Z"/><path d="M10.74 18a2.76 2.76 0 0 1-.469-.5H3V19h9.25v-.374A2.737 2.737 0 0 1 10.74 18Z"/><path d="M8.5 6a1.5 1.5 0 0 1 1.493 1.356L10 7.5v7a1.5 1.5 0 0 1-1.356 1.493L8.5 16h-7a1.5 1.5 0 0 1-1.493-1.356L0 14.5v-7a1.5 1.5 0 0 1 1.356-1.493L1.5 6h7ZM7.483 8.795l-.042.088-.986 2.534-.947-2.528-.043-.092a.601.601 0 0 0-1.042.008l-.042.093-.883 2.465-.937-2.475-.042-.089a.6.6 0 0 0-1.107.42l.027.093 1.514 4 .044.092a.6.6 0 0 0 1.041-.01l.041-.092.88-2.458.925 2.467.046.096a.602.602 0 0 0 1.032 0l.043-.09 1.554-4 .028-.093a.6.6 0 0 0-1.104-.43v.001ZM11.674 15.407a.75.75 0 1 0 1.152.96L14 14.96V20h1.5v-5.04l1.174 1.408a.75.75 0 1 0 1.152-.96l-2.346-2.816a.95.95 0 0 0-1.46 0l-2.346 2.815Z"/></svg>\n',tooltip:!0}),s.buttonView.bind("isOn","isEnabled").to(n,"isBusy","isEnabled"),a.bind("isVisible").to(n,"isBusy"),s.buttonView.iconView.bind("isVisible").to(n,"isBusy",(t=>!t)),s.buttonView.children.add(a),s.on("done",((e,r)=>{t.execute("importWord",r[0],{}),t.editing.view.focus()})),s}))}}var s=r(945),a=r(492),l=r(209);class d extends t.Command{constructor(t){super(t),this.set("isBusy",!1),this._importMarker=null,this._undoStepBatch=null,this._abortController=null,this.on("dataInsert",((e,r)=>{const o=new DataTransfer;o.setData("text/html",r.html);const i=this._importMarker.getRange();this.editor.model.enqueueChange(this._undoStepBatch,(e=>{this._importMarker.stopListening(),e.setSelection(i),t.editing.view.document.fire("clipboardInput",{dataTransfer:o})}))}),{priority:"low"})}refresh(){this.isEnabled=this._checkEnabled()}execute(t,e={}){if(this.isBusy)return Promise.resolve();const r=this.editor.config.get("importWord"),o={url:r.converterUrl,file:t,serviceConfig:{...e,default_styles:r.defaultStyles}};return this._prepareForImport(),this._sendImportRequest(o).then(this._handleImportResponse.bind(this)).catch(this._handleImportFailure.bind(this)).finally(this._cleanUpAfterImport.bind(this))}_checkEnabled(){if(this.isBusy)return!1;const t=this.editor.model,e=t.schema,r=t.document.selection,o=(0,l.first)(r.getSelectedBlocks());return!!o&&e.checkChild(o.parent,"paragraph")}_prepareForImport(){const t=this.editor,e=t.model,r=e.document.selection;this._abortController=new AbortController,this._undoStepBatch=t.model.createBatch({isUndoable:!0}),e.enqueueChange(this._undoStepBatch,(t=>{r.isCollapsed||e.deleteContent(r,{leaveUnmerged:!0});const o=r.getFirstPosition(),i=(0,l.first)(r.getSelectedBlocks());let n;n=i.is("element","paragraph")&&i.isEmpty?o:o.isAtStart?e.createPositionBefore(i):o.isAtEnd?e.createPositionAfter(i):t.split(o).position,this._importMarker=t.addMarker("importWord:"+(0,l.uid)(),{usingOperation:!1,affectsData:!1,range:new a.Range(n)}),this._importMarker.on("change:range",(()=>{"$graveyard"===this._importMarker.getRange().root.rootName&&this._abortController.abort()}))})),this.isBusy=!0,this.refresh()}_cleanUpAfterImport(){const t=this.editor.model;t.markers.has(this._importMarker)&&t.enqueueChange(this._undoStepBatch,(t=>{t.removeMarker(this._importMarker)})),this._importMarker=null,this._undoStepBatch=null,this._abortController=null,this.isBusy=!1,this.refresh()}_sendImportRequest({url:t,file:e,serviceConfig:r}){const o=this.editor.plugins.get("ImportWordEditing").getToken(),i=new FormData;i.set("config",JSON.stringify(r)),i.set("file",e);const n={method:"POST",headers:{},body:i,signal:this._abortController.signal};return o&&(n.headers.Authorization=o.value),fetch(t,n)}_handleImportResponse(t){return t.ok?t.json().then((t=>{this.editor.model.markers.has(this._importMarker)&&"$graveyard"!==this._importMarker.getRange().root.rootName&&this.fire("dataInsert",t)})):Promise.reject()}_handleImportFailure(){if(this._abortController.signal.aborted)return void(0,l.logWarning)("import-word-plugin-import-cancelled");const t=this.editor,e=(0,t.t)("An error occurred while importing the Word file.");t.plugins.get("Notification").showWarning(e),(0,l.logError)("import-word-plugin-conversion-failed")}}const c=["CloudServices","ImportWordEditing","registerTokenUrl","pluginName","tokenUrl","token","get","add","_token","plugins","cloudServices","importWord","getToken","config","requires","init"];var p,h;p=c,h=145,function(t){for(;--t;)p.push(p.shift())}(++h);const u=function(t,e){return c[t-=0]};class m extends t.Plugin{static get[u("0x2")](){return u("0x0")}static get[u("0xd")](){return[e.Notification,s.ClipboardPipeline,u("0xf")]}constructor(t){super(t),this[u("0x7")]=null}async[u("0xe")](){const t=this.editor;t[u("0xc")].define(u("0xa"),{converterUrl:"https://docx-converter.cke-cs.com/v2/convert/docx-html",tokenUrl:(t.config[u("0x5")]("cloudServices")||{})[u("0x3")],defaultStyles:!1}),t.commands[u("0x6")](u("0xa"),new d(t));const{tokenUrl:e}=t[u("0xc")][u("0x5")](u("0xa"));if(e){const{tokenUrl:r}=t[u("0xc")].get(u("0x9"))||{};this[u("0x7")]=e===r?t[u("0x8")].get(u("0xf"))[u("0x4")]:await t[u("0x8")][u("0x5")](u("0xf"))[u("0x1")](e)}}[u("0xb")](){return this[u("0x7")]}}var g,f,x=["pluginName","requires","ImportWord"];g=x,f=283,function(t){for(;--t;)g.push(g.shift())}(++f);var v=function(t,e){return x[t-=0]};class b extends t.Plugin{static get[v("0x2")](){return v("0x1")}static get[v("0x0")](){return[m,n]}}})(),(window.CKEditor5=window.CKEditor5||{}).importWord=o})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-import-word",
3
- "version": "39.0.2",
3
+ "version": "40.0.0",
4
4
  "description": "Import from Word feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "main": "src/index.js",
31
31
  "dependencies": {
32
- "ckeditor5": "39.0.2"
32
+ "ckeditor5": "40.0.0"
33
33
  },
34
34
  "license": "SEE LICENSE IN LICENSE.md",
35
35
  "author": "CKSource (https://cksource.com/)",
@@ -1,23 +1,23 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- import type { ImportWordConfig, ImportWord, ImportWordEditing, ImportWordUI, ImportWordCommand } from './index';
6
- declare module '@ckeditor/ckeditor5-core' {
7
- interface EditorConfig {
8
- /**
9
- * The configuration of the {@link module:import-word/importword~ImportWord import from Word feature}.
10
- *
11
- * Read more in {@link module:import-word/importword~ImportWordConfig}.
12
- */
13
- importWord?: ImportWordConfig;
14
- }
15
- interface PluginsMap {
16
- [ImportWord.pluginName]: ImportWord;
17
- [ImportWordEditing.pluginName]: ImportWordEditing;
18
- [ImportWordUI.pluginName]: ImportWordUI;
19
- }
20
- interface CommandsMap {
21
- importWord: ImportWordCommand;
22
- }
23
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ import type { ImportWordConfig, ImportWord, ImportWordEditing, ImportWordUI, ImportWordCommand } from './index';
6
+ declare module '@ckeditor/ckeditor5-core' {
7
+ interface EditorConfig {
8
+ /**
9
+ * The configuration of the {@link module:import-word/importword~ImportWord import from Word feature}.
10
+ *
11
+ * Read more in {@link module:import-word/importword~ImportWordConfig}.
12
+ */
13
+ importWord?: ImportWordConfig;
14
+ }
15
+ interface PluginsMap {
16
+ [ImportWord.pluginName]: ImportWord;
17
+ [ImportWordEditing.pluginName]: ImportWordEditing;
18
+ [ImportWordUI.pluginName]: ImportWordUI;
19
+ }
20
+ interface CommandsMap {
21
+ importWord: ImportWordCommand;
22
+ }
23
+ }
@@ -1,99 +1,99 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module import-word/importword
7
- * @publicApi
8
- */
9
- import { Plugin } from 'ckeditor5/src/core';
10
- import type { TokenUrl } from '@ckeditor/ckeditor5-cloud-services';
11
- import ImportWordUI from './importwordui';
12
- import ImportWordEditing from './importwordediting';
13
- /**
14
- * The import from Word feature.
15
- *
16
- * It allows importing content from a Word file directly into CKEditor 5.
17
- *
18
- * This is a "glue" plugin which enables:
19
- *
20
- * * {@link module:import-word/importwordediting~ImportWordEditing},
21
- * * {@link module:import-word/importwordui~ImportWordUI},
22
- *
23
- * For a detailed overview, check the {@glink features/converters/import-word/import-word import from Word} feature documentation.
24
- */
25
- export default class ImportWord extends Plugin {
26
- /**
27
- * @inheritDoc
28
- */
29
- static get pluginName(): "ImportWord";
30
- /**
31
- * @inheritDoc
32
- */
33
- static get requires(): readonly [typeof ImportWordEditing, typeof ImportWordUI];
34
- }
35
- /**
36
- * The configuration of the {@link module:import-word/importword~ImportWord import from Word feature}.
37
- *
38
- * The configuration for the import from Word feature requires providing the
39
- * {@link module:import-word/importword~ImportWordConfig#tokenUrl `config.importWord.tokenUrl`}:
40
- *
41
- * ```ts
42
- * ClassicEditor
43
- * .create( editorElement, {
44
- * importWord: {
45
- * tokenUrl: 'https://example.com/cs-token-endpoint'
46
- * }
47
- * } )
48
- * .then( ... )
49
- * .catch( ... );
50
- * ```
51
- *
52
- * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
53
- */
54
- export interface ImportWordConfig {
55
- /**
56
- * A URL to the Docx converter.
57
- *
58
- * ```ts
59
- * const importWordConfig = {
60
- * converterUrl: 'https://myconverter.com/v1/'
61
- * }
62
- * ```
63
- *
64
- * **Note:** The plugin uses the default Word to HTML converter delivered by CKEditor Cloud Services.
65
- * You can provide a URL to an on-premises converter instead.
66
- *
67
- * @default 'https://docx-converter.cke-cs.com/v2/convert/docx-html'
68
- */
69
- converterUrl?: string;
70
- /**
71
- * A token URL or a token request function. This field is optional and should be used only when a different `tokenUrl`
72
- * is required for the Import from Word feature.
73
- *
74
- * **Note:** The token can be disabled with the `false` value provided.
75
- *
76
- * See: {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl}
77
- */
78
- tokenUrl?: TokenUrl;
79
- /**
80
- * If `true`, the converter service preserves the default styles and formatting of the imported Word document.
81
- *
82
- * @default false
83
- */
84
- defaultStyles?: boolean;
85
- /**
86
- * Defines which formatting styles should be kept for the imported comments text.
87
- *
88
- * Possible values are:
89
- *
90
- * * `'basic'` - basic styles are kept (bold, italic, underline, strikethrough and links),
91
- * * `'none'` - comment text is imported without any styling,
92
- * * `'full'` - all styles are kept (not recommended).
93
- *
94
- * **Note:** Please remember that importing comments requires installing the {@link module:comments/comments~Comments} feature.
95
- *
96
- * @default 'basic'
97
- */
98
- commentsStyles?: 'basic' | 'none' | 'full';
99
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module import-word/importword
7
+ * @publicApi
8
+ */
9
+ import { Plugin } from 'ckeditor5/src/core';
10
+ import type { TokenUrl } from '@ckeditor/ckeditor5-cloud-services';
11
+ import ImportWordUI from './importwordui';
12
+ import ImportWordEditing from './importwordediting';
13
+ /**
14
+ * The import from Word feature.
15
+ *
16
+ * It allows importing content from a Word file directly into CKEditor 5.
17
+ *
18
+ * This is a "glue" plugin which enables:
19
+ *
20
+ * * {@link module:import-word/importwordediting~ImportWordEditing},
21
+ * * {@link module:import-word/importwordui~ImportWordUI},
22
+ *
23
+ * For a detailed overview, check the {@glink features/converters/import-word/import-word import from Word} feature documentation.
24
+ */
25
+ export default class ImportWord extends Plugin {
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ static get pluginName(): "ImportWord";
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ static get requires(): readonly [typeof ImportWordEditing, typeof ImportWordUI];
34
+ }
35
+ /**
36
+ * The configuration of the {@link module:import-word/importword~ImportWord import from Word feature}.
37
+ *
38
+ * The configuration for the import from Word feature requires providing the
39
+ * {@link module:import-word/importword~ImportWordConfig#tokenUrl `config.importWord.tokenUrl`}:
40
+ *
41
+ * ```ts
42
+ * ClassicEditor
43
+ * .create( editorElement, {
44
+ * importWord: {
45
+ * tokenUrl: 'https://example.com/cs-token-endpoint'
46
+ * }
47
+ * } )
48
+ * .then( ... )
49
+ * .catch( ... );
50
+ * ```
51
+ *
52
+ * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
53
+ */
54
+ export interface ImportWordConfig {
55
+ /**
56
+ * A URL to the Docx converter.
57
+ *
58
+ * ```ts
59
+ * const importWordConfig = {
60
+ * converterUrl: 'https://myconverter.com/v1/'
61
+ * }
62
+ * ```
63
+ *
64
+ * **Note:** The plugin uses the default Word to HTML converter delivered by CKEditor Cloud Services.
65
+ * You can provide a URL to an on-premises converter instead.
66
+ *
67
+ * @default 'https://docx-converter.cke-cs.com/v2/convert/docx-html'
68
+ */
69
+ converterUrl?: string;
70
+ /**
71
+ * A token URL or a token request function. This field is optional and should be used only when a different `tokenUrl`
72
+ * is required for the Import from Word feature.
73
+ *
74
+ * **Note:** The token can be disabled with the `false` value provided.
75
+ *
76
+ * See: {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl}
77
+ */
78
+ tokenUrl?: TokenUrl;
79
+ /**
80
+ * If `true`, the converter service preserves the default styles and formatting of the imported Word document.
81
+ *
82
+ * @default false
83
+ */
84
+ defaultStyles?: boolean;
85
+ /**
86
+ * Defines which formatting styles should be kept for the imported comments text.
87
+ *
88
+ * Possible values are:
89
+ *
90
+ * * `'basic'` - basic styles are kept (bold, italic, underline, strikethrough and links),
91
+ * * `'none'` - comment text is imported without any styling,
92
+ * * `'full'` - all styles are kept (not recommended).
93
+ *
94
+ * **Note:** Please remember that importing comments requires installing the {@link module:comments/comments~Comments} feature.
95
+ *
96
+ * @default 'basic'
97
+ */
98
+ commentsStyles?: 'basic' | 'none' | 'full';
99
+ }
package/src/importword.js CHANGED
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- var _0x4b0c=['ImportWord','pluginName'];(function(_0x37164a,_0x4b0cfe){var _0x958089=function(_0x52d4fe){while(--_0x52d4fe){_0x37164a['push'](_0x37164a['shift']());}};_0x958089(++_0x4b0cfe);}(_0x4b0c,0x14b));var _0x9580=function(_0x37164a,_0x4b0cfe){_0x37164a=_0x37164a-0x0;var _0x958089=_0x4b0c[_0x37164a];return _0x958089;};import{Plugin as _0x21e708}from'ckeditor5/src/core';import _0x4e7912 from'./importwordui';import _0x39011a from'./importwordediting';export default class i extends _0x21e708{static get[_0x9580('0x0')](){return _0x9580('0x1');}static get['requires'](){return[_0x39011a,_0x4e7912];}}
23
+ var _0xd4e6=['pluginName','requires','ImportWord'];(function(_0x2b9ce1,_0xd4e6a3){var _0x53e959=function(_0x2e9bd6){while(--_0x2e9bd6){_0x2b9ce1['push'](_0x2b9ce1['shift']());}};_0x53e959(++_0xd4e6a3);}(_0xd4e6,0x11b));var _0x53e9=function(_0x2b9ce1,_0xd4e6a3){_0x2b9ce1=_0x2b9ce1-0x0;var _0x53e959=_0xd4e6[_0x2b9ce1];return _0x53e959;};import{Plugin as _0x4cd818}from'ckeditor5/src/core';import _0x13522d from'./importwordui';import _0x20fbd2 from'./importwordediting';export default class i extends _0x4cd818{static get[_0x53e9('0x2')](){return _0x53e9('0x1');}static get[_0x53e9('0x0')](){return[_0x20fbd2,_0x13522d];}}
@@ -1,54 +1,54 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module import-word/importwordcommand
7
- * @publicApi
8
- */
9
- import { Command, type Editor } from 'ckeditor5/src/core';
10
- /**
11
- * The import from Word command.
12
- *
13
- * It sends the Word file to the converter endpoint and inserts its content into the editor.
14
- */
15
- export default class ImportWordCommand extends Command {
16
- /**
17
- * A command state that indicates if the command is currently executing.
18
- *
19
- * @observable
20
- */
21
- isBusy: boolean;
22
- /**
23
- * @inheritDoc
24
- */
25
- constructor(editor: Editor);
26
- /**
27
- * @inheritDoc
28
- */
29
- refresh(): void;
30
- /**
31
- * Executes the command. Sends the provided file instance to the converter service endpoint and inserts the result into the model.
32
- *
33
- * @fires execute
34
- * @param file The Word file instance to be uploaded for conversion.
35
- * @param [serviceConfig] Additional options to pass to the converter service.
36
- */
37
- execute(file: File, serviceConfig?: Record<string, unknown>): Promise<unknown>;
38
- }
39
- /**
40
- * Fired when the converter service returned the HTML content that will be inserted into the editor.
41
- *
42
- * @eventName ~ImportWordCommand#dataInsert
43
- */
44
- export type DataInsertEvent = {
45
- name: 'dataInsert';
46
- args: [data: DataInsertEventData];
47
- };
48
- interface DataInsertEventData {
49
- /**
50
- * The HTML content to insertion.
51
- */
52
- html: string;
53
- }
54
- export {};
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module import-word/importwordcommand
7
+ * @publicApi
8
+ */
9
+ import { Command, type Editor } from 'ckeditor5/src/core';
10
+ /**
11
+ * The import from Word command.
12
+ *
13
+ * It sends the Word file to the converter endpoint and inserts its content into the editor.
14
+ */
15
+ export default class ImportWordCommand extends Command {
16
+ /**
17
+ * A command state that indicates if the command is currently executing.
18
+ *
19
+ * @observable
20
+ */
21
+ isBusy: boolean;
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ constructor(editor: Editor);
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ refresh(): void;
30
+ /**
31
+ * Executes the command. Sends the provided file instance to the converter service endpoint and inserts the result into the model.
32
+ *
33
+ * @fires execute
34
+ * @param file The Word file instance to be uploaded for conversion.
35
+ * @param [serviceConfig] Additional options to pass to the converter service.
36
+ */
37
+ execute(file: File, serviceConfig?: Record<string, unknown>): Promise<unknown>;
38
+ }
39
+ /**
40
+ * Fired when the converter service returned the HTML content that will be inserted into the editor.
41
+ *
42
+ * @eventName ~ImportWordCommand#dataInsert
43
+ */
44
+ export type DataInsertEvent = {
45
+ name: 'dataInsert';
46
+ args: [data: DataInsertEventData];
47
+ };
48
+ interface DataInsertEventData {
49
+ /**
50
+ * The HTML content to insertion.
51
+ */
52
+ html: string;
53
+ }
54
+ export {};
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{Command as _0x36f247}from'ckeditor5/src/core';import{Range as _0xf03230}from'ckeditor5/src/engine';import{logWarning as _0x3cd203,logError as _0x4a863b,first as _0x275a99,uid as _0x15b560}from'ckeditor5/src/utils';export default class d extends _0x36f247{constructor(_0x4b5a57){super(_0x4b5a57),this['set']('isBusy',!0x1),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['on']('dataInsert',(_0x398645,_0x5a2edd)=>{const _0x54b233=new DataTransfer();_0x54b233['setData']('text/html',_0x5a2edd['html']);const _0x2e0e55=this['_importMarker']['getRange']();this['editor']['model']['enqueueChange'](this['_undoStepBatch'],_0x44addd=>{this['_importMarker']['stopListening'](),_0x44addd['setSelection'](_0x2e0e55),_0x4b5a57['editing']['view']['document']['fire']('clipboardInput',{'dataTransfer':_0x54b233});});},{'priority':'low'});}['refresh'](){this['isEnabled']=this['_checkEnabled']();}['execute'](_0x17d141,_0x5312d9={}){if(this['isBusy'])return Promise['resolve']();const _0xfba8fb=this['editor']['config']['get']('importWord'),_0x3280bc={'url':_0xfba8fb['converterUrl'],'file':_0x17d141,'serviceConfig':{..._0x5312d9,'default_styles':_0xfba8fb['defaultStyles']}};return this['_prepareForImport'](),this['_sendImportRequest'](_0x3280bc)['then'](this['_handleImportResponse']['bind'](this))['catch'](this['_handleImportFailure']['bind'](this))['finally'](this['_cleanUpAfterImport']['bind'](this));}['_checkEnabled'](){if(this['isBusy'])return!0x1;const _0x326d27=this['editor']['model'],_0xf72691=_0x326d27['schema'],_0x2a265d=_0x326d27['document']['selection'],_0x17c09c=_0x275a99(_0x2a265d['getSelectedBlocks']());return!!_0x17c09c&&_0xf72691['checkChild'](_0x17c09c['parent'],'paragraph');}['_prepareForImport'](){const _0x2f4ae1=this['editor'],_0x44c994=_0x2f4ae1['model'],_0x4346dc=_0x44c994['document']['selection'];this['_abortController']=new AbortController(),this['_undoStepBatch']=_0x2f4ae1['model']['createBatch']({'isUndoable':!0x0}),_0x44c994['enqueueChange'](this['_undoStepBatch'],_0x1f2c27=>{_0x4346dc['isCollapsed']||_0x44c994['deleteContent'](_0x4346dc,{'leaveUnmerged':!0x0});const _0x46c6b3=_0x4346dc['getFirstPosition'](),_0x144158=_0x275a99(_0x4346dc['getSelectedBlocks']());let _0x18e5c9;_0x18e5c9=_0x144158['is']('element','paragraph')&&_0x144158['isEmpty']?_0x46c6b3:_0x46c6b3['isAtStart']?_0x44c994['createPositionBefore'](_0x144158):_0x46c6b3['isAtEnd']?_0x44c994['createPositionAfter'](_0x144158):_0x1f2c27['split'](_0x46c6b3)['position'],this['_importMarker']=_0x1f2c27['addMarker']('importWord:'+_0x15b560(),{'usingOperation':!0x1,'affectsData':!0x1,'range':new _0xf03230(_0x18e5c9)}),this['_importMarker']['on']('change:range',()=>{'$graveyard'===this['_importMarker']['getRange']()['root']['rootName']&&this['_abortController']['abort']();});}),this['isBusy']=!0x0,this['refresh']();}['_cleanUpAfterImport'](){const _0x4c3d9d=this['editor']['model'];_0x4c3d9d['markers']['has'](this['_importMarker'])&&_0x4c3d9d['enqueueChange'](this['_undoStepBatch'],_0xca17e4=>{_0xca17e4['removeMarker'](this['_importMarker']);}),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['isBusy']=!0x1,this['refresh']();}['_sendImportRequest']({url:_0x32562b,file:_0x3f04bf,serviceConfig:_0x30d0d4}){const _0x2c8b45=this['editor']['plugins']['get']('ImportWordEditing')['getToken'](),_0x51e8d6=new FormData();_0x51e8d6['set']('config',JSON['stringify'](_0x30d0d4)),_0x51e8d6['set']('file',_0x3f04bf);const _0x3c527c={'method':'POST','headers':{},'body':_0x51e8d6,'signal':this['_abortController']['signal']};return _0x2c8b45&&(_0x3c527c['headers']['Authorization']=_0x2c8b45['value']),fetch(_0x32562b,_0x3c527c);}['_handleImportResponse'](_0x138370){return _0x138370['ok']?_0x138370['json']()['then'](_0x4b3b55=>{if(!this['editor']['model']['markers']['has'](this['_importMarker']))return;'$graveyard'!==this['_importMarker']['getRange']()['root']['rootName']&&this['fire']('dataInsert',_0x4b3b55);}):Promise['reject']();}['_handleImportFailure'](){if(this['_abortController']['signal']['aborted'])return void _0x3cd203('import-word-plugin-import-cancelled');const _0x58882e=this['editor'],_0x5f5235=(0x0,_0x58882e['t'])('An\x20error\x20occurred\x20while\x20importing\x20the\x20Word\x20file.');_0x58882e['plugins']['get']('Notification')['showWarning'](_0x5f5235),_0x4a863b('import-word-plugin-conversion-failed');}}
23
+ import{Command as _0x5aa408}from'ckeditor5/src/core';import{Range as _0x4dbb0f}from'ckeditor5/src/engine';import{logWarning as _0x249d6e,logError as _0x344400,first as _0x36cb45,uid as _0x234ec1}from'ckeditor5/src/utils';export default class d extends _0x5aa408{constructor(_0x1b36c2){super(_0x1b36c2),this['set']('isBusy',!0x1),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['on']('dataInsert',(_0x230c96,_0x31b19d)=>{const _0x26f210=new DataTransfer();_0x26f210['setData']('text/html',_0x31b19d['html']);const _0x5e30d7=this['_importMarker']['getRange']();this['editor']['model']['enqueueChange'](this['_undoStepBatch'],_0x935035=>{this['_importMarker']['stopListening'](),_0x935035['setSelection'](_0x5e30d7),_0x1b36c2['editing']['view']['document']['fire']('clipboardInput',{'dataTransfer':_0x26f210});});},{'priority':'low'});}['refresh'](){this['isEnabled']=this['_checkEnabled']();}['execute'](_0x4fdcdd,_0x5c588e={}){if(this['isBusy'])return Promise['resolve']();const _0x20af96=this['editor']['config']['get']('importWord'),_0x1747e6={'url':_0x20af96['converterUrl'],'file':_0x4fdcdd,'serviceConfig':{..._0x5c588e,'default_styles':_0x20af96['defaultStyles']}};return this['_prepareForImport'](),this['_sendImportRequest'](_0x1747e6)['then'](this['_handleImportResponse']['bind'](this))['catch'](this['_handleImportFailure']['bind'](this))['finally'](this['_cleanUpAfterImport']['bind'](this));}['_checkEnabled'](){if(this['isBusy'])return!0x1;const _0x52ee31=this['editor']['model'],_0x1a24ef=_0x52ee31['schema'],_0x2d59ad=_0x52ee31['document']['selection'],_0x37e871=_0x36cb45(_0x2d59ad['getSelectedBlocks']());return!!_0x37e871&&_0x1a24ef['checkChild'](_0x37e871['parent'],'paragraph');}['_prepareForImport'](){const _0x59c439=this['editor'],_0x224dcd=_0x59c439['model'],_0x19e1d4=_0x224dcd['document']['selection'];this['_abortController']=new AbortController(),this['_undoStepBatch']=_0x59c439['model']['createBatch']({'isUndoable':!0x0}),_0x224dcd['enqueueChange'](this['_undoStepBatch'],_0x34563c=>{_0x19e1d4['isCollapsed']||_0x224dcd['deleteContent'](_0x19e1d4,{'leaveUnmerged':!0x0});const _0x5eac91=_0x19e1d4['getFirstPosition'](),_0x37aa3c=_0x36cb45(_0x19e1d4['getSelectedBlocks']());let _0x3b4f01;_0x3b4f01=_0x37aa3c['is']('element','paragraph')&&_0x37aa3c['isEmpty']?_0x5eac91:_0x5eac91['isAtStart']?_0x224dcd['createPositionBefore'](_0x37aa3c):_0x5eac91['isAtEnd']?_0x224dcd['createPositionAfter'](_0x37aa3c):_0x34563c['split'](_0x5eac91)['position'],this['_importMarker']=_0x34563c['addMarker']('importWord:'+_0x234ec1(),{'usingOperation':!0x1,'affectsData':!0x1,'range':new _0x4dbb0f(_0x3b4f01)}),this['_importMarker']['on']('change:range',()=>{'$graveyard'===this['_importMarker']['getRange']()['root']['rootName']&&this['_abortController']['abort']();});}),this['isBusy']=!0x0,this['refresh']();}['_cleanUpAfterImport'](){const _0x55b1dd=this['editor']['model'];_0x55b1dd['markers']['has'](this['_importMarker'])&&_0x55b1dd['enqueueChange'](this['_undoStepBatch'],_0x889fe1=>{_0x889fe1['removeMarker'](this['_importMarker']);}),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['isBusy']=!0x1,this['refresh']();}['_sendImportRequest']({url:_0x316d19,file:_0x1905eb,serviceConfig:_0x2b3e33}){const _0x43f40f=this['editor']['plugins']['get']('ImportWordEditing')['getToken'](),_0x2d4f35=new FormData();_0x2d4f35['set']('config',JSON['stringify'](_0x2b3e33)),_0x2d4f35['set']('file',_0x1905eb);const _0x12b529={'method':'POST','headers':{},'body':_0x2d4f35,'signal':this['_abortController']['signal']};return _0x43f40f&&(_0x12b529['headers']['Authorization']=_0x43f40f['value']),fetch(_0x316d19,_0x12b529);}['_handleImportResponse'](_0x32732c){return _0x32732c['ok']?_0x32732c['json']()['then'](_0x41bfe7=>{if(!this['editor']['model']['markers']['has'](this['_importMarker']))return;'$graveyard'!==this['_importMarker']['getRange']()['root']['rootName']&&this['fire']('dataInsert',_0x41bfe7);}):Promise['reject']();}['_handleImportFailure'](){if(this['_abortController']['signal']['aborted'])return void _0x249d6e('import-word-plugin-import-cancelled');const _0x50b97e=this['editor'],_0xf013aa=(0x0,_0x50b97e['t'])('An\x20error\x20occurred\x20while\x20importing\x20the\x20Word\x20file.');_0x50b97e['plugins']['get']('Notification')['showWarning'](_0xf013aa),_0x344400('import-word-plugin-conversion-failed');}}
@@ -1,39 +1,39 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module import-word/importwordediting
7
- * @publicApi
8
- */
9
- import { Plugin, type Editor } from 'ckeditor5/src/core';
10
- import { Notification } from 'ckeditor5/src/ui';
11
- import { ClipboardPipeline } from 'ckeditor5/src/clipboard';
12
- import type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';
13
- /**
14
- * The editing part of the import from Word feature.
15
- *
16
- * It registers the {@link module:import-word/importwordcommand~ImportWordCommand `'importWord'` command}.
17
- */
18
- export default class ImportWordEditing extends Plugin {
19
- /**
20
- * @inheritDoc
21
- */
22
- static get pluginName(): "ImportWordEditing";
23
- /**
24
- * @inheritDoc
25
- */
26
- static get requires(): readonly [typeof Notification, typeof ClipboardPipeline, "CloudServices"];
27
- /**
28
- * @inheritDoc
29
- */
30
- constructor(editor: Editor);
31
- /**
32
- * @inheritDoc
33
- */
34
- init(): Promise<void>;
35
- /**
36
- * Returns a token used by the import from Word plugin for communication with the Cloud Services.
37
- */
38
- getToken(): InitializedToken | null;
39
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module import-word/importwordediting
7
+ * @publicApi
8
+ */
9
+ import { Plugin, type Editor } from 'ckeditor5/src/core';
10
+ import { Notification } from 'ckeditor5/src/ui';
11
+ import { ClipboardPipeline } from 'ckeditor5/src/clipboard';
12
+ import type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';
13
+ /**
14
+ * The editing part of the import from Word feature.
15
+ *
16
+ * It registers the {@link module:import-word/importwordcommand~ImportWordCommand `'importWord'` command}.
17
+ */
18
+ export default class ImportWordEditing extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get pluginName(): "ImportWordEditing";
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get requires(): readonly [typeof Notification, typeof ClipboardPipeline, "CloudServices"];
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ constructor(editor: Editor);
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ init(): Promise<void>;
35
+ /**
36
+ * Returns a token used by the import from Word plugin for communication with the Cloud Services.
37
+ */
38
+ getToken(): InitializedToken | null;
39
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x53e0=['https://docx-converter.cke-cs.com/v2/convert/docx-html','get','config','add','getToken','CloudServices','tokenUrl','_token','plugins','editor','importWord','requires','init','pluginName','token'];(function(_0x416856,_0x53e0bd){const _0x438f0d=function(_0x1beb8a){while(--_0x1beb8a){_0x416856['push'](_0x416856['shift']());}};_0x438f0d(++_0x53e0bd);}(_0x53e0,0x177));const _0x438f=function(_0x416856,_0x53e0bd){_0x416856=_0x416856-0x0;let _0x438f0d=_0x53e0[_0x416856];return _0x438f0d;};import{Plugin as _0x2e08af}from'ckeditor5/src/core';import{Notification as _0x52c890}from'ckeditor5/src/ui';import{ClipboardPipeline as _0x527ea5}from'ckeditor5/src/clipboard';import _0x5e824e from'./importwordcommand';export default class e extends _0x2e08af{static get[_0x438f('0xd')](){return'ImportWordEditing';}static get[_0x438f('0xb')](){return[_0x52c890,_0x527ea5,_0x438f('0x5')];}constructor(_0x485eb3){super(_0x485eb3),this[_0x438f('0x7')]=null;}async[_0x438f('0xc')](){const _0x359391=this[_0x438f('0x9')];_0x359391['config']['define'](_0x438f('0xa'),{'converterUrl':_0x438f('0x0'),'tokenUrl':(_0x359391['config'][_0x438f('0x1')]('cloudServices')||{})[_0x438f('0x6')],'defaultStyles':!0x1}),_0x359391['commands'][_0x438f('0x3')](_0x438f('0xa'),new _0x5e824e(_0x359391));const {tokenUrl:_0x4a3317}=_0x359391['config'][_0x438f('0x1')]('importWord');if(_0x4a3317){const {tokenUrl:_0x473472}=_0x359391[_0x438f('0x2')][_0x438f('0x1')]('cloudServices')||{};this[_0x438f('0x7')]=_0x4a3317===_0x473472?_0x359391['plugins']['get'](_0x438f('0x5'))[_0x438f('0xe')]:await _0x359391[_0x438f('0x8')][_0x438f('0x1')]('CloudServices')['registerTokenUrl'](_0x4a3317);}}[_0x438f('0x4')](){return this[_0x438f('0x7')];}}
23
+ const _0xf7a7=['CloudServices','ImportWordEditing','registerTokenUrl','pluginName','tokenUrl','token','get','add','_token','plugins','cloudServices','importWord','getToken','config','requires','init'];(function(_0xaed653,_0xf7a7d7){const _0x37fd0f=function(_0x1b19af){while(--_0x1b19af){_0xaed653['push'](_0xaed653['shift']());}};_0x37fd0f(++_0xf7a7d7);}(_0xf7a7,0x91));const _0x37fd=function(_0xaed653,_0xf7a7d7){_0xaed653=_0xaed653-0x0;let _0x37fd0f=_0xf7a7[_0xaed653];return _0x37fd0f;};import{Plugin as _0x30fbbb}from'ckeditor5/src/core';import{Notification as _0x45f508}from'ckeditor5/src/ui';import{ClipboardPipeline as _0x46ae2f}from'ckeditor5/src/clipboard';import _0x1a8c52 from'./importwordcommand';export default class e extends _0x30fbbb{static get[_0x37fd('0x2')](){return _0x37fd('0x0');}static get[_0x37fd('0xd')](){return[_0x45f508,_0x46ae2f,_0x37fd('0xf')];}constructor(_0x1865e5){super(_0x1865e5),this[_0x37fd('0x7')]=null;}async[_0x37fd('0xe')](){const _0x4e2c49=this['editor'];_0x4e2c49[_0x37fd('0xc')]['define'](_0x37fd('0xa'),{'converterUrl':'https://docx-converter.cke-cs.com/v2/convert/docx-html','tokenUrl':(_0x4e2c49['config'][_0x37fd('0x5')]('cloudServices')||{})[_0x37fd('0x3')],'defaultStyles':!0x1}),_0x4e2c49['commands'][_0x37fd('0x6')](_0x37fd('0xa'),new _0x1a8c52(_0x4e2c49));const {tokenUrl:_0x2f8888}=_0x4e2c49[_0x37fd('0xc')][_0x37fd('0x5')](_0x37fd('0xa'));if(_0x2f8888){const {tokenUrl:_0x1ecb87}=_0x4e2c49[_0x37fd('0xc')]['get'](_0x37fd('0x9'))||{};this[_0x37fd('0x7')]=_0x2f8888===_0x1ecb87?_0x4e2c49[_0x37fd('0x8')]['get'](_0x37fd('0xf'))[_0x37fd('0x4')]:await _0x4e2c49[_0x37fd('0x8')][_0x37fd('0x5')](_0x37fd('0xf'))[_0x37fd('0x1')](_0x2f8888);}}[_0x37fd('0xb')](){return this[_0x37fd('0x7')];}}
@@ -1,23 +1,22 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module import-word/importwordui
7
- * @publicApi
8
- */
9
- import { Plugin } from 'ckeditor5/src/core';
10
- import '../theme/importword.css';
11
- /**
12
- * The ImportWordUI plugin. It introduces the `'importWord'` toolbar button.
13
- */
14
- export default class ImportWordUI extends Plugin {
15
- /**
16
- * @inheritDoc
17
- */
18
- static get pluginName(): "ImportWordUI";
19
- /**
20
- * @inheritDoc
21
- */
22
- init(): void;
23
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module import-word/importwordui
7
+ * @publicApi
8
+ */
9
+ import { Plugin } from 'ckeditor5/src/core';
10
+ /**
11
+ * The ImportWordUI plugin. It introduces the `'importWord'` toolbar button.
12
+ */
13
+ export default class ImportWordUI extends Plugin {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ static get pluginName(): "ImportWordUI";
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ init(): void;
22
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{Plugin as _0x3a3f4c}from'ckeditor5/src/core';import{View as _0x1e0951}from'ckeditor5/src/ui';import{FileDialogButtonView as _0x388114}from'ckeditor5/src/upload';import _0x5201db from'../theme/icons/importword.svg';import'../theme/importword.css';export default class o extends _0x3a3f4c{static get['pluginName'](){return'ImportWordUI';}['init'](){const _0x3a8bc4=this['editor'],t=_0x3a8bc4['t'];_0x3a8bc4['ui']['componentFactory']['add']('importWord',_0x3bc3f7=>{const _0x15cc31=_0x3a8bc4['commands']['get']('importWord'),_0x55b9d7=new _0x388114(_0x3bc3f7);_0x55b9d7['set']({'acceptedType':'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template'}),_0x55b9d7['buttonView']['set']({'label':t('Import\x20from\x20Word'),'icon':_0x5201db,'tooltip':!0x0}),_0x55b9d7['buttonView']['bind']('isOn','isEnabled')['to'](_0x15cc31,'isBusy','isEnabled'),_0x55b9d7['buttonView']['extendTemplate']({'attributes':{'class':[_0x55b9d7['buttonView']['bindTemplate']['if']('isOn','ck-importword_status-pending')]}});const _0x448b67=new _0x1e0951();return _0x448b67['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-importword__spinner-container']},'children':[{'tag':'span','attributes':{'class':['ck','ck-importword__spinner']}}]}),_0x55b9d7['buttonView']['children']['add'](_0x448b67),_0x55b9d7['on']('done',(_0x2bba69,_0x512029)=>{_0x3a8bc4['execute']('importWord',_0x512029[0x0],{}),_0x3a8bc4['editing']['view']['focus']();}),_0x55b9d7;});}}
23
+ import{Plugin as _0x5a844c}from'ckeditor5/src/core';import{SpinnerView as _0x42a443}from'ckeditor5/src/ui';import{FileDialogButtonView as _0x4f08f6}from'ckeditor5/src/upload';import _0x5f12ee from'../theme/icons/importword.svg';export default class o extends _0x5a844c{static get['pluginName'](){return'ImportWordUI';}['init'](){const _0x3f3f46=this['editor'],t=_0x3f3f46['t'];_0x3f3f46['ui']['componentFactory']['add']('importWord',_0x4bad53=>{const _0x37fbf5=_0x3f3f46['commands']['get']('importWord'),_0x5f5037=new _0x4f08f6(_0x4bad53),_0x2c31e3=new _0x42a443();return _0x5f5037['set']({'acceptedType':'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template'}),_0x5f5037['buttonView']['set']({'label':t('Import\x20from\x20Word'),'icon':_0x5f12ee,'tooltip':!0x0}),_0x5f5037['buttonView']['bind']('isOn','isEnabled')['to'](_0x37fbf5,'isBusy','isEnabled'),_0x2c31e3['bind']('isVisible')['to'](_0x37fbf5,'isBusy'),_0x5f5037['buttonView']['iconView']['bind']('isVisible')['to'](_0x37fbf5,'isBusy',_0x49e3bc=>!_0x49e3bc),_0x5f5037['buttonView']['children']['add'](_0x2c31e3),_0x5f5037['on']('done',(_0x1df9ef,_0x7aefdf)=>{_0x3f3f46['execute']('importWord',_0x7aefdf[0x0],{}),_0x3f3f46['editing']['view']['focus']();}),_0x5f5037;});}}
package/src/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module import-word
7
- */
8
- export { default as ImportWord, type ImportWordConfig } from './importword';
9
- export { default as ImportWordEditing } from './importwordediting';
10
- export { default as ImportWordUI } from './importwordui';
11
- export type { default as ImportWordCommand } from './importwordcommand';
12
- import './augmentation';
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module import-word
7
+ */
8
+ export { default as ImportWord, type ImportWordConfig } from './importword';
9
+ export { default as ImportWordEditing } from './importwordediting';
10
+ export { default as ImportWordUI } from './importwordui';
11
+ export type { default as ImportWordCommand } from './importwordcommand';
12
+ import './augmentation';
@@ -1,49 +0,0 @@
1
- /*
2
- * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- :root {
7
- --ck-toolbar-spinner-size: 18px;
8
- }
9
-
10
- .ck-importword_status-pending {
11
- position: relative;
12
- }
13
-
14
- .ck.ck-importword__spinner-container {
15
- display: none;
16
- }
17
-
18
- .ck.ck-importword__spinner {
19
- position: absolute;
20
- top: 50%;
21
- left: 0;
22
- right: 0;
23
- margin: 0 auto;
24
- width: var(--ck-toolbar-spinner-size);
25
- height: var(--ck-toolbar-spinner-size);
26
- border-radius: 50%;
27
- border: 2px solid var(--ck-color-text);
28
- border-top-color: transparent;
29
- transform: translateY(-50%);
30
- z-index: 1;
31
- }
32
-
33
- .ck-importword_status-pending .ck.ck-importword__spinner-container {
34
- display: block;
35
- position: absolute;
36
- width: var(--ck-toolbar-spinner-size);
37
- height: var(--ck-toolbar-spinner-size);
38
- animation: 1.5s infinite rotate linear;
39
- }
40
-
41
- .ck-importword_status-pending .ck.ck-button__icon {
42
- color: transparent;
43
- }
44
-
45
- @keyframes rotate {
46
- to {
47
- transform: rotate(360deg)
48
- }
49
- }