Files
aklive2d/apps/module/spine-ts/player/example/generator/ui.js
2025-04-30 22:08:27 +08:00

66 lines
1.8 KiB
JavaScript
Executable File

var spineGenerator;
(function (spineGenerator) {
var UI = (function () {
function UI(dropZone, multiple, acceptedExtensions, callback) {
}
UI.createElement = function (parent, html) {
parent.insertAdjacentHTML("beforeend", html);
return parent.lastElementChild;
}
UI.clear = function(element) {
element.innerHTML = "";
}
UI.hide = function(element) {
element.__oldDisplay = element.style.display;
element.style.display = "none";
}
UI.show = function(element, display) {
if (display) element.style.display = display;
else if (element.__oldDisplay) element.style.display = element.__oldDisplay;
else element.style.display = "block";
}
return UI;
}());
spineGenerator.UI = UI;
}(spineGenerator || (spineGenerator = {})));
(function (spineGenerator) {
var UI = spineGenerator.UI;
var DropZone = (function () {
function DropZone(dropZone, multiple, acceptedExtensions, callback) {
var fileButton = this.fileButton = UI.createElement(dropZone,
`<input style="display:none;" type="file" ${multiple?"multiple":""} accept="${acceptedExtensions}"/>`);
dropZone.onclick = function() {
fileButton.click();
};
dropZone.addEventListener("dragenter", function (event) {
event.stopPropagation();
event.preventDefault();
}, false);
dropZone.addEventListener("dragover", function (event) {
event.stopPropagation();
event.preventDefault();
}, false);
dropZone.addEventListener("drop", function (event) {
event.stopPropagation();
event.preventDefault();
loadFiles(event.dataTransfer.files);
}, false);
fileButton.onchange = function () {
callback(fileButton.files);
fileButton.value = "";
};
}
return DropZone;
}());
spineGenerator.UI.DropZone = DropZone;
}(spineGenerator || (spineGenerator = {})));