diff --git a/packages/draft-js-export-html/package.json b/packages/draft-js-export-html/package.json
index 0cdc6ead..306422b5 100644
--- a/packages/draft-js-export-html/package.json
+++ b/packages/draft-js-export-html/package.json
@@ -1,6 +1,6 @@
{
"name": "@sendgrid/draft-js-export-html",
- "version": "1.0.5",
+ "version": "1.0.7",
"description": "DraftJS: Export ContentState to HTML",
"main": "lib/main.js",
"typings": "typings/index.d.ts",
diff --git a/packages/draft-js-export-html/src/stateToHTML.js b/packages/draft-js-export-html/src/stateToHTML.js
index 140b024b..123724e3 100644
--- a/packages/draft-js-export-html/src/stateToHTML.js
+++ b/packages/draft-js-export-html/src/stateToHTML.js
@@ -76,6 +76,7 @@ const ENTITY_ATTR_MAP: {[entityType: string]: AttrMap} = {
title: 'title',
className: 'class',
clicktracking: 'clicktracking',
+ universal: 'universal',
},
[ENTITY_TYPE.IMAGE]: {
src: 'src',
@@ -83,6 +84,11 @@ const ENTITY_ATTR_MAP: {[entityType: string]: AttrMap} = {
width: 'width',
alt: 'alt',
className: 'class',
+ style: 'style',
+ },
+ SPAN: {
+ className: 'class',
+ style: 'style',
},
};
diff --git a/packages/draft-js-import-element/package.json b/packages/draft-js-import-element/package.json
index 2473657a..e4eb9bc3 100644
--- a/packages/draft-js-import-element/package.json
+++ b/packages/draft-js-import-element/package.json
@@ -1,6 +1,6 @@
{
"name": "@sendgrid/draft-js-import-element",
- "version": "1.0.1",
+ "version": "1.0.3",
"description": "DraftJS: Import Element to ContentState",
"main": "lib/main.js",
"scripts": {
diff --git a/packages/draft-js-import-element/src/__tests__/stateFromElement-test.js b/packages/draft-js-import-element/src/__tests__/stateFromElement-test.js
index 079ac6fb..65fbe368 100644
--- a/packages/draft-js-import-element/src/__tests__/stateFromElement-test.js
+++ b/packages/draft-js-import-element/src/__tests__/stateFromElement-test.js
@@ -173,7 +173,16 @@ describe('stateFromElement', () => {
});
it('should support images', () => {
- let imageNode = new ElementNode('img', [{name: 'src', value: 'imgur.com/asdf.jpg'}]);
+ let imageNode = new ElementNode(
+ 'img',
+ [
+ {name: 'src', value: 'imgur.com/asdf.jpg'},
+ {name: 'height', value: '40'},
+ {name: 'width', value: '40'},
+ {name: 'class', value: 'myClass'},
+ {name: 'style', value: 'color: red;'},
+ ],
+ );
let wrapperElement = new ElementNode('div', [], [imageNode]);
let contentState = stateFromElement(wrapperElement);
let rawContentState = removeBlockKeys(convertToRaw(contentState));
@@ -196,6 +205,10 @@ describe('stateFromElement', () => {
'0': {
data: {
src: 'imgur.com/asdf.jpg',
+ height: '40',
+ width: '40',
+ className: 'myClass',
+ style: 'color: red;',
},
mutability: 'MUTABLE',
type: 'IMAGE',
diff --git a/packages/draft-js-import-element/src/stateFromElement.js b/packages/draft-js-import-element/src/stateFromElement.js
index 79184bb1..5d28974d 100644
--- a/packages/draft-js-import-element/src/stateFromElement.js
+++ b/packages/draft-js-import-element/src/stateFromElement.js
@@ -108,8 +108,9 @@ const DATA_ATTRIBUTE = /^data-([a-z0-9-]+)$/;
// Map element attributes to entity data.
const ELEM_ATTR_MAP = {
- a: {href: 'url', rel: 'rel', target: 'target', title: 'title', clicktracking: 'clicktracking'},
- img: {src: 'src', alt: 'alt'},
+ a: {href: 'url', rel: 'rel', target: 'target', title: 'title', clicktracking: 'clicktracking', universal: 'universal'},
+ img: {src: 'src', alt: 'alt', class: 'className', style: 'style', height: 'height', width: 'width'},
+ span: {class: 'className', style: 'style'},
};
const getEntityData = (tagName: string, element: DOMElement) => {
@@ -156,6 +157,14 @@ const ElementToEntity = {
return generator.createEntity(ENTITY_TYPE.IMAGE, data);
}
},
+ span(
+ generator: ContentGenerator,
+ tagName: string,
+ element: DOMElement,
+ ): ?string {
+ let data = getEntityData(tagName, element);
+ return generator.createEntity('SPAN', data);
+ },
};
class ContentGenerator {
diff --git a/packages/draft-js-import-html/package.json b/packages/draft-js-import-html/package.json
index 9484b4be..5ea07785 100644
--- a/packages/draft-js-import-html/package.json
+++ b/packages/draft-js-import-html/package.json
@@ -1,6 +1,6 @@
{
"name": "@sendgrid/draft-js-import-html",
- "version": "1.0.1",
+ "version": "1.0.3",
"description": "DraftJS: Import HTML to ContentState",
"main": "lib/main.js",
"typings": "typings/index.d.ts",
@@ -9,7 +9,7 @@
"watch": "babel src --watch --out-dir lib --ignore \"_*\""
},
"dependencies": {
- "@sendgrid/draft-js-import-element": "^1.0.0"
+ "@sendgrid/draft-js-import-element": "1.0.3"
},
"peerDependencies": {
"draft-js": ">=0.10.0",