@ckeditor/ckeditor5-autosave 35.4.0 → 36.0.1
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 +1 -1
- package/LICENSE.md +1 -1
- package/build/autosave.js +2 -2
- package/ckeditor5-metadata.json +1 -1
- package/package.json +8 -8
- package/src/autosave.js +4 -4
- package/src/index.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -104,4 +104,4 @@ Internal changes only (updated dependencies, documentation, etc.).
|
|
|
104
104
|
|
|
105
105
|
### Other changes
|
|
106
106
|
|
|
107
|
-
* The first implementation of the autosave plugin. Check out the [demo](https://ckeditor.com/docs/ckeditor5/latest/installation/
|
|
107
|
+
* The first implementation of the autosave plugin. Check out the [demo](https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/getting-and-setting-data.html#autosave-feature).
|
package/LICENSE.md
CHANGED
|
@@ -2,7 +2,7 @@ Software License Agreement
|
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
4
|
**CKEditor 5 autosave feature** – https://github.com/ckeditor/ckeditor5-autosave <br>
|
|
5
|
-
Copyright (c) 2003-
|
|
5
|
+
Copyright (c) 2003-2023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
|
|
6
6
|
|
|
7
7
|
Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
|
|
8
8
|
|
package/build/autosave.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"Saving changes":"Saving changes"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
|
|
2
2
|
/*!
|
|
3
|
-
* @license Copyright (c) 2003-
|
|
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={704:(t,e,i)=>{t.exports=i(79)("./src/core.js")},209:(t,e,i)=>{t.exports=i(79)("./src/utils.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,i),o.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{Autosave:()=>
|
|
5
|
+
*/(()=>{var t={704:(t,e,i)=>{t.exports=i(79)("./src/core.js")},209:(t,e,i)=>{t.exports=i(79)("./src/utils.js")},79:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,i),o.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{Autosave:()=>L});var t=i(704),e=i(209);const s=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const o="object"==typeof global&&global&&global.Object===Object&&global;var r="object"==typeof self&&self&&self.Object===Object&&self;const a=o||r||Function("return this")();const c=function(){return a.Date.now()};var u=/\s/;const d=function(t){for(var e=t.length;e--&&u.test(t.charAt(e)););return e};var l=/^\s+/;const h=function(t){return t?t.slice(0,d(t)+1).replace(l,""):t};const v=a.Symbol;var f=Object.prototype,m=f.hasOwnProperty,g=f.toString,p=v?v.toStringTag:void 0;const _=function(t){var e=m.call(t,p),i=t[p];try{t[p]=void 0;var n=!0}catch(t){}var s=g.call(t);return n&&(e?t[p]=i:delete t[p]),s};var b=Object.prototype.toString;const y=function(t){return b.call(t)};var S="[object Null]",j="[object Undefined]",O=v?v.toStringTag:void 0;const T=function(t){return null==t?void 0===t?j:S:O&&O in Object(t)?_(t):y(t)};const w=function(t){return null!=t&&"object"==typeof t};var P="[object Symbol]";const A=function(t){return"symbol"==typeof t||w(t)&&T(t)==P};var x=NaN,E=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,C=/^0o[0-7]+$/i,D=parseInt;const N=function(t){if("number"==typeof t)return t;if(A(t))return x;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=h(t);var i=I.test(t);return i||C.test(t)?D(t.slice(2),i?2:8):E.test(t)?x:+t};var k="Expected a function",M=Math.max,K=Math.min;const V=function(t,e,i){var n,o,r,a,u,d,l=0,h=!1,v=!1,f=!0;if("function"!=typeof t)throw new TypeError(k);function m(e){var i=n,s=o;return n=o=void 0,l=e,a=t.apply(s,i)}function g(t){var i=t-d;return void 0===d||i>=e||i<0||v&&t-l>=r}function p(){var t=c();if(g(t))return _(t);u=setTimeout(p,function(t){var i=e-(t-d);return v?K(i,r-(t-l)):i}(t))}function _(t){return u=void 0,f&&n?m(t):(n=o=void 0,a)}function b(){var t=c(),i=g(t);if(n=arguments,o=this,d=t,i){if(void 0===u)return function(t){return l=t,u=setTimeout(p,e),h?m(t):a}(d);if(v)return clearTimeout(u),u=setTimeout(p,e),m(d)}return void 0===u&&(u=setTimeout(p,e)),a}return e=N(e)||0,s(i)&&(h=!!i.leading,r=(v="maxWait"in i)?M(N(i.maxWait)||0,e):r,f="trailing"in i?!!i.trailing:f),b.cancel=function(){void 0!==u&&clearTimeout(u),l=0,n=d=o=u=void 0},b.flush=function(){return void 0===u?a:_(c())},b};class L extends t.Plugin{static get pluginName(){return"Autosave"}static get requires(){return[t.PendingActions]}constructor(i){super(i);const n=i.config.get("autosave")||{},s=n.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=V(this._save.bind(this),s),this._lastDocumentVersion=i.model.document.version,this._savePromise=null,this._domEmitter=Object.create(e.DomEmitterMixin),this._config=n,this._pendingActions=i.plugins.get(t.PendingActions),this._makeImmediateSave=!1}init(){const t=this.editor,e=t.model.document;this.listenTo(t,"ready",(()=>{this.listenTo(e,"change:data",((t,e)=>{this._saveCallbacks.length&&e.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(t,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((t,e)=>{this._pendingActions.hasAny&&(e.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((t=>t(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((t=>{throw this.state="error",this.state="saving",this._debouncedSave(),t})),this._savePromise)}_setPendingAction(){const t=this.editor.t;this._action||(this._action=this._pendingActions.add(t("Saving changes")))}get _saveCallbacks(){const t=[];return this.adapter&&this.adapter.save&&t.push(this.adapter.save),this._config.save&&t.push(this._config.save),t}}(0,e.mix)(L,e.ObservableMixin)})(),(window.CKEditor5=window.CKEditor5||{}).autosave=n})();
|
package/ckeditor5-metadata.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"name": "Autosave",
|
|
5
5
|
"className": "Autosave",
|
|
6
6
|
"description": "Allows you to automatically save the data (e.g. send it to the server) when needed, for example, when the user changed the content.",
|
|
7
|
-
"docs": "installation/
|
|
7
|
+
"docs": "installation/getting-started/getting-and-setting-data.html#autosave-feature",
|
|
8
8
|
"path": "src/autosave.js"
|
|
9
9
|
}
|
|
10
10
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-autosave",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "36.0.1",
|
|
4
4
|
"description": "Autosave feature for CKEditor 5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
],
|
|
13
13
|
"main": "src/index.js",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"ckeditor5": "^
|
|
15
|
+
"ckeditor5": "^36.0.1",
|
|
16
16
|
"lodash-es": "^4.17.15"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@ckeditor/ckeditor5-core": "^
|
|
20
|
-
"@ckeditor/ckeditor5-dev-utils": "^
|
|
21
|
-
"@ckeditor/ckeditor5-editor-classic": "^
|
|
22
|
-
"@ckeditor/ckeditor5-paragraph": "^
|
|
23
|
-
"@ckeditor/ckeditor5-source-editing": "^
|
|
24
|
-
"@ckeditor/ckeditor5-theme-lark": "^
|
|
19
|
+
"@ckeditor/ckeditor5-core": "^36.0.1",
|
|
20
|
+
"@ckeditor/ckeditor5-dev-utils": "^32.0.0",
|
|
21
|
+
"@ckeditor/ckeditor5-editor-classic": "^36.0.1",
|
|
22
|
+
"@ckeditor/ckeditor5-paragraph": "^36.0.1",
|
|
23
|
+
"@ckeditor/ckeditor5-source-editing": "^36.0.1",
|
|
24
|
+
"@ckeditor/ckeditor5-theme-lark": "^36.0.1",
|
|
25
25
|
"webpack": "^5.58.1",
|
|
26
26
|
"webpack-cli": "^4.9.0"
|
|
27
27
|
},
|
package/src/autosave.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -37,8 +37,8 @@ import { debounce } from 'lodash-es';
|
|
|
37
37
|
* }
|
|
38
38
|
* } );
|
|
39
39
|
*
|
|
40
|
-
* Read more about this feature in the {@glink installation/
|
|
41
|
-
* section of the {@glink installation/
|
|
40
|
+
* Read more about this feature in the {@glink installation/getting-started/getting-and-setting-data#autosave-feature Autosave feature}
|
|
41
|
+
* section of the {@glink installation/getting-started/getting-and-setting-data Saving and getting data}.
|
|
42
42
|
*
|
|
43
43
|
* @extends module:core/plugin~Plugin
|
|
44
44
|
*/
|
|
@@ -399,7 +399,7 @@ mix( Autosave, ObservableMixin );
|
|
|
399
399
|
*
|
|
400
400
|
* See {@link module:core/editor/editorconfig~EditorConfig all editor configuration options}.
|
|
401
401
|
*
|
|
402
|
-
* See also the demo of the {@glink installation/
|
|
402
|
+
* See also the demo of the {@glink installation/getting-started/getting-and-setting-data#autosave-feature autosave feature}.
|
|
403
403
|
*
|
|
404
404
|
* @interface AutosaveConfig
|
|
405
405
|
*/
|
package/src/index.js
CHANGED