/**
 * ZDDC Classifier — drag payload bus for Classify & Copy.
 *
 * HTML5 dataTransfer can't be read during `dragover` (only on `drop`), and we
 * need the dragged set to drive drop-target highlighting. So the source keys
 * live in a module variable for the lifetime of a drag; dataTransfer carries a
 * marker so the browser shows a copy cursor and external drops are ignored.
 */
(function () {
    'use strict';

    var keys = [];

    function setDrag(srcKeys, e) {
        keys = (srcKeys || []).slice();
        if (e && e.dataTransfer) {
            e.dataTransfer.effectAllowed = 'copy';
            try { e.dataTransfer.setData('application/x-zddc-keys', keys.join('\n')); } catch (_) { /* ok */ }
        }
    }
    function getDrag() { return keys; }
    function active() { return keys.length > 0; }
    function clearDrag() { keys = []; }

    window.app.modules.dnd = {
        setDrag: setDrag, getDrag: getDrag, active: active, clearDrag: clearDrag,
    };
})();
