UNPKG

devexpress-richedit

Version:

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

36 lines (35 loc) 1.89 kB
import { ListUtils } from '@devexpress/utils/lib/utils/list'; import { CacheImageInfo } from '../../caches/images'; import { JSONImageCacheInfo } from '../enums/json-floating-enums'; import { SizeExporter } from './json-importer'; export class JSONCacheImageInfoConverter { static convertFromJSON(obj) { const actualId = obj[JSONImageCacheInfo.ActualId]; return new CacheImageInfo(obj[JSONImageCacheInfo.Base64], actualId, obj[JSONImageCacheInfo.TmpId], obj[JSONImageCacheInfo.Url], undefined, undefined, SizeExporter.convertFromJSON(obj[JSONImageCacheInfo.Size]), actualId !== undefined && actualId !== null); } static convertToJSON(source, sendBase64) { return { [JSONImageCacheInfo.Base64]: sendBase64 ? source.base64 : undefined, [JSONImageCacheInfo.ActualId]: source.actualId, [JSONImageCacheInfo.TmpId]: source.tmpId, [JSONImageCacheInfo.Url]: source.imageUrl, [JSONImageCacheInfo.Size]: SizeExporter.convertToJSON(source.size), }; } static translateImageCorrespondence(obj, imageCorrespondence) { return ListUtils.map(obj, rawJsonCacheInfo => { const info = JSONCacheImageInfoConverter.convertFromJSON(rawJsonCacheInfo); info.actualId = imageCorrespondence[info.actualId]; return JSONCacheImageInfoConverter.convertToJSON(info, true); }); } static importImageCache(imageCache, imageCorrespondence, obj) { if (obj) { const convertedImages = imageCorrespondence ? JSONCacheImageInfoConverter.translateImageCorrespondence(obj, imageCorrespondence) : obj; for (var jsonImage of convertedImages) imageCache.registerPictureData(JSONCacheImageInfoConverter.convertFromJSON(jsonImage)); } } }