{"version":3,"sources":["webpack:///./node_modules/html-to-react/index.js","webpack:///./node_modules/html-to-react/lib/processing-instructions.js","webpack:///./node_modules/html-to-react/lib/process-node-definitions.js","webpack:///./node_modules/html-to-react/lib/utils.js","webpack:///./node_modules/html-to-react/lib/is-valid-node-definitions.js","webpack:///./node_modules/html-to-react/lib/parser.js","webpack:///./node_modules/html-to-react/lib/should-process-node-definitions.js","webpack:///./node_modules/html-to-react/lib/camel-case-attribute-names.js"],"names":["parser","processingInstructions","isValidNodeDefinitions","processNodeDefinitions","module","exports","Parser","ProcessingInstructions","IsValidNodeDefinitions","ProcessNodeDefinitions","ShouldProcessNodeDefinitions","defaultProcessingInstructions","shouldProcessNode","shouldProcessEveryNode","processNode","processDefaultNode","ent","utils","voidElementTags","node","children","index","type","decode","data","indexOf","name","createElement","camelize","toPairs","reduce","React","camelCaseAttrMap","elementProps","key","attribs","result","keyAndValue","value","replace","createStyleJsonFromString","styleString","singleStyle","styles","split","jsonStyles","i","length","allChildren","concat","apply","alwaysValid","find","reject","addIndex","map","htmlParser","Html2ReactParser","options","parseWithInstructions","html","isValidNode","domTree","parseHtmlToTree","handler","DomHandler","parseComplete","dom","Error","traverseDom","processingInstruction","childrenPromise","x","child","Promise","all","then","parse","camelCaseMap","soFar","attr","lower","toLowerCase"],"mappings":"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","file":"npm.html-to-react-bc18f86490a5e6719edb.js","sourcesContent":["'use strict';\n\nvar parser = require('./lib/parser');\nvar processingInstructions = require('./lib/processing-instructions');\nvar isValidNodeDefinitions = require('./lib/is-valid-node-definitions');\nvar processNodeDefinitions = require('./lib/process-node-definitions');\n\nmodule.exports = {\n Parser: parser,\n ProcessingInstructions: processingInstructions,\n IsValidNodeDefinitions: isValidNodeDefinitions,\n ProcessNodeDefinitions: processNodeDefinitions,\n};\n","'use strict';\nvar ShouldProcessNodeDefinitions = require('./should-process-node-definitions');\nvar ProcessNodeDefinitions = require('./process-node-definitions');\n\nfunction ProcessingInstructions() {\n var processNodeDefinitions = new ProcessNodeDefinitions();\n\n return {\n defaultProcessingInstructions: [{\n shouldProcessNode: ShouldProcessNodeDefinitions.shouldProcessEveryNode,\n processNode: processNodeDefinitions.processDefaultNode,\n },],\n };\n};\n\nmodule.exports = ProcessingInstructions;\n","'use strict';\nvar ent = require('ent');\nvar utils = require('./utils');\n\n// https://github.com/facebook/react/blob/15.0-stable/src/renderers/dom/shared/ReactDOMComponent.js#L457\nvar voidElementTags = [\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param',\n 'source', 'track', 'wbr', 'menuitem', 'textarea',\n];\n\nfunction ProcessNodeDefinitions() {\n function processDefaultNode(node, children, index) {\n if (node.type === 'text') {\n return ent.decode(node.data);\n } else if (node.type === 'comment') {\n // FIXME: The following doesn't work as the generated HTML results in\n // \"<!-- This is a comment -->\"\n // return '';\n return false;\n }\n\n if (voidElementTags.indexOf(node.name) > -1) {\n return utils.createElement(node, index);\n } else {\n return utils.createElement(node, index, node.data, children);\n }\n }\n\n return {\n processDefaultNode: processDefaultNode,\n };\n}\n\nmodule.exports = ProcessNodeDefinitions;\n","'use strict';\nvar camelize = require('underscore.string.fp/camelize');\nvar toPairs = require('ramda/src/toPairs');\nvar reduce = require('ramda/src/reduce');\nvar React = require('react');\nvar camelCaseAttrMap = require('./camel-case-attribute-names');\n\nfunction createStyleJsonFromString(styleString) {\n if (!styleString) {\n return {};\n }\n var styles = styleString.split(';');\n var singleStyle, key, value, jsonStyles = {};\n for (var i = 0; i < styles.length; i++) {\n singleStyle = styles[i].split(':');\n key = camelize(singleStyle[0]);\n value = singleStyle[1];\n if (key.length > 0 && value.length > 0) {\n jsonStyles[key] = value;\n }\n }\n return jsonStyles;\n}\n\nfunction createElement(node, index, data, children) {\n var elementProps = {\n key: index,\n };\n if (node.attribs) {\n elementProps = reduce(function(result, keyAndValue) {\n var key = keyAndValue[0];\n var value = keyAndValue[1];\n key = camelCaseAttrMap[key.replace(/-/, '')] || key;\n if (key === 'style') {\n value = createStyleJsonFromString(value);\n } else if (key === 'class') {\n key = 'className';\n }\n result[key] = value || key;\n return result;\n }, elementProps, toPairs(node.attribs));\n }\n\n children = children || [];\n var allChildren = data != null ? [data,].concat(children) : children;\n return React.createElement.apply(\n null, [node.name, elementProps,].concat(allChildren)\n );\n}\n\nmodule.exports = {\n createElement: createElement,\n};\n","'use strict';\nfunction alwaysValid() {\n return true;\n}\n\nmodule.exports = {\n alwaysValid: alwaysValid,\n};\n","'use strict';\nvar find = require('ramda/src/find');\nvar reject = require('ramda/src/reject');\nvar addIndex = require('ramda/src/addIndex');\nvar map = require('ramda/src/map');\nvar htmlParser = require('htmlparser2');\nvar ProcessingInstructions = require('./processing-instructions');\nvar IsValidNodeDefinitions = require('./is-valid-node-definitions');\nvar utils = require('./utils');\n\nfunction Html2ReactParser(options) {\n function parseHtmlToTree(html) {\n var handler = new htmlParser.DomHandler();\n var parser = new htmlParser.Parser(handler, options);\n parser.parseComplete(html);\n return handler.dom;\n };\n\n function traverseDom(node, isValidNode, processingInstructions, index) {\n if (isValidNode(node)) {\n var processingInstruction = find(function (processingInstruction) {\n return processingInstruction.shouldProcessNode(node);\n }, processingInstructions);\n if (processingInstruction != null) {\n var childrenPromise = reject(function (x) {return x == null || x === false;},\n addIndex(map)(function (child, i) {\n return traverseDom(child, isValidNode, processingInstructions, i);\n }, node.children || []));\n return Promise.all(childrenPromise).then(\n function(children) {\n return processingInstruction.processNode(node, children, index);\n }\n );\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n function parseWithInstructions(html, isValidNode, processingInstructions) {\n var domTree = parseHtmlToTree(html);\n // TODO: Deal with HTML that contains more than one root level node\n if (domTree && domTree.length !== 1) {\n throw new Error(\n 'html-to-react currently only supports HTML with one single root element. ' +\n 'The HTML provided contains ' + domTree.length +\n ' root elements. You can fix that by simply wrapping your HTML ' +\n 'in a
element.');\n }\n return traverseDom(domTree[0], isValidNode, processingInstructions, 0);\n };\n\n function parse(html) {\n var processingInstructions = new ProcessingInstructions();\n return parseWithInstructions(html,\n IsValidNodeDefinitions.alwaysValid,\n processingInstructions.defaultProcessingInstructions);\n };\n\n return {\n parse: parse,\n parseWithInstructions: parseWithInstructions,\n };\n};\n\nmodule.exports = Html2ReactParser;\n","'use strict';\nfunction shouldProcessEveryNode(node) {\n return true;\n}\n\nmodule.exports = {\n shouldProcessEveryNode: shouldProcessEveryNode,\n};\n","// These are all sourced from https://facebook.github.io/react/docs/tags-and-attributes.html -\n// all attributes regardless of whether they have a different case to their HTML equivalents are\n// listed to reduce the chance of human error and make it easier to just copy-paste the new list if\n// it changes.\n'use strict';\nvar HTML_ATTRIBUTES = [\n 'accept', 'acceptCharset', 'accessKey', 'action', 'allowFullScreen', 'allowTransparency',\n 'alt', 'async', 'autoComplete', 'autoFocus', 'autoPlay', 'capture', 'cellPadding',\n 'cellSpacing', 'challenge', 'charSet', 'checked', 'cite', 'classID', 'className',\n 'colSpan', 'cols', 'content', 'contentEditable', 'contextMenu', 'controls', 'coords',\n 'crossOrigin', 'data', 'dateTime', 'default', 'defer', 'dir', 'disabled', 'download',\n 'draggable', 'encType', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate',\n 'formTarget', 'frameBorder', 'headers', 'height', 'hidden', 'high', 'href', 'hrefLang',\n 'htmlFor', 'httpEquiv', 'icon', 'id', 'inputMode', 'integrity', 'is', 'keyParams', 'keyType',\n 'kind', 'label', 'lang', 'list', 'loop', 'low', 'manifest', 'marginHeight', 'marginWidth',\n 'max', 'maxLength', 'media', 'mediaGroup', 'method', 'min', 'minLength', 'multiple', 'muted',\n 'name', 'noValidate', 'nonce', 'open', 'optimum', 'pattern', 'placeholder', 'poster',\n 'preload', 'profile', 'radioGroup', 'readOnly', 'rel', 'required', 'reversed', 'role',\n 'rowSpan', 'rows', 'sandbox', 'scope', 'scoped', 'scrolling', 'seamless', 'selected',\n 'shape', 'size', 'sizes', 'span', 'spellCheck', 'src', 'srcDoc', 'srcLang', 'srcSet', 'start',\n 'step', 'style', 'summary', 'tabIndex', 'target', 'title', 'type', 'useMap', 'value', 'width',\n 'wmode', 'wrap',\n];\n\nvar NON_STANDARD_ATTRIBUTES = [\n 'autoCapitalize', 'autoCorrect', 'color', 'itemProp', 'itemScope', 'itemType', 'itemRef',\n 'itemID', 'security', 'unselectable', 'results', 'autoSave',\n];\n\nvar SVG_ATTRIBUTES = [\n 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic',\n 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse',\n 'azimuth', 'baseFrequency', 'baseProfile', 'baselineShift', 'bbox', 'begin', 'bias', 'by',\n 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation',\n 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType',\n 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant',\n 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode',\n 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill',\n 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity',\n 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle',\n 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName',\n 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform',\n 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'ideographic', 'imageRendering',\n 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kernelMatrix', 'kernelUnitLength',\n 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing',\n 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid',\n 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits',\n 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order',\n 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness',\n 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform',\n 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ',\n 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY',\n 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures',\n 'restart', 'result', 'rotate', 'rx', 'ry', 'scale', 'seed', 'shapeRendering', 'slope',\n 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset',\n 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity',\n 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray',\n 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit',\n 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX',\n 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform',\n 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi',\n 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'vHanging', 'vIdeographic', 'vMathematical',\n 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'viewBox',\n 'viewTarget', 'visibility', 'widths', 'wordSpacing', 'writingMode', 'x', 'x1', 'x2',\n 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole',\n 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlSpace', 'y', 'y1', 'y2',\n 'yChannelSelector', 'z', 'zoomAndPan',\n];\n\nvar camelCaseMap = HTML_ATTRIBUTES\n .concat(NON_STANDARD_ATTRIBUTES)\n .concat(SVG_ATTRIBUTES)\n .reduce(function (soFar, attr) {\n var lower = attr.toLowerCase();\n if (lower !== attr) {\n soFar[lower] = attr;\n }\n return soFar;\n }, {});\n\nmodule.exports = camelCaseMap;\n"],"sourceRoot":""}