UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

122 lines (120 loc) 5.43 kB
/** * DevExtreme (cjs/__internal/file_management/provider_base.js) * Version: 25.2.3 * Build date: Fri Dec 12 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _common = require("../../core/utils/common"); var _data = require("../../core/utils/data"); var _date_serialization = _interopRequireDefault(require("../../core/utils/date_serialization")); var _deferred = require("../../core/utils/deferred"); var _iterator = require("../../core/utils/iterator"); var _type = require("../../core/utils/type"); var _file_system_item = _interopRequireDefault(require("../file_management/file_system_item")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } const DEFAULT_FILE_UPLOAD_CHUNK_SIZE = 2e5; class FileSystemProviderBase { constructor(options) { options = (0, _common.ensureDefined)(options, {}); this._keyGetter = (0, _data.compileGetter)(this._getKeyExpr(options)); this._nameGetter = (0, _data.compileGetter)(this._getNameExpr(options)); this._isDirGetter = (0, _data.compileGetter)(this._getIsDirExpr(options)); this._sizeGetter = (0, _data.compileGetter)(this._getSizeExpr(options)); this._dateModifiedGetter = (0, _data.compileGetter)(this._getDateModifiedExpr(options)); this._thumbnailGetter = (0, _data.compileGetter)(this._getThumbnailExpr(options)) } getItems(parentDirectory) { const deferred = new _deferred.Deferred; deferred.resolve([]); return deferred.promise() } abortFileUpload(fileData, chunksInfo, destinationDirectory) {} getItemsContent(items) {} getFileUploadChunkSize() { return 2e5 } _convertDataObjectsToFileItems(entries, pathInfo) { const result = []; (0, _iterator.each)(entries, ((_, entry) => { const fileItem = this._createFileItem(entry, pathInfo); result.push(fileItem) })); return result } _createFileItem(dataObj, pathInfo) { var _this$_keyGetter, _this$_nameGetter, _this$_isDirGetter, _this$_sizeGetter, _this$_dateModifiedGe, _this$_thumbnailGette; const key = null === (_this$_keyGetter = this._keyGetter) || void 0 === _this$_keyGetter ? void 0 : _this$_keyGetter.call(this, dataObj); const fileItem = new _file_system_item.default(pathInfo, null === (_this$_nameGetter = this._nameGetter) || void 0 === _this$_nameGetter ? void 0 : _this$_nameGetter.call(this, dataObj), !!(null !== (_this$_isDirGetter = this._isDirGetter) && void 0 !== _this$_isDirGetter && _this$_isDirGetter.call(this, dataObj)), key); fileItem.size = null === (_this$_sizeGetter = this._sizeGetter) || void 0 === _this$_sizeGetter ? void 0 : _this$_sizeGetter.call(this, dataObj); if (void 0 === fileItem.size) { fileItem.size = 0 } fileItem.dateModified = _date_serialization.default.deserializeDate(null === (_this$_dateModifiedGe = this._dateModifiedGetter) || void 0 === _this$_dateModifiedGe ? void 0 : _this$_dateModifiedGe.call(this, dataObj)); if (void 0 === fileItem.dateModified) { fileItem.dateModified = new Date } if (fileItem.isDirectory) { fileItem.hasSubDirectories = this._hasSubDirs(dataObj) } if (!key) { fileItem.key = fileItem.relativeName } fileItem.thumbnail = (null === (_this$_thumbnailGette = this._thumbnailGetter) || void 0 === _this$_thumbnailGette ? void 0 : _this$_thumbnailGette.call(this, dataObj)) || ""; fileItem.dataItem = dataObj; return fileItem } _hasSubDirs(dataObj) { return true } _getKeyExpr(options) { return options.keyExpr ?? this._defaultKeyExpr } _defaultKeyExpr(fileItem) { if (2 === arguments.length) { fileItem.__KEY__ = arguments[1]; return } return Object.prototype.hasOwnProperty.call(fileItem, "__KEY__") ? fileItem.__KEY__ : null } _getNameExpr(options) { return options.nameExpr ?? "name" } _getIsDirExpr(options) { return options.isDirectoryExpr ?? "isDirectory" } _getSizeExpr(options) { return options.sizeExpr ?? "size" } _getDateModifiedExpr(options) { return options.dateModifiedExpr ?? "dateModified" } _getThumbnailExpr(options) { return options.thumbnailExpr ?? "thumbnail" } _executeActionAsDeferred(action, keepResult) { const deferred = new _deferred.Deferred; try { const result = action(); if ((0, _type.isPromise)(result)) { (0, _deferred.fromPromise)(result).done((userResult => deferred.resolve(keepResult ? userResult : void 0))).fail((error => deferred.reject(error))) } else { deferred.resolve(keepResult ? result : void 0) } } catch (error) { return deferred.reject(error) } return deferred.promise() } } var _default = exports.default = FileSystemProviderBase;