UNPKG

froala-editor

Version:

A beautiful Javascript WYSIWYG HTML rich text editor. High performance and modern design make it easy to use for developers and loved by users.

7 lines (6 loc) 1.94 kB
/*! * froala_editor v2.8.3 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2018 Froala Labs */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(e.jQuery)}(this,function(e){"use strict";var t=(e=e&&e.hasOwnProperty("default")?e["default"]:e).FE;Object.assign(t.DEFAULTS,{saveInterval:1e3,saveURL:null,saveParams:{},saveParam:"body",saveMethod:"POST"}),t.PLUGINS.save=function(f){var e=null,u=null,t=!1,c=1,l=2,n={};function p(e,t){f.events.trigger("save.error",[{code:e,message:n[e]},t])}function a(e){void 0===e&&(e=f.html.get());var t=e,n=f.events.trigger("save.before",[e]);if(!1===n)return!1;if("string"==typeof n&&(e=n),f.opts.saveURL){var a={};for(var o in f.opts.saveParams)if(Object.prototype.hasOwnProperty.call(f.opts.saveParams,o)){var s=f.opts.saveParams[o];a[o]="function"==typeof s?s.call(this):s}var r={};r[f.opts.saveParam]=e;var i=f.core.getXHR(f.opts.saveURL,f.opts.saveMethod),v=f.drag_support.formdata?new FormData:null;if(v){a=Object.assign(r,a);for(o in a)Object.prototype.hasOwnProperty.call(a,o)&&v.append(o,a[o])}i.onload=function(){u=t,f.events.trigger("save.after",[i.response])},i.onerror=function(){p(l,i.response||i.responseText)},i.send(v)}else p(c)}function o(){clearTimeout(e),e=setTimeout(function(){var e=f.html.get();(u!=e||t)&&(t=!1,a(u=e))},f.opts.saveInterval)}return n[c]="Missing saveURL option.",n[l]="Something went wrong during save.",{_init:function(){f.opts.saveInterval&&(u=f.html.get(),f.events.on("contentChanged",o),f.events.on("keydown destroy",function(){clearTimeout(e)}))},save:a,reset:function(){o(),t=!1},force:function(){t=!0}}},t.DefineIcon("save",{NAME:"floppy-o",FA5NAME:"disk"}),t.RegisterCommand("save",{title:"Save",undo:!1,focus:!1,refreshAfterCallback:!1,callback:function(){this.save.save()},plugin:"save"})});