draft-js-import-element
Advanced tools
Comparing version 0.2.0 to 0.3.0
@@ -49,2 +49,3 @@ 'use strict'; | ||
var ZERO_WIDTH_SPACE = ''; | ||
var DATA_ATTRIBUTE = /^data-([a-z0-9-]+)$/; | ||
@@ -61,29 +62,15 @@ // Map element attributes to entity data. | ||
var attrMap = ELEM_ATTR_MAP[tagName]; | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
for (var i = 0; i < element.attributes.length; i++) { | ||
var _element$attributes$i = element.attributes[i]; | ||
var name = _element$attributes$i.name; | ||
var value = _element$attributes$i.value; | ||
try { | ||
for (var _iterator = Object.keys(attrMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var attr = _step.value; | ||
var dataKey = attrMap[attr]; | ||
var dataValue = element.getAttribute(attr); | ||
if (dataValue != null) { | ||
data[dataKey] = dataValue; | ||
if (value != null) { | ||
if (attrMap.hasOwnProperty(name)) { | ||
var newName = attrMap[name]; | ||
data[newName] = value; | ||
} else if (DATA_ATTRIBUTE.test(name)) { | ||
data[name] = value; | ||
} | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
} | ||
@@ -257,2 +244,3 @@ } | ||
value: function processBlockElement(element) { | ||
if (!element) return; | ||
var tagName = element.nodeName.toLowerCase(); | ||
@@ -259,0 +247,0 @@ var type = this.getBlockTypeFromTagName(tagName); |
{ | ||
"name": "draft-js-import-element", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "DraftJS: Import Element to ContentState", | ||
@@ -5,0 +5,0 @@ "main": "lib/main.js", |
@@ -53,2 +53,10 @@ # Plain text | ||
# Entity data-* allowed | ||
{"entityMap":{"0":{"type":"LINK","mutability":"MUTABLE","data":{"url":"/","data-foo":"bar","data-bar-baz":"yes"}}},"blocks":[{"key":"8r91j","text":"a","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":1,"key":0}]}]} | ||
<p><a href="/" data-foo="bar" data="no1" data-="no2" data-bar-baz="yes">a</a></p> | ||
# Entity with invalid attribute (key of Object.prototype) | ||
{"entityMap":{"0":{"type":"LINK","mutability":"MUTABLE","data":{"url":"/"}}},"blocks":[{"key":"8r91j","text":"a","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":1,"key":0}]}]} | ||
<p><a href="/" constructor="foo">a</a></p> | ||
# Entity with inline style | ||
@@ -55,0 +63,0 @@ {"entityMap":{"0":{"type":"LINK","mutability":"MUTABLE","data":{"url":"/"}}},"blocks":[{"key":"8r91j","text":"a","type":"unstyled","depth":0,"inlineStyleRanges":[{"offset":0,"length":1,"style":"ITALIC"}],"entityRanges":[{"offset":0,"length":1,"key":0}]}]} |
42482
461