@tabler/core
Version:
Premium and Open Source dashboard template with responsive and high quality UI.
7 lines • 3.53 kB
JavaScript
/**
* HugeRTE version 1.0.9 (2025-03-15)
* Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
* Copyright (c) 2024 HugeRTE contributors
* Licensed under the MIT license (https://github.com/hugerte/hugerte/blob/main/LICENSE.TXT)
*/
!function(){"use strict";var e=hugerte.util.Tools.resolve("hugerte.PluginManager");const t=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=o=e,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":t;var r,o,a,s})(e));const r=(void 0,e=>undefined===e);var o=hugerte.util.Tools.resolve("hugerte.util.Delay"),a=hugerte.util.Tools.resolve("hugerte.util.LocalStorage"),s=hugerte.util.Tools.resolve("hugerte.util.Tools");const n=e=>{const t=/^(\d+)([ms]?)$/.exec(e);return(t&&t[2]?{s:1e3,m:6e4}[t[2]]:1)*parseInt(e,10)},u=e=>t=>t.options.get(e),i=u("autosave_ask_before_unload"),l=u("autosave_restore_when_empty"),d=u("autosave_interval"),c=u("autosave_retention"),g=e=>{const t=document.location;return e.options.get("autosave_prefix").replace(/{path}/g,t.pathname).replace(/{query}/g,t.search).replace(/{hash}/g,t.hash).replace(/{id}/g,e.id)},v=(e,t)=>{if(r(t))return e.dom.isEmpty(e.getBody());{const r=s.trim(t);if(""===r)return!0;{const t=(new DOMParser).parseFromString(r,"text/html");return e.dom.isEmpty(t)}}},f=e=>{var t;const r=parseInt(null!==(t=a.getItem(g(e)+"time"))&&void 0!==t?t:"0",10)||0;return!((new Date).getTime()-r>c(e)&&(m(e,!1),1))},m=(e,t)=>{const r=g(e);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==t&&(e=>{e.dispatch("RemoveDraft")})(e)},p=e=>{const t=g(e);!v(e)&&e.isDirty()&&(a.setItem(t+"draft",e.getContent({format:"raw",no_events:!0})),a.setItem(t+"time",(new Date).getTime().toString()),(e=>{e.dispatch("StoreDraft")})(e))},h=e=>{var t;const r=g(e);f(e)&&(e.setContent(null!==(t=a.getItem(r+"draft"))&&void 0!==t?t:"",{format:"raw"}),(e=>{e.dispatch("RestoreDraft")})(e))};var y=hugerte.util.Tools.resolve("hugerte.EditorManager");const D=e=>t=>{t.setEnabled(f(e));const r=()=>t.setEnabled(f(e));return e.on("StoreDraft RestoreDraft RemoveDraft",r),()=>e.off("StoreDraft RestoreDraft RemoveDraft",r)};e.add("autosave",(e=>((e=>{const r=e.options.register,o=e=>{const r=t(e);return r?{value:n(e),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"hugerte-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(e),(e=>{e.editorManager.on("BeforeUnload",(e=>{let t;s.each(y.get(),(e=>{e.plugins.autosave&&e.plugins.autosave.storeDraft(),!t&&e.isDirty()&&i(e)&&(t=e.translate("You have unsaved changes are you sure you want to navigate away?"))})),t&&(e.preventDefault(),e.returnValue=t)}))})(e),(e=>{(e=>{const t=d(e);o.setEditorInterval(e,(()=>{p(e)}),t)})(e);const t=()=>{(e=>{e.undoManager.transact((()=>{h(e),m(e)})),e.focus()})(e)};e.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:t,onSetup:D(e)}),e.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:t,onSetup:D(e)})})(e),e.on("init",(()=>{l(e)&&e.dom.isEmpty(e.getBody())&&h(e)})),(e=>({hasDraft:()=>f(e),storeDraft:()=>p(e),restoreDraft:()=>h(e),removeDraft:t=>m(e,t),isEmpty:t=>v(e,t)}))(e))))}();