UNPKG

ckeditor5-image-upload-base64

Version:

The development environment of CKEditor 5 – the best browser-based rich text editor.

72 lines (62 loc) 1.89 kB
/** * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /** * @module engine/view/styles/background */ import { getShorthandValues, isAttachment, isColor, isPosition, isRepeat, isURL } from './utils'; /** * Adds a background CSS styles processing rules. * * editor.data.addStyleProcessorRules( addBackgroundRules ); * * The normalized value is stored as: * * const styles = { * background: { * color, * repeat, * position, * attachment, * image * } * }; * * **Note**: Currently only `'background-color'` longhand value is parsed besides `'background'` shorthand. The reducer also supports only * `'background-color'` value. * * @param {module:engine/view/stylesmap~StylesProcessor} stylesProcessor */ export function addBackgroundRules( stylesProcessor ) { stylesProcessor.setNormalizer( 'background', normalizeBackground ); stylesProcessor.setNormalizer( 'background-color', value => ( { path: 'background.color', value } ) ); stylesProcessor.setReducer( 'background', value => { const ret = []; ret.push( [ 'background-color', value.color ] ); return ret; } ); } function normalizeBackground( value ) { const background = {}; const parts = getShorthandValues( value ); for ( const part of parts ) { if ( isRepeat( part ) ) { background.repeat = background.repeat || []; background.repeat.push( part ); } else if ( isPosition( part ) ) { background.position = background.position || []; background.position.push( part ); } else if ( isAttachment( part ) ) { background.attachment = part; } else if ( isColor( part ) ) { background.color = part; } else if ( isURL( part ) ) { background.image = part; } } return { path: 'background', value: background }; }