@ckeditor/ckeditor5-import-word 36.0.1 → 37.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.
- package/build/import-word.js +1 -1
- package/lang/translations/ar.po +1 -1
- package/lang/translations/bg.po +1 -1
- package/lang/translations/bn.po +1 -1
- package/lang/translations/ca.po +1 -1
- package/lang/translations/cs.po +1 -1
- package/lang/translations/da.po +1 -1
- package/lang/translations/de.po +1 -1
- package/lang/translations/el.po +1 -1
- package/lang/translations/en.po +1 -1
- package/lang/translations/es.po +1 -1
- package/lang/translations/et.po +1 -1
- package/lang/translations/fi.po +1 -1
- package/lang/translations/fr.po +1 -1
- package/lang/translations/he.po +1 -1
- package/lang/translations/hi.po +1 -1
- package/lang/translations/hr.po +1 -1
- package/lang/translations/hu.po +1 -1
- package/lang/translations/id.po +1 -1
- package/lang/translations/it.po +1 -1
- package/lang/translations/ja.po +1 -1
- package/lang/translations/ko.po +1 -1
- package/lang/translations/lt.po +1 -1
- package/lang/translations/lv.po +1 -1
- package/lang/translations/ms.po +1 -1
- package/lang/translations/nl.po +1 -1
- package/lang/translations/no.po +1 -1
- package/lang/translations/pl.po +1 -1
- package/lang/translations/pt-br.po +1 -1
- package/lang/translations/pt.po +1 -1
- package/lang/translations/ro.po +1 -1
- package/lang/translations/ru.po +1 -1
- package/lang/translations/sk.po +1 -1
- package/lang/translations/sr-latn.po +1 -1
- package/lang/translations/sr.po +1 -1
- package/lang/translations/sv.po +1 -1
- package/lang/translations/th.po +1 -1
- package/lang/translations/tr.po +1 -1
- package/lang/translations/uk.po +1 -1
- package/lang/translations/vi.po +1 -1
- package/lang/translations/zh-cn.po +1 -1
- package/lang/translations/zh.po +1 -1
- package/package.json +10 -38
- package/src/augmentation.d.ts +23 -0
- package/src/augmentation.js +23 -0
- package/src/importword.d.ts +97 -0
- package/src/importword.js +1 -1
- package/src/importwordcommand.d.ts +54 -0
- package/src/importwordcommand.js +1 -1
- package/src/importwordediting.d.ts +37 -0
- package/src/importwordediting.js +1 -1
- package/src/importwordui.d.ts +23 -0
- package/src/importwordui.js +1 -1
- package/src/index.d.ts +12 -0
- package/src/index.js +1 -1
package/build/import-word.js
CHANGED
|
@@ -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={847:(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:()=>_,ImportWordEditing:()=>b,ImportWordUI:()=>l});var t=r(704),e=r(273),n=r(448);var i=r(278),s=r.n(i),a=r(847),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"><g clip-path="url(#a)"><path clip-rule="evenodd" 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 clip-rule="evenodd" 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"/></g><defs><clipPath id="a"><path d="M0 0h20v20H0z"/></clipPath></defs></svg>',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.i()}execute(t,e={}){if(this.isBusy)return;const r=this.editor.config.get("importWord"),o={url:r.converterUrl,file:t,serviceConfig:{...e,default_styles:r.defaultStyles}};return this.s(),this._sendImportRequest(o).then(this.o.bind(this)).catch(this.h.bind(this)).finally(this.l.bind(this))}i(){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")}s(){const t=this.editor,e=t.model,r=e.document.selection;this._abortController=new AbortController,this._undoStepBatch=t.model.createBatch(),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()}l(){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)}o(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()}h(){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=["config","registerTokenUrl","importWord","editor","get","token","plugins","https://docx-converter.cke-cs.com/v2/convert/docx-html","cloudServices","define","ImportWordEditing","tokenUrl","requires"];var f,g;f=m,g=410,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 pluginName(){return v("0x3")}static get[v("0x5")](){return[e.Notification,d.ClipboardPipeline,"CloudServices"]}constructor(t){super(t),this.m=null}async init(){const t=this[v("0x9")];t[v("0x6")][v("0x2")]("importWord",{converterUrl:v("0x0"),tokenUrl:(t[v("0x6")][v("0xa")](v("0x1"))||{})[v("0x4")],defaultStyles:!1}),t.commands.add("importWord",new h(t));const{tokenUrl:e}=t[v("0x6")].get(v("0x8"));if(e){const{tokenUrl:r}=t[v("0x6")].get(v("0x1"))||{};this.m=e===r?t.plugins[v("0xa")]("CloudServices")[v("0xb")]:await t[v("0xc")].get("CloudServices")[v("0x7")](e)}}getToken(){return this.m}}var w,x,k=["requires","pluginName"];w=k,x=295,function(t){for(;--t;)w.push(w.shift())}(++x);var y=function(t,e){return k[t-=0]};class _ extends t.Plugin{static get[y("0x0")](){return"ImportWord"}static get[y("0x1")](){return[b,l]}}})(),(window.CKEditor5=window.CKEditor5||{}).importWord=o})();
|
|
5
|
+
*/(()=>{var t={847:(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 p=a(d),u={css:i[1],media:i[2],sourceMap:i[3]};-1!==p?(s[p].references++,s[p].updater(u)):s.push({identifier:d,updater:g(u,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,p=(d=[],function(t,e){return d[t]=e,d.filter(Boolean).join("\n")});function u(t,e,r,o){var n=r?"":o.media?"@media ".concat(o.media," {").concat(o.css,"}"):o.css;if(t.styleSheet)t.styleSheet.cssText=p(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=u.bind(null,r,i,!1),n=u.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(847),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"><g clip-path="url(#a)"><path clip-rule="evenodd" 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 clip-rule="evenodd" 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"/></g><defs><clipPath id="a"><path d="M0 0h20v20H0z"/></clipPath></defs></svg>',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),p=r(492),u=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,u.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,u.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,u.uid)(),{usingOperation:!1,affectsData:!1,range:new p.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,u.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,u.logError)("import-word-plugin-conversion-failed")}}const m=["config","requires","commands","get","tokenUrl","importWord","https://docx-converter.cke-cs.com/v2/convert/docx-html","add","registerTokenUrl","plugins","cloudServices","getToken","pluginName","ImportWordEditing","_token","CloudServices"];var f,g;f=m,g=283,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("0x1")](){return v("0x2")}static get[v("0x6")](){return[e.Notification,d.ClipboardPipeline,v("0x4")]}constructor(t){super(t),this[v("0x3")]=null}async init(){const t=this.editor;t[v("0x5")].define(v("0xa"),{converterUrl:v("0xb"),tokenUrl:(t[v("0x5")][v("0x8")](v("0xf"))||{})[v("0x9")],defaultStyles:!1}),t[v("0x7")][v("0xc")](v("0xa"),new h(t));const{tokenUrl:e}=t[v("0x5")][v("0x8")]("importWord");if(e){const{tokenUrl:r}=t[v("0x5")][v("0x8")](v("0xf"))||{};this[v("0x3")]=e===r?t.plugins[v("0x8")](v("0x4")).token:await t[v("0xe")][v("0x8")](v("0x4"))[v("0xd")](e)}}[v("0x0")](){return this[v("0x3")]}}var x,w,_=["requires","pluginName"];x=_,w=198,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("0x1")](){return"ImportWord"}static get[k("0x0")](){return[b,l]}}})(),(window.CKEditor5=window.CKEditor5||{}).importWord=o})();
|
package/lang/translations/ar.po
CHANGED
package/lang/translations/bg.po
CHANGED
package/lang/translations/bn.po
CHANGED
package/lang/translations/ca.po
CHANGED
package/lang/translations/cs.po
CHANGED
package/lang/translations/da.po
CHANGED
package/lang/translations/de.po
CHANGED
package/lang/translations/el.po
CHANGED
package/lang/translations/en.po
CHANGED
package/lang/translations/es.po
CHANGED
package/lang/translations/et.po
CHANGED
package/lang/translations/fi.po
CHANGED
package/lang/translations/fr.po
CHANGED
package/lang/translations/he.po
CHANGED
package/lang/translations/hi.po
CHANGED
package/lang/translations/hr.po
CHANGED
package/lang/translations/hu.po
CHANGED
package/lang/translations/id.po
CHANGED
package/lang/translations/it.po
CHANGED
package/lang/translations/ja.po
CHANGED
package/lang/translations/ko.po
CHANGED
package/lang/translations/lt.po
CHANGED
package/lang/translations/lv.po
CHANGED
package/lang/translations/ms.po
CHANGED
package/lang/translations/nl.po
CHANGED
package/lang/translations/no.po
CHANGED
package/lang/translations/pl.po
CHANGED
package/lang/translations/pt.po
CHANGED
package/lang/translations/ro.po
CHANGED
package/lang/translations/ru.po
CHANGED
package/lang/translations/sk.po
CHANGED
package/lang/translations/sr.po
CHANGED
package/lang/translations/sv.po
CHANGED
package/lang/translations/th.po
CHANGED
package/lang/translations/tr.po
CHANGED
package/lang/translations/uk.po
CHANGED
package/lang/translations/vi.po
CHANGED
package/lang/translations/zh.po
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-import-word",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "37.0.0",
|
|
4
4
|
"description": "Import from Word feature for CKEditor 5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -29,53 +29,25 @@
|
|
|
29
29
|
],
|
|
30
30
|
"main": "src/index.js",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"ckeditor5": "^
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
"@ckeditor/ckeditor5-autoformat": "^36.0.1",
|
|
36
|
-
"@ckeditor/ckeditor5-basic-styles": "^36.0.1",
|
|
37
|
-
"@ckeditor/ckeditor5-block-quote": "^36.0.1",
|
|
38
|
-
"@ckeditor/ckeditor5-clipboard": "^36.0.1",
|
|
39
|
-
"@ckeditor/ckeditor5-cloud-services": "^36.0.1",
|
|
40
|
-
"@ckeditor/ckeditor5-code-block": "^36.0.1",
|
|
41
|
-
"@ckeditor/ckeditor5-core": "^36.0.1",
|
|
42
|
-
"@ckeditor/ckeditor5-dev-utils": "^32.0.0",
|
|
43
|
-
"@ckeditor/ckeditor5-easy-image": "^36.0.1",
|
|
44
|
-
"@ckeditor/ckeditor5-editor-classic": "^36.0.1",
|
|
45
|
-
"@ckeditor/ckeditor5-essentials": "^36.0.1",
|
|
46
|
-
"@ckeditor/ckeditor5-engine": "^36.0.1",
|
|
47
|
-
"@ckeditor/ckeditor5-heading": "^36.0.1",
|
|
48
|
-
"@ckeditor/ckeditor5-image": "^36.0.1",
|
|
49
|
-
"@ckeditor/ckeditor5-indent": "^36.0.1",
|
|
50
|
-
"@ckeditor/ckeditor5-link": "^36.0.1",
|
|
51
|
-
"@ckeditor/ckeditor5-list": "^36.0.1",
|
|
52
|
-
"@ckeditor/ckeditor5-paragraph": "^36.0.1",
|
|
53
|
-
"@ckeditor/ckeditor5-media-embed": "^36.0.1",
|
|
54
|
-
"@ckeditor/ckeditor5-table": "^36.0.1",
|
|
55
|
-
"@ckeditor/ckeditor5-theme-lark": "^36.0.1",
|
|
56
|
-
"@ckeditor/ckeditor5-ui": "^36.0.1",
|
|
57
|
-
"@ckeditor/ckeditor5-undo": "^36.0.1",
|
|
58
|
-
"@ckeditor/ckeditor5-upload": "^36.0.1",
|
|
59
|
-
"webpack": "^5.58.1",
|
|
60
|
-
"webpack-cli": "^4.9.0"
|
|
61
|
-
},
|
|
62
|
-
"engines": {
|
|
63
|
-
"node": ">=14.0.0",
|
|
64
|
-
"npm": ">=5.7.1"
|
|
32
|
+
"ckeditor5": "^37.0.0"
|
|
65
33
|
},
|
|
66
34
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
67
35
|
"author": "CKSource (https://cksource.com/)",
|
|
68
36
|
"homepage": "https://ckeditor.com",
|
|
69
|
-
"bugs": "https://github.com/ckeditor/ckeditor5/issues",
|
|
70
37
|
"files": [
|
|
71
38
|
"lang",
|
|
72
|
-
"src",
|
|
39
|
+
"src/**/*.js",
|
|
40
|
+
"src/**/*.d.ts",
|
|
73
41
|
"theme",
|
|
74
42
|
"build",
|
|
75
43
|
"ckeditor5-metadata.json",
|
|
76
44
|
"CHANGELOG.md"
|
|
77
45
|
],
|
|
78
46
|
"scripts": {
|
|
79
|
-
"dll:build": "webpack"
|
|
80
|
-
|
|
47
|
+
"dll:build": "webpack",
|
|
48
|
+
"build": "tsc -p ./tsconfig.json",
|
|
49
|
+
"postversion": "npm run build"
|
|
50
|
+
},
|
|
51
|
+
"types": "src/index.d.ts",
|
|
52
|
+
"obfuscated": true
|
|
81
53
|
}
|
|
@@ -0,0 +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
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016 - 2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
*
|
|
7
|
+
* +---------------------------------------------------------------------------------+
|
|
8
|
+
* | |
|
|
9
|
+
* | Hello stranger! |
|
|
10
|
+
* | |
|
|
11
|
+
* | |
|
|
12
|
+
* | What you're currently looking at is the source code of a legally protected, |
|
|
13
|
+
* | proprietary software. Any attempts to deobfuscate / disassemble this code |
|
|
14
|
+
* | are forbidden and will result in legal consequences. |
|
|
15
|
+
* | |
|
|
16
|
+
* | |
|
|
17
|
+
* +---------------------------------------------------------------------------------+
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
export{};
|
|
@@ -0,0 +1,97 @@
|
|
|
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, type PluginDependencies } from 'ckeditor5/src/core';
|
|
10
|
+
import type { TokenUrl } from '@ckeditor/ckeditor5-cloud-services';
|
|
11
|
+
/**
|
|
12
|
+
* The import from Word feature.
|
|
13
|
+
*
|
|
14
|
+
* It allows importing content from a Word file directly into CKEditor 5.
|
|
15
|
+
*
|
|
16
|
+
* This is a "glue" plugin which enables:
|
|
17
|
+
*
|
|
18
|
+
* * {@link module:import-word/importwordediting~ImportWordEditing},
|
|
19
|
+
* * {@link module:import-word/importwordui~ImportWordUI},
|
|
20
|
+
*
|
|
21
|
+
* For a detailed overview, check the {@glink features/import-word/import-word import from Word} feature documentation.
|
|
22
|
+
*/
|
|
23
|
+
export default class ImportWord extends Plugin {
|
|
24
|
+
/**
|
|
25
|
+
* @inheritDoc
|
|
26
|
+
*/
|
|
27
|
+
static get pluginName(): 'ImportWord';
|
|
28
|
+
/**
|
|
29
|
+
* @inheritDoc
|
|
30
|
+
*/
|
|
31
|
+
static get requires(): PluginDependencies;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The configuration of the {@link module:import-word/importword~ImportWord import from Word feature}.
|
|
35
|
+
*
|
|
36
|
+
* The configuration for the import from Word feature requires providing the
|
|
37
|
+
* {@link module:import-word/importword~ImportWordConfig#tokenUrl `config.importWord.tokenUrl`}:
|
|
38
|
+
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* ClassicEditor
|
|
41
|
+
* .create( editorElement, {
|
|
42
|
+
* importWord: {
|
|
43
|
+
* tokenUrl: 'https://example.com/cs-token-endpoint'
|
|
44
|
+
* }
|
|
45
|
+
* } )
|
|
46
|
+
* .then( ... )
|
|
47
|
+
* .catch( ... );
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
|
|
51
|
+
*/
|
|
52
|
+
export interface ImportWordConfig {
|
|
53
|
+
/**
|
|
54
|
+
* A URL to the Docx converter.
|
|
55
|
+
*
|
|
56
|
+
* ```ts
|
|
57
|
+
* const importWordConfig = {
|
|
58
|
+
* converterUrl: 'https://myconverter.com/v1/'
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* **Note:** The plugin uses the default Word to HTML converter delivered by CKEditor Cloud Services.
|
|
63
|
+
* You can provide a URL to an on-premises converter instead.
|
|
64
|
+
*
|
|
65
|
+
* @default 'https://docx-converter.cke-cs.com/v2/convert/docx-html'
|
|
66
|
+
*/
|
|
67
|
+
converterUrl?: string;
|
|
68
|
+
/**
|
|
69
|
+
* A token URL or a token request function. This field is optional and should be used only when a different `tokenUrl`
|
|
70
|
+
* is required for the Import from Word feature.
|
|
71
|
+
*
|
|
72
|
+
* **Note:** The token can be disabled with the `false` value provided.
|
|
73
|
+
*
|
|
74
|
+
* See: {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl}
|
|
75
|
+
*/
|
|
76
|
+
tokenUrl?: TokenUrl;
|
|
77
|
+
/**
|
|
78
|
+
* If `true`, the converter service preserves the default styles and formatting of the imported Word document.
|
|
79
|
+
*
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
defaultStyles?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Defines which formatting styles should be kept for the imported comments text.
|
|
85
|
+
*
|
|
86
|
+
* Possible values are:
|
|
87
|
+
*
|
|
88
|
+
* * `'basic'` - basic styles are kept (bold, italic, underline, strikethrough and links),
|
|
89
|
+
* * `'none'` - comment text is imported without any styling,
|
|
90
|
+
* * `'full'` - all styles are kept (not recommended).
|
|
91
|
+
*
|
|
92
|
+
* **Note:** Please remember that importing comments requires installing the {@link module:comments/comments~Comments} feature.
|
|
93
|
+
*
|
|
94
|
+
* @default 'basic'
|
|
95
|
+
*/
|
|
96
|
+
commentsStyles?: 'basic' | 'none' | 'full';
|
|
97
|
+
}
|
package/src/importword.js
CHANGED
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
var
|
|
23
|
+
var _0x5e3c=['requires','pluginName'];(function(_0x175547,_0x5e3c32){var _0x128fb3=function(_0x38dce0){while(--_0x38dce0){_0x175547['push'](_0x175547['shift']());}};_0x128fb3(++_0x5e3c32);}(_0x5e3c,0xc6));var _0x128f=function(_0x175547,_0x5e3c32){_0x175547=_0x175547-0x0;var _0x128fb3=_0x5e3c[_0x175547];return _0x128fb3;};import{Plugin as _0x257901}from'ckeditor5/src/core';import _0x3e3835 from'./importwordui';import _0x5e5ef5 from'./importwordediting';export default class i extends _0x257901{static get[_0x128f('0x1')](){return'ImportWord';}static get[_0x128f('0x0')](){return[_0x5e5ef5,_0x3e3835];}}
|
|
@@ -0,0 +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 {};
|
package/src/importwordcommand.js
CHANGED
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
import{Command as
|
|
23
|
+
import{Command as _0x5e43c5}from'ckeditor5/src/core';import{Range as _0x9d8442}from'ckeditor5/src/engine';import{logWarning as _0x12b992,logError as _0x2b15cd,first as _0x270ada,uid as _0x573e99}from'ckeditor5/src/utils';export default class d extends _0x5e43c5{constructor(_0x8c7d63){super(_0x8c7d63),this['set']('isBusy',!0x1),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['on']('dataInsert',(_0x9072ef,_0x51ad9f)=>{const _0x2ac5de=new DataTransfer();_0x2ac5de['setData']('text/html',_0x51ad9f['html']);const _0x4ceaf3=this['_importMarker']['getRange']();this['editor']['model']['enqueueChange'](this['_undoStepBatch'],_0xc036a9=>{this['_importMarker']['stopListening'](),_0xc036a9['setSelection'](_0x4ceaf3),_0x8c7d63['editing']['view']['document']['fire']('clipboardInput',{'dataTransfer':_0x2ac5de});});},{'priority':'low'});}['refresh'](){this['isEnabled']=this['_checkEnabled']();}['execute'](_0x9b07d9,_0x362013={}){if(this['isBusy'])return Promise['resolve']();const _0x3f195a=this['editor']['config']['get']('importWord'),_0x28fb1c={'url':_0x3f195a['converterUrl'],'file':_0x9b07d9,'serviceConfig':{..._0x362013,'default_styles':_0x3f195a['defaultStyles']}};return this['_prepareForImport'](),this['_sendImportRequest'](_0x28fb1c)['then'](this['_handleImportResponse']['bind'](this))['catch'](this['_handleImportFailure']['bind'](this))['finally'](this['_cleanUpAfterImport']['bind'](this));}['_checkEnabled'](){if(this['isBusy'])return!0x1;const _0x23ebe3=this['editor']['model'],_0x2d99b0=_0x23ebe3['schema'],_0x88b834=_0x23ebe3['document']['selection'],_0x338c12=_0x270ada(_0x88b834['getSelectedBlocks']());return!!_0x338c12&&_0x2d99b0['checkChild'](_0x338c12['parent'],'paragraph');}['_prepareForImport'](){const _0x1849c7=this['editor'],_0x431f3d=_0x1849c7['model'],_0x2ef96a=_0x431f3d['document']['selection'];this['_abortController']=new AbortController(),this['_undoStepBatch']=_0x1849c7['model']['createBatch']({'isUndoable':!0x0}),_0x431f3d['enqueueChange'](this['_undoStepBatch'],_0x27aecb=>{_0x2ef96a['isCollapsed']||_0x431f3d['deleteContent'](_0x2ef96a,{'leaveUnmerged':!0x0});const _0x5dbf31=_0x2ef96a['getFirstPosition'](),_0x393558=_0x270ada(_0x2ef96a['getSelectedBlocks']());let _0x509823;_0x509823=_0x393558['is']('element','paragraph')&&_0x393558['isEmpty']?_0x5dbf31:_0x5dbf31['isAtStart']?_0x431f3d['createPositionBefore'](_0x393558):_0x5dbf31['isAtEnd']?_0x431f3d['createPositionAfter'](_0x393558):_0x27aecb['split'](_0x5dbf31)['position'],this['_importMarker']=_0x27aecb['addMarker']('importWord:'+_0x573e99(),{'usingOperation':!0x1,'affectsData':!0x1,'range':new _0x9d8442(_0x509823)}),this['_importMarker']['on']('change:range',()=>{'$graveyard'===this['_importMarker']['getRange']()['root']['rootName']&&this['_abortController']['abort']();});}),this['isBusy']=!0x0,this['refresh']();}['_cleanUpAfterImport'](){const _0x42c97c=this['editor']['model'];_0x42c97c['markers']['has'](this['_importMarker'])&&_0x42c97c['enqueueChange'](this['_undoStepBatch'],_0xbfc3f4=>{_0xbfc3f4['removeMarker'](this['_importMarker']);}),this['_importMarker']=null,this['_undoStepBatch']=null,this['_abortController']=null,this['isBusy']=!0x1,this['refresh']();}['_sendImportRequest']({url:_0xe25266,file:_0x4957b4,serviceConfig:_0x3ef42e}){const _0x2204a9=this['editor']['plugins']['get']('ImportWordEditing')['getToken'](),_0x5a0133=new FormData();_0x5a0133['set']('config',JSON['stringify'](_0x3ef42e)),_0x5a0133['set']('file',_0x4957b4);const _0x35ceff={'method':'POST','headers':{},'body':_0x5a0133,'signal':this['_abortController']['signal']};return _0x2204a9&&(_0x35ceff['headers']['Authorization']=_0x2204a9['value']),fetch(_0xe25266,_0x35ceff);}['_handleImportResponse'](_0x3c07d3){return _0x3c07d3['ok']?_0x3c07d3['json']()['then'](_0x5381b2=>{if(!this['editor']['model']['markers']['has'](this['_importMarker']))return;'$graveyard'!==this['_importMarker']['getRange']()['root']['rootName']&&this['fire']('dataInsert',_0x5381b2);}):Promise['reject']();}['_handleImportFailure'](){if(this['_abortController']['signal']['aborted'])return void _0x12b992('import-word-plugin-import-cancelled');const _0x425d5b=this['editor'],_0x15edbe=(0x0,_0x425d5b['t'])('An\x20error\x20occurred\x20while\x20importing\x20the\x20Word\x20file.');_0x425d5b['plugins']['get']('Notification')['showWarning'](_0x15edbe),_0x2b15cd('import-word-plugin-conversion-failed');}}
|
|
@@ -0,0 +1,37 @@
|
|
|
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 PluginDependencies, type Editor } from 'ckeditor5/src/core';
|
|
10
|
+
import type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';
|
|
11
|
+
/**
|
|
12
|
+
* The editing part of the import from Word feature.
|
|
13
|
+
*
|
|
14
|
+
* It registers the {@link module:import-word/importwordcommand~ImportWordCommand `'importWord'` command}.
|
|
15
|
+
*/
|
|
16
|
+
export default class ImportWordEditing extends Plugin {
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
static get pluginName(): 'ImportWordEditing';
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
static get requires(): PluginDependencies;
|
|
25
|
+
/**
|
|
26
|
+
* @inheritDoc
|
|
27
|
+
*/
|
|
28
|
+
constructor(editor: Editor);
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
init(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns a token used by the import from Word plugin for communication with the Cloud Services.
|
|
35
|
+
*/
|
|
36
|
+
getToken(): InitializedToken | null;
|
|
37
|
+
}
|
package/src/importwordediting.js
CHANGED
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
const
|
|
23
|
+
const _0x3502=['config','requires','commands','get','tokenUrl','importWord','https://docx-converter.cke-cs.com/v2/convert/docx-html','add','registerTokenUrl','plugins','cloudServices','getToken','pluginName','ImportWordEditing','_token','CloudServices'];(function(_0x2b9afb,_0x3502c2){const _0x3940cb=function(_0x41f1c8){while(--_0x41f1c8){_0x2b9afb['push'](_0x2b9afb['shift']());}};_0x3940cb(++_0x3502c2);}(_0x3502,0x11b));const _0x3940=function(_0x2b9afb,_0x3502c2){_0x2b9afb=_0x2b9afb-0x0;let _0x3940cb=_0x3502[_0x2b9afb];return _0x3940cb;};import{Plugin as _0x7a4e69}from'ckeditor5/src/core';import{Notification as _0x2f35be}from'ckeditor5/src/ui';import{ClipboardPipeline as _0x26520d}from'ckeditor5/src/clipboard';import _0x81a16e from'./importwordcommand';export default class e extends _0x7a4e69{static get[_0x3940('0x1')](){return _0x3940('0x2');}static get[_0x3940('0x6')](){return[_0x2f35be,_0x26520d,_0x3940('0x4')];}constructor(_0x3e631f){super(_0x3e631f),this[_0x3940('0x3')]=null;}async['init'](){const _0x2520f5=this['editor'];_0x2520f5[_0x3940('0x5')]['define'](_0x3940('0xa'),{'converterUrl':_0x3940('0xb'),'tokenUrl':(_0x2520f5[_0x3940('0x5')][_0x3940('0x8')](_0x3940('0xf'))||{})[_0x3940('0x9')],'defaultStyles':!0x1}),_0x2520f5[_0x3940('0x7')][_0x3940('0xc')](_0x3940('0xa'),new _0x81a16e(_0x2520f5));const {tokenUrl:_0x11a637}=_0x2520f5[_0x3940('0x5')][_0x3940('0x8')]('importWord');if(_0x11a637){const {tokenUrl:_0x43ee6f}=_0x2520f5[_0x3940('0x5')][_0x3940('0x8')](_0x3940('0xf'))||{};this[_0x3940('0x3')]=_0x11a637===_0x43ee6f?_0x2520f5['plugins'][_0x3940('0x8')](_0x3940('0x4'))['token']:await _0x2520f5[_0x3940('0xe')][_0x3940('0x8')](_0x3940('0x4'))[_0x3940('0xd')](_0x11a637);}}[_0x3940('0x0')](){return this[_0x3940('0x3')];}}
|
|
@@ -0,0 +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
|
+
/**
|
|
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
|
+
}
|
package/src/importwordui.js
CHANGED
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
import{Plugin as
|
|
23
|
+
import{Plugin as _0x2b6d41}from'ckeditor5/src/core';import{View as _0x1432b8}from'ckeditor5/src/ui';import{FileDialogButtonView as _0x1c3df8}from'ckeditor5/src/upload';import _0x2d7931 from'../theme/icons/importword.svg';import'../theme/importword.css';export default class o extends _0x2b6d41{static get['pluginName'](){return'ImportWordUI';}['init'](){const _0x8790e3=this['editor'],t=_0x8790e3['t'];_0x8790e3['ui']['componentFactory']['add']('importWord',_0x1e1aae=>{const _0x50f703=_0x8790e3['commands']['get']('importWord'),_0x54f734=new _0x1c3df8(_0x1e1aae);_0x54f734['set']({'acceptedType':'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template'}),_0x54f734['buttonView']['set']({'label':t('Import\x20from\x20Word'),'icon':_0x2d7931,'tooltip':!0x0}),_0x54f734['buttonView']['bind']('isOn','isEnabled')['to'](_0x50f703,'isBusy','isEnabled'),_0x54f734['buttonView']['extendTemplate']({'attributes':{'class':[_0x54f734['buttonView']['bindTemplate']['if']('isOn','ck-importword_status-pending')]}});const _0x52c717=new _0x1432b8();return _0x52c717['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-importword__spinner-container']},'children':[{'tag':'span','attributes':{'class':['ck','ck-importword__spinner']}}]}),_0x54f734['buttonView']['children']['add'](_0x52c717),_0x54f734['on']('done',(_0x4d536a,_0x243a13)=>{_0x8790e3['execute']('importWord',_0x243a13[0x0],{}),_0x8790e3['editing']['view']['focus']();}),_0x54f734;});}}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +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';
|
package/src/index.js
CHANGED
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
export{default as ImportWord}from'./importword';export{default as ImportWordEditing}from'./importwordediting';export{default as ImportWordUI}from'./importwordui';
|
|
23
|
+
export{default as ImportWord}from'./importword';export{default as ImportWordEditing}from'./importwordediting';export{default as ImportWordUI}from'./importwordui';import'./augmentation';
|