/* * @Description: * @Author: Format-qi 283810417@qq.com * @Date: 2022-06-29 17:23:03 * @LastEditors: Format-qi 283810417@qq.com * @LastEditTime: 2022-06-29 17:25:01 */ const validEvents = [ 'onActivate', 'onAddUndo', 'onBeforeAddUndo', 'onBeforeExecCommand', 'onBeforeGetContent', 'onBeforeRenderUI', 'onBeforeSetContent', 'onBeforePaste', 'onBlur', 'onChange', 'onClearUndos', 'onClick', 'onContextMenu', 'onCopy', 'onCut', 'onDblclick', 'onDeactivate', 'onDirty', 'onDrag', 'onDragDrop', 'onDragEnd', 'onDragGesture', 'onDragOver', 'onDrop', 'onExecCommand', 'onFocus', 'onFocusIn', 'onFocusOut', 'onGetContent', 'onHide', 'onInit', 'onKeyDown', 'onKeyPress', 'onKeyUp', 'onLoadContent', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onNodeChange', 'onObjectResizeStart', 'onObjectResized', 'onObjectSelected', 'onPaste', 'onPostProcess', 'onPostRender', 'onPreProcess', 'onProgressState', 'onRedo', 'onRemove', 'onReset', 'onSaveContent', 'onSelectionChange', 'onSetAttrib', 'onSetContent', 'onShow', 'onSubmit', 'onUndo', 'onVisualAid', ]; const isValidKey = (key: string) => validEvents.indexOf(key) !== -1; export const bindHandlers = (initEvent: Event, listeners: any, editor: any): void => { Object.keys(listeners) .filter(isValidKey) .forEach((key: string) => { const handler = listeners[key]; if (typeof handler === 'function') { if (key === 'onInit') { handler(initEvent, editor); } else { editor.on(key.substring(2), (e: any) => handler(e, editor)); } } }); };