mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-17 16:38:18 +00:00
83 lines
1.6 KiB
JavaScript
83 lines
1.6 KiB
JavaScript
/* global DOM */
|
|
const SELECTED_FILE = 'selected-file';
|
|
const Cmd = {
|
|
getSelectedFiles,
|
|
isSelected,
|
|
unselectFile,
|
|
selectFile,
|
|
selectAllFiles,
|
|
toggleSelectedFile,
|
|
toggleAllSelectedFiles,
|
|
};
|
|
|
|
/**
|
|
* selected file check
|
|
*
|
|
* @param currentFile
|
|
*/
|
|
export function isSelected(currentFile) {
|
|
if (!currentFile)
|
|
return false;
|
|
|
|
return DOM.isContainClass(currentFile, SELECTED_FILE);
|
|
}
|
|
|
|
/**
|
|
* select current file
|
|
* @param currentFile
|
|
*/
|
|
export function selectFile(currentFile) {
|
|
const current = currentFile || DOM.getCurrentFile();
|
|
|
|
current.classList.add(SELECTED_FILE);
|
|
|
|
return Cmd;
|
|
}
|
|
|
|
export function unselectFile(currentFile) {
|
|
const current = currentFile || DOM.getCurrentFile();
|
|
|
|
current.classList.remove(SELECTED_FILE);
|
|
|
|
return Cmd;
|
|
}
|
|
|
|
export function toggleSelectedFile(currentFile) {
|
|
const current = currentFile || DOM.getCurrentFile();
|
|
const name = DOM.getCurrentName(current);
|
|
|
|
if (name === '..')
|
|
return Cmd;
|
|
|
|
current.classList.toggle(SELECTED_FILE);
|
|
|
|
return Cmd;
|
|
}
|
|
|
|
export function toggleAllSelectedFiles() {
|
|
DOM
|
|
.getAllFiles()
|
|
.map(DOM.toggleSelectedFile);
|
|
|
|
return Cmd;
|
|
}
|
|
|
|
export function selectAllFiles() {
|
|
DOM
|
|
.getAllFiles()
|
|
.map(DOM.selectFile);
|
|
|
|
return Cmd;
|
|
}
|
|
|
|
/**
|
|
* unified way to get selected files
|
|
*
|
|
* @currentFile
|
|
*/
|
|
export function getSelectedFiles() {
|
|
const panel = DOM.getPanel();
|
|
const selected = DOM.getByClassAll(SELECTED_FILE, panel);
|
|
|
|
return Array.from(selected);
|
|
}
|