UNPKG

beansflight-json-form

Version:

> **版本号:verison 0.23.17**

118 lines (106 loc) 3.23 kB
/** * TinyMCE version 6.1.0 (2022-06-29) */ ;(function () { 'use strict' var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager') const isSimpleType = type => value => typeof value === type const isFunction = isSimpleType('function') var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils') var global = tinymce.util.Tools.resolve('tinymce.util.Tools') const option = name => editor => editor.options.get(name) const register$2 = editor => { const registerOption = editor.options.register registerOption('save_enablewhendirty', { processor: 'boolean', default: true }) registerOption('save_onsavecallback', { processor: 'function' }) registerOption('save_oncancelcallback', { processor: 'function' }) } const enableWhenDirty = option('save_enablewhendirty') const getOnSaveCallback = option('save_onsavecallback') const getOnCancelCallback = option('save_oncancelcallback') const displayErrorMessage = (editor, message) => { editor.notificationManager.open({ text: message, type: 'error' }) } const save = editor => { const formObj = global$1.DOM.getParent(editor.id, 'form') if (enableWhenDirty(editor) && !editor.isDirty()) { return } editor.save() const onSaveCallback = getOnSaveCallback(editor) if (isFunction(onSaveCallback)) { onSaveCallback.call(editor, editor) editor.nodeChanged() return } if (formObj) { editor.setDirty(false) if (!formObj.onsubmit || formObj.onsubmit()) { if (typeof formObj.submit === 'function') { formObj.submit() } else { displayErrorMessage(editor, 'Error: Form submit field collision.') } } editor.nodeChanged() } else { displayErrorMessage(editor, 'Error: No form element found.') } } const cancel = editor => { const h = global.trim(editor.startContent) const onCancelCallback = getOnCancelCallback(editor) if (isFunction(onCancelCallback)) { onCancelCallback.call(editor, editor) return } editor.resetContent(h) } const register$1 = editor => { editor.addCommand('mceSave', () => { save(editor) }) editor.addCommand('mceCancel', () => { cancel(editor) }) } const stateToggle = editor => api => { const handler = () => { api.setEnabled(!enableWhenDirty(editor) || editor.isDirty()) } handler() editor.on('NodeChange dirty', handler) return () => editor.off('NodeChange dirty', handler) } const register = editor => { editor.ui.registry.addButton('save', { icon: 'save', tooltip: 'Save', enabled: false, onAction: () => editor.execCommand('mceSave'), onSetup: stateToggle(editor) }) editor.ui.registry.addButton('cancel', { icon: 'cancel', tooltip: 'Cancel', enabled: false, onAction: () => editor.execCommand('mceCancel'), onSetup: stateToggle(editor) }) editor.addShortcut('Meta+S', '', 'mceSave') } var Plugin = () => { global$2.add('save', editor => { register$2(editor) register(editor) register$1(editor) }) } Plugin() })()