beansflight-json-form
Version:
> **版本号:verison 0.23.17**
185 lines (184 loc) • 5.18 kB
JavaScript
/**
* TinyMCE version 6.1.0 (2022-06-29)
*/
!(function () {
'use strict'
var t = tinymce.util.Tools.resolve('tinymce.PluginManager')
const e =
('string',
t =>
'string' ===
(t => {
const e = typeof t
return null === t
? 'null'
: 'object' === e && Array.isArray(t)
? 'array'
: 'object' === e &&
((r = o = t),
(a = String).prototype.isPrototypeOf(r) ||
(null === (s = o.constructor) || void 0 === s
? void 0
: s.name) === a.name)
? 'string'
: e
var r, o, a, s
})(t))
const r = (void 0, t => undefined === t)
var o = tinymce.util.Tools.resolve('tinymce.util.Delay'),
a = tinymce.util.Tools.resolve('tinymce.util.LocalStorage'),
s = tinymce.util.Tools.resolve('tinymce.util.Tools')
const n = t => {
const e = /^(\d+)([ms]?)$/.exec(t)
return (e[2] ? { s: 1e3, m: 6e4 }[e[2]] : 1) * parseInt(t, 10)
},
i = t => e => e.options.get(t),
u = i('autosave_ask_before_unload'),
l = i('autosave_restore_when_empty'),
c = i('autosave_interval'),
m = i('autosave_retention'),
d = t => {
const e = document.location
return t.options
.get('autosave_prefix')
.replace(/{path}/g, e.pathname)
.replace(/{query}/g, e.search)
.replace(/{hash}/g, e.hash)
.replace(/{id}/g, t.id)
},
f = (t, e) => {
if (r(e)) return t.dom.isEmpty(t.getBody())
{
const r = s.trim(e)
if ('' === r) return !0
{
const e = new DOMParser().parseFromString(r, 'text/html')
return t.dom.isEmpty(e)
}
}
},
v = t => {
const e = parseInt(a.getItem(d(t) + 'time'), 10) || 0
return !(new Date().getTime() - e > m(t) && (p(t, !1), 1))
},
p = (t, e) => {
const r = d(t)
a.removeItem(r + 'draft'),
a.removeItem(r + 'time'),
!1 !== e &&
(t => {
t.dispatch('RemoveDraft')
})(t)
},
g = t => {
const e = d(t)
!f(t) &&
t.isDirty() &&
(a.setItem(e + 'draft', t.getContent({ format: 'raw', no_events: !0 })),
a.setItem(e + 'time', new Date().getTime().toString()),
(t => {
t.dispatch('StoreDraft')
})(t))
},
y = t => {
const e = d(t)
v(t) &&
(t.setContent(a.getItem(e + 'draft'), { format: 'raw' }),
(t => {
t.dispatch('RestoreDraft')
})(t))
},
D = t => {
t.undoManager.transact(() => {
y(t), p(t)
}),
t.focus()
}
var h = tinymce.util.Tools.resolve('tinymce.EditorManager')
const _ = t => e => {
e.setEnabled(v(t))
const r = () => e.setEnabled(v(t))
return (
t.on('StoreDraft RestoreDraft RemoveDraft', r),
() => t.off('StoreDraft RestoreDraft RemoveDraft', r)
)
}
t.add(
'autosave',
t => (
(t => {
const r = t.options.register,
o = t => {
const r = e(t)
return r
? { value: n(t), valid: r }
: { valid: !1, message: 'Must be a string.' }
}
r('autosave_ask_before_unload', { processor: 'boolean', default: !0 }),
r('autosave_prefix', {
processor: 'string',
default: 'tinymce-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' })
})(t),
(t => {
t.editorManager.on('BeforeUnload', t => {
let e
s.each(h.get(), t => {
t.plugins.autosave && t.plugins.autosave.storeDraft(),
!e &&
t.isDirty() &&
u(t) &&
(e = t.translate(
'You have unsaved changes are you sure you want to navigate away?'
))
}),
e && (t.preventDefault(), (t.returnValue = e))
})
})(t),
(t => {
;(t => {
const e = c(t)
o.setEditorInterval(
t,
() => {
g(t)
},
e
)
})(t),
t.ui.registry.addButton('restoredraft', {
tooltip: 'Restore last draft',
icon: 'restore-draft',
onAction: () => {
D(t)
},
onSetup: _(t)
}),
t.ui.registry.addMenuItem('restoredraft', {
text: 'Restore last draft',
icon: 'restore-draft',
onAction: () => {
D(t)
},
onSetup: _(t)
})
})(t),
t.on('init', () => {
l(t) && t.dom.isEmpty(t.getBody()) && y(t)
}),
(t => ({
hasDraft: () => v(t),
storeDraft: () => g(t),
restoreDraft: () => y(t),
removeDraft: e => p(t, e),
isEmpty: e => f(t, e)
}))(t)
)
)
})()