UNPKG

devexpress-richedit

Version:

DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.

47 lines (46 loc) 1.65 kB
export class FormatImagesImporterData { constructor(subDocPos, options, run) { this.subDocPos = subDocPos; this.options = options; this.run = run; } } export class FormatImagesImporter { constructor() { this.data = []; this.callbackId = []; } dispose() { this.callbackId.forEach(id => clearTimeout(id)); clearTimeout(this.timeoutId); } whenAllPicturesLoaded(callback, timeout = 3000) { if (!this.data.length) { this.callOnImportEnd = () => callback(true); return; } let numLoadingPictures = this.data.length; this.timeoutId = setTimeout(() => callback(false), timeout); this.data.forEach(data => data.options.imageLoadedEvent.push(() => { numLoadingPictures--; if (numLoadingPictures == 0) { clearTimeout(this.timeoutId); this.callbackId.push(setTimeout(() => callback(true), 0)); } })); } import(modelManipulator) { this.data.forEach(d => { const cacheInfo = d.run.info.cacheInfo; modelManipulator.picture.loader.sizeUpdater.addSizes(d.subDocPos, d.options, d.run, null); if (cacheInfo.isLoaded) modelManipulator.picture.loader.sizeUpdater.update(cacheInfo, false); }); modelManipulator.model.cache.imageCache.loadAllPictures(modelManipulator.picture); if (this.callOnImportEnd) this.callOnImportEnd(); } registerImageRun(data) { this.data.push(data); } }