{ this.modal = node; }} onKeyDown={this.updateFocus}>\n //
\n //
\n );\n }\n}\n\nModalVideo.defaultProps = {\n channel: \"youtube\",\n isOpen: false,\n youtube: {\n autoplay: 1,\n cc_load_policy: 1,\n color: null,\n controls: 1,\n disablekb: 0,\n enablejsapi: 0,\n end: null,\n fs: 1,\n h1: null,\n iv_load_policy: 1,\n list: null,\n listType: null,\n loop: 0,\n modestbranding: null,\n origin: null,\n playlist: null,\n playsinline: null,\n rel: 0,\n showinfo: 1,\n start: 0,\n wmode: \"transparent\",\n theme: \"dark\"\n },\n ratio: \"16:9\",\n vimeo: {\n api: false,\n autopause: true,\n autoplay: false,\n byline: true,\n callback: null,\n color: null,\n height: null,\n loop: false,\n maxheight: null,\n maxwidth: null,\n player_id: null,\n portrait: true,\n title: true,\n width: null,\n xhtml: false\n },\n youku: {\n autoplay: 1,\n show_related: 0\n },\n allowFullScreen: true,\n animationSpeed: 300,\n classNames: {\n modalVideoEffect: s.modalVideoEffect, //'modal-video-effect',\n modalVideo: s.modalVideo, //'modal-video',\n modalVideoClose: s.modalVideoClose, //'modal-video-close',\n modalVideoBody: s.modalVideoBody, //'modal-video-body',\n modalVideoInner: s.modalVideoInner, //'modal-video-inner',\n modalVideoIframeWrap: s.modalVideoMovieWrap, //'modal-video-movie-wrap',\n modalVideoCloseBtn: s.modalVideoCloseBtn //'modal-video-close-btn'\n },\n aria: {\n openMessage: \"You just openned the modal video\",\n dismissBtnMessage: \"Close the modal by clicking here\"\n }\n};\n","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n\nmodule.exports = _curry3;","require(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nfunction _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\nmodule.exports = _isString;","require(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\n/*\n Module dependencies\n*/\nvar ElementType = require('domelementtype');\n\nvar entities = require('entities');\n/* mixed-case SVG and MathML tags & attributes\n recognized by the HTML parser, see\n https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n*/\n\n\nvar foreignNames = require('./foreignNames.json');\n\nforeignNames.elementNames.__proto__ = null;\n/* use as a simple dictionary */\n\nforeignNames.attributeNames.__proto__ = null;\nvar unencodedElements = {\n __proto__: null,\n style: true,\n script: true,\n xmp: true,\n iframe: true,\n noembed: true,\n noframes: true,\n plaintext: true,\n noscript: true\n};\n/*\n Format attributes\n*/\n\nfunction formatAttrs(attributes, opts) {\n if (!attributes) return;\n var output = '';\n var value; // Loop through the attributes\n\n for (var key in attributes) {\n value = attributes[key];\n\n if (output) {\n output += ' ';\n }\n\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case attribute names */\n key = foreignNames.attributeNames[key] || key;\n }\n\n output += key;\n\n if (value !== null && value !== '' || opts.xmlMode) {\n output += '=\"' + (opts.decodeEntities ? entities.encodeXML(value) : value.replace(/\\\"/g, '"')) + '\"';\n }\n }\n\n return output;\n}\n/*\n Self-enclosing tags (stolen from node-htmlparser)\n*/\n\n\nvar singleTag = {\n __proto__: null,\n area: true,\n base: true,\n basefont: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n frame: true,\n hr: true,\n img: true,\n input: true,\n isindex: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n};\n\nvar render = module.exports = function (dom, opts) {\n if (!Array.isArray(dom) && !dom.cheerio) dom = [dom];\n opts = opts || {};\n var output = '';\n\n for (var i = 0; i < dom.length; i++) {\n var elem = dom[i];\n if (elem.type === 'root') output += render(elem.children, opts);else if (ElementType.isTag(elem)) output += renderTag(elem, opts);else if (elem.type === ElementType.Directive) output += renderDirective(elem);else if (elem.type === ElementType.Comment) output += renderComment(elem);else if (elem.type === ElementType.CDATA) output += renderCdata(elem);else output += renderText(elem, opts);\n }\n\n return output;\n};\n\nvar foreignModeIntegrationPoints = ['mi', 'mo', 'mn', 'ms', 'mtext', 'annotation-xml', 'foreignObject', 'desc', 'title'];\n\nfunction renderTag(elem, opts) {\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case element names */\n elem.name = foreignNames.elementNames[elem.name] || elem.name;\n /* exit foreign mode at integration points */\n\n if (elem.parent && foreignModeIntegrationPoints.indexOf(elem.parent.name) >= 0) opts = Object.assign({}, opts, {\n xmlMode: false\n });\n }\n\n if (!opts.xmlMode && ['svg', 'math'].indexOf(elem.name) >= 0) {\n opts = Object.assign({}, opts, {\n xmlMode: 'foreign'\n });\n }\n\n var tag = '<' + elem.name;\n var attribs = formatAttrs(elem.attribs, opts);\n\n if (attribs) {\n tag += ' ' + attribs;\n }\n\n if (opts.xmlMode && (!elem.children || elem.children.length === 0)) {\n tag += '/>';\n } else {\n tag += '>';\n\n if (elem.children) {\n tag += render(elem.children, opts);\n }\n\n if (!singleTag[elem.name] || opts.xmlMode) {\n tag += '' + elem.name + '>';\n }\n }\n\n return tag;\n}\n\nfunction renderDirective(elem) {\n return '<' + elem.data + '>';\n}\n\nfunction renderText(elem, opts) {\n var data = elem.data || ''; // if entities weren't decoded, no need to encode them back\n\n if (opts.decodeEntities && !(elem.parent && elem.parent.name in unencodedElements)) {\n data = entities.encodeXML(data);\n }\n\n return data;\n}\n\nfunction renderCdata(elem) {\n return '';\n}\n\nfunction renderComment(elem) {\n return '';\n}","var _arity = /*#__PURE__*/require('./_arity');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}\n\nmodule.exports = _curryN;","require(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar _isArguments = /*#__PURE__*/require('./internal/_isArguments'); // cover IE < 9 keys issues\n\n\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nmodule.exports = keys;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _filter = /*#__PURE__*/require('./internal/_filter');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xfilter = /*#__PURE__*/require('./internal/_xfilter');\n\nvar keys = /*#__PURE__*/require('./keys');\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\n\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nmodule.exports = filter;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Calls a specific handler function for all events that are encountered.\n *\n * @param func — The function to multiplex all events to.\n */\n\nvar MultiplexHandler =\n/** @class */\nfunction () {\n function MultiplexHandler(func) {\n this._func = func;\n }\n /* Format: eventname: number of arguments */\n\n\n MultiplexHandler.prototype.onattribute = function (name, value) {\n this._func(\"onattribute\", name, value);\n };\n\n MultiplexHandler.prototype.oncdatastart = function () {\n this._func(\"oncdatastart\");\n };\n\n MultiplexHandler.prototype.oncdataend = function () {\n this._func(\"oncdataend\");\n };\n\n MultiplexHandler.prototype.ontext = function (text) {\n this._func(\"ontext\", text);\n };\n\n MultiplexHandler.prototype.onprocessinginstruction = function (name, value) {\n this._func(\"onprocessinginstruction\", name, value);\n };\n\n MultiplexHandler.prototype.oncomment = function (comment) {\n this._func(\"oncomment\", comment);\n };\n\n MultiplexHandler.prototype.oncommentend = function () {\n this._func(\"oncommentend\");\n };\n\n MultiplexHandler.prototype.onclosetag = function (name) {\n this._func(\"onclosetag\", name);\n };\n\n MultiplexHandler.prototype.onopentag = function (name, attribs) {\n this._func(\"onopentag\", name, attribs);\n };\n\n MultiplexHandler.prototype.onopentagname = function (name) {\n this._func(\"onopentagname\", name);\n };\n\n MultiplexHandler.prototype.onerror = function (error) {\n this._func(\"onerror\", error);\n };\n\n MultiplexHandler.prototype.onend = function () {\n this._func(\"onend\");\n };\n\n MultiplexHandler.prototype.onparserinit = function (parser) {\n this._func(\"onparserinit\", parser);\n };\n\n MultiplexHandler.prototype.onreset = function () {\n this._func(\"onreset\");\n };\n\n return MultiplexHandler;\n}();\n\nexports.default = MultiplexHandler;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar MultiplexHandler_1 = __importDefault(require(\"./MultiplexHandler\"));\n\nvar CollectingHandler =\n/** @class */\nfunction (_super) {\n __extends(CollectingHandler, _super);\n\n function CollectingHandler(cbs) {\n if (cbs === void 0) {\n cbs = {};\n }\n\n var _this = _super.call(this, function (name) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n _this.events.push([name].concat(args)); // @ts-ignore\n\n\n if (_this._cbs[name]) (_a = _this._cbs)[name].apply(_a, args);\n }) || this;\n\n _this._cbs = cbs;\n _this.events = [];\n return _this;\n }\n\n CollectingHandler.prototype.onreset = function () {\n this.events = [];\n if (this._cbs.onreset) this._cbs.onreset();\n };\n\n CollectingHandler.prototype.restart = function () {\n var _a;\n\n if (this._cbs.onreset) this._cbs.onreset();\n\n for (var i = 0; i < this.events.length; i++) {\n var _b = this.events[i],\n name_1 = _b[0],\n args = _b.slice(1);\n\n if (!this._cbs[name_1]) {\n continue;\n } // @ts-ignore\n\n\n (_a = this._cbs)[name_1].apply(_a, args);\n }\n };\n\n return CollectingHandler;\n}(MultiplexHandler_1.default);\n\nexports.CollectingHandler = CollectingHandler;","var _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isTransformer = /*#__PURE__*/require('./_isTransformer');\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\nmodule.exports = _dispatchable;","'use strict';\n\nvar parser = require('./lib/parser');\n\nvar processingInstructions = require('./lib/processing-instructions');\n\nvar isValidNodeDefinitions = require('./lib/is-valid-node-definitions');\n\nvar processNodeDefinitions = require('./lib/process-node-definitions');\n\nmodule.exports = {\n Parser: parser,\n ProcessingInstructions: processingInstructions,\n IsValidNodeDefinitions: isValidNodeDefinitions,\n ProcessNodeDefinitions: processNodeDefinitions\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mainHeading\":\"PostView-module--main-heading--28yOi\",\"registerButton\":\"PostView-module--register-button--VwRWF\"};","function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\nmodule.exports = _isTransformer;","'use strict';\n\nvar forEach = require('ramda/src/forEach');\n\nvar find = require('ramda/src/find');\n\nvar reject = require('ramda/src/reject');\n\nvar addIndex = require('ramda/src/addIndex');\n\nvar map = require('ramda/src/map');\n\nvar HtmlParser = require('htmlparser2').Parser;\n\nvar DomHandler = require('domhandler').DomHandler;\n\nvar ProcessingInstructions = require('./processing-instructions');\n\nvar IsValidNodeDefinitions = require('./is-valid-node-definitions');\n\nvar utils = require('./utils');\n\nfunction Html2ReactParser(options) {\n function parseHtmlToTree(html) {\n options = options || {};\n options.decodeEntities = true;\n var handler = new DomHandler();\n var parser = new HtmlParser(handler, options);\n parser.parseComplete(html);\n return handler.dom.filter(function (element) {\n return element.type !== 'directive';\n });\n }\n\n ;\n\n function traverseDom(node, isValidNode, processingInstructions, preprocessingInstructions, index) {\n if (isValidNode(node)) {\n forEach(function (preprocessingInstruction) {\n if (preprocessingInstruction.shouldPreprocessNode(node)) {\n preprocessingInstruction.preprocessNode(node, index);\n }\n }, preprocessingInstructions || []);\n var processingInstruction = find(function (processingInstruction) {\n return processingInstruction.shouldProcessNode(node);\n }, processingInstructions || []);\n\n if (processingInstruction != null) {\n var children = reject(function (x) {\n return x == null || x === false;\n }, addIndex(map)(function (child, i) {\n return traverseDom(child, isValidNode, processingInstructions, preprocessingInstructions, i);\n }, node.children || []));\n\n if (processingInstruction.replaceChildren) {\n return utils.createElement(node, index, node.data, [processingInstruction.processNode(node, children, index)]);\n } else {\n return processingInstruction.processNode(node, children, index);\n }\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n ;\n\n function parseWithInstructions(html, isValidNode, processingInstructions, preprocessingInstructions) {\n var domTree = parseHtmlToTree(html);\n var list = domTree.map(function (domTreeItem, index) {\n return traverseDom(domTreeItem, isValidNode, processingInstructions, preprocessingInstructions, index);\n });\n return list.length <= 1 ? list[0] : list;\n }\n\n ;\n\n function parse(html) {\n var processingInstructions = new ProcessingInstructions();\n return parseWithInstructions(html, IsValidNodeDefinitions.alwaysValid, processingInstructions.defaultProcessingInstructions);\n }\n\n ;\n return {\n parse: parse,\n parseWithInstructions: parseWithInstructions\n };\n}\n\n;\nmodule.exports = Html2ReactParser;","function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\n\nmodule.exports = _complement;","require(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _xwrap = /*#__PURE__*/require('./_xwrap');\n\nvar bind = /*#__PURE__*/require('../bind');\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\nmodule.exports = _reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/***\n * Remove an element from the dom\n *\n * @argument elem The element to be removed\n */\n\nfunction removeElement(elem) {\n if (elem.prev) elem.prev.next = elem.next;\n if (elem.next) elem.next.prev = elem.prev;\n\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\n\nexports.removeElement = removeElement;\n/***\n * Replace an element in the dom\n *\n * @argument elem The element to be replaced\n * @argument replacement The element to be added\n */\n\nfunction replaceElement(elem, replacement) {\n var prev = replacement.prev = elem.prev;\n\n if (prev) {\n prev.next = replacement;\n }\n\n var next = replacement.next = elem.next;\n\n if (next) {\n next.prev = replacement;\n }\n\n var parent = replacement.parent = elem.parent;\n\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n}\n\nexports.replaceElement = replaceElement;\n/***\n * Append a child to an element\n *\n * @argument elem The element to append to\n * @argument child The element to be added as a child\n */\n\nfunction appendChild(elem, child) {\n child.parent = elem;\n\n if (elem.children.push(child) !== 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n child.next = null;\n }\n}\n\nexports.appendChild = appendChild;\n/***\n * Append an element after another\n *\n * @argument elem The element to append to\n * @argument next The element be added\n */\n\nfunction append(elem, next) {\n var parent = elem.parent,\n currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n\n if (currNext) {\n currNext.prev = next;\n\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n } else if (parent) {\n parent.children.push(next);\n }\n}\n\nexports.append = append;\n/***\n * Prepend an element before another\n *\n * @argument elem The element to append to\n * @argument prev The element be added\n */\n\nfunction prepend(elem, prev) {\n var parent = elem.parent;\n\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(elem), 0, prev);\n }\n\n if (elem.prev) {\n elem.prev.next = prev;\n }\n\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n\nexports.prepend = prepend;","var _isArray = /*#__PURE__*/require('./_isArray');\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\n\nmodule.exports = _checkForMethod;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\n\nfunction isTag(elem) {\n return elem.type === \"tag\"\n /* Tag */\n || elem.type === \"script\"\n /* Script */\n || elem.type === \"style\"\n /* Style */\n ;\n}\n\nexports.isTag = isTag; // Exports for backwards compatibility\n\nexports.Text = \"text\"\n/* Text */\n; //Text\n\nexports.Directive = \"directive\"\n/* Directive */\n; // ... ?>\n\nexports.Comment = \"comment\"\n/* Comment */\n; //\n\nexports.Script = \"script\"\n/* Script */\n; //