Server IP : 162.0.232.140 / Your IP : 3.16.125.156 Web Server : LiteSpeed System : Linux premium139.web-hosting.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64 User : micrcvoy ( 740) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/micrcvoy/public_html/controlPanel/assets/plugins/summernote/src/js/module/ |
Upload File : |
define([ 'summernote/core/list', 'summernote/core/dom', 'summernote/core/key', 'summernote/core/agent' ], function (list, dom, key, agent) { var Clipboard = function (handler) { var $paste; this.attach = function (layoutInfo) { // [workaround] getting image from clipboard // - IE11 and Firefox: CTRL+v hook // - Webkit: event.clipboardData if ((agent.isMSIE && agent.browserVersion > 10) || agent.isFF) { $paste = $('<div />').attr('contenteditable', true).css({ position : 'absolute', left : -100000, opacity : 0 }); layoutInfo.editable().on('keydown', function (e) { if (e.ctrlKey && e.keyCode === key.code.V) { handler.invoke('saveRange', layoutInfo.editable()); $paste.focus(); setTimeout(function () { pasteByHook(layoutInfo); }, 0); } }); layoutInfo.editable().before($paste); } else { layoutInfo.editable().on('paste', pasteByEvent); } }; var pasteByHook = function (layoutInfo) { var $editable = layoutInfo.editable(); var node = $paste[0].firstChild; if (dom.isImg(node)) { var dataURI = node.src; var decodedData = atob(dataURI.split(',')[1]); var array = new Uint8Array(decodedData.length); for (var i = 0; i < decodedData.length; i++) { array[i] = decodedData.charCodeAt(i); } var blob = new Blob([array], { type : 'image/png' }); blob.name = 'clipboard.png'; handler.invoke('restoreRange', $editable); handler.invoke('focus', $editable); handler.insertImages(layoutInfo, [blob]); } else { var pasteContent = $('<div />').html($paste.html()).html(); handler.invoke('restoreRange', $editable); handler.invoke('focus', $editable); if (pasteContent) { handler.invoke('pasteHTML', $editable, pasteContent); } } $paste.empty(); }; /** * paste by clipboard event * * @param {Event} event */ var pasteByEvent = function (event) { var clipboardData = event.originalEvent.clipboardData; var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); var $editable = layoutInfo.editable(); if (clipboardData && clipboardData.items && clipboardData.items.length) { var item = list.head(clipboardData.items); if (item.kind === 'file' && item.type.indexOf('image/') !== -1) { handler.insertImages(layoutInfo, [item.getAsFile()]); } handler.invoke('editor.afterCommand', $editable); } }; }; return Clipboard; });