devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
100 lines (99 loc) • 2.83 kB
JavaScript
/**
* DevExtreme (esm/__internal/ui/file_manager/ui.file_manager.common.js)
* Version: 25.2.5
* Build date: Fri Feb 20 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
noop
} from "../../../core/utils/common";
import {
Deferred,
when
} from "../../../core/utils/deferred";
import {
extend
} from "../../../core/utils/extend";
import {
isDefined,
isFunction
} from "../../../core/utils/type";
export const whenSome = (arg, onSuccess, onError) => {
onSuccess = onSuccess || noop;
onError = onError || noop;
if (!Array.isArray(arg)) {
arg = [arg]
}
const deferreds = arg.map(((item, index) => when(item).then((result => {
if (isFunction(onSuccess)) {
onSuccess({
item: item,
index: index,
result: result
})
}
return result
}), (error => {
if (!error) {
error = {}
}
error.index = index;
if (isFunction(onError)) {
onError(error)
}
return (new Deferred).resolve().promise()
}))));
return when.apply(null, deferreds)
};
export const getDisplayFileSize = byteSize => {
const sizesTitles = ["B", "KB", "MB", "GB", "TB"];
let index = 0;
let displaySize = byteSize;
while (displaySize >= 1024 && index <= sizesTitles.length - 1) {
displaySize /= 1024;
index += 1
}
displaySize = Math.round(10 * displaySize) / 10;
return `${displaySize} ${sizesTitles[index]}`
};
export const extendAttributes = (targetObject, sourceObject, objectKeysArray) => {
objectKeysArray.forEach((objectKey => {
extend(true, targetObject, isDefined(sourceObject[objectKey]) ? {
[objectKey]: sourceObject[objectKey]
} : {})
}));
return targetObject
};
export const findItemsByKeys = (itemInfos, keys) => {
const itemMap = {};
keys.forEach((key => {
itemMap[key] = null
}));
itemInfos.forEach((itemInfo => {
const {
key: key
} = itemInfo.fileItem;
if (Object.prototype.hasOwnProperty.call(itemMap, key)) {
itemMap[key] = itemInfo
}
}));
const result = [];
keys.forEach((key => {
const itemInfo = itemMap[key];
if (itemInfo) {
result.push(itemInfo)
}
}));
return result
};
export const getMapFromObject = object => {
const keys = Object.keys(object);
const values = [];
keys.forEach((key => values.push(object[key])));
return {
keys: keys,
values: values
}
};