@ckeditor/ckeditor5-upload 41.4.2 → 42.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/filereader.ts","../src/filerepository.ts","../src/adapters/base64uploadadapter.ts","../src/adapters/simpleuploadadapter.ts"],"names":["FileReader","ObservableMixin","error","_reader","data","_data","read","file","reader","total","size","Promise","resolve","reject","onload","result","onerror","onabort","readAsDataURL","abort","constructor","window","undefined","set","onprogress","evt","loaded","FileRepository","Plugin","pluginName","requires","PendingActions","init","loaders","on","_updatePendingAction","bind","to","uploaded","getLoader","fileOrPromise","_loadersMap","get","createLoader","createUploadAdapter","logWarning","loader","FileLoader","add","then","catch","aggregatedUploaded","aggregatedTotal","uploadTotal","destroyLoader","fileOrPromiseOrLoader","_destroy","remove","forEach","value","key","delete","pendingActions","editor","plugins","length","_pendingAction","t","getMessage","parseInt","uploadedPercent","Collection","Map","_filePromiseWrapper","promise","status","CKEditorError","err","upload","_adapter","uploadResponse","isFulfilled","rejecter","_createFilePromiseWrapper","filePromise","wrapper","uploadAdapterCreator","id","uid","Base64UploadAdapter","Adapter","addEventListener","default","SimpleUploadAdapter","options","config","uploadUrl","_initRequest","_initListeners","_sendRequest","xhr","XMLHttpRequest","open","responseType","genericErrorText","name","response","message","urls","url","lengthComputable","headers","withCredentials","headerName","Object","keys","setRequestHeader","FormData","append","send"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ObservableMixin, CKEditorError, uid, logWarning, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\nclass FileReader extends ObservableMixin() {\n /**\n * Returns error that occurred during file reading.\n */ get error() {\n return this._reader.error;\n }\n /**\n * Holds the data of an already loaded file. The file must be first loaded\n * by using {@link module:upload/filereader~FileReader#read `read()`}.\n */ get data() {\n return this._data;\n }\n /**\n * Reads the provided file.\n *\n * @param file Native File object.\n * @returns Returns a promise that will be resolved with file's content.\n * The promise will be rejected in case of an error or when the reading process is aborted.\n */ read(file) {\n const reader = this._reader;\n this.total = file.size;\n return new Promise((resolve, reject)=>{\n reader.onload = ()=>{\n const result = reader.result;\n this._data = result;\n resolve(result);\n };\n reader.onerror = ()=>{\n reject('error');\n };\n reader.onabort = ()=>{\n reject('aborted');\n };\n this._reader.readAsDataURL(file);\n });\n }\n /**\n * Aborts file reader.\n */ abort() {\n this._reader.abort();\n }\n /**\n * Creates an instance of the FileReader.\n */ constructor(){\n super();\n const reader = new window.FileReader();\n this._reader = reader;\n this._data = undefined;\n this.set('loaded', 0);\n reader.onprogress = (evt)=>{\n this.loaded = evt.loaded;\n };\n }\n}\n\nclass FileRepository extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'FileRepository';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n PendingActions\n ];\n }\n /**\n * @inheritDoc\n */ init() {\n // Keeps upload in a sync with pending actions.\n this.loaders.on('change', ()=>this._updatePendingAction());\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total)=>{\n return total ? uploaded / total * 100 : 0;\n });\n }\n /**\n * Returns the loader associated with specified file or promise.\n *\n * To get loader by id use `fileRepository.loaders.get( id )`.\n *\n * @param fileOrPromise Native file or promise handle.\n */ getLoader(fileOrPromise) {\n return this._loadersMap.get(fileOrPromise) || null;\n }\n /**\n * Creates a loader instance for the given file.\n *\n * Requires {@link #createUploadAdapter} factory to be defined.\n *\n * @param fileOrPromise Native File object or native Promise object which resolves to a File.\n */ createLoader(fileOrPromise) {\n if (!this.createUploadAdapter) {\n /**\n * You need to enable an upload adapter in order to be able to upload files.\n *\n * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n * without {@link module:upload/filerepository~FileRepository#createUploadAdapter defining an upload adapter}.\n *\n * **If you see this warning when using one of the {@glink installation/getting-started/predefined-builds\n * CKEditor 5 Builds}**\n * it means that you did not configure any of the upload adapters available by default in those builds.\n *\n * See the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n * adapters are available in the builds and how to configure them.\n *\n * **If you see this warning when using a custom build** there is a chance that you enabled\n * a feature like {@link module:image/imageupload~ImageUpload},\n * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n * You can choose one of the existing upload adapters listed in the\n * {@glink features/images/image-upload/image-upload \"Image upload overview\"}.\n *\n * You can also implement your {@glink framework/deep-dive/upload-adapter own image upload adapter}.\n *\n * @error filerepository-no-upload-adapter\n */ logWarning('filerepository-no-upload-adapter');\n return null;\n }\n const loader = new FileLoader(Promise.resolve(fileOrPromise), this.createUploadAdapter);\n this.loaders.add(loader);\n this._loadersMap.set(fileOrPromise, loader);\n // Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n if (fileOrPromise instanceof Promise) {\n loader.file.then((file)=>{\n this._loadersMap.set(file, loader);\n })// Every then() must have a catch().\n // File loader state (and rejections) are handled in read() and upload().\n // Also, see the \"does not swallow the file promise rejection\" test.\n .catch(()=>{});\n }\n loader.on('change:uploaded', ()=>{\n let aggregatedUploaded = 0;\n for (const loader of this.loaders){\n aggregatedUploaded += loader.uploaded;\n }\n this.uploaded = aggregatedUploaded;\n });\n loader.on('change:uploadTotal', ()=>{\n let aggregatedTotal = 0;\n for (const loader of this.loaders){\n if (loader.uploadTotal) {\n aggregatedTotal += loader.uploadTotal;\n }\n }\n this.uploadTotal = aggregatedTotal;\n });\n return loader;\n }\n /**\n * Destroys the given loader.\n *\n * @param fileOrPromiseOrLoader File or Promise associated with that loader or loader itself.\n */ destroyLoader(fileOrPromiseOrLoader) {\n const loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader(fileOrPromiseOrLoader);\n loader._destroy();\n this.loaders.remove(loader);\n this._loadersMap.forEach((value, key)=>{\n if (value === loader) {\n this._loadersMap.delete(key);\n }\n });\n }\n /**\n * Registers or deregisters pending action bound with upload progress.\n */ _updatePendingAction() {\n const pendingActions = this.editor.plugins.get(PendingActions);\n if (this.loaders.length) {\n if (!this._pendingAction) {\n const t = this.editor.t;\n const getMessage = (value)=>`${t('Upload in progress')} ${parseInt(value)}%.`;\n this._pendingAction = pendingActions.add(getMessage(this.uploadedPercent));\n this._pendingAction.bind('message').to(this, 'uploadedPercent', getMessage);\n }\n } else {\n pendingActions.remove(this._pendingAction);\n this._pendingAction = null;\n }\n }\n constructor(){\n super(...arguments);\n /**\n * Collection of loaders associated with this repository.\n */ this.loaders = new Collection();\n /**\n * Loaders mappings used to retrieve loaders references.\n */ this._loadersMap = new Map();\n /**\n * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n * while upload is in progress. When there is no upload then value is `null`.\n */ this._pendingAction = null;\n }\n}\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */ class FileLoader extends ObservableMixin() {\n /**\n * A `Promise` which resolves to a `File` instance associated with this file loader.\n */ get file() {\n if (!this._filePromiseWrapper) {\n // Loader was destroyed, return promise which resolves to null.\n return Promise.resolve(null);\n } else {\n // The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n //\n //\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n //\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n //\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n //\n // Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n // is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n return this._filePromiseWrapper.promise.then((file)=>this._filePromiseWrapper ? file : null);\n }\n }\n /**\n * Returns the file data. To read its data, you need for first load the file\n * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n */ get data() {\n return this._reader.data;\n }\n /**\n * Reads file using {@link module:upload/filereader~FileReader}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n * is different than `idle`.\n *\n * Example usage:\n *\n * ```ts\n * fileLoader.read()\n * \t.then( data => { ... } )\n * \t.catch( err => {\n * \t\tif ( err === 'aborted' ) {\n * \t\t\tconsole.log( 'Reading aborted.' );\n * \t\t} else {\n * \t\t\tconsole.log( 'Reading error.', err );\n * \t\t}\n * \t} );\n * ```\n *\n * @returns Returns promise that will be resolved with read data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */ read() {\n if (this.status != 'idle') {\n /**\n * You cannot call read if the status is different than idle.\n *\n * @error filerepository-read-wrong-status\n */ throw new CKEditorError('filerepository-read-wrong-status', this);\n }\n this.status = 'reading';\n return this.file.then((file)=>this._reader.read(file)).then((data)=>{\n // Edge case: reader was aborted after file was read - double check for proper status.\n // It can happen when image was deleted during its upload.\n if (this.status !== 'reading') {\n throw this.status;\n }\n this.status = 'idle';\n return data;\n }).catch((err)=>{\n if (err === 'aborted') {\n this.status = 'aborted';\n throw 'aborted';\n }\n this.status = 'error';\n throw this._reader.error ? this._reader.error : err;\n });\n }\n /**\n * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n * is different than `idle`.\n * Example usage:\n *\n * ```ts\n * fileLoader.upload()\n * \t.then( data => { ... } )\n * \t.catch( e => {\n * \t\tif ( e === 'aborted' ) {\n * \t\t\tconsole.log( 'Uploading aborted.' );\n * \t\t} else {\n * \t\t\tconsole.log( 'Uploading error.', e );\n * \t\t}\n * \t} );\n * ```\n *\n * @returns Returns promise that will be resolved with response data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */ upload() {\n if (this.status != 'idle') {\n /**\n * You cannot call upload if the status is different than idle.\n *\n * @error filerepository-upload-wrong-status\n */ throw new CKEditorError('filerepository-upload-wrong-status', this);\n }\n this.status = 'uploading';\n return this.file.then(()=>this._adapter.upload()).then((data)=>{\n this.uploadResponse = data;\n this.status = 'idle';\n return data;\n }).catch((err)=>{\n if (this.status === 'aborted') {\n throw 'aborted';\n }\n this.status = 'error';\n throw err;\n });\n }\n /**\n * Aborts loading process.\n */ abort() {\n const status = this.status;\n this.status = 'aborted';\n if (!this._filePromiseWrapper.isFulfilled) {\n // Edge case: file loader is aborted before read() is called\n // so it might happen that no one handled the rejection of this promise.\n // See https://github.com/ckeditor/ckeditor5-upload/pull/100\n this._filePromiseWrapper.promise.catch(()=>{});\n this._filePromiseWrapper.rejecter('aborted');\n } else if (status == 'reading') {\n this._reader.abort();\n } else if (status == 'uploading' && this._adapter.abort) {\n this._adapter.abort();\n }\n this._destroy();\n }\n /**\n * Performs cleanup.\n *\n * @internal\n */ _destroy() {\n this._filePromiseWrapper = undefined;\n this._reader = undefined;\n this._adapter = undefined;\n this.uploadResponse = undefined;\n }\n /**\n * Wraps a given file promise into another promise giving additional\n * control (resolving, rejecting, checking if fulfilled) over it.\n *\n * @param filePromise The initial file promise to be wrapped.\n */ _createFilePromiseWrapper(filePromise) {\n const wrapper = {};\n wrapper.promise = new Promise((resolve, reject)=>{\n wrapper.rejecter = reject;\n wrapper.isFulfilled = false;\n filePromise.then((file)=>{\n wrapper.isFulfilled = true;\n resolve(file);\n }).catch((err)=>{\n wrapper.isFulfilled = true;\n reject(err);\n });\n });\n return wrapper;\n }\n /**\n * Creates a new instance of `FileLoader`.\n *\n * @param filePromise A promise which resolves to a file instance.\n * @param uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n */ constructor(filePromise, uploadAdapterCreator){\n super();\n this.id = uid();\n this._filePromiseWrapper = this._createFilePromiseWrapper(filePromise);\n this._adapter = uploadAdapterCreator(this);\n this._reader = new FileReader();\n this.set('status', 'idle');\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total)=>{\n return total ? uploaded / total * 100 : 0;\n });\n this.set('uploadResponse', null);\n }\n}\n\nclass Base64UploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'Base64UploadAdapter';\n }\n /**\n * @inheritDoc\n */ init() {\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>new Adapter$1(loader);\n }\n}\n/**\n * The upload adapter that converts images inserted into the editor into Base64 strings.\n */ let Adapter$1 = class Adapter {\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\n */ upload() {\n return new Promise((resolve, reject)=>{\n const reader = this.reader = new window.FileReader();\n reader.addEventListener('load', ()=>{\n resolve({\n default: reader.result\n });\n });\n reader.addEventListener('error', (err)=>{\n reject(err);\n });\n reader.addEventListener('abort', ()=>{\n reject();\n });\n this.loader.file.then((file)=>{\n reader.readAsDataURL(file);\n });\n });\n }\n /**\n * Aborts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#abort\n */ abort() {\n this.reader.abort();\n }\n /**\n * Creates a new adapter instance.\n */ constructor(loader){\n this.loader = loader;\n }\n};\n\nclass SimpleUploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'SimpleUploadAdapter';\n }\n /**\n * @inheritDoc\n */ init() {\n const options = this.editor.config.get('simpleUpload');\n if (!options) {\n return;\n }\n if (!options.uploadUrl) {\n /**\n * The {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `config.simpleUpload.uploadUrl`}\n * configuration required by the {@link module:upload/adapters/simpleuploadadapter~SimpleUploadAdapter `SimpleUploadAdapter`}\n * is missing. Make sure the correct URL is specified for the image upload to work properly.\n *\n * @error simple-upload-adapter-missing-uploadurl\n */ logWarning('simple-upload-adapter-missing-uploadurl');\n return;\n }\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>{\n return new Adapter(loader, options);\n };\n }\n}\n/**\n * Upload adapter.\n */ class Adapter {\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\n */ upload() {\n return this.loader.file.then((file)=>new Promise((resolve, reject)=>{\n this._initRequest();\n this._initListeners(resolve, reject, file);\n this._sendRequest(file);\n }));\n }\n /**\n * Aborts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#abort\n */ abort() {\n if (this.xhr) {\n this.xhr.abort();\n }\n }\n /**\n * Initializes the `XMLHttpRequest` object using the URL specified as\n * {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `simpleUpload.uploadUrl`} in the editor's\n * configuration.\n */ _initRequest() {\n const xhr = this.xhr = new XMLHttpRequest();\n xhr.open('POST', this.options.uploadUrl, true);\n xhr.responseType = 'json';\n }\n /**\n * Initializes XMLHttpRequest listeners\n *\n * @param resolve Callback function to be called when the request is successful.\n * @param reject Callback function to be called when the request cannot be completed.\n * @param file Native File object.\n */ _initListeners(resolve, reject, file) {\n const xhr = this.xhr;\n const loader = this.loader;\n const genericErrorText = `Couldn't upload file: ${file.name}.`;\n xhr.addEventListener('error', ()=>reject(genericErrorText));\n xhr.addEventListener('abort', ()=>reject());\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || response.error) {\n return reject(response && response.error && response.error.message ? response.error.message : genericErrorText);\n }\n const urls = response.url ? {\n default: response.url\n } : response.urls;\n // Resolve with the normalized `urls` property and pass the rest of the response\n // to allow customizing the behavior of features relying on the upload adapters.\n resolve({\n ...response,\n urls\n });\n });\n // Upload progress when it is supported.\n /* istanbul ignore else -- @preserve */ if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt)=>{\n if (evt.lengthComputable) {\n loader.uploadTotal = evt.total;\n loader.uploaded = evt.loaded;\n }\n });\n }\n }\n /**\n * Prepares the data and sends the request.\n *\n * @param file File instance to be uploaded.\n */ _sendRequest(file) {\n // Set headers if specified.\n const headers = this.options.headers || {};\n // Use the withCredentials flag if specified.\n const withCredentials = this.options.withCredentials || false;\n for (const headerName of Object.keys(headers)){\n this.xhr.setRequestHeader(headerName, headers[headerName]);\n }\n this.xhr.withCredentials = withCredentials;\n // Prepare the form data.\n const data = new FormData();\n data.append('upload', file);\n // Send the request.\n this.xhr.send(data);\n }\n /**\n * Creates a new adapter instance.\n */ constructor(loader, options){\n this.loader = loader;\n this.options = options;\n }\n}\n\nexport { Base64UploadAdapter, FileRepository, SimpleUploadAdapter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/filereader\n */\n\n/* globals window */\n\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\n\ntype DomFileReader = globalThis.FileReader;\n\n/**\n * Wrapper over the native `FileReader`.\n */\nexport default class FileReader extends ObservableMixin() {\n\tpublic total!: number;\n\n\t/**\n\t * Instance of native FileReader.\n\t */\n\tprivate readonly _reader: DomFileReader;\n\n\t/**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */\n\tprivate _data?: string;\n\n\t/**\n\t * Number of bytes loaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public loaded: number;\n\n\t/**\n\t * Creates an instance of the FileReader.\n\t */\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst reader = new window.FileReader();\n\n\t\tthis._reader = reader;\n\t\tthis._data = undefined;\n\n\t\tthis.set( 'loaded', 0 );\n\n\t\treader.onprogress = evt => {\n\t\t\tthis.loaded = evt.loaded;\n\t\t};\n\t}\n\n\t/**\n\t * Returns error that occurred during file reading.\n\t */\n\tpublic get error(): DOMException | null {\n\t\treturn this._reader.error;\n\t}\n\n\t/**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */\n\tpublic get data(): string | undefined {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * Reads the provided file.\n\t *\n\t * @param file Native File object.\n\t * @returns Returns a promise that will be resolved with file's content.\n\t * The promise will be rejected in case of an error or when the reading process is aborted.\n\t */\n\tpublic read( file: File ): Promise<string> {\n\t\tconst reader = this._reader;\n\t\tthis.total = file.size;\n\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\treader.onload = () => {\n\t\t\t\tconst result = reader.result as string;\n\n\t\t\t\tthis._data = result;\n\n\t\t\t\tresolve( result );\n\t\t\t};\n\n\t\t\treader.onerror = () => {\n\t\t\t\treject( 'error' );\n\t\t\t};\n\n\t\t\treader.onabort = () => {\n\t\t\t\treject( 'aborted' );\n\t\t\t};\n\n\t\t\tthis._reader.readAsDataURL( file );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts file reader.\n\t */\n\tpublic abort(): void {\n\t\tthis._reader.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/filerepository\n */\n\nimport {\n\tPlugin,\n\tPendingActions,\n\ttype PendingAction\n} from '@ckeditor/ckeditor5-core';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tObservableMixin,\n\tlogWarning,\n\tuid,\n\ttype ObservableChangeEvent,\n\ttype CollectionChangeEvent\n} from '@ckeditor/ckeditor5-utils';\n\nimport FileReader from './filereader.js';\n\n/**\n * File repository plugin. A central point for managing file upload.\n *\n * To use it, first you need an upload adapter. Upload adapter's job is to handle communication with the server\n * (sending the file and handling server's response). You can use one of the existing plugins introducing upload adapters\n * (e.g. {@link module:easy-image/cloudservicesuploadadapter~CloudServicesUploadAdapter} or\n * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}) or write your own one – see\n * the {@glink framework/deep-dive/upload-adapter Custom image upload adapter deep-dive} guide.\n *\n * Then, you can use {@link module:upload/filerepository~FileRepository#createLoader `createLoader()`} and the returned\n * {@link module:upload/filerepository~FileLoader} instance to load and upload files.\n */\nexport default class FileRepository extends Plugin {\n\t/**\n\t * Collection of loaders associated with this repository.\n\t */\n\tpublic loaders = new Collection<FileLoader>();\n\n\t/**\n\t * A factory function which should be defined before using `FileRepository`.\n\t *\n\t * It should return a new instance of {@link module:upload/filerepository~UploadAdapter} that will be used to upload files.\n\t * {@link module:upload/filerepository~FileLoader} instance associated with the adapter\n\t * will be passed to that function.\n\t *\n\t * For more information and example see {@link module:upload/filerepository~UploadAdapter}.\n\t */\n\tpublic createUploadAdapter?: ( loader: FileLoader ) => UploadAdapter;\n\n\t/**\n\t * Loaders mappings used to retrieve loaders references.\n\t */\n\tprivate _loadersMap = new Map<File | Promise<File>, FileLoader>();\n\n\t/**\n\t * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n\t * while upload is in progress. When there is no upload then value is `null`.\n\t */\n\tprivate _pendingAction: PendingAction | null = null;\n\n\t/**\n\t * Number of bytes uploaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploaded: number;\n\n\t/**\n\t * Number of total bytes to upload.\n\t *\n\t * It might be different than the file size because of headers and additional data.\n\t * It contains `null` if value is not available yet, so it's better to use {@link #uploadedPercent} to monitor\n\t * the progress.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadTotal: number | null;\n\n\t/**\n\t * Upload progress in percents.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadedPercent: number;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FileRepository' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ PendingActions ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\t// Keeps upload in a sync with pending actions.\n\t\tthis.loaders.on<CollectionChangeEvent>( 'change', () => this._updatePendingAction() );\n\n\t\tthis.set( 'uploaded', 0 );\n\t\tthis.set( 'uploadTotal', null );\n\n\t\tthis.bind( 'uploadedPercent' ).to( this, 'uploaded', this, 'uploadTotal', ( uploaded, total ) => {\n\t\t\treturn total ? ( uploaded / total * 100 ) : 0;\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the loader associated with specified file or promise.\n\t *\n\t * To get loader by id use `fileRepository.loaders.get( id )`.\n\t *\n\t * @param fileOrPromise Native file or promise handle.\n\t */\n\tpublic getLoader( fileOrPromise: File | Promise<File> ): FileLoader | null {\n\t\treturn this._loadersMap.get( fileOrPromise ) || null;\n\t}\n\n\t/**\n\t * Creates a loader instance for the given file.\n\t *\n\t * Requires {@link #createUploadAdapter} factory to be defined.\n\t *\n\t * @param fileOrPromise Native File object or native Promise object which resolves to a File.\n\t */\n\tpublic createLoader( fileOrPromise: File | Promise<File> ): FileLoader | null {\n\t\tif ( !this.createUploadAdapter ) {\n\t\t\t/**\n\t\t\t * You need to enable an upload adapter in order to be able to upload files.\n\t\t\t *\n\t\t\t * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n\t\t\t * without {@link module:upload/filerepository~FileRepository#createUploadAdapter defining an upload adapter}.\n\t\t\t *\n\t\t\t * **If you see this warning when using one of the {@glink installation/getting-started/predefined-builds\n\t\t\t * CKEditor 5 Builds}**\n\t\t\t * it means that you did not configure any of the upload adapters available by default in those builds.\n\t\t\t *\n\t\t\t * See the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n\t\t\t * adapters are available in the builds and how to configure them.\n\t\t\t *\n\t\t\t * **If you see this warning when using a custom build** there is a chance that you enabled\n\t\t\t * a feature like {@link module:image/imageupload~ImageUpload},\n\t\t\t * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n\t\t\t * You can choose one of the existing upload adapters listed in the\n\t\t\t * {@glink features/images/image-upload/image-upload \"Image upload overview\"}.\n\t\t\t *\n\t\t\t * You can also implement your {@glink framework/deep-dive/upload-adapter own image upload adapter}.\n\t\t\t *\n\t\t\t * @error filerepository-no-upload-adapter\n\t\t\t */\n\t\t\tlogWarning( 'filerepository-no-upload-adapter' );\n\n\t\t\treturn null;\n\t\t}\n\n\t\tconst loader = new FileLoader( Promise.resolve( fileOrPromise ), this.createUploadAdapter );\n\n\t\tthis.loaders.add( loader );\n\t\tthis._loadersMap.set( fileOrPromise, loader );\n\n\t\t// Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n\t\tif ( fileOrPromise instanceof Promise ) {\n\t\t\tloader.file\n\t\t\t\t.then( file => {\n\t\t\t\t\tthis._loadersMap.set( file!, loader );\n\t\t\t\t} )\n\t\t\t\t// Every then() must have a catch().\n\t\t\t\t// File loader state (and rejections) are handled in read() and upload().\n\t\t\t\t// Also, see the \"does not swallow the file promise rejection\" test.\n\t\t\t\t.catch( () => {} );\n\t\t}\n\n\t\tloader.on<ObservableChangeEvent>( 'change:uploaded', () => {\n\t\t\tlet aggregatedUploaded = 0;\n\n\t\t\tfor ( const loader of this.loaders ) {\n\t\t\t\taggregatedUploaded += loader.uploaded;\n\t\t\t}\n\n\t\t\tthis.uploaded = aggregatedUploaded;\n\t\t} );\n\n\t\tloader.on<ObservableChangeEvent>( 'change:uploadTotal', () => {\n\t\t\tlet aggregatedTotal = 0;\n\n\t\t\tfor ( const loader of this.loaders ) {\n\t\t\t\tif ( loader.uploadTotal ) {\n\t\t\t\t\taggregatedTotal += loader.uploadTotal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.uploadTotal = aggregatedTotal;\n\t\t} );\n\n\t\treturn loader;\n\t}\n\n\t/**\n\t * Destroys the given loader.\n\t *\n\t * @param fileOrPromiseOrLoader File or Promise associated with that loader or loader itself.\n\t */\n\tpublic destroyLoader( fileOrPromiseOrLoader: File | Promise<File> | FileLoader ): void {\n\t\tconst loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader( fileOrPromiseOrLoader )!;\n\n\t\tloader._destroy();\n\n\t\tthis.loaders.remove( loader );\n\n\t\tthis._loadersMap.forEach( ( value, key ) => {\n\t\t\tif ( value === loader ) {\n\t\t\t\tthis._loadersMap.delete( key );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Registers or deregisters pending action bound with upload progress.\n\t */\n\tprivate _updatePendingAction(): void {\n\t\tconst pendingActions = this.editor.plugins.get( PendingActions );\n\n\t\tif ( this.loaders.length ) {\n\t\t\tif ( !this._pendingAction ) {\n\t\t\t\tconst t = this.editor.t;\n\t\t\t\tconst getMessage = ( value: number ) => `${ t( 'Upload in progress' ) } ${ parseInt( value as any ) }%.`;\n\n\t\t\t\tthis._pendingAction = pendingActions.add( getMessage( this.uploadedPercent ) );\n\t\t\t\tthis._pendingAction.bind( 'message' ).to( this, 'uploadedPercent', getMessage );\n\t\t\t}\n\t\t} else {\n\t\t\tpendingActions.remove( this._pendingAction! );\n\t\t\tthis._pendingAction = null;\n\t\t}\n\t}\n}\n\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */\nclass FileLoader extends ObservableMixin() {\n\t/**\n\t * Unique id of FileLoader instance.\n\t *\n\t * @readonly\n\t */\n\tpublic readonly id: string;\n\n\t/**\n\t * Additional wrapper over the initial file promise passed to this loader.\n\t */\n\tprivate _filePromiseWrapper: FilePromiseWrapper;\n\n\t/**\n\t * Adapter instance associated with this file loader.\n\t */\n\tprivate _adapter: UploadAdapter;\n\n\t/**\n\t * FileReader used by FileLoader.\n\t */\n\tprivate _reader: FileReader;\n\n\t/**\n\t * Current status of FileLoader. It can be one of the following:\n\t *\n\t * * 'idle',\n\t * * 'reading',\n\t * * 'uploading',\n\t * * 'aborted',\n\t * * 'error'.\n\t *\n\t * When reading status can change in a following way:\n\t *\n\t * `idle` -> `reading` -> `idle`\n\t * `idle` -> `reading -> `aborted`\n\t * `idle` -> `reading -> `error`\n\t *\n\t * When uploading status can change in a following way:\n\t *\n\t * `idle` -> `uploading` -> `idle`\n\t * `idle` -> `uploading` -> `aborted`\n\t * `idle` -> `uploading` -> `error`\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public status: 'idle' | 'reading' | 'uploading' | 'aborted' | 'error';\n\n\t/**\n\t * Number of bytes uploaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploaded: number;\n\n\t/**\n\t * Number of total bytes to upload.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadTotal: number | null;\n\n\t/**\n\t * Upload progress in percents.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadedPercent: number;\n\n\t/**\n\t * Response of the upload.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadResponse?: UploadResponse | null;\n\n\t/**\n\t * Creates a new instance of `FileLoader`.\n\t *\n\t * @param filePromise A promise which resolves to a file instance.\n\t * @param uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n\t */\n\tconstructor( filePromise: Promise<File>, uploadAdapterCreator: ( loader: FileLoader ) => UploadAdapter ) {\n\t\tsuper();\n\n\t\tthis.id = uid();\n\t\tthis._filePromiseWrapper = this._createFilePromiseWrapper( filePromise );\n\t\tthis._adapter = uploadAdapterCreator( this );\n\t\tthis._reader = new FileReader();\n\n\t\tthis.set( 'status', 'idle' );\n\t\tthis.set( 'uploaded', 0 );\n\t\tthis.set( 'uploadTotal', null );\n\n\t\tthis.bind( 'uploadedPercent' ).to( this, 'uploaded', this, 'uploadTotal', ( uploaded, total ) => {\n\t\t\treturn total ? ( uploaded / total * 100 ) : 0;\n\t\t} );\n\n\t\tthis.set( 'uploadResponse', null );\n\t}\n\n\t/**\n\t * A `Promise` which resolves to a `File` instance associated with this file loader.\n\t */\n\tpublic get file(): Promise<File | null> {\n\t\tif ( !this._filePromiseWrapper ) {\n\t\t\t// Loader was destroyed, return promise which resolves to null.\n\t\t\treturn Promise.resolve( null );\n\t\t} else {\n\t\t\t// The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n\t\t\t//\n\t\t\t//\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n\t\t\t//\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n\t\t\t//\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n\t\t\t//\n\t\t\t// Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n\t\t\t// is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n\t\t\treturn this._filePromiseWrapper.promise.then( file => this._filePromiseWrapper ? file : null );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the file data. To read its data, you need for first load the file\n\t * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n\t */\n\tpublic get data(): string | undefined {\n\t\treturn this._reader.data;\n\t}\n\n\t/**\n\t * Reads file using {@link module:upload/filereader~FileReader}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n\t * is different than `idle`.\n\t *\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.read()\n\t * \t.then( data => { ... } )\n\t * \t.catch( err => {\n\t * \t\tif ( err === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Reading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Reading error.', err );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with read data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */\n\tpublic read(): Promise<string> {\n\t\tif ( this.status != 'idle' ) {\n\t\t\t/**\n\t\t\t * You cannot call read if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-read-wrong-status\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'filerepository-read-wrong-status', this );\n\t\t}\n\n\t\tthis.status = 'reading';\n\n\t\treturn this.file\n\t\t\t.then( file => this._reader.read( file! ) )\n\t\t\t.then( data => {\n\t\t\t\t// Edge case: reader was aborted after file was read - double check for proper status.\n\t\t\t\t// It can happen when image was deleted during its upload.\n\t\t\t\tif ( this.status !== 'reading' ) {\n\t\t\t\t\tthrow this.status;\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'idle';\n\n\t\t\t\treturn data;\n\t\t\t} )\n\t\t\t.catch( err => {\n\t\t\t\tif ( err === 'aborted' ) {\n\t\t\t\t\tthis.status = 'aborted';\n\t\t\t\t\tthrow 'aborted';\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'error';\n\t\t\t\tthrow this._reader.error ? this._reader.error : err;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n\t * is different than `idle`.\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.upload()\n\t * \t.then( data => { ... } )\n\t * \t.catch( e => {\n\t * \t\tif ( e === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Uploading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Uploading error.', e );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with response data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\tif ( this.status != 'idle' ) {\n\t\t\t/**\n\t\t\t * You cannot call upload if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-upload-wrong-status\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'filerepository-upload-wrong-status', this );\n\t\t}\n\n\t\tthis.status = 'uploading';\n\n\t\treturn this.file\n\t\t\t.then( () => this._adapter.upload() )\n\t\t\t.then( data => {\n\t\t\t\tthis.uploadResponse = data;\n\t\t\t\tthis.status = 'idle';\n\n\t\t\t\treturn data;\n\t\t\t} )\n\t\t\t.catch( err => {\n\t\t\t\tif ( this.status === 'aborted' ) {\n\t\t\t\t\tthrow 'aborted';\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'error';\n\t\t\t\tthrow err;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Aborts loading process.\n\t */\n\tpublic abort(): void {\n\t\tconst status = this.status;\n\t\tthis.status = 'aborted';\n\n\t\tif ( !this._filePromiseWrapper.isFulfilled ) {\n\t\t\t// Edge case: file loader is aborted before read() is called\n\t\t\t// so it might happen that no one handled the rejection of this promise.\n\t\t\t// See https://github.com/ckeditor/ckeditor5-upload/pull/100\n\t\t\tthis._filePromiseWrapper.promise.catch( () => {} );\n\n\t\t\tthis._filePromiseWrapper.rejecter( 'aborted' );\n\t\t} else if ( status == 'reading' ) {\n\t\t\tthis._reader.abort();\n\t\t} else if ( status == 'uploading' && this._adapter.abort ) {\n\t\t\tthis._adapter.abort();\n\t\t}\n\n\t\tthis._destroy();\n\t}\n\n\t/**\n\t * Performs cleanup.\n\t *\n\t * @internal\n\t */\n\tpublic _destroy(): void {\n\t\tthis._filePromiseWrapper = undefined as any;\n\t\tthis._reader = undefined as any;\n\t\tthis._adapter = undefined as any;\n\t\tthis.uploadResponse = undefined;\n\t}\n\n\t/**\n\t * Wraps a given file promise into another promise giving additional\n\t * control (resolving, rejecting, checking if fulfilled) over it.\n\t *\n\t * @param filePromise The initial file promise to be wrapped.\n\t */\n\tprivate _createFilePromiseWrapper( filePromise: Promise<File> ): FilePromiseWrapper {\n\t\tconst wrapper: Partial<FilePromiseWrapper> = {};\n\n\t\twrapper.promise = new Promise<File>( ( resolve, reject ) => {\n\t\t\twrapper.rejecter = reject;\n\t\t\twrapper.isFulfilled = false;\n\n\t\t\tfilePromise\n\t\t\t\t.then( file => {\n\t\t\t\t\twrapper.isFulfilled = true;\n\t\t\t\t\tresolve( file );\n\t\t\t\t} )\n\t\t\t\t.catch( err => {\n\t\t\t\t\twrapper.isFulfilled = true;\n\t\t\t\t\treject( err );\n\t\t\t\t} );\n\t\t} );\n\n\t\treturn wrapper as FilePromiseWrapper;\n\t}\n}\n\nexport type { FileLoader };\n\n/**\n * Upload adapter interface used by the {@link module:upload/filerepository~FileRepository file repository}\n * to handle file upload. An upload adapter is a bridge between the editor and server that handles file uploads.\n * It should contain a logic necessary to initiate an upload process and monitor its progress.\n *\n * Learn how to develop your own upload adapter for CKEditor 5 in the\n * {@glink framework/deep-dive/upload-adapter \"Custom upload adapter\"} guide.\n *\n * @interface UploadAdapter\n */\nexport interface UploadAdapter {\n\n\t/**\n\t * Executes the upload process.\n\t * This method should return a promise that will resolve when data will be uploaded to server. Promise should be\n\t * resolved with an object containing information about uploaded file:\n\t *\n\t * ```json\n\t * {\n\t * \tdefault: 'http://server/default-size.image.png'\n\t * }\n\t * ```\n\t *\n\t * Additionally, other image sizes can be provided:\n\t *\n\t * ```json\n\t * {\n\t * \tdefault: 'http://server/default-size.image.png',\n\t * \t'160': 'http://server/size-160.image.png',\n\t * \t'500': 'http://server/size-500.image.png',\n\t * \t'1000': 'http://server/size-1000.image.png',\n\t * \t'1052': 'http://server/default-size.image.png'\n\t * }\n\t * ```\n\t *\n\t * You can also pass additional properties from the server. In this case you need to wrap URLs\n\t * in the `urls` object and pass additional properties along the `urls` property.\n\t *\n\t * ```json\n\t * {\n\t * \tmyCustomProperty: 'foo',\n\t * \turls: {\n\t * \t\tdefault: 'http://server/default-size.image.png',\n\t * \t\t'160': 'http://server/size-160.image.png',\n\t * \t\t'500': 'http://server/size-500.image.png',\n\t * \t\t'1000': 'http://server/size-1000.image.png',\n\t * \t\t'1052': 'http://server/default-size.image.png'\n\t * \t}\n\t * }\n\t * ```\n\t *\n\t * NOTE: When returning multiple images, the widest returned one should equal the default one. It is essential to\n\t * correctly set `width` attribute of the image. See this discussion:\n\t * https://github.com/ckeditor/ckeditor5-easy-image/issues/4 for more information.\n\t *\n\t * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n\t * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n\t *\n\t * @returns Promise that should be resolved when data is uploaded.\n\t */\n\tupload(): Promise<UploadResponse>;\n\n\t/**\n\t * Aborts the upload process.\n\t * After aborting it should reject promise returned from {@link #upload upload()}.\n\t *\n\t * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n\t * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n\t */\n\tabort?(): void;\n}\n\nexport type UploadResponse = Record<string, unknown>;\n\n/**\n * Object returned by {@link module:upload/filerepository~FileLoader#_createFilePromiseWrapper} method\n * to add more control over the initial file promise passed to {@link module:upload/filerepository~FileLoader}.\n */\ntype FilePromiseWrapper = {\n\n\t/**\n\t * Wrapper promise which can be chained for further processing.\n\t */\n\tpromise: Promise<File>;\n\n\t/**\n\t * Rejects the promise when called.\n\t */\n\trejecter: ( reason?: unknown ) => void;\n\n\t/**\n\t * Whether original promise is already fulfilled.\n\t */\n\tisFulfilled: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/adapters/base64uploadadapter\n */\n\n/* globals window */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport FileRepository, { type UploadResponse, type FileLoader, type UploadAdapter } from '../filerepository.js';\n\ntype DomFileReader = globalThis.FileReader;\n\n/**\n * A plugin that converts images inserted into the editor into [Base64 strings](https://en.wikipedia.org/wiki/Base64)\n * in the {@glink installation/getting-started/getting-and-setting-data editor output}.\n *\n * This kind of image upload does not require server processing – images are stored with the rest of the text and\n * displayed by the web browser without additional requests.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class Base64UploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Base64UploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => new Adapter( loader );\n\t}\n}\n\n/**\n * The upload adapter that converts images inserted into the editor into Base64 strings.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * `FileLoader` instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\tpublic reader?: DomFileReader;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader ) {\n\t\tthis.loader = loader;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = this.reader = new window.FileReader();\n\n\t\t\treader.addEventListener( 'load', () => {\n\t\t\t\tresolve( { default: reader.result } );\n\t\t\t} );\n\n\t\t\treader.addEventListener( 'error', err => {\n\t\t\t\treject( err );\n\t\t\t} );\n\n\t\t\treader.addEventListener( 'abort', () => {\n\t\t\t\treject();\n\t\t\t} );\n\n\t\t\tthis.loader.file.then( file => {\n\t\t\t\treader.readAsDataURL( file! );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tthis.reader!.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/adapters/simpleuploadadapter\n */\n\n/* globals XMLHttpRequest, FormData */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport FileRepository, { type UploadResponse, type FileLoader, type UploadAdapter } from '../filerepository.js';\nimport type { SimpleUploadConfig } from '../uploadconfig.js';\nimport { logWarning } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The Simple upload adapter allows uploading images to an application running on your server using\n * the [`XMLHttpRequest`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) API with a\n * minimal {@link module:upload/uploadconfig~SimpleUploadConfig editor configuration}.\n *\n * ```ts\n * ClassicEditor\n * \t.create( document.querySelector( '#editor' ), {\n * \t\tsimpleUpload: {\n * \t\t\tuploadUrl: 'http://example.com',\n * \t\t\theaders: {\n * \t\t\t\t...\n * \t\t\t}\n * \t\t}\n * \t} )\n * \t.then( ... )\n * \t.catch( ... );\n * ```\n *\n * See the {@glink features/images/image-upload/simple-upload-adapter \"Simple upload adapter\"} guide to learn how to\n * learn more about the feature (configuration, server–side requirements, etc.).\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class SimpleUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'SimpleUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst options = this.editor.config.get( 'simpleUpload' );\n\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !options.uploadUrl ) {\n\t\t\t/**\n\t\t\t * The {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `config.simpleUpload.uploadUrl`}\n\t\t\t * configuration required by the {@link module:upload/adapters/simpleuploadadapter~SimpleUploadAdapter `SimpleUploadAdapter`}\n\t\t\t * is missing. Make sure the correct URL is specified for the image upload to work properly.\n\t\t\t *\n\t\t\t * @error simple-upload-adapter-missing-uploadurl\n\t\t\t */\n\t\t\tlogWarning( 'simple-upload-adapter-missing-uploadurl' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => {\n\t\t\treturn new Adapter( loader, options );\n\t\t};\n\t}\n}\n\n/**\n * Upload adapter.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * The configuration of the adapter.\n\t */\n\tpublic options: SimpleUploadConfig;\n\n\tprivate xhr?: XMLHttpRequest;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, options: SimpleUploadConfig ) {\n\t\tthis.loader = loader;\n\t\tthis.options = options;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\treturn this.loader.file\n\t\t\t.then( file => new Promise( ( resolve, reject ) => {\n\t\t\t\tthis._initRequest();\n\t\t\t\tthis._initListeners( resolve, reject, file! );\n\t\t\t\tthis._sendRequest( file! );\n\t\t\t} ) );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the `XMLHttpRequest` object using the URL specified as\n\t * {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `simpleUpload.uploadUrl`} in the editor's\n\t * configuration.\n\t */\n\tprivate _initRequest(): void {\n\t\tconst xhr = this.xhr = new XMLHttpRequest();\n\n\t\txhr.open( 'POST', this.options.uploadUrl, true );\n\t\txhr.responseType = 'json';\n\t}\n\n\t/**\n\t * Initializes XMLHttpRequest listeners\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file Native File object.\n\t */\n\tprivate _initListeners(\n\t\tresolve: ( result: UploadResponse ) => void,\n\t\treject: ( message?: string ) => void,\n\t\tfile: File\n\t): void {\n\t\tconst xhr = this.xhr!;\n\t\tconst loader = this.loader;\n\t\tconst genericErrorText = `Couldn't upload file: ${ file.name }.`;\n\n\t\txhr.addEventListener( 'error', () => reject( genericErrorText ) );\n\t\txhr.addEventListener( 'abort', () => reject() );\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || response.error ) {\n\t\t\t\treturn reject( response && response.error && response.error.message ? response.error.message : genericErrorText );\n\t\t\t}\n\n\t\t\tconst urls = response.url ? { default: response.url } : response.urls;\n\n\t\t\t// Resolve with the normalized `urls` property and pass the rest of the response\n\t\t\t// to allow customizing the behavior of features relying on the upload adapters.\n\t\t\tresolve( {\n\t\t\t\t...response,\n\t\t\t\turls\n\t\t\t} );\n\t\t} );\n\n\t\t// Upload progress when it is supported.\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( xhr.upload ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tloader.uploadTotal = evt.total;\n\t\t\t\t\tloader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _sendRequest( file: File ): void {\n\t\t// Set headers if specified.\n\t\tconst headers = this.options.headers || {};\n\n\t\t// Use the withCredentials flag if specified.\n\t\tconst withCredentials = this.options.withCredentials || false;\n\n\t\tfor ( const headerName of Object.keys( headers ) ) {\n\t\t\tthis.xhr!.setRequestHeader( headerName, headers[ headerName ] );\n\t\t}\n\n\t\tthis.xhr!.withCredentials = withCredentials;\n\n\t\t// Prepare the form data.\n\t\tconst data = new FormData();\n\n\t\tdata.append( 'upload', file );\n\n\t\t// Send the request.\n\t\tthis.xhr!.send( data );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/filereader.ts","../src/filerepository.ts","../src/adapters/base64uploadadapter.ts","../src/adapters/simpleuploadadapter.ts"],"names":["FileReader","ObservableMixin","total","constructor","reader","window","_reader","_data","undefined","set","onprogress","evt","loaded","error","data","read","file","size","Promise","resolve","reject","onload","result","onerror","onabort","readAsDataURL","abort","FileRepository","Plugin","loaders","Collection","_loadersMap","Map","_pendingAction","pluginName","requires","PendingActions","on","_updatePendingAction","bind","to","uploaded","getLoader","fileOrPromise","get","createLoader","createUploadAdapter","logWarning","loader","FileLoader","add","then","catch","aggregatedUploaded","aggregatedTotal","uploadTotal","destroyLoader","fileOrPromiseOrLoader","_destroy","remove","forEach","value","key","delete","pendingActions","editor","plugins","length","t","getMessage","parseInt","uploadedPercent","filePromise","uploadAdapterCreator","id","uid","_filePromiseWrapper","_createFilePromiseWrapper","_adapter","promise","status","CKEditorError","err","upload","uploadResponse","isFulfilled","rejecter","wrapper","Base64UploadAdapter","Adapter","addEventListener","default","SimpleUploadAdapter","options","config","uploadUrl","xhr","_initRequest","_initListeners","_sendRequest","XMLHttpRequest","open","responseType","genericErrorText","name","response","message","urls","url","lengthComputable","headers","withCredentials","headerName","Object","keys","setRequestHeader","FormData","append","send"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ObservableMixin, Collection, logWarning, uid, CKEditorError } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * Wrapper over the native `FileReader`.\n */ class FileReader extends /* #__PURE__ */ ObservableMixin() {\n total;\n /**\n\t * Instance of native FileReader.\n\t */ _reader;\n /**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */ _data;\n /**\n\t * Creates an instance of the FileReader.\n\t */ constructor(){\n super();\n const reader = new window.FileReader();\n this._reader = reader;\n this._data = undefined;\n this.set('loaded', 0);\n reader.onprogress = (evt)=>{\n this.loaded = evt.loaded;\n };\n }\n /**\n\t * Returns error that occurred during file reading.\n\t */ get error() {\n return this._reader.error;\n }\n /**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */ get data() {\n return this._data;\n }\n /**\n\t * Reads the provided file.\n\t *\n\t * @param file Native File object.\n\t * @returns Returns a promise that will be resolved with file's content.\n\t * The promise will be rejected in case of an error or when the reading process is aborted.\n\t */ read(file) {\n const reader = this._reader;\n this.total = file.size;\n return new Promise((resolve, reject)=>{\n reader.onload = ()=>{\n const result = reader.result;\n this._data = result;\n resolve(result);\n };\n reader.onerror = ()=>{\n reject('error');\n };\n reader.onabort = ()=>{\n reject('aborted');\n };\n this._reader.readAsDataURL(file);\n });\n }\n /**\n\t * Aborts file reader.\n\t */ abort() {\n this._reader.abort();\n }\n}\n\n/**\n * File repository plugin. A central point for managing file upload.\n *\n * To use it, first you need an upload adapter. Upload adapter's job is to handle communication with the server\n * (sending the file and handling server's response). You can use one of the existing plugins introducing upload adapters\n * (e.g. {@link module:easy-image/cloudservicesuploadadapter~CloudServicesUploadAdapter} or\n * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}) or write your own one – see\n * the {@glink framework/deep-dive/upload-adapter Custom image upload adapter deep-dive} guide.\n *\n * Then, you can use {@link module:upload/filerepository~FileRepository#createLoader `createLoader()`} and the returned\n * {@link module:upload/filerepository~FileLoader} instance to load and upload files.\n */ class FileRepository extends Plugin {\n /**\n\t * Collection of loaders associated with this repository.\n\t */ loaders = new Collection();\n /**\n\t * Loaders mappings used to retrieve loaders references.\n\t */ _loadersMap = new Map();\n /**\n\t * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n\t * while upload is in progress. When there is no upload then value is `null`.\n\t */ _pendingAction = null;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'FileRepository';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n PendingActions\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n // Keeps upload in a sync with pending actions.\n this.loaders.on('change', ()=>this._updatePendingAction());\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total)=>{\n return total ? uploaded / total * 100 : 0;\n });\n }\n /**\n\t * Returns the loader associated with specified file or promise.\n\t *\n\t * To get loader by id use `fileRepository.loaders.get( id )`.\n\t *\n\t * @param fileOrPromise Native file or promise handle.\n\t */ getLoader(fileOrPromise) {\n return this._loadersMap.get(fileOrPromise) || null;\n }\n /**\n\t * Creates a loader instance for the given file.\n\t *\n\t * Requires {@link #createUploadAdapter} factory to be defined.\n\t *\n\t * @param fileOrPromise Native File object or native Promise object which resolves to a File.\n\t */ createLoader(fileOrPromise) {\n if (!this.createUploadAdapter) {\n /**\n\t\t\t * You need to enable an upload adapter in order to be able to upload files.\n\t\t\t *\n\t\t\t * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n\t\t\t * without {@link module:upload/filerepository~FileRepository#createUploadAdapter defining an upload adapter}.\n\t\t\t *\n\t\t\t * **If you see this warning when using one of the {@glink getting-started/legacy/installation-methods/predefined-builds\n\t\t\t * CKEditor 5 Builds}**\n\t\t\t * it means that you did not configure any of the upload adapters available by default in those builds.\n\t\t\t *\n\t\t\t * Predefined builds are a deprecated solution and we strongly advise\n\t\t\t * {@glink updating/new-installation-methods migrating to new installation methods}.\n\t\t\t *\n\t\t\t * See the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n\t\t\t * adapters are available in the builds and how to configure them.\n\t\t\t *\n\t\t\t * Otherwise, if you see this warning, there is a chance that you enabled\n\t\t\t * a feature like {@link module:image/imageupload~ImageUpload},\n\t\t\t * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n\t\t\t * You can choose one of the existing upload adapters listed in the\n\t\t\t * {@glink features/images/image-upload/image-upload \"Image upload overview\"}.\n\t\t\t *\n\t\t\t * You can also implement your {@glink framework/deep-dive/upload-adapter own image upload adapter}.\n\t\t\t *\n\t\t\t * @error filerepository-no-upload-adapter\n\t\t\t */ logWarning('filerepository-no-upload-adapter');\n return null;\n }\n const loader = new FileLoader(Promise.resolve(fileOrPromise), this.createUploadAdapter);\n this.loaders.add(loader);\n this._loadersMap.set(fileOrPromise, loader);\n // Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n if (fileOrPromise instanceof Promise) {\n loader.file.then((file)=>{\n this._loadersMap.set(file, loader);\n })// Every then() must have a catch().\n // File loader state (and rejections) are handled in read() and upload().\n // Also, see the \"does not swallow the file promise rejection\" test.\n .catch(()=>{});\n }\n loader.on('change:uploaded', ()=>{\n let aggregatedUploaded = 0;\n for (const loader of this.loaders){\n aggregatedUploaded += loader.uploaded;\n }\n this.uploaded = aggregatedUploaded;\n });\n loader.on('change:uploadTotal', ()=>{\n let aggregatedTotal = 0;\n for (const loader of this.loaders){\n if (loader.uploadTotal) {\n aggregatedTotal += loader.uploadTotal;\n }\n }\n this.uploadTotal = aggregatedTotal;\n });\n return loader;\n }\n /**\n\t * Destroys the given loader.\n\t *\n\t * @param fileOrPromiseOrLoader File or Promise associated with that loader or loader itself.\n\t */ destroyLoader(fileOrPromiseOrLoader) {\n const loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader(fileOrPromiseOrLoader);\n loader._destroy();\n this.loaders.remove(loader);\n this._loadersMap.forEach((value, key)=>{\n if (value === loader) {\n this._loadersMap.delete(key);\n }\n });\n }\n /**\n\t * Registers or deregisters pending action bound with upload progress.\n\t */ _updatePendingAction() {\n const pendingActions = this.editor.plugins.get(PendingActions);\n if (this.loaders.length) {\n if (!this._pendingAction) {\n const t = this.editor.t;\n const getMessage = (value)=>`${t('Upload in progress')} ${parseInt(value)}%.`;\n this._pendingAction = pendingActions.add(getMessage(this.uploadedPercent));\n this._pendingAction.bind('message').to(this, 'uploadedPercent', getMessage);\n }\n } else {\n pendingActions.remove(this._pendingAction);\n this._pendingAction = null;\n }\n }\n}\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */ class FileLoader extends /* #__PURE__ */ ObservableMixin() {\n /**\n\t * Unique id of FileLoader instance.\n\t *\n\t * @readonly\n\t */ id;\n /**\n\t * Additional wrapper over the initial file promise passed to this loader.\n\t */ _filePromiseWrapper;\n /**\n\t * Adapter instance associated with this file loader.\n\t */ _adapter;\n /**\n\t * FileReader used by FileLoader.\n\t */ _reader;\n /**\n\t * Creates a new instance of `FileLoader`.\n\t *\n\t * @param filePromise A promise which resolves to a file instance.\n\t * @param uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n\t */ constructor(filePromise, uploadAdapterCreator){\n super();\n this.id = uid();\n this._filePromiseWrapper = this._createFilePromiseWrapper(filePromise);\n this._adapter = uploadAdapterCreator(this);\n this._reader = new FileReader();\n this.set('status', 'idle');\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total)=>{\n return total ? uploaded / total * 100 : 0;\n });\n this.set('uploadResponse', null);\n }\n /**\n\t * A `Promise` which resolves to a `File` instance associated with this file loader.\n\t */ get file() {\n if (!this._filePromiseWrapper) {\n // Loader was destroyed, return promise which resolves to null.\n return Promise.resolve(null);\n } else {\n // The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n //\n //\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n //\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n //\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n //\n // Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n // is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n return this._filePromiseWrapper.promise.then((file)=>this._filePromiseWrapper ? file : null);\n }\n }\n /**\n\t * Returns the file data. To read its data, you need for first load the file\n\t * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n\t */ get data() {\n return this._reader.data;\n }\n /**\n\t * Reads file using {@link module:upload/filereader~FileReader}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n\t * is different than `idle`.\n\t *\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.read()\n\t * \t.then( data => { ... } )\n\t * \t.catch( err => {\n\t * \t\tif ( err === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Reading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Reading error.', err );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with read data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */ read() {\n if (this.status != 'idle') {\n /**\n\t\t\t * You cannot call read if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-read-wrong-status\n\t\t\t */ throw new CKEditorError('filerepository-read-wrong-status', this);\n }\n this.status = 'reading';\n return this.file.then((file)=>this._reader.read(file)).then((data)=>{\n // Edge case: reader was aborted after file was read - double check for proper status.\n // It can happen when image was deleted during its upload.\n if (this.status !== 'reading') {\n throw this.status;\n }\n this.status = 'idle';\n return data;\n }).catch((err)=>{\n if (err === 'aborted') {\n this.status = 'aborted';\n throw 'aborted';\n }\n this.status = 'error';\n throw this._reader.error ? this._reader.error : err;\n });\n }\n /**\n\t * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n\t * is different than `idle`.\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.upload()\n\t * \t.then( data => { ... } )\n\t * \t.catch( e => {\n\t * \t\tif ( e === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Uploading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Uploading error.', e );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with response data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */ upload() {\n if (this.status != 'idle') {\n /**\n\t\t\t * You cannot call upload if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-upload-wrong-status\n\t\t\t */ throw new CKEditorError('filerepository-upload-wrong-status', this);\n }\n this.status = 'uploading';\n return this.file.then(()=>this._adapter.upload()).then((data)=>{\n this.uploadResponse = data;\n this.status = 'idle';\n return data;\n }).catch((err)=>{\n if (this.status === 'aborted') {\n throw 'aborted';\n }\n this.status = 'error';\n throw err;\n });\n }\n /**\n\t * Aborts loading process.\n\t */ abort() {\n const status = this.status;\n this.status = 'aborted';\n if (!this._filePromiseWrapper.isFulfilled) {\n // Edge case: file loader is aborted before read() is called\n // so it might happen that no one handled the rejection of this promise.\n // See https://github.com/ckeditor/ckeditor5-upload/pull/100\n this._filePromiseWrapper.promise.catch(()=>{});\n this._filePromiseWrapper.rejecter('aborted');\n } else if (status == 'reading') {\n this._reader.abort();\n } else if (status == 'uploading' && this._adapter.abort) {\n this._adapter.abort();\n }\n this._destroy();\n }\n /**\n\t * Performs cleanup.\n\t *\n\t * @internal\n\t */ _destroy() {\n this._filePromiseWrapper = undefined;\n this._reader = undefined;\n this._adapter = undefined;\n this.uploadResponse = undefined;\n }\n /**\n\t * Wraps a given file promise into another promise giving additional\n\t * control (resolving, rejecting, checking if fulfilled) over it.\n\t *\n\t * @param filePromise The initial file promise to be wrapped.\n\t */ _createFilePromiseWrapper(filePromise) {\n const wrapper = {};\n wrapper.promise = new Promise((resolve, reject)=>{\n wrapper.rejecter = reject;\n wrapper.isFulfilled = false;\n filePromise.then((file)=>{\n wrapper.isFulfilled = true;\n resolve(file);\n }).catch((err)=>{\n wrapper.isFulfilled = true;\n reject(err);\n });\n });\n return wrapper;\n }\n}\n\n/**\n * A plugin that converts images inserted into the editor into [Base64 strings](https://en.wikipedia.org/wiki/Base64)\n * in the {@glink getting-started/setup/getting-and-setting-data editor output}.\n *\n * This kind of image upload does not require server processing – images are stored with the rest of the text and\n * displayed by the web browser without additional requests.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */ class Base64UploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Base64UploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>new Adapter$1(loader);\n }\n}\n/**\n * The upload adapter that converts images inserted into the editor into Base64 strings.\n */ let Adapter$1 = class Adapter {\n /**\n\t * `FileLoader` instance to use during the upload.\n\t */ loader;\n reader;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader){\n this.loader = loader;\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ upload() {\n return new Promise((resolve, reject)=>{\n const reader = this.reader = new window.FileReader();\n reader.addEventListener('load', ()=>{\n resolve({\n default: reader.result\n });\n });\n reader.addEventListener('error', (err)=>{\n reject(err);\n });\n reader.addEventListener('abort', ()=>{\n reject();\n });\n this.loader.file.then((file)=>{\n reader.readAsDataURL(file);\n });\n });\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n this.reader.abort();\n }\n};\n\n/**\n * The Simple upload adapter allows uploading images to an application running on your server using\n * the [`XMLHttpRequest`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) API with a\n * minimal {@link module:upload/uploadconfig~SimpleUploadConfig editor configuration}.\n *\n * ```ts\n * ClassicEditor\n * \t.create( document.querySelector( '#editor' ), {\n * \t\tsimpleUpload: {\n * \t\t\tuploadUrl: 'http://example.com',\n * \t\t\theaders: {\n * \t\t\t\t...\n * \t\t\t}\n * \t\t}\n * \t} )\n * \t.then( ... )\n * \t.catch( ... );\n * ```\n *\n * See the {@glink features/images/image-upload/simple-upload-adapter \"Simple upload adapter\"} guide to learn how to\n * learn more about the feature (configuration, server–side requirements, etc.).\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */ class SimpleUploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'SimpleUploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const options = this.editor.config.get('simpleUpload');\n if (!options) {\n return;\n }\n if (!options.uploadUrl) {\n /**\n\t\t\t * The {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `config.simpleUpload.uploadUrl`}\n\t\t\t * configuration required by the {@link module:upload/adapters/simpleuploadadapter~SimpleUploadAdapter `SimpleUploadAdapter`}\n\t\t\t * is missing. Make sure the correct URL is specified for the image upload to work properly.\n\t\t\t *\n\t\t\t * @error simple-upload-adapter-missing-uploadurl\n\t\t\t */ logWarning('simple-upload-adapter-missing-uploadurl');\n return;\n }\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>{\n return new Adapter(loader, options);\n };\n }\n}\n/**\n * Upload adapter.\n */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * The configuration of the adapter.\n\t */ options;\n xhr;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, options){\n this.loader = loader;\n this.options = options;\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ upload() {\n return this.loader.file.then((file)=>new Promise((resolve, reject)=>{\n this._initRequest();\n this._initListeners(resolve, reject, file);\n this._sendRequest(file);\n }));\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n if (this.xhr) {\n this.xhr.abort();\n }\n }\n /**\n\t * Initializes the `XMLHttpRequest` object using the URL specified as\n\t * {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `simpleUpload.uploadUrl`} in the editor's\n\t * configuration.\n\t */ _initRequest() {\n const xhr = this.xhr = new XMLHttpRequest();\n xhr.open('POST', this.options.uploadUrl, true);\n xhr.responseType = 'json';\n }\n /**\n\t * Initializes XMLHttpRequest listeners\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file Native File object.\n\t */ _initListeners(resolve, reject, file) {\n const xhr = this.xhr;\n const loader = this.loader;\n const genericErrorText = `Couldn't upload file: ${file.name}.`;\n xhr.addEventListener('error', ()=>reject(genericErrorText));\n xhr.addEventListener('abort', ()=>reject());\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || response.error) {\n return reject(response && response.error && response.error.message ? response.error.message : genericErrorText);\n }\n const urls = response.url ? {\n default: response.url\n } : response.urls;\n // Resolve with the normalized `urls` property and pass the rest of the response\n // to allow customizing the behavior of features relying on the upload adapters.\n resolve({\n ...response,\n urls\n });\n });\n // Upload progress when it is supported.\n /* istanbul ignore else -- @preserve */ if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt)=>{\n if (evt.lengthComputable) {\n loader.uploadTotal = evt.total;\n loader.uploaded = evt.loaded;\n }\n });\n }\n }\n /**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */ _sendRequest(file) {\n // Set headers if specified.\n const headers = this.options.headers || {};\n // Use the withCredentials flag if specified.\n const withCredentials = this.options.withCredentials || false;\n for (const headerName of Object.keys(headers)){\n this.xhr.setRequestHeader(headerName, headers[headerName]);\n }\n this.xhr.withCredentials = withCredentials;\n // Prepare the form data.\n const data = new FormData();\n data.append('upload', file);\n // Send the request.\n this.xhr.send(data);\n }\n}\n\nexport { Base64UploadAdapter, FileRepository, SimpleUploadAdapter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/filereader\n */\n\n/* globals window */\n\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\n\ntype DomFileReader = globalThis.FileReader;\n\n/**\n * Wrapper over the native `FileReader`.\n */\nexport default class FileReader extends /* #__PURE__ */ ObservableMixin() {\n\tpublic total!: number;\n\n\t/**\n\t * Instance of native FileReader.\n\t */\n\tprivate readonly _reader: DomFileReader;\n\n\t/**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */\n\tprivate _data?: string;\n\n\t/**\n\t * Number of bytes loaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public loaded: number;\n\n\t/**\n\t * Creates an instance of the FileReader.\n\t */\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst reader = new window.FileReader();\n\n\t\tthis._reader = reader;\n\t\tthis._data = undefined;\n\n\t\tthis.set( 'loaded', 0 );\n\n\t\treader.onprogress = evt => {\n\t\t\tthis.loaded = evt.loaded;\n\t\t};\n\t}\n\n\t/**\n\t * Returns error that occurred during file reading.\n\t */\n\tpublic get error(): DOMException | null {\n\t\treturn this._reader.error;\n\t}\n\n\t/**\n\t * Holds the data of an already loaded file. The file must be first loaded\n\t * by using {@link module:upload/filereader~FileReader#read `read()`}.\n\t */\n\tpublic get data(): string | undefined {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * Reads the provided file.\n\t *\n\t * @param file Native File object.\n\t * @returns Returns a promise that will be resolved with file's content.\n\t * The promise will be rejected in case of an error or when the reading process is aborted.\n\t */\n\tpublic read( file: File ): Promise<string> {\n\t\tconst reader = this._reader;\n\t\tthis.total = file.size;\n\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\treader.onload = () => {\n\t\t\t\tconst result = reader.result as string;\n\n\t\t\t\tthis._data = result;\n\n\t\t\t\tresolve( result );\n\t\t\t};\n\n\t\t\treader.onerror = () => {\n\t\t\t\treject( 'error' );\n\t\t\t};\n\n\t\t\treader.onabort = () => {\n\t\t\t\treject( 'aborted' );\n\t\t\t};\n\n\t\t\tthis._reader.readAsDataURL( file );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts file reader.\n\t */\n\tpublic abort(): void {\n\t\tthis._reader.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/filerepository\n */\n\nimport {\n\tPlugin,\n\tPendingActions,\n\ttype PendingAction\n} from '@ckeditor/ckeditor5-core';\n\nimport {\n\tCKEditorError,\n\tCollection,\n\tObservableMixin,\n\tlogWarning,\n\tuid,\n\ttype ObservableChangeEvent,\n\ttype CollectionChangeEvent\n} from '@ckeditor/ckeditor5-utils';\n\nimport FileReader from './filereader.js';\n\n/**\n * File repository plugin. A central point for managing file upload.\n *\n * To use it, first you need an upload adapter. Upload adapter's job is to handle communication with the server\n * (sending the file and handling server's response). You can use one of the existing plugins introducing upload adapters\n * (e.g. {@link module:easy-image/cloudservicesuploadadapter~CloudServicesUploadAdapter} or\n * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}) or write your own one – see\n * the {@glink framework/deep-dive/upload-adapter Custom image upload adapter deep-dive} guide.\n *\n * Then, you can use {@link module:upload/filerepository~FileRepository#createLoader `createLoader()`} and the returned\n * {@link module:upload/filerepository~FileLoader} instance to load and upload files.\n */\nexport default class FileRepository extends Plugin {\n\t/**\n\t * Collection of loaders associated with this repository.\n\t */\n\tpublic loaders = new Collection<FileLoader>();\n\n\t/**\n\t * A factory function which should be defined before using `FileRepository`.\n\t *\n\t * It should return a new instance of {@link module:upload/filerepository~UploadAdapter} that will be used to upload files.\n\t * {@link module:upload/filerepository~FileLoader} instance associated with the adapter\n\t * will be passed to that function.\n\t *\n\t * For more information and example see {@link module:upload/filerepository~UploadAdapter}.\n\t */\n\tpublic declare createUploadAdapter?: ( loader: FileLoader ) => UploadAdapter;\n\n\t/**\n\t * Loaders mappings used to retrieve loaders references.\n\t */\n\tprivate _loadersMap = new Map<File | Promise<File>, FileLoader>();\n\n\t/**\n\t * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n\t * while upload is in progress. When there is no upload then value is `null`.\n\t */\n\tprivate _pendingAction: PendingAction | null = null;\n\n\t/**\n\t * Number of bytes uploaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploaded: number;\n\n\t/**\n\t * Number of total bytes to upload.\n\t *\n\t * It might be different than the file size because of headers and additional data.\n\t * It contains `null` if value is not available yet, so it's better to use {@link #uploadedPercent} to monitor\n\t * the progress.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadTotal: number | null;\n\n\t/**\n\t * Upload progress in percents.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadedPercent: number;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FileRepository' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ PendingActions ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\t// Keeps upload in a sync with pending actions.\n\t\tthis.loaders.on<CollectionChangeEvent>( 'change', () => this._updatePendingAction() );\n\n\t\tthis.set( 'uploaded', 0 );\n\t\tthis.set( 'uploadTotal', null );\n\n\t\tthis.bind( 'uploadedPercent' ).to( this, 'uploaded', this, 'uploadTotal', ( uploaded, total ) => {\n\t\t\treturn total ? ( uploaded / total * 100 ) : 0;\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the loader associated with specified file or promise.\n\t *\n\t * To get loader by id use `fileRepository.loaders.get( id )`.\n\t *\n\t * @param fileOrPromise Native file or promise handle.\n\t */\n\tpublic getLoader( fileOrPromise: File | Promise<File> ): FileLoader | null {\n\t\treturn this._loadersMap.get( fileOrPromise ) || null;\n\t}\n\n\t/**\n\t * Creates a loader instance for the given file.\n\t *\n\t * Requires {@link #createUploadAdapter} factory to be defined.\n\t *\n\t * @param fileOrPromise Native File object or native Promise object which resolves to a File.\n\t */\n\tpublic createLoader( fileOrPromise: File | Promise<File> ): FileLoader | null {\n\t\tif ( !this.createUploadAdapter ) {\n\t\t\t/**\n\t\t\t * You need to enable an upload adapter in order to be able to upload files.\n\t\t\t *\n\t\t\t * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n\t\t\t * without {@link module:upload/filerepository~FileRepository#createUploadAdapter defining an upload adapter}.\n\t\t\t *\n\t\t\t * **If you see this warning when using one of the {@glink getting-started/legacy/installation-methods/predefined-builds\n\t\t\t * CKEditor 5 Builds}**\n\t\t\t * it means that you did not configure any of the upload adapters available by default in those builds.\n\t\t\t *\n\t\t\t * Predefined builds are a deprecated solution and we strongly advise\n\t\t\t * {@glink updating/new-installation-methods migrating to new installation methods}.\n\t\t\t *\n\t\t\t * See the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n\t\t\t * adapters are available in the builds and how to configure them.\n\t\t\t *\n\t\t\t * Otherwise, if you see this warning, there is a chance that you enabled\n\t\t\t * a feature like {@link module:image/imageupload~ImageUpload},\n\t\t\t * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n\t\t\t * You can choose one of the existing upload adapters listed in the\n\t\t\t * {@glink features/images/image-upload/image-upload \"Image upload overview\"}.\n\t\t\t *\n\t\t\t * You can also implement your {@glink framework/deep-dive/upload-adapter own image upload adapter}.\n\t\t\t *\n\t\t\t * @error filerepository-no-upload-adapter\n\t\t\t */\n\t\t\tlogWarning( 'filerepository-no-upload-adapter' );\n\n\t\t\treturn null;\n\t\t}\n\n\t\tconst loader = new FileLoader( Promise.resolve( fileOrPromise ), this.createUploadAdapter );\n\n\t\tthis.loaders.add( loader );\n\t\tthis._loadersMap.set( fileOrPromise, loader );\n\n\t\t// Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n\t\tif ( fileOrPromise instanceof Promise ) {\n\t\t\tloader.file\n\t\t\t\t.then( file => {\n\t\t\t\t\tthis._loadersMap.set( file!, loader );\n\t\t\t\t} )\n\t\t\t\t// Every then() must have a catch().\n\t\t\t\t// File loader state (and rejections) are handled in read() and upload().\n\t\t\t\t// Also, see the \"does not swallow the file promise rejection\" test.\n\t\t\t\t.catch( () => {} );\n\t\t}\n\n\t\tloader.on<ObservableChangeEvent>( 'change:uploaded', () => {\n\t\t\tlet aggregatedUploaded = 0;\n\n\t\t\tfor ( const loader of this.loaders ) {\n\t\t\t\taggregatedUploaded += loader.uploaded;\n\t\t\t}\n\n\t\t\tthis.uploaded = aggregatedUploaded;\n\t\t} );\n\n\t\tloader.on<ObservableChangeEvent>( 'change:uploadTotal', () => {\n\t\t\tlet aggregatedTotal = 0;\n\n\t\t\tfor ( const loader of this.loaders ) {\n\t\t\t\tif ( loader.uploadTotal ) {\n\t\t\t\t\taggregatedTotal += loader.uploadTotal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.uploadTotal = aggregatedTotal;\n\t\t} );\n\n\t\treturn loader;\n\t}\n\n\t/**\n\t * Destroys the given loader.\n\t *\n\t * @param fileOrPromiseOrLoader File or Promise associated with that loader or loader itself.\n\t */\n\tpublic destroyLoader( fileOrPromiseOrLoader: File | Promise<File> | FileLoader ): void {\n\t\tconst loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader( fileOrPromiseOrLoader )!;\n\n\t\tloader._destroy();\n\n\t\tthis.loaders.remove( loader );\n\n\t\tthis._loadersMap.forEach( ( value, key ) => {\n\t\t\tif ( value === loader ) {\n\t\t\t\tthis._loadersMap.delete( key );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Registers or deregisters pending action bound with upload progress.\n\t */\n\tprivate _updatePendingAction(): void {\n\t\tconst pendingActions = this.editor.plugins.get( PendingActions );\n\n\t\tif ( this.loaders.length ) {\n\t\t\tif ( !this._pendingAction ) {\n\t\t\t\tconst t = this.editor.t;\n\t\t\t\tconst getMessage = ( value: number ) => `${ t( 'Upload in progress' ) } ${ parseInt( value as any ) }%.`;\n\n\t\t\t\tthis._pendingAction = pendingActions.add( getMessage( this.uploadedPercent ) );\n\t\t\t\tthis._pendingAction.bind( 'message' ).to( this, 'uploadedPercent', getMessage );\n\t\t\t}\n\t\t} else {\n\t\t\tpendingActions.remove( this._pendingAction! );\n\t\t\tthis._pendingAction = null;\n\t\t}\n\t}\n}\n\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */\nclass FileLoader extends /* #__PURE__ */ ObservableMixin() {\n\t/**\n\t * Unique id of FileLoader instance.\n\t *\n\t * @readonly\n\t */\n\tpublic readonly id: string;\n\n\t/**\n\t * Additional wrapper over the initial file promise passed to this loader.\n\t */\n\tprivate _filePromiseWrapper: FilePromiseWrapper;\n\n\t/**\n\t * Adapter instance associated with this file loader.\n\t */\n\tprivate _adapter: UploadAdapter;\n\n\t/**\n\t * FileReader used by FileLoader.\n\t */\n\tprivate _reader: FileReader;\n\n\t/**\n\t * Current status of FileLoader. It can be one of the following:\n\t *\n\t * * 'idle',\n\t * * 'reading',\n\t * * 'uploading',\n\t * * 'aborted',\n\t * * 'error'.\n\t *\n\t * When reading status can change in a following way:\n\t *\n\t * `idle` -> `reading` -> `idle`\n\t * `idle` -> `reading -> `aborted`\n\t * `idle` -> `reading -> `error`\n\t *\n\t * When uploading status can change in a following way:\n\t *\n\t * `idle` -> `uploading` -> `idle`\n\t * `idle` -> `uploading` -> `aborted`\n\t * `idle` -> `uploading` -> `error`\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public status: 'idle' | 'reading' | 'uploading' | 'aborted' | 'error';\n\n\t/**\n\t * Number of bytes uploaded.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploaded: number;\n\n\t/**\n\t * Number of total bytes to upload.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadTotal: number | null;\n\n\t/**\n\t * Upload progress in percents.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadedPercent: number;\n\n\t/**\n\t * Response of the upload.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public uploadResponse?: UploadResponse | null;\n\n\t/**\n\t * Creates a new instance of `FileLoader`.\n\t *\n\t * @param filePromise A promise which resolves to a file instance.\n\t * @param uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n\t */\n\tconstructor( filePromise: Promise<File>, uploadAdapterCreator: ( loader: FileLoader ) => UploadAdapter ) {\n\t\tsuper();\n\n\t\tthis.id = uid();\n\t\tthis._filePromiseWrapper = this._createFilePromiseWrapper( filePromise );\n\t\tthis._adapter = uploadAdapterCreator( this );\n\t\tthis._reader = new FileReader();\n\n\t\tthis.set( 'status', 'idle' );\n\t\tthis.set( 'uploaded', 0 );\n\t\tthis.set( 'uploadTotal', null );\n\n\t\tthis.bind( 'uploadedPercent' ).to( this, 'uploaded', this, 'uploadTotal', ( uploaded, total ) => {\n\t\t\treturn total ? ( uploaded / total * 100 ) : 0;\n\t\t} );\n\n\t\tthis.set( 'uploadResponse', null );\n\t}\n\n\t/**\n\t * A `Promise` which resolves to a `File` instance associated with this file loader.\n\t */\n\tpublic get file(): Promise<File | null> {\n\t\tif ( !this._filePromiseWrapper ) {\n\t\t\t// Loader was destroyed, return promise which resolves to null.\n\t\t\treturn Promise.resolve( null );\n\t\t} else {\n\t\t\t// The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n\t\t\t//\n\t\t\t//\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n\t\t\t//\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n\t\t\t//\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n\t\t\t//\n\t\t\t// Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n\t\t\t// is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n\t\t\treturn this._filePromiseWrapper.promise.then( file => this._filePromiseWrapper ? file : null );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the file data. To read its data, you need for first load the file\n\t * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n\t */\n\tpublic get data(): string | undefined {\n\t\treturn this._reader.data;\n\t}\n\n\t/**\n\t * Reads file using {@link module:upload/filereader~FileReader}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n\t * is different than `idle`.\n\t *\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.read()\n\t * \t.then( data => { ... } )\n\t * \t.catch( err => {\n\t * \t\tif ( err === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Reading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Reading error.', err );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with read data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */\n\tpublic read(): Promise<string> {\n\t\tif ( this.status != 'idle' ) {\n\t\t\t/**\n\t\t\t * You cannot call read if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-read-wrong-status\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'filerepository-read-wrong-status', this );\n\t\t}\n\n\t\tthis.status = 'reading';\n\n\t\treturn this.file\n\t\t\t.then( file => this._reader.read( file! ) )\n\t\t\t.then( data => {\n\t\t\t\t// Edge case: reader was aborted after file was read - double check for proper status.\n\t\t\t\t// It can happen when image was deleted during its upload.\n\t\t\t\tif ( this.status !== 'reading' ) {\n\t\t\t\t\tthrow this.status;\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'idle';\n\n\t\t\t\treturn data;\n\t\t\t} )\n\t\t\t.catch( err => {\n\t\t\t\tif ( err === 'aborted' ) {\n\t\t\t\t\tthis.status = 'aborted';\n\t\t\t\t\tthrow 'aborted';\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'error';\n\t\t\t\tthrow this._reader.error ? this._reader.error : err;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n\t *\n\t * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n\t * is different than `idle`.\n\t * Example usage:\n\t *\n\t * ```ts\n\t * fileLoader.upload()\n\t * \t.then( data => { ... } )\n\t * \t.catch( e => {\n\t * \t\tif ( e === 'aborted' ) {\n\t * \t\t\tconsole.log( 'Uploading aborted.' );\n\t * \t\t} else {\n\t * \t\t\tconsole.log( 'Uploading error.', e );\n\t * \t\t}\n\t * \t} );\n\t * ```\n\t *\n\t * @returns Returns promise that will be resolved with response data. Promise will be rejected if error\n\t * occurs or if read process is aborted.\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\tif ( this.status != 'idle' ) {\n\t\t\t/**\n\t\t\t * You cannot call upload if the status is different than idle.\n\t\t\t *\n\t\t\t * @error filerepository-upload-wrong-status\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'filerepository-upload-wrong-status', this );\n\t\t}\n\n\t\tthis.status = 'uploading';\n\n\t\treturn this.file\n\t\t\t.then( () => this._adapter.upload() )\n\t\t\t.then( data => {\n\t\t\t\tthis.uploadResponse = data;\n\t\t\t\tthis.status = 'idle';\n\n\t\t\t\treturn data;\n\t\t\t} )\n\t\t\t.catch( err => {\n\t\t\t\tif ( this.status === 'aborted' ) {\n\t\t\t\t\tthrow 'aborted';\n\t\t\t\t}\n\n\t\t\t\tthis.status = 'error';\n\t\t\t\tthrow err;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Aborts loading process.\n\t */\n\tpublic abort(): void {\n\t\tconst status = this.status;\n\t\tthis.status = 'aborted';\n\n\t\tif ( !this._filePromiseWrapper.isFulfilled ) {\n\t\t\t// Edge case: file loader is aborted before read() is called\n\t\t\t// so it might happen that no one handled the rejection of this promise.\n\t\t\t// See https://github.com/ckeditor/ckeditor5-upload/pull/100\n\t\t\tthis._filePromiseWrapper.promise.catch( () => {} );\n\n\t\t\tthis._filePromiseWrapper.rejecter( 'aborted' );\n\t\t} else if ( status == 'reading' ) {\n\t\t\tthis._reader.abort();\n\t\t} else if ( status == 'uploading' && this._adapter.abort ) {\n\t\t\tthis._adapter.abort();\n\t\t}\n\n\t\tthis._destroy();\n\t}\n\n\t/**\n\t * Performs cleanup.\n\t *\n\t * @internal\n\t */\n\tpublic _destroy(): void {\n\t\tthis._filePromiseWrapper = undefined as any;\n\t\tthis._reader = undefined as any;\n\t\tthis._adapter = undefined as any;\n\t\tthis.uploadResponse = undefined;\n\t}\n\n\t/**\n\t * Wraps a given file promise into another promise giving additional\n\t * control (resolving, rejecting, checking if fulfilled) over it.\n\t *\n\t * @param filePromise The initial file promise to be wrapped.\n\t */\n\tprivate _createFilePromiseWrapper( filePromise: Promise<File> ): FilePromiseWrapper {\n\t\tconst wrapper: Partial<FilePromiseWrapper> = {};\n\n\t\twrapper.promise = new Promise<File>( ( resolve, reject ) => {\n\t\t\twrapper.rejecter = reject;\n\t\t\twrapper.isFulfilled = false;\n\n\t\t\tfilePromise\n\t\t\t\t.then( file => {\n\t\t\t\t\twrapper.isFulfilled = true;\n\t\t\t\t\tresolve( file );\n\t\t\t\t} )\n\t\t\t\t.catch( err => {\n\t\t\t\t\twrapper.isFulfilled = true;\n\t\t\t\t\treject( err );\n\t\t\t\t} );\n\t\t} );\n\n\t\treturn wrapper as FilePromiseWrapper;\n\t}\n}\n\nexport type { FileLoader };\n\n/**\n * Upload adapter interface used by the {@link module:upload/filerepository~FileRepository file repository}\n * to handle file upload. An upload adapter is a bridge between the editor and server that handles file uploads.\n * It should contain a logic necessary to initiate an upload process and monitor its progress.\n *\n * Learn how to develop your own upload adapter for CKEditor 5 in the\n * {@glink framework/deep-dive/upload-adapter \"Custom upload adapter\"} guide.\n *\n * @interface UploadAdapter\n */\nexport interface UploadAdapter {\n\n\t/**\n\t * Executes the upload process.\n\t * This method should return a promise that will resolve when data will be uploaded to server. Promise should be\n\t * resolved with an object containing information about uploaded file:\n\t *\n\t * ```json\n\t * {\n\t * \tdefault: 'http://server/default-size.image.png'\n\t * }\n\t * ```\n\t *\n\t * Additionally, other image sizes can be provided:\n\t *\n\t * ```json\n\t * {\n\t * \tdefault: 'http://server/default-size.image.png',\n\t * \t'160': 'http://server/size-160.image.png',\n\t * \t'500': 'http://server/size-500.image.png',\n\t * \t'1000': 'http://server/size-1000.image.png',\n\t * \t'1052': 'http://server/default-size.image.png'\n\t * }\n\t * ```\n\t *\n\t * You can also pass additional properties from the server. In this case you need to wrap URLs\n\t * in the `urls` object and pass additional properties along the `urls` property.\n\t *\n\t * ```json\n\t * {\n\t * \tmyCustomProperty: 'foo',\n\t * \turls: {\n\t * \t\tdefault: 'http://server/default-size.image.png',\n\t * \t\t'160': 'http://server/size-160.image.png',\n\t * \t\t'500': 'http://server/size-500.image.png',\n\t * \t\t'1000': 'http://server/size-1000.image.png',\n\t * \t\t'1052': 'http://server/default-size.image.png'\n\t * \t}\n\t * }\n\t * ```\n\t *\n\t * NOTE: When returning multiple images, the widest returned one should equal the default one. It is essential to\n\t * correctly set `width` attribute of the image. See this discussion:\n\t * https://github.com/ckeditor/ckeditor5-easy-image/issues/4 for more information.\n\t *\n\t * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n\t * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n\t *\n\t * @returns Promise that should be resolved when data is uploaded.\n\t */\n\tupload(): Promise<UploadResponse>;\n\n\t/**\n\t * Aborts the upload process.\n\t * After aborting it should reject promise returned from {@link #upload upload()}.\n\t *\n\t * Take a look at {@link module:upload/filerepository~UploadAdapter example Adapter implementation} and\n\t * {@link module:upload/filerepository~FileRepository#createUploadAdapter createUploadAdapter method}.\n\t */\n\tabort?(): void;\n}\n\nexport type UploadResponse = Record<string, unknown>;\n\n/**\n * Object returned by {@link module:upload/filerepository~FileLoader#_createFilePromiseWrapper} method\n * to add more control over the initial file promise passed to {@link module:upload/filerepository~FileLoader}.\n */\ntype FilePromiseWrapper = {\n\n\t/**\n\t * Wrapper promise which can be chained for further processing.\n\t */\n\tpromise: Promise<File>;\n\n\t/**\n\t * Rejects the promise when called.\n\t */\n\trejecter: ( reason?: unknown ) => void;\n\n\t/**\n\t * Whether original promise is already fulfilled.\n\t */\n\tisFulfilled: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/adapters/base64uploadadapter\n */\n\n/* globals window */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport FileRepository, { type UploadResponse, type FileLoader, type UploadAdapter } from '../filerepository.js';\n\ntype DomFileReader = globalThis.FileReader;\n\n/**\n * A plugin that converts images inserted into the editor into [Base64 strings](https://en.wikipedia.org/wiki/Base64)\n * in the {@glink getting-started/setup/getting-and-setting-data editor output}.\n *\n * This kind of image upload does not require server processing – images are stored with the rest of the text and\n * displayed by the web browser without additional requests.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class Base64UploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Base64UploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => new Adapter( loader );\n\t}\n}\n\n/**\n * The upload adapter that converts images inserted into the editor into Base64 strings.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * `FileLoader` instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\tpublic reader?: DomFileReader;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader ) {\n\t\tthis.loader = loader;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = this.reader = new window.FileReader();\n\n\t\t\treader.addEventListener( 'load', () => {\n\t\t\t\tresolve( { default: reader.result } );\n\t\t\t} );\n\n\t\t\treader.addEventListener( 'error', err => {\n\t\t\t\treject( err );\n\t\t\t} );\n\n\t\t\treader.addEventListener( 'abort', () => {\n\t\t\t\treject();\n\t\t\t} );\n\n\t\t\tthis.loader.file.then( file => {\n\t\t\t\treader.readAsDataURL( file! );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tthis.reader!.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module upload/adapters/simpleuploadadapter\n */\n\n/* globals XMLHttpRequest, FormData */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport FileRepository, { type UploadResponse, type FileLoader, type UploadAdapter } from '../filerepository.js';\nimport type { SimpleUploadConfig } from '../uploadconfig.js';\nimport { logWarning } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The Simple upload adapter allows uploading images to an application running on your server using\n * the [`XMLHttpRequest`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) API with a\n * minimal {@link module:upload/uploadconfig~SimpleUploadConfig editor configuration}.\n *\n * ```ts\n * ClassicEditor\n * \t.create( document.querySelector( '#editor' ), {\n * \t\tsimpleUpload: {\n * \t\t\tuploadUrl: 'http://example.com',\n * \t\t\theaders: {\n * \t\t\t\t...\n * \t\t\t}\n * \t\t}\n * \t} )\n * \t.then( ... )\n * \t.catch( ... );\n * ```\n *\n * See the {@glink features/images/image-upload/simple-upload-adapter \"Simple upload adapter\"} guide to learn how to\n * learn more about the feature (configuration, server–side requirements, etc.).\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class SimpleUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'SimpleUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst options = this.editor.config.get( 'simpleUpload' );\n\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !options.uploadUrl ) {\n\t\t\t/**\n\t\t\t * The {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `config.simpleUpload.uploadUrl`}\n\t\t\t * configuration required by the {@link module:upload/adapters/simpleuploadadapter~SimpleUploadAdapter `SimpleUploadAdapter`}\n\t\t\t * is missing. Make sure the correct URL is specified for the image upload to work properly.\n\t\t\t *\n\t\t\t * @error simple-upload-adapter-missing-uploadurl\n\t\t\t */\n\t\t\tlogWarning( 'simple-upload-adapter-missing-uploadurl' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => {\n\t\t\treturn new Adapter( loader, options );\n\t\t};\n\t}\n}\n\n/**\n * Upload adapter.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * The configuration of the adapter.\n\t */\n\tpublic options: SimpleUploadConfig;\n\n\tprivate xhr?: XMLHttpRequest;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, options: SimpleUploadConfig ) {\n\t\tthis.loader = loader;\n\t\tthis.options = options;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload(): Promise<UploadResponse> {\n\t\treturn this.loader.file\n\t\t\t.then( file => new Promise( ( resolve, reject ) => {\n\t\t\t\tthis._initRequest();\n\t\t\t\tthis._initListeners( resolve, reject, file! );\n\t\t\t\tthis._sendRequest( file! );\n\t\t\t} ) );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the `XMLHttpRequest` object using the URL specified as\n\t * {@link module:upload/uploadconfig~SimpleUploadConfig#uploadUrl `simpleUpload.uploadUrl`} in the editor's\n\t * configuration.\n\t */\n\tprivate _initRequest(): void {\n\t\tconst xhr = this.xhr = new XMLHttpRequest();\n\n\t\txhr.open( 'POST', this.options.uploadUrl, true );\n\t\txhr.responseType = 'json';\n\t}\n\n\t/**\n\t * Initializes XMLHttpRequest listeners\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file Native File object.\n\t */\n\tprivate _initListeners(\n\t\tresolve: ( result: UploadResponse ) => void,\n\t\treject: ( message?: string ) => void,\n\t\tfile: File\n\t): void {\n\t\tconst xhr = this.xhr!;\n\t\tconst loader = this.loader;\n\t\tconst genericErrorText = `Couldn't upload file: ${ file.name }.`;\n\n\t\txhr.addEventListener( 'error', () => reject( genericErrorText ) );\n\t\txhr.addEventListener( 'abort', () => reject() );\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || response.error ) {\n\t\t\t\treturn reject( response && response.error && response.error.message ? response.error.message : genericErrorText );\n\t\t\t}\n\n\t\t\tconst urls = response.url ? { default: response.url } : response.urls;\n\n\t\t\t// Resolve with the normalized `urls` property and pass the rest of the response\n\t\t\t// to allow customizing the behavior of features relying on the upload adapters.\n\t\t\tresolve( {\n\t\t\t\t...response,\n\t\t\t\turls\n\t\t\t} );\n\t\t} );\n\n\t\t// Upload progress when it is supported.\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( xhr.upload ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tloader.uploadTotal = evt.total;\n\t\t\t\t\tloader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _sendRequest( file: File ): void {\n\t\t// Set headers if specified.\n\t\tconst headers = this.options.headers || {};\n\n\t\t// Use the withCredentials flag if specified.\n\t\tconst withCredentials = this.options.withCredentials || false;\n\n\t\tfor ( const headerName of Object.keys( headers ) ) {\n\t\t\tthis.xhr!.setRequestHeader( headerName, headers[ headerName ] );\n\t\t}\n\n\t\tthis.xhr!.withCredentials = withCredentials;\n\n\t\t// Prepare the form data.\n\t\tconst data = new FormData();\n\n\t\tdata.append( 'upload', file );\n\n\t\t// Send the request.\n\t\tthis.xhr!.send( data );\n\t}\n}\n"]}
@@ -13,7 +13,7 @@ import { Plugin } from '@ckeditor/ckeditor5-core';
13
13
  import FileRepository from '../filerepository.js';
14
14
  /**
15
15
  * A plugin that converts images inserted into the editor into [Base64 strings](https://en.wikipedia.org/wiki/Base64)
16
- * in the {@glink installation/getting-started/getting-and-setting-data editor output}.
16
+ * in the {@glink getting-started/setup/getting-and-setting-data editor output}.
17
17
  *
18
18
  * This kind of image upload does not require server processing – images are stored with the rest of the text and
19
19
  * displayed by the web browser without additional requests.
@@ -13,7 +13,7 @@ declare const FileReader_base: {
13
13
  /**
14
14
  * Wrapper over the native `FileReader`.
15
15
  */
16
- export default class FileReader extends FileReader_base {
16
+ export default class FileReader extends /* #__PURE__ */ FileReader_base {
17
17
  total: number;
18
18
  /**
19
19
  * Instance of native FileReader.