Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/uploader/tile-widget/src/mixins/ |
Upload File : |
import { Event } from 'main.core'; import { hasDataTransferOnlyFiles } from 'ui.uploader.core'; /** * @memberof BX.UI.Uploader */ export const DragOverMixin = { directives: { drop: { beforeMount(el, binding, vnode): void { if (binding.value === false) { return; } function addClass(): void { binding.instance.dragOver = true; el.classList.add('--drag-over'); } function removeClass(): void { binding.instance.dragOver = false; el.classList.remove('--drag-over'); } let lastEnterTarget = null; Event.bind(el, 'dragenter', (event: DragEvent): void => { hasDataTransferOnlyFiles(event.dataTransfer, false) .then((success): void => { if (success) { event.preventDefault(); event.stopPropagation(); lastEnterTarget = event.target; addClass(); } }) .catch(() => { // no-op }) ; }); Event.bind(el, 'dragleave', (event: DragEvent): void => { event.preventDefault(); event.stopPropagation(); if (lastEnterTarget === event.target) { removeClass(); } }); Event.bind(el, 'drop', (event: DragEvent): void => { removeClass(); }); }, unmounted(el, binding, vnode) { if (binding.value === false) { return; } binding.instance.dragOver = false; Event.unbindAll(el, 'dragenter'); Event.unbindAll(el, 'dragleave'); Event.unbindAll(el, 'drop'); }, }, }, data() { return { dragOver: false, }; }, };