UNPKG

fulan-editor

Version:

An open source react editor based on draft-Js and ant design, good support HTML, markdown and Draft Raw format.

37 lines (33 loc) 1.13 kB
/* @flow */ type Attributes = {[key: string]: string}; type StyleDescr = {[key: string]: number | string}; type RenderConfig = { element?: string; attributes?: Attributes; style?: StyleDescr; }; type StyleMap = {[styleName: string]: RenderConfig}; type StyleOrder = Array<string>; type OrderedStyleMap = [StyleMap, StyleOrder]; function combineOrderedStyles( customMap: ?StyleMap, defaults: OrderedStyleMap ): OrderedStyleMap { if (customMap == null) { return defaults; } let [defaultStyleMap, defaultStyleOrder] = defaults; let styleMap = Object.assign({},defaultStyleMap);//{...defaultStyleMap} let styleOrder = [...defaultStyleOrder]; for (let styleName of Object.keys(customMap)) { if (defaultStyleMap.hasOwnProperty(styleName)) { let defaultStyles = defaultStyleMap[styleName]; styleMap[styleName] =Object.assign({},defaultStyles,customMap[styleName]);// {...defaultStyles, ...customMap[styleName]}; } else { styleMap[styleName] = customMap[styleName]; styleOrder.push(styleName); } } return [styleMap, styleOrder]; } export default combineOrderedStyles;