@ckeditor/ckeditor5-word-count
Advanced tools
Comparing version 38.0.1 to 38.1.0
@@ -5,2 +5,2 @@ !function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"Characters: %0":"Characters: %0","Words: %0":"Words: %0"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), | ||
* For licensing, see LICENSE.md. | ||
*/(()=>{var t={906:()=>{},704:(t,e,r)=>{t.exports=r(79)("./src/core.js")},273:(t,e,r)=>{t.exports=r(79)("./src/ui.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]={exports:{}};return t[o](i,i.exports,r),i.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,{WordCount:()=>z,WordCountConfig:()=>Z.WordCountConfig});var t=r(704),e=r(273),n=r(209);function i(t){if(t.is("$text")||t.is("$textProxy"))return t.data;const e=t;let r="",o=null;for(const t of e.getChildren()){const e=i(t);o&&o.is("element")&&(r+="\n"),r+=e,o=t}return r}const s=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const c="object"==typeof global&&global&&global.Object===Object&&global;var a="object"==typeof self&&self&&self.Object===Object&&self;const u=c||a||Function("return this")();const d=function(){return u.Date.now()};var l=/\s/;const f=function(t){for(var e=t.length;e--&&l.test(t.charAt(e)););return e};var h=/^\s+/;const p=function(t){return t?t.slice(0,f(t)+1).replace(h,""):t};const g=u.Symbol;var v=Object.prototype,b=v.hasOwnProperty,w=v.toString,y=g?g.toStringTag:void 0;const _=function(t){var e=b.call(t,y),r=t[y];try{t[y]=void 0;var o=!0}catch(t){}var n=w.call(t);return o&&(e?t[y]=r:delete t[y]),n};var m=Object.prototype.toString;const j=function(t){return m.call(t)};var C=g?g.toStringTag:void 0;const O=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":C&&C in Object(t)?_(t):j(t)};const x=function(t){return null!=t&&"object"==typeof t};const S=function(t){return"symbol"==typeof t||x(t)&&"[object Symbol]"==O(t)};var T=/^[-+]0x[0-9a-f]+$/i,W=/^0b[01]+$/i,E=/^0o[0-7]+$/i,N=parseInt;const P=function(t){if("number"==typeof t)return t;if(S(t))return NaN;if(s(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=p(t);var r=W.test(t);return r||E.test(t)?N(t.slice(2),r?2:8):T.test(t)?NaN:+t};var R=Math.max,V=Math.min;const L=function(t,e,r){var o,n,i,c,a,u,l=0,f=!1,h=!1,p=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function g(e){var r=o,i=n;return o=n=void 0,l=e,c=t.apply(i,r)}function v(t){var r=t-u;return void 0===u||r>=e||r<0||h&&t-l>=i}function b(){var t=d();if(v(t))return w(t);a=setTimeout(b,function(t){var r=e-(t-u);return h?V(r,i-(t-l)):r}(t))}function w(t){return a=void 0,p&&o?g(t):(o=n=void 0,c)}function y(){var t=d(),r=v(t);if(o=arguments,n=this,u=t,r){if(void 0===a)return function(t){return l=t,a=setTimeout(b,e),f?g(t):c}(u);if(h)return clearTimeout(a),a=setTimeout(b,e),g(u)}return void 0===a&&(a=setTimeout(b,e)),c}return e=P(e)||0,s(r)&&(f=!!r.leading,i=(h="maxWait"in r)?R(P(r.maxWait)||0,e):i,p="trailing"in r?!!r.trailing:p),y.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=u=n=a=void 0},y.flush=function(){return void 0===a?c:w(d())},y};const A=function(t,e,r){var o=!0,n=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return s(r)&&(o="leading"in r?!!r.leading:o,n="trailing"in r?!!r.trailing:n),L(t,e,{leading:o,maxWait:e,trailing:n})};const M=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);var I=Function.prototype,K=Object.prototype,$=I.toString,k=K.hasOwnProperty,U=$.call(Object);const D=function(t){if(!x(t)||"[object Object]"!=O(t))return!1;var e=M(t);if(null===e)return!0;var r=k.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&$.call(r)==U};const F=function(t){return x(t)&&1===t.nodeType&&!D(t)};class z extends t.Plugin{constructor(t){super(t),this.set("characters",0),this.set("words",0),Object.defineProperties(this,{characters:{get(){return this.characters=this._getCharacters()}},words:{get(){return this.words=this._getWords()}}}),this.set("_wordsLabel",void 0),this.set("_charactersLabel",void 0),this._config=t.config.get("wordCount")||{},this._outputView=void 0,this._wordsMatchRegExp=n.env.features.isRegExpUnicodePropertySupported?new RegExp("([\\p{L}\\p{N}]+\\S?)+","gu"):/([a-zA-Z0-9À-ž]+\S?)+/gu}static get pluginName(){return"WordCount"}init(){this.editor.model.document.on("change:data",A(this._refreshStats.bind(this),250)),"function"==typeof this._config.onUpdate&&this.on("update",((t,e)=>{this._config.onUpdate(e)})),F(this._config.container)&&this._config.container.appendChild(this.wordCountContainer)}destroy(){this._outputView&&(this._outputView.element.remove(),this._outputView.destroy()),super.destroy()}get wordCountContainer(){const t=this.editor,r=t.t,o=t.config.get("wordCount.displayWords"),n=t.config.get("wordCount.displayCharacters"),i=e.Template.bind(this,this),s=[];return this._outputView||(this._outputView=new e.View,(o||void 0===o)&&(this.bind("_wordsLabel").to(this,"words",(t=>r("Words: %0",t))),s.push({tag:"div",children:[{text:[i.to("_wordsLabel")]}],attributes:{class:"ck-word-count__words"}})),(n||void 0===n)&&(this.bind("_charactersLabel").to(this,"characters",(t=>r("Characters: %0",t))),s.push({tag:"div",children:[{text:[i.to("_charactersLabel")]}],attributes:{class:"ck-word-count__characters"}})),this._outputView.setTemplate({tag:"div",attributes:{class:["ck","ck-word-count"]},children:s}),this._outputView.render()),this._outputView.element}_getCharacters(){return i(this.editor.model.document.getRoot()).replace(/\n/g,"").length}_getWords(){return(i(this.editor.model.document.getRoot()).match(this._wordsMatchRegExp)||[]).length}_refreshStats(){const t=this.words=this._getWords(),e=this.characters=this._getCharacters();this.fire("update",{words:t,characters:e})}}var Z=r(906)})(),(window.CKEditor5=window.CKEditor5||{}).wordCount=o})(); | ||
*/(()=>{var t={704:(t,e,r)=>{t.exports=r(79)("./src/core.js")},273:(t,e,r)=>{t.exports=r(79)("./src/ui.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]={exports:{}};return t[o](i,i.exports,r),i.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,{WordCount:()=>z});var t=r(704),e=r(273),n=r(209);function i(t){if(t.is("$text")||t.is("$textProxy"))return t.data;const e=t;let r="",o=null;for(const t of e.getChildren()){const e=i(t);o&&o.is("element")&&(r+="\n"),r+=e,o=t}return r}const s=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const c="object"==typeof global&&global&&global.Object===Object&&global;var a="object"==typeof self&&self&&self.Object===Object&&self;const u=c||a||Function("return this")();const d=function(){return u.Date.now()};var l=/\s/;const f=function(t){for(var e=t.length;e--&&l.test(t.charAt(e)););return e};var h=/^\s+/;const p=function(t){return t?t.slice(0,f(t)+1).replace(h,""):t};const g=u.Symbol;var v=Object.prototype,b=v.hasOwnProperty,w=v.toString,y=g?g.toStringTag:void 0;const _=function(t){var e=b.call(t,y),r=t[y];try{t[y]=void 0;var o=!0}catch(t){}var n=w.call(t);return o&&(e?t[y]=r:delete t[y]),n};var m=Object.prototype.toString;const j=function(t){return m.call(t)};var x=g?g.toStringTag:void 0;const O=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":x&&x in Object(t)?_(t):j(t)};const T=function(t){return null!=t&&"object"==typeof t};const C=function(t){return"symbol"==typeof t||T(t)&&"[object Symbol]"==O(t)};var S=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,W=parseInt;const P=function(t){if("number"==typeof t)return t;if(C(t))return NaN;if(s(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=p(t);var r=E.test(t);return r||N.test(t)?W(t.slice(2),r?2:8):S.test(t)?NaN:+t};var R=Math.max,V=Math.min;const L=function(t,e,r){var o,n,i,c,a,u,l=0,f=!1,h=!1,p=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function g(e){var r=o,i=n;return o=n=void 0,l=e,c=t.apply(i,r)}function v(t){var r=t-u;return void 0===u||r>=e||r<0||h&&t-l>=i}function b(){var t=d();if(v(t))return w(t);a=setTimeout(b,function(t){var r=e-(t-u);return h?V(r,i-(t-l)):r}(t))}function w(t){return a=void 0,p&&o?g(t):(o=n=void 0,c)}function y(){var t=d(),r=v(t);if(o=arguments,n=this,u=t,r){if(void 0===a)return function(t){return l=t,a=setTimeout(b,e),f?g(t):c}(u);if(h)return clearTimeout(a),a=setTimeout(b,e),g(u)}return void 0===a&&(a=setTimeout(b,e)),c}return e=P(e)||0,s(r)&&(f=!!r.leading,i=(h="maxWait"in r)?R(P(r.maxWait)||0,e):i,p="trailing"in r?!!r.trailing:p),y.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=u=n=a=void 0},y.flush=function(){return void 0===a?c:w(d())},y};const A=function(t,e,r){var o=!0,n=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return s(r)&&(o="leading"in r?!!r.leading:o,n="trailing"in r?!!r.trailing:n),L(t,e,{leading:o,maxWait:e,trailing:n})};const M=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);var I=Function.prototype,K=Object.prototype,$=I.toString,k=K.hasOwnProperty,U=$.call(Object);const D=function(t){if(!T(t)||"[object Object]"!=O(t))return!1;var e=M(t);if(null===e)return!0;var r=k.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&$.call(r)==U};const F=function(t){return T(t)&&1===t.nodeType&&!D(t)};class z extends t.Plugin{constructor(t){super(t),this.set("characters",0),this.set("words",0),Object.defineProperties(this,{characters:{get(){return this.characters=this._getCharacters(this._getText())}},words:{get(){return this.words=this._getWords(this._getText())}}}),this.set("_wordsLabel",void 0),this.set("_charactersLabel",void 0),this._config=t.config.get("wordCount")||{},this._outputView=void 0,this._wordsMatchRegExp=n.env.features.isRegExpUnicodePropertySupported?new RegExp("([\\p{L}\\p{N}]+\\S?)+","gu"):/([a-zA-Z0-9À-ž]+\S?)+/gu}static get pluginName(){return"WordCount"}init(){this.editor.model.document.on("change:data",A(this._refreshStats.bind(this),250)),"function"==typeof this._config.onUpdate&&this.on("update",((t,e)=>{this._config.onUpdate(e)})),F(this._config.container)&&this._config.container.appendChild(this.wordCountContainer)}destroy(){this._outputView&&(this._outputView.element.remove(),this._outputView.destroy()),super.destroy()}get wordCountContainer(){const t=this.editor,r=t.t,o=t.config.get("wordCount.displayWords"),n=t.config.get("wordCount.displayCharacters"),i=e.Template.bind(this,this),s=[];return this._outputView||(this._outputView=new e.View,(o||void 0===o)&&(this.bind("_wordsLabel").to(this,"words",(t=>r("Words: %0",t))),s.push({tag:"div",children:[{text:[i.to("_wordsLabel")]}],attributes:{class:"ck-word-count__words"}})),(n||void 0===n)&&(this.bind("_charactersLabel").to(this,"characters",(t=>r("Characters: %0",t))),s.push({tag:"div",children:[{text:[i.to("_charactersLabel")]}],attributes:{class:"ck-word-count__characters"}})),this._outputView.setTemplate({tag:"div",attributes:{class:["ck","ck-word-count"]},children:s}),this._outputView.render()),this._outputView.element}_getText(){let t="";for(const e of this.editor.model.document.getRootNames())""!==t&&(t+="\n"),t+=i(this.editor.model.document.getRoot(e));return t}_getCharacters(t){return t.replace(/\n/g,"").length}_getWords(t){return(t.match(this._wordsMatchRegExp)||[]).length}_refreshStats(){const t=this._getText(),e=this.words=this._getWords(t),r=this.characters=this._getCharacters(t);this.fire("update",{words:e,characters:r})}}})(),(window.CKEditor5=window.CKEditor5||{}).wordCount=o})(); |
{ | ||
"name": "@ckeditor/ckeditor5-word-count", | ||
"version": "38.0.1", | ||
"version": "38.1.0", | ||
"description": "Word and character count feature for CKEditor 5.", | ||
@@ -16,23 +16,4 @@ "keywords": [ | ||
"lodash-es": "^4.17.15", | ||
"ckeditor5": "^38.0.1" | ||
"ckeditor5": "38.1.0" | ||
}, | ||
"devDependencies": { | ||
"@ckeditor/ckeditor5-basic-styles": "^38.0.1", | ||
"@ckeditor/ckeditor5-block-quote": "^38.0.1", | ||
"@ckeditor/ckeditor5-core": "^38.0.1", | ||
"@ckeditor/ckeditor5-dev-utils": "^37.0.0", | ||
"@ckeditor/ckeditor5-editor-classic": "^38.0.1", | ||
"@ckeditor/ckeditor5-engine": "^38.0.1", | ||
"@ckeditor/ckeditor5-enter": "^38.0.1", | ||
"@ckeditor/ckeditor5-image": "^38.0.1", | ||
"@ckeditor/ckeditor5-link": "^38.0.1", | ||
"@ckeditor/ckeditor5-list": "^38.0.1", | ||
"@ckeditor/ckeditor5-paragraph": "^38.0.1", | ||
"@ckeditor/ckeditor5-table": "^38.0.1", | ||
"@ckeditor/ckeditor5-theme-lark": "^38.0.1", | ||
"@ckeditor/ckeditor5-utils": "^38.0.1", | ||
"typescript": "^4.8.4", | ||
"webpack": "^5.58.1", | ||
"webpack-cli": "^4.9.0" | ||
}, | ||
"engines": { | ||
@@ -60,8 +41,3 @@ "node": ">=16.0.0", | ||
], | ||
"scripts": { | ||
"dll:build": "webpack", | ||
"build": "tsc -p ./tsconfig.json", | ||
"postversion": "npm run build" | ||
}, | ||
"types": "src/index.d.ts" | ||
} |
@@ -86,3 +86,3 @@ /** | ||
*/ | ||
static get pluginName(): 'WordCount'; | ||
static get pluginName(): "WordCount"; | ||
/** | ||
@@ -108,2 +108,3 @@ * @inheritDoc | ||
get wordCountContainer(): HTMLElement; | ||
private _getText; | ||
/** | ||
@@ -110,0 +111,0 @@ * Determines the number of characters in the current editor's model. |
@@ -54,3 +54,3 @@ /** | ||
get() { | ||
return (this.characters = this._getCharacters()); | ||
return (this.characters = this._getCharacters(this._getText())); | ||
} | ||
@@ -60,3 +60,3 @@ }, | ||
get() { | ||
return (this.words = this._getWords()); | ||
return (this.words = this._getWords(this._getText())); | ||
} | ||
@@ -174,7 +174,17 @@ } | ||
} | ||
_getText() { | ||
let txt = ''; | ||
for (const rootName of this.editor.model.document.getRootNames()) { | ||
if (txt !== '') { | ||
// Add a delimiter, so words from each root are treated independently. | ||
txt += '\n'; | ||
} | ||
txt += modelElementToPlainText(this.editor.model.document.getRoot(rootName)); | ||
} | ||
return txt; | ||
} | ||
/** | ||
* Determines the number of characters in the current editor's model. | ||
*/ | ||
_getCharacters() { | ||
const txt = modelElementToPlainText(this.editor.model.document.getRoot()); | ||
_getCharacters(txt) { | ||
return txt.replace(/\n/g, '').length; | ||
@@ -185,4 +195,3 @@ } | ||
*/ | ||
_getWords() { | ||
const txt = modelElementToPlainText(this.editor.model.document.getRoot()); | ||
_getWords(txt) { | ||
const detectedWords = txt.match(this._wordsMatchRegExp) || []; | ||
@@ -198,4 +207,5 @@ return detectedWords.length; | ||
_refreshStats() { | ||
const words = this.words = this._getWords(); | ||
const characters = this.characters = this._getCharacters(); | ||
const txt = this._getText(); | ||
const words = this.words = this._getWords(txt); | ||
const characters = this.characters = this._getCharacters(txt); | ||
this.fire('update', { | ||
@@ -202,0 +212,0 @@ words, |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
0
546
93647
+ Added@ckeditor/ckeditor5-clipboard@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-core@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-engine@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-enter@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-paragraph@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-select-all@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-typing@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-ui@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-undo@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-upload@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-utils@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-watchdog@38.1.0(transitive)
+ Added@ckeditor/ckeditor5-widget@38.1.0(transitive)
+ Addedckeditor5@38.1.0(transitive)
- Removed@ckeditor/ckeditor5-clipboard@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-core@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-engine@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-enter@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-paragraph@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-select-all@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-typing@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-ui@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-undo@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-upload@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-utils@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-watchdog@38.1.1(transitive)
- Removed@ckeditor/ckeditor5-widget@38.1.1(transitive)
- Removedckeditor5@38.1.1(transitive)
Updatedckeditor5@38.1.0