@ckeditor/ckeditor5-export-pdf 0.0.0-nightly-20230807.0 → 0.0.0-nightly-20230808.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/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- All changes in the package are documented in the CKEditor 5 repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
4
+ All changes in the package are documented in the CKEditor 5 repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
package/LICENSE.md CHANGED
@@ -1,16 +1,16 @@
1
1
  Software License Agreement
2
2
  ==========================
3
3
 
4
- **CKEditor 5 export to PDF feature** (https://ckeditor.com/ckeditor-5/)<br>
4
+ **CKEditor&nbsp;5 export to PDF feature** (https://ckeditor.com/ckeditor-5/)<br>
5
5
  Copyright (c) 2003-2023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
6
 
7
- CKEditor 5 export to PDF feature is licensed under a commercial license and is protected by copyright law.
7
+ CKEditor&nbsp;5 export to PDF feature is licensed under a commercial license and is protected by copyright law.
8
8
  For more details about available licensing options please contact us at sales@cksource.com.
9
9
 
10
- Sources of Intellectual Property Included in CKEditor 5 export to PDF
10
+ Sources of Intellectual Property Included in CKEditor&nbsp;5 export to PDF
11
11
  ---------------------------------------------------------------------
12
12
 
13
- Where not otherwise indicated, all CKEditor 5 export to PDF feature content is authored by CKSource engineers and consists of CKSource-owned intellectual property.
13
+ Where not otherwise indicated, all CKEditor&nbsp;5 export to PDF feature content is authored by CKSource engineers and consists of CKSource-owned intellectual property.
14
14
 
15
15
  Trademarks
16
16
  ----------
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
- CKEditor 5 export to PDF feature
1
+ CKEditor&nbsp;5 export to PDF feature
2
2
  ================================
3
3
 
4
4
  [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-export-pdf.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-export-pdf)
5
5
 
6
- This package contains an export to PDF feature for CKEditor 5. It allows you to generate a PDF file directly from the CKEditor 5 WYSIWYG editor content.
6
+ This package contains an export to PDF feature for CKEditor&nbsp;5. It allows you to generate a PDF file directly from the CKEditor&nbsp;5 WYSIWYG editor content.
7
7
 
8
8
  When enabled, this feature sends the content of your editor together with the styles that are used to display it to the CKEditor Cloud Services HTML to PDF converter service. The service then generates a PDF document that can be downloaded by the user. This allows you to easily print your content to the PDF format.
9
9
 
10
- ![A screencast showing generating a PDF file from CKEditor 5 content thanks to the PDF export feature](https://c.cksource.com/a/1/img/npm/ckeditor-5-pdf-export.gif)
10
+ ![A screencast showing generating a PDF file from CKEditor&nbsp;5 content thanks to the PDF export feature](https://c.cksource.com/a/1/img/npm/ckeditor-5-pdf-export.gif)
11
11
 
12
12
  This is a premium feature. Please [contact us](https://ckeditor.com/contact/) if you would like to purchase a license. Let us know if you have any feedback or questions!
13
13
 
@@ -17,20 +17,20 @@ Check out the [demo in the Export to PDF feature](https://ckeditor.com/docs/cked
17
17
 
18
18
  ## Documentation
19
19
 
20
- See the [`@ckeditor/ckeditor5-export-pdf` package](https://ckeditor.com/docs/ckeditor5/latest/api/export-pdf.html) page in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/) as well as the [Export to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/converters/export-pdf.html) feature guide.
20
+ See the [`@ckeditor/ckeditor5-export-pdf` package](https://ckeditor.com/docs/ckeditor5/latest/api/export-pdf.html) page in [CKEditor&nbsp;5 documentation](https://ckeditor.com/docs/ckeditor5/latest/) as well as the [Export to PDF](https://ckeditor.com/docs/ckeditor5/latest/features/converters/export-pdf.html) feature guide.
21
21
 
22
22
  ## Getting support
23
23
 
24
- CKEditor 5 export to PDF feature comes with outstanding support from a dedicated team of customer care specialists, QA engineers and CKEditor 5 developers. The team will gladly assist you in all aspects from setting up your account to integrating CKEditor 5 PDF export feature with your application.
24
+ CKEditor&nbsp;5 export to PDF feature comes with outstanding support from a dedicated team of customer care specialists, QA engineers and CKEditor&nbsp;5 developers. The team will gladly assist you in all aspects from setting up your account to integrating CKEditor&nbsp;5 PDF export feature with your application.
25
25
 
26
- As a licensed CKEditor 5 export to PDF feature user you can report bugs and request features directly through the CKEditor Ecosystem customer dashboard.
26
+ As a licensed CKEditor&nbsp;5 export to PDF feature user you can report bugs and request features directly through the CKEditor Ecosystem customer dashboard.
27
27
 
28
28
  ## License
29
29
 
30
- **CKEditor 5 export to PDF** (https://ckeditor.com/ckeditor-5/)<br>
30
+ **CKEditor&nbsp;5 export to PDF** (https://ckeditor.com/ckeditor-5/)<br>
31
31
  Copyright (c) 2003-2023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
32
32
 
33
- CKEditor 5 export to PDF feature is licensed under a commercial license and is protected by copyright law.
33
+ CKEditor&nbsp;5 export to PDF feature is licensed under a commercial license and is protected by copyright law.
34
34
  For more details about available licensing options please contact us at sales@cksource.com.
35
35
 
36
36
  ### Trademarks
@@ -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={861:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(758),o=n.n(r)()((function(t){return t[1]}));o.push([t.id,":root{--ck-toolbar-spinner-size:18px}.ck-exportpdf_status-pending{position:relative}.ck.ck-exportpdf__spinner-container{display:none}.ck.ck-exportpdf__spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;left:0;margin:0 auto;right:0;top:50%;transform:translateY(-50%);z-index:1}.ck-exportpdf_status-pending .ck.ck-exportpdf__spinner-container,.ck.ck-exportpdf__spinner{height:var(--ck-toolbar-spinner-size);position:absolute;width:var(--ck-toolbar-spinner-size)}.ck-exportpdf_status-pending .ck.ck-exportpdf__spinner-container{animation:rotate 1.5s linear infinite;display:block}.ck-exportpdf_status-pending .ck.ck-button__icon{color:transparent}@keyframes rotate{to{transform:rotate(1turn)}}",""]);const i=o},758:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);r&&o[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},278:(t,e,n)=>{"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},i=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n<s.length;n++)if(s[n].identifier===t){e=n;break}return e}function c(t,e){for(var n={},r=[],o=0;o<t.length;o++){var i=t[o],c=e.base?i[0]+e.base:i[0],d=n[c]||0,l="".concat(c," ").concat(d);n[c]=d+1;var u=a(l),p={css:i[1],media:i[2],sourceMap:i[3]};-1!==u?(s[u].references++,s[u].updater(p)):s.push({identifier:l,updater:x(p,e),references:1}),r.push(l)}return r}function d(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var o=n.nc;o&&(r.nonce=o)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[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 l,u=(l=[],function(t,e){return l[t]=e,l.filter(Boolean).join("\n")});function p(t,e,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=u(e,o);else{var i=document.createTextNode(o),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function f(t,e,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var h=null,v=0;function x(t,e){var n,r,o;if(e.singleton){var i=v++;n=h||(h=d(e)),r=p.bind(null,n,i,!1),o=p.bind(null,n,i,!0)}else n=d(e),r=f.bind(null,n,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=o());var n=c(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<n.length;r++){var o=a(n[r]);s[o].references--}for(var i=c(t,e),d=0;d<n.length;d++){var l=a(n[d]);0===s[l].references&&(s[l].updater(),s.splice(l,1))}n=i}}}},704:(t,e,n)=>{t.exports=n(79)("./src/core.js")},273:(t,e,n)=>{t.exports=n(79)("./src/ui.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nc=void 0;var r={};(()=>{"use strict";n.r(r),n.d(r,{ExportPdf:()=>h});var t=n(704),e=n(273);const o=["cssRules","hasAttribute","then","cssText","warn",".ck-content","all","EDITOR_STYLES","ownerNode","text","styleSheets","trim","indexOf","data-cke","fetch","from","push",":root","join"];var i,s;i=o,s=332,function(t){for(;--t;)i.push(i.shift())}(++s);const a=function(t,e){return o[t-=0]};function c(){const t=[],e=[];for(const n of Array[a("0x6")](document[a("0x1")]))if(n[a("0x12")][a("0xb")](a("0x4")))for(const r of Array[a("0x6")](n[a("0xa")]))-1!==r.cssText[a("0x3")](a("0xf"))?t[a("0x7")](r[a("0xd")]):-1!==r[a("0xd")].indexOf(a("0x8"))&&e[a("0x7")](r.cssText);return t.length||console[a("0xe")]("The editor stylesheet could not be found in the document. Check your webpack config – style-loader should use data-cke=true attribute for the editor stylesheet."),[...e,...t].join(" ").trim()}class d extends t.Command{constructor(t){super(t),this.set("isBusy",!1),this.affectsData=!1}refresh(){this.isEnabled=!this.isBusy,this.value=this.isBusy?"pending":void 0}execute(t={}){const e=this.editor,n=e.t,r=t.converterUrl||"https://pdf-converter.cke-cs.com/v1/convert/",o=t.dataCallback||(t=>t.data.get()),i=e.plugins.get("ExportPdf"),s=t.token||i._token;return this.isBusy=!0,this.refresh(),function(t){if(!t)return new Promise((t=>t("")));const e=[];for(const n of t)a("0x11")!==n?e[a("0x7")](window[a("0x5")](n)[a("0xc")]((t=>t[a("0x0")]()))):e.push(c());return Promise[a("0x10")](e)[a("0xc")]((t=>t[a("0x9")](" ")[a("0x2")]()))}(t.stylesheets||["EDITOR_STYLES"]).then((async n=>{const i={html:'<html>\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<title>CKEditor 5 PDF document</title>\n\t\t\t\t\t\t\t<meta charset="utf-8">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t\t\t<div class="ck-content" dir="'+e.locale.contentLanguageDirection+'">\n\t\t\t\t\t\t\t\t'+await o(e)+"\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</body>\n\t\t\t\t\t</html>",css:n,options:t.converterOptions},a={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/pdf",...s?{Authorization:s.value}:null,"x-cs-app-id":t.appID||"cke5"},body:JSON.stringify(i)};return window.fetch(r,a).then((t=>{if(200!==t.status)throw t;return t.blob()})).then((e=>{const n="function"==typeof t.fileName?t.fileName():t.fileName;this._downloadFile(e,n||"document.pdf")}))})).catch((t=>{throw e.plugins.get("Notification").showWarning(n("An error occurred while generating the PDF.")),t})).finally((()=>{this.isBusy=!1,this.refresh()}))}_downloadFile(t,e){const n=document.createElement("a");n.href=window.URL.createObjectURL(t),n.download=e,n.click(),n.remove()}}var l=n(278),u=n.n(l),p=n(861),f={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};u()(p.Z,f);p.Z.locals;class h extends t.Plugin{static get pluginName(){return"ExportPdf"}static get requires(){return["CloudServices",e.Notification]}init(){const t=this.editor,n=t.t,r=t.config.get("exportPdf")||{};t.commands.add("exportPdf",new d(t)),t.ui.componentFactory.add("exportPdf",(o=>{const i=t.commands.get("exportPdf"),s=new e.ButtonView(o);s.set({label:n("Export to PDF"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M19 4.5 14 0H3v6.5h1.5v-5h8v5h5V11H19V4.5ZM14 2l3.3 3H14V2Z"/><path d="m12.452 18.5 1.25 1.5H3v-3h1.5v1.5h7.952Z"/><path d="M19.826 16.843a.75.75 0 1 0-1.152-.96L17.5 17.29V13H16v4.29l-1.174-1.408a.75.75 0 1 0-1.152.96l2.346 2.816a.95.95 0 0 0 1.46 0l2.346-2.815Z"/><path d="M1.63 14.24V12.3h.88c.66 0 1.14-.15 1.46-.45.32-.3.48-.71.48-1.24 0-.52-.15-.91-.44-1.2C3.7 9.15 3.28 9 2.69 9H0v5.24h1.63Zm.4-3h-.4v-1.17h.46c.3 0 .5.05.62.17.1.11.16.25.16.42 0 .16-.06.3-.19.41-.13.11-.34.16-.66.16l.01.01Zm5.7 3c.28 0 .6-.05.96-.14.26-.07.5-.21.73-.42.22-.2.4-.47.53-.77.12-.31.19-.75.19-1.3 0-.37-.04-.7-.13-1.02a2.3 2.3 0 0 0-.42-.84c-.19-.24-.43-.43-.72-.56C8.57 9.06 8.2 9 7.72 9h-2.4v5.24H7.73Zm-.4-1.19h-.4v-2.86h.4c.43 0 .73.1.91.3.18.2.27.59.27 1.14 0 .42-.04.73-.12.91a.76.76 0 0 1-.34.4c-.14.07-.38.11-.72.11Zm5.3 1.2V12.1h2.02v-1.06h-2.03v-.91H15V9h-4v5.24h1.62l.01.01Z"/></svg>\n',tooltip:!0}),s.bind("isOn","isEnabled").to(i,"isBusy","isEnabled"),s.extendTemplate({attributes:{class:[s.bindTemplate.if("isOn","ck-exportpdf_status-pending")]}});const a=new e.View;return a.setTemplate({tag:"span",attributes:{class:["ck","ck-exportpdf__spinner-container"]},children:[{tag:"span",attributes:{class:["ck","ck-exportpdf__spinner"]}}]}),s.children.add(a),this.listenTo(s,"execute",(()=>{t.execute("exportPdf",r),t.editing.view.focus()})),s}));const o=t.plugins.get("CloudServices");!1===r.tokenUrl?this._token=null:r.tokenUrl?o.registerTokenUrl(r.tokenUrl).then((t=>{this._token=t})):this._token=o.token}}})(),(window.CKEditor5=window.CKEditor5||{}).exportPdf=r})();
5
+ */(()=>{var t={861:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(758),o=n.n(r)()((function(t){return t[1]}));o.push([t.id,":root{--ck-toolbar-spinner-size:18px}.ck-exportpdf_status-pending{position:relative}.ck.ck-exportpdf__spinner-container{display:none}.ck.ck-exportpdf__spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;left:0;margin:0 auto;right:0;top:50%;transform:translateY(-50%);z-index:1}.ck-exportpdf_status-pending .ck.ck-exportpdf__spinner-container,.ck.ck-exportpdf__spinner{height:var(--ck-toolbar-spinner-size);position:absolute;width:var(--ck-toolbar-spinner-size)}.ck-exportpdf_status-pending .ck.ck-exportpdf__spinner-container{animation:rotate 1.5s linear infinite;display:block}.ck-exportpdf_status-pending .ck.ck-button__icon{color:transparent}@keyframes rotate{to{transform:rotate(1turn)}}",""]);const i=o},758:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);r&&o[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},278:(t,e,n)=>{"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},i=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n<s.length;n++)if(s[n].identifier===t){e=n;break}return e}function c(t,e){for(var n={},r=[],o=0;o<t.length;o++){var i=t[o],c=e.base?i[0]+e.base:i[0],d=n[c]||0,l="".concat(c," ").concat(d);n[c]=d+1;var u=a(l),p={css:i[1],media:i[2],sourceMap:i[3]};-1!==u?(s[u].references++,s[u].updater(p)):s.push({identifier:l,updater:x(p,e),references:1}),r.push(l)}return r}function d(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var o=n.nc;o&&(r.nonce=o)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[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 l,u=(l=[],function(t,e){return l[t]=e,l.filter(Boolean).join("\n")});function p(t,e,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=u(e,o);else{var i=document.createTextNode(o),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function f(t,e,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var h=null,v=0;function x(t,e){var n,r,o;if(e.singleton){var i=v++;n=h||(h=d(e)),r=p.bind(null,n,i,!1),o=p.bind(null,n,i,!0)}else n=d(e),r=f.bind(null,n,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=o());var n=c(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<n.length;r++){var o=a(n[r]);s[o].references--}for(var i=c(t,e),d=0;d<n.length;d++){var l=a(n[d]);0===s[l].references&&(s[l].updater(),s.splice(l,1))}n=i}}}},704:(t,e,n)=>{t.exports=n(79)("./src/core.js")},273:(t,e,n)=>{t.exports=n(79)("./src/ui.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,exports:{}};return t[r](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nc=void 0;var r={};(()=>{"use strict";n.r(r),n.d(r,{ExportPdf:()=>h});var t=n(704),e=n(273);const o=[":root","indexOf","length","all","styleSheets","EDITOR_STYLES","ownerNode","hasAttribute","join","fetch","push","from","trim","cssText","cssRules","warn","then",".ck-content"];var i,s;i=o,s=100,function(t){for(;--t;)i.push(i.shift())}(++s);const a=function(t,e){return o[t-=0]};function c(){const t=[],e=[];for(const n of Array[a("0x1")](document[a("0xc")]))if(n[a("0xe")][a("0xf")]("data-cke"))for(const r of Array[a("0x1")](n[a("0x4")]))-1!==r[a("0x3")][a("0x9")](a("0x7"))?t[a("0x0")](r[a("0x3")]):-1!==r.cssText[a("0x9")](a("0x8"))&&e[a("0x0")](r[a("0x3")]);return t[a("0xa")]||console[a("0x5")]("The editor stylesheet could not be found in the document. Check your webpack config – style-loader should use data-cke=true attribute for the editor stylesheet."),[...e,...t].join(" ").trim()}class d extends t.Command{constructor(t){super(t),this.set("isBusy",!1),this.affectsData=!1}refresh(){this.isEnabled=!this.isBusy,this.value=this.isBusy?"pending":void 0}execute(t={}){const e=this.editor,n=e.t,r=t.converterUrl||"https://pdf-converter.cke-cs.com/v1/convert/",o=t.dataCallback||(t=>t.data.get()),i=e.plugins.get("ExportPdf"),s=t.token||i._token;return this.isBusy=!0,this.refresh(),function(t){if(!t)return new Promise((t=>t("")));const e=[];for(const n of t)a("0xd")!==n?e[a("0x0")](window[a("0x11")](n)[a("0x6")]((t=>t.text()))):e.push(c());return Promise[a("0xb")](e)[a("0x6")]((t=>t[a("0x10")](" ")[a("0x2")]()))}(t.stylesheets||["EDITOR_STYLES"]).then((async n=>{const i={html:'<html>\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<title>CKEditor 5 PDF document</title>\n\t\t\t\t\t\t\t<meta charset="utf-8">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t\t\t<div class="ck-content" dir="'+e.locale.contentLanguageDirection+'">\n\t\t\t\t\t\t\t\t'+await o(e)+"\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</body>\n\t\t\t\t\t</html>",css:n,options:t.converterOptions},a={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/pdf",...s?{Authorization:s.value}:null,"x-cs-app-id":t.appID||"cke5"},body:JSON.stringify(i)};return window.fetch(r,a).then((t=>{if(200!==t.status)throw t;return t.blob()})).then((e=>{const n="function"==typeof t.fileName?t.fileName():t.fileName;this._downloadFile(e,n||"document.pdf")}))})).catch((t=>{throw e.plugins.get("Notification").showWarning(n("An error occurred while generating the PDF.")),t})).finally((()=>{this.isBusy=!1,this.refresh()}))}_downloadFile(t,e){const n=document.createElement("a");n.href=window.URL.createObjectURL(t),n.download=e,n.click(),n.remove()}}var l=n(278),u=n.n(l),p=n(861),f={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};u()(p.Z,f);p.Z.locals;class h extends t.Plugin{static get pluginName(){return"ExportPdf"}static get requires(){return["CloudServices",e.Notification]}init(){const t=this.editor,n=t.t,r=t.config.get("exportPdf")||{};t.commands.add("exportPdf",new d(t)),t.ui.componentFactory.add("exportPdf",(o=>{const i=t.commands.get("exportPdf"),s=new e.ButtonView(o);s.set({label:n("Export to PDF"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M19 4.5 14 0H3v6.5h1.5v-5h8v5h5V11H19V4.5ZM14 2l3.3 3H14V2Z"/><path d="m12.452 18.5 1.25 1.5H3v-3h1.5v1.5h7.952Z"/><path d="M19.826 16.843a.75.75 0 1 0-1.152-.96L17.5 17.29V13H16v4.29l-1.174-1.408a.75.75 0 1 0-1.152.96l2.346 2.816a.95.95 0 0 0 1.46 0l2.346-2.815Z"/><path d="M1.63 14.24V12.3h.88c.66 0 1.14-.15 1.46-.45.32-.3.48-.71.48-1.24 0-.52-.15-.91-.44-1.2C3.7 9.15 3.28 9 2.69 9H0v5.24h1.63Zm.4-3h-.4v-1.17h.46c.3 0 .5.05.62.17.1.11.16.25.16.42 0 .16-.06.3-.19.41-.13.11-.34.16-.66.16l.01.01Zm5.7 3c.28 0 .6-.05.96-.14.26-.07.5-.21.73-.42.22-.2.4-.47.53-.77.12-.31.19-.75.19-1.3 0-.37-.04-.7-.13-1.02a2.3 2.3 0 0 0-.42-.84c-.19-.24-.43-.43-.72-.56C8.57 9.06 8.2 9 7.72 9h-2.4v5.24H7.73Zm-.4-1.19h-.4v-2.86h.4c.43 0 .73.1.91.3.18.2.27.59.27 1.14 0 .42-.04.73-.12.91a.76.76 0 0 1-.34.4c-.14.07-.38.11-.72.11Zm5.3 1.2V12.1h2.02v-1.06h-2.03v-.91H15V9h-4v5.24h1.62l.01.01Z"/></svg>\n',tooltip:!0}),s.bind("isOn","isEnabled").to(i,"isBusy","isEnabled"),s.extendTemplate({attributes:{class:[s.bindTemplate.if("isOn","ck-exportpdf_status-pending")]}});const a=new e.View;return a.setTemplate({tag:"span",attributes:{class:["ck","ck-exportpdf__spinner-container"]},children:[{tag:"span",attributes:{class:["ck","ck-exportpdf__spinner"]}}]}),s.children.add(a),this.listenTo(s,"execute",(()=>{t.execute("exportPdf",r),t.editing.view.focus()})),s}));const o=t.plugins.get("CloudServices");!1===r.tokenUrl?this._token=null:r.tokenUrl?o.registerTokenUrl(r.tokenUrl).then((t=>{this._token=t})):this._token=o.token}}})(),(window.CKEditor5=window.CKEditor5||{}).exportPdf=r})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-export-pdf",
3
- "version": "0.0.0-nightly-20230807.0",
3
+ "version": "0.0.0-nightly-20230808.0",
4
4
  "description": "Export to PDF 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": "0.0.0-nightly-20230807.0"
32
+ "ckeditor5": "0.0.0-nightly-20230808.0"
33
33
  },
34
34
  "license": "SEE LICENSE IN LICENSE.md",
35
35
  "author": "CKSource (http://cksource.com/)",
package/src/exportpdf.js CHANGED
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{Plugin as _0x3e3873}from'ckeditor5/src/core';import{ButtonView as _0x25e049,View as _0x236993,Notification as _0xca02df}from'ckeditor5/src/ui';import _0x26681e from'./exportpdfcommand';import _0x19c847 from'../theme/icons/exportpdf.svg';import'../theme/exportpdf.css';export default class p extends _0x3e3873{static get['pluginName'](){return'ExportPdf';}static get['requires'](){return['CloudServices',_0xca02df];}['init'](){const _0x5f32e7=this['editor'],t=_0x5f32e7['t'],_0x523bc3=_0x5f32e7['config']['get']('exportPdf')||{};_0x5f32e7['commands']['add']('exportPdf',new _0x26681e(_0x5f32e7)),_0x5f32e7['ui']['componentFactory']['add']('exportPdf',_0x3b787c=>{const _0x3867d8=_0x5f32e7['commands']['get']('exportPdf'),_0x334ed1=new _0x25e049(_0x3b787c);_0x334ed1['set']({'label':t('Export\x20to\x20PDF'),'icon':_0x19c847,'tooltip':!0x0}),_0x334ed1['bind']('isOn','isEnabled')['to'](_0x3867d8,'isBusy','isEnabled'),_0x334ed1['extendTemplate']({'attributes':{'class':[_0x334ed1['bindTemplate']['if']('isOn','ck-exportpdf_status-pending')]}});const _0xe954b9=new _0x236993();return _0xe954b9['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-exportpdf__spinner-container']},'children':[{'tag':'span','attributes':{'class':['ck','ck-exportpdf__spinner']}}]}),_0x334ed1['children']['add'](_0xe954b9),this['listenTo'](_0x334ed1,'execute',()=>{_0x5f32e7['execute']('exportPdf',_0x523bc3),_0x5f32e7['editing']['view']['focus']();}),_0x334ed1;});const _0x1bea3c=_0x5f32e7['plugins']['get']('CloudServices');!0x1===_0x523bc3['tokenUrl']?this['_token']=null:_0x523bc3['tokenUrl']?_0x1bea3c['registerTokenUrl'](_0x523bc3['tokenUrl'])['then'](_0x30763e=>{this['_token']=_0x30763e;}):this['_token']=_0x1bea3c['token'];}}
23
+ import{Plugin as _0x1fa278}from'ckeditor5/src/core';import{ButtonView as _0x25c04c,View as _0x173703,Notification as _0x35e5de}from'ckeditor5/src/ui';import _0x1c4db2 from'./exportpdfcommand';import _0x3d3a35 from'../theme/icons/exportpdf.svg';import'../theme/exportpdf.css';export default class p extends _0x1fa278{static get['pluginName'](){return'ExportPdf';}static get['requires'](){return['CloudServices',_0x35e5de];}['init'](){const _0x15a99f=this['editor'],t=_0x15a99f['t'],_0x243a65=_0x15a99f['config']['get']('exportPdf')||{};_0x15a99f['commands']['add']('exportPdf',new _0x1c4db2(_0x15a99f)),_0x15a99f['ui']['componentFactory']['add']('exportPdf',_0x3a323d=>{const _0x4debcf=_0x15a99f['commands']['get']('exportPdf'),_0x454da2=new _0x25c04c(_0x3a323d);_0x454da2['set']({'label':t('Export\x20to\x20PDF'),'icon':_0x3d3a35,'tooltip':!0x0}),_0x454da2['bind']('isOn','isEnabled')['to'](_0x4debcf,'isBusy','isEnabled'),_0x454da2['extendTemplate']({'attributes':{'class':[_0x454da2['bindTemplate']['if']('isOn','ck-exportpdf_status-pending')]}});const _0x2dc074=new _0x173703();return _0x2dc074['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-exportpdf__spinner-container']},'children':[{'tag':'span','attributes':{'class':['ck','ck-exportpdf__spinner']}}]}),_0x454da2['children']['add'](_0x2dc074),this['listenTo'](_0x454da2,'execute',()=>{_0x15a99f['execute']('exportPdf',_0x243a65),_0x15a99f['editing']['view']['focus']();}),_0x454da2;});const _0x526cc7=_0x15a99f['plugins']['get']('CloudServices');!0x1===_0x243a65['tokenUrl']?this['_token']=null:_0x243a65['tokenUrl']?_0x526cc7['registerTokenUrl'](_0x243a65['tokenUrl'])['then'](_0x3ec616=>{this['_token']=_0x3ec616;}):this['_token']=_0x526cc7['token'];}}
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{Command as _0x5c0b22}from'ckeditor5/src/core';import{getStyles as _0x5c0048}from'./utils';export default class i extends _0x5c0b22{constructor(_0x2a0373){super(_0x2a0373),this['set']('isBusy',!0x1),this['affectsData']=!0x1;}['refresh'](){this['isEnabled']=!this['isBusy'],this['value']=this['isBusy']?'pending':void 0x0;}['execute'](_0x3b85cd={}){const _0x2e7cfb=this['editor'],t=_0x2e7cfb['t'],_0x35fc11=_0x3b85cd['converterUrl']||'https://pdf-converter.cke-cs.com/v1/convert/',_0x2da925=_0x3b85cd['dataCallback']||(_0x3902c2=>_0x3902c2['data']['get']()),_0xd75209=_0x2e7cfb['plugins']['get']('ExportPdf'),_0x3a5add=_0x3b85cd['token']||_0xd75209['_token'];return this['isBusy']=!0x0,this['refresh'](),_0x5c0048(_0x3b85cd['stylesheets']||['EDITOR_STYLES'])['then'](async _0x58e733=>{const _0xc7c158={'html':'<html>\x0a\x09\x09\x09\x09\x09\x09<head>\x0a\x09\x09\x09\x09\x09\x09\x09<title>CKEditor\x205\x20PDF\x20document</title>\x0a\x09\x09\x09\x09\x09\x09\x09<meta\x20charset=\x22utf-8\x22>\x0a\x09\x09\x09\x09\x09\x09</head>\x0a\x09\x09\x09\x09\x09\x09<body>\x0a\x09\x09\x09\x09\x09\x09\x09<div\x20class=\x22ck-content\x22\x20dir=\x22'+_0x2e7cfb['locale']['contentLanguageDirection']+'\x22>\x0a\x09\x09\x09\x09\x09\x09\x09\x09'+await _0x2da925(_0x2e7cfb)+'\x0a\x09\x09\x09\x09\x09\x09\x09</div>\x0a\x09\x09\x09\x09\x09\x09</body>\x0a\x09\x09\x09\x09\x09</html>','css':_0x58e733,'options':_0x3b85cd['converterOptions']},_0x5dc361={'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/pdf',..._0x3a5add?{'Authorization':_0x3a5add['value']}:null,'x-cs-app-id':_0x3b85cd['appID']||'cke5'},'body':JSON['stringify'](_0xc7c158)};return window['fetch'](_0x35fc11,_0x5dc361)['then'](_0x1b9ca8=>{if(0xc8!==_0x1b9ca8['status'])throw _0x1b9ca8;return _0x1b9ca8['blob']();})['then'](_0x14a19f=>{const _0x17ade7='function'==typeof _0x3b85cd['fileName']?_0x3b85cd['fileName']():_0x3b85cd['fileName'];this['_downloadFile'](_0x14a19f,_0x17ade7||'document.pdf');});})['catch'](_0x49b2a4=>{throw _0x2e7cfb['plugins']['get']('Notification')['showWarning'](t('An\x20error\x20occurred\x20while\x20generating\x20the\x20PDF.')),_0x49b2a4;})['finally'](()=>{this['isBusy']=!0x1,this['refresh']();});}['_downloadFile'](_0x29443f,_0x3b330e){const _0xda7d61=document['createElement']('a');_0xda7d61['href']=window['URL']['createObjectURL'](_0x29443f),_0xda7d61['download']=_0x3b330e,_0xda7d61['click'](),_0xda7d61['remove']();}}
23
+ import{Command as _0x229c43}from'ckeditor5/src/core';import{getStyles as _0x26423d}from'./utils';export default class i extends _0x229c43{constructor(_0x1dae76){super(_0x1dae76),this['set']('isBusy',!0x1),this['affectsData']=!0x1;}['refresh'](){this['isEnabled']=!this['isBusy'],this['value']=this['isBusy']?'pending':void 0x0;}['execute'](_0x255d56={}){const _0x58d97f=this['editor'],t=_0x58d97f['t'],_0x3d4511=_0x255d56['converterUrl']||'https://pdf-converter.cke-cs.com/v1/convert/',_0x2def55=_0x255d56['dataCallback']||(_0x3cd9b3=>_0x3cd9b3['data']['get']()),_0x550530=_0x58d97f['plugins']['get']('ExportPdf'),_0x16c313=_0x255d56['token']||_0x550530['_token'];return this['isBusy']=!0x0,this['refresh'](),_0x26423d(_0x255d56['stylesheets']||['EDITOR_STYLES'])['then'](async _0x343606=>{const _0xd24ea8={'html':'<html>\x0a\x09\x09\x09\x09\x09\x09<head>\x0a\x09\x09\x09\x09\x09\x09\x09<title>CKEditor\x205\x20PDF\x20document</title>\x0a\x09\x09\x09\x09\x09\x09\x09<meta\x20charset=\x22utf-8\x22>\x0a\x09\x09\x09\x09\x09\x09</head>\x0a\x09\x09\x09\x09\x09\x09<body>\x0a\x09\x09\x09\x09\x09\x09\x09<div\x20class=\x22ck-content\x22\x20dir=\x22'+_0x58d97f['locale']['contentLanguageDirection']+'\x22>\x0a\x09\x09\x09\x09\x09\x09\x09\x09'+await _0x2def55(_0x58d97f)+'\x0a\x09\x09\x09\x09\x09\x09\x09</div>\x0a\x09\x09\x09\x09\x09\x09</body>\x0a\x09\x09\x09\x09\x09</html>','css':_0x343606,'options':_0x255d56['converterOptions']},_0x4d107a={'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/pdf',..._0x16c313?{'Authorization':_0x16c313['value']}:null,'x-cs-app-id':_0x255d56['appID']||'cke5'},'body':JSON['stringify'](_0xd24ea8)};return window['fetch'](_0x3d4511,_0x4d107a)['then'](_0x4a6f55=>{if(0xc8!==_0x4a6f55['status'])throw _0x4a6f55;return _0x4a6f55['blob']();})['then'](_0x67a4b0=>{const _0x3245c6='function'==typeof _0x255d56['fileName']?_0x255d56['fileName']():_0x255d56['fileName'];this['_downloadFile'](_0x67a4b0,_0x3245c6||'document.pdf');});})['catch'](_0x36f7f3=>{throw _0x58d97f['plugins']['get']('Notification')['showWarning'](t('An\x20error\x20occurred\x20while\x20generating\x20the\x20PDF.')),_0x36f7f3;})['finally'](()=>{this['isBusy']=!0x1,this['refresh']();});}['_downloadFile'](_0x2e6b1b,_0x19380a){const _0x205643=document['createElement']('a');_0x205643['href']=window['URL']['createObjectURL'](_0x2e6b1b),_0x205643['download']=_0x19380a,_0x205643['click'](),_0x205643['remove']();}}
package/src/utils.js CHANGED
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x2440=['cssRules','hasAttribute','then','cssText','warn','.ck-content','all','EDITOR_STYLES','ownerNode','text','styleSheets','trim','indexOf','data-cke','fetch','from','push',':root','join'];(function(_0x3757c9,_0x244012){const _0x565ec7=function(_0x473883){while(--_0x473883){_0x3757c9['push'](_0x3757c9['shift']());}};_0x565ec7(++_0x244012);}(_0x2440,0x14c));const _0x565e=function(_0x3757c9,_0x244012){_0x3757c9=_0x3757c9-0x0;let _0x565ec7=_0x2440[_0x3757c9];return _0x565ec7;};export function getStyles(_0x14932b){if(!_0x14932b)return new Promise(_0x1a8c70=>_0x1a8c70(''));const _0x4bae36=[];for(const _0x303d20 of _0x14932b)_0x565e('0x11')!==_0x303d20?_0x4bae36[_0x565e('0x7')](window[_0x565e('0x5')](_0x303d20)[_0x565e('0xc')](_0x1c3a33=>_0x1c3a33[_0x565e('0x0')]())):_0x4bae36['push'](u());return Promise[_0x565e('0x10')](_0x4bae36)[_0x565e('0xc')](_0x48cd75=>_0x48cd75[_0x565e('0x9')]('\x20')[_0x565e('0x2')]());}function u(){const _0x292da0=[],_0x2fa316=[];for(const _0x5ed60 of Array[_0x565e('0x6')](document[_0x565e('0x1')])){if(_0x5ed60[_0x565e('0x12')][_0x565e('0xb')](_0x565e('0x4')))for(const _0x1bfac6 of Array[_0x565e('0x6')](_0x5ed60[_0x565e('0xa')]))-0x1!==_0x1bfac6['cssText'][_0x565e('0x3')](_0x565e('0xf'))?_0x292da0[_0x565e('0x7')](_0x1bfac6[_0x565e('0xd')]):-0x1!==_0x1bfac6[_0x565e('0xd')]['indexOf'](_0x565e('0x8'))&&_0x2fa316[_0x565e('0x7')](_0x1bfac6['cssText']);}return _0x292da0['length']||console[_0x565e('0xe')]('The\x20editor\x20stylesheet\x20could\x20not\x20be\x20found\x20in\x20the\x20document.\x20Check\x20your\x20webpack\x20config\x20–\x20style-loader\x20should\x20use\x20data-cke=true\x20attribute\x20for\x20the\x20editor\x20stylesheet.'),[..._0x2fa316,..._0x292da0]['join']('\x20')['trim']();}
23
+ const _0xd625=[':root','indexOf','length','all','styleSheets','EDITOR_STYLES','ownerNode','hasAttribute','join','fetch','push','from','trim','cssText','cssRules','warn','then','.ck-content'];(function(_0x7c71,_0xd625cb){const _0x3e27a6=function(_0x1b429f){while(--_0x1b429f){_0x7c71['push'](_0x7c71['shift']());}};_0x3e27a6(++_0xd625cb);}(_0xd625,0x64));const _0x3e27=function(_0x7c71,_0xd625cb){_0x7c71=_0x7c71-0x0;let _0x3e27a6=_0xd625[_0x7c71];return _0x3e27a6;};export function getStyles(_0x335a6b){if(!_0x335a6b)return new Promise(_0x37b76f=>_0x37b76f(''));const _0x4d2f24=[];for(const _0x35a43c of _0x335a6b)_0x3e27('0xd')!==_0x35a43c?_0x4d2f24[_0x3e27('0x0')](window[_0x3e27('0x11')](_0x35a43c)[_0x3e27('0x6')](_0x55b4be=>_0x55b4be['text']())):_0x4d2f24['push'](u());return Promise[_0x3e27('0xb')](_0x4d2f24)[_0x3e27('0x6')](_0x4bd74a=>_0x4bd74a[_0x3e27('0x10')]('\x20')[_0x3e27('0x2')]());}function u(){const _0x368b9a=[],_0x3bf82f=[];for(const _0x2bc321 of Array[_0x3e27('0x1')](document[_0x3e27('0xc')])){if(_0x2bc321[_0x3e27('0xe')][_0x3e27('0xf')]('data-cke'))for(const _0xab6ef5 of Array[_0x3e27('0x1')](_0x2bc321[_0x3e27('0x4')]))-0x1!==_0xab6ef5[_0x3e27('0x3')][_0x3e27('0x9')](_0x3e27('0x7'))?_0x368b9a[_0x3e27('0x0')](_0xab6ef5[_0x3e27('0x3')]):-0x1!==_0xab6ef5['cssText'][_0x3e27('0x9')](_0x3e27('0x8'))&&_0x3bf82f[_0x3e27('0x0')](_0xab6ef5[_0x3e27('0x3')]);}return _0x368b9a[_0x3e27('0xa')]||console[_0x3e27('0x5')]('The\x20editor\x20stylesheet\x20could\x20not\x20be\x20found\x20in\x20the\x20document.\x20Check\x20your\x20webpack\x20config\x20–\x20style-loader\x20should\x20use\x20data-cke=true\x20attribute\x20for\x20the\x20editor\x20stylesheet.'),[..._0x3bf82f,..._0x368b9a]['join']('\x20')['trim']();}