@hungthuanmk/ng2-dnd
Version:
Angular 14+ Drag-and-Drop without dependencies
39 lines • 5.19 kB
JavaScript
// Copyright (C) 2016-2020 Sergey Akopkokhyants
// This project is licensed under the terms of the MIT license.
// https://github.com/akserg/ng2-dnd
import { isString } from './dnd.utils';
export class DataTransferEffect {
constructor(name) {
this.name = name;
}
}
DataTransferEffect.COPY = new DataTransferEffect('copy');
DataTransferEffect.LINK = new DataTransferEffect('link');
DataTransferEffect.MOVE = new DataTransferEffect('move');
DataTransferEffect.NONE = new DataTransferEffect('none');
export class DragImage {
constructor(imageElement, x_offset = 0, y_offset = 0) {
this.imageElement = imageElement;
this.x_offset = x_offset;
this.y_offset = y_offset;
if (isString(this.imageElement)) {
// Create real image from string source
let imgScr = this.imageElement;
this.imageElement = new HTMLImageElement();
this.imageElement.src = imgScr;
}
}
}
export class DragDropConfig {
constructor() {
this.onDragStartClass = "dnd-drag-start";
this.onDragEnterClass = "dnd-drag-enter";
this.onDragOverClass = "dnd-drag-over";
this.onSortableDragClass = "dnd-sortable-drag";
this.dragEffect = DataTransferEffect.MOVE;
this.dropEffect = DataTransferEffect.MOVE;
this.dragCursor = "move";
this.defaultCursor = "pointer";
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kbmQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQywrREFBK0Q7QUFDL0Qsb0NBQW9DO0FBRXBDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsTUFBTSxPQUFPLGtCQUFrQjtJQU8zQixZQUFtQixJQUFnQztRQUFoQyxTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUFJLENBQUM7O0FBTGpELHVCQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0Qyx1QkFBSSxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsdUJBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLHVCQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUtqRCxNQUFNLE9BQU8sU0FBUztJQUNsQixZQUNXLFlBQWlCLEVBQ2pCLFdBQW1CLENBQUMsRUFDcEIsV0FBbUIsQ0FBQztRQUZwQixpQkFBWSxHQUFaLFlBQVksQ0FBSztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDdkIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdCLHVDQUF1QztZQUN2QyxJQUFJLE1BQU0sR0FBbUIsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBYSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0NBQ1I7QUFFRCxNQUFNLE9BQU8sY0FBYztJQUEzQjtRQUNXLHFCQUFnQixHQUFXLGdCQUFnQixDQUFDO1FBQzVDLHFCQUFnQixHQUFXLGdCQUFnQixDQUFDO1FBQzVDLG9CQUFlLEdBQVcsZUFBZSxDQUFDO1FBQzFDLHdCQUFtQixHQUFXLG1CQUFtQixDQUFDO1FBRWxELGVBQVUsR0FBdUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ3pELGVBQVUsR0FBdUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ3pELGVBQVUsR0FBVyxNQUFNLENBQUM7UUFFNUIsa0JBQWEsR0FBVyxTQUFTLENBQUM7SUFDN0MsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgU2VyZ2V5IEFrb3Brb2toeWFudHNcclxuLy8gVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2UuXHJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ha3NlcmcvbmcyLWRuZFxyXG5cclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuL2RuZC51dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVRyYW5zZmVyRWZmZWN0IHtcclxuXHJcbiAgICBzdGF0aWMgQ09QWSA9IG5ldyBEYXRhVHJhbnNmZXJFZmZlY3QoJ2NvcHknKTtcclxuICAgIHN0YXRpYyBMSU5LID0gbmV3IERhdGFUcmFuc2ZlckVmZmVjdCgnbGluaycpO1xyXG4gICAgc3RhdGljIE1PVkUgPSBuZXcgRGF0YVRyYW5zZmVyRWZmZWN0KCdtb3ZlJyk7XHJcbiAgICBzdGF0aWMgTk9ORSA9IG5ldyBEYXRhVHJhbnNmZXJFZmZlY3QoJ25vbmUnKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogRGF0YVRyYW5zZmVyWydkcm9wRWZmZWN0J10pIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHJhZ0ltYWdlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpbWFnZUVsZW1lbnQ6IGFueSxcclxuICAgICAgICBwdWJsaWMgeF9vZmZzZXQ6IG51bWJlciA9IDAsXHJcbiAgICAgICAgcHVibGljIHlfb2Zmc2V0OiBudW1iZXIgPSAwKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1N0cmluZyh0aGlzLmltYWdlRWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSByZWFsIGltYWdlIGZyb20gc3RyaW5nIHNvdXJjZVxyXG4gICAgICAgICAgICAgICAgbGV0IGltZ1Njcjogc3RyaW5nID0gPHN0cmluZz50aGlzLmltYWdlRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50ID0gbmV3IEhUTUxJbWFnZUVsZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgICg8SFRNTEltYWdlRWxlbWVudD50aGlzLmltYWdlRWxlbWVudCkuc3JjID0gaW1nU2NyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHJhZ0Ryb3BDb25maWcge1xyXG4gICAgcHVibGljIG9uRHJhZ1N0YXJ0Q2xhc3M6IHN0cmluZyA9IFwiZG5kLWRyYWctc3RhcnRcIjtcclxuICAgIHB1YmxpYyBvbkRyYWdFbnRlckNsYXNzOiBzdHJpbmcgPSBcImRuZC1kcmFnLWVudGVyXCI7XHJcbiAgICBwdWJsaWMgb25EcmFnT3ZlckNsYXNzOiBzdHJpbmcgPSBcImRuZC1kcmFnLW92ZXJcIjtcclxuICAgIHB1YmxpYyBvblNvcnRhYmxlRHJhZ0NsYXNzOiBzdHJpbmcgPSBcImRuZC1zb3J0YWJsZS1kcmFnXCI7XHJcblxyXG4gICAgcHVibGljIGRyYWdFZmZlY3Q6IERhdGFUcmFuc2ZlckVmZmVjdCA9IERhdGFUcmFuc2ZlckVmZmVjdC5NT1ZFO1xyXG4gICAgcHVibGljIGRyb3BFZmZlY3Q6IERhdGFUcmFuc2ZlckVmZmVjdCA9IERhdGFUcmFuc2ZlckVmZmVjdC5NT1ZFO1xyXG4gICAgcHVibGljIGRyYWdDdXJzb3I6IHN0cmluZyA9IFwibW92ZVwiO1xyXG4gICAgcHVibGljIGRyYWdJbWFnZTogRHJhZ0ltYWdlO1xyXG4gICAgcHVibGljIGRlZmF1bHRDdXJzb3I6IHN0cmluZyA9IFwicG9pbnRlclwiO1xyXG59XHJcbiJdfQ==