-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1d973ecf76eb6bbe32f30407b779c4a366ccff7d-18a27c79be72dc45ef2f.js.map
1 lines (1 loc) · 327 KB
/
1d973ecf76eb6bbe32f30407b779c4a366ccff7d-18a27c79be72dc45ef2f.js.map
1
{"version":3,"sources":["webpack:///./node_modules/htmlparser2/lib/Stream.js","webpack:///./node_modules/htmlparser2/lib/CollectingHandler.js","webpack:///./node_modules/react-html-parser/lib/elementTypes/TextElementType.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/react-html-parser/lib/elementTypes/UnsupportedElementType.js","webpack:///./node_modules/grommet/es6/components/Tabs/TabsContext.js","webpack:///./node_modules/domutils/lib/helpers.js","webpack:///./node_modules/domhandler/lib/node.js","webpack:///./node_modules/react-html-parser/lib/utils/isValidTagOrAttributeName.js","webpack:///./node_modules/dom-serializer/node_modules/entities/lib/decode.js","webpack:///./node_modules/domutils/index.js","webpack:///./node_modules/react-html-parser/lib/dom/attributes/BooleanAttributes.js","webpack:///./node_modules/react-html-parser/lib/elementTypes/TagElementType.js","webpack:///./node_modules/dom-serializer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/domutils/lib/traversal.js","webpack:///./node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js","webpack:///./node_modules/react-html-parser/lib/utils/isEmptyTextNode.js","webpack:///./node_modules/domhandler/index.js","webpack:///./node_modules/grommet/es6/components/Tab/StyledTab.js","webpack:///./node_modules/grommet/es6/components/Tab/Tab.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/domelementtype/index.js","webpack:///./node_modules/htmlparser2/lib/FeedHandler.js","webpack:///./src/containers/DataGrid/index.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/dom-serializer/node_modules/entities/lib/index.js","webpack:///./node_modules/domhandler/lib/element.js","webpack:///./node_modules/domutils/lib/stringify.js","webpack:///./node_modules/react-html-parser/lib/utils/inlineStyleToObject.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/entities/lib/decode_codepoint.js","webpack:///./node_modules/domutils/lib/querying.js","webpack:///./node_modules/dom-serializer/node_modules/domelementtype/lib/index.js","webpack:///./node_modules/react-html-parser/lib/dom/attributes/ReactAttributes.js","webpack:///./node_modules/dom-serializer/node_modules/entities/lib/encode.js","webpack:///./node_modules/domutils/lib/manipulation.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/react-html-parser/lib/index.js","webpack:///./node_modules/node-libs-browser/node_modules/events/events.js","webpack:///./node_modules/react-html-parser/lib/convertNodeToElement.js","webpack:///./node_modules/htmlparser2/lib/WritableStream.js","webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/react-html-parser/lib/elementTypes/index.js","webpack:///./node_modules/react-html-parser/lib/elementTypes/StyleElementType.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/domutils/lib/legacy.js","webpack:///./node_modules/grommet/es6/components/Tabs/StyledTabs.js","webpack:///./node_modules/grommet/es6/components/Tabs/Tabs.js","webpack:///./node_modules/react-html-parser/lib/processNodes.js","webpack:///./node_modules/react-html-parser/lib/dom/elements/VoidElements.js","webpack:///./node_modules/react-html-parser/lib/HtmlParser.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/htmlparser2/lib/ProxyHandler.js","webpack:///./node_modules/react-html-parser/lib/utils/generatePropsFromAttributes.js","webpack:///./node_modules/react-html-parser/lib/utils/htmlAttributesToReact.js"],"names":["module","exports","Stream","Parser","options","call","this","Cbs","scope","prototype","readable","EVENTS","Object","keys","forEach","name","emit","a","Error","b","CollectingHandler","cbs","_cbs","events","push","onreset","restart","i","len","length","num","defineProperty","value","default","node","data","toString","Array","isArray","arr","TabsContext","createContext","removeSubsets","nodes","ancestor","replace","idx","indexOf","splice","parent","POSITION","comparePos","compareDocumentPosition","nodeA","nodeB","current","sharedParent","siblings","aSibling","bSibling","aParents","bParents","unshift","children","uniqueSort","position","slice","sort","relative","NodePrototype","nodeTypes","type","element","domLvl1","tagName","childNodes","parentNode","previousSibling","nextSibling","nodeValue","text","cdata","comment","key","shorthand","get","set","val","nameCache","hasOwnProperty","VALID_TAG_REGEX","test","__importDefault","mod","__esModule","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","getStrictDecoder","map","join","getReplacer","re","RegExp","str","String","sorter","charAt","secondChar","parseInt","substr","legacy","j","replacer","DomUtils","ext","bind","index","transform","_isValidTagOrAttributeName2","props","_generatePropsFromAttributes2","attribs","_VoidElements2","_processNodes2","_react2","createElement","_interopRequireDefault","obj","ElementType","entities","foreignNames","elementNames","__proto__","attributeNames","unencodedElements","style","script","xmp","iframe","noembed","noframes","plaintext","noscript","singleTag","area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr","render","dom","opts","cheerio","output","elem","isTag","renderTag","Directive","renderDirective","Comment","renderComment","CDATA","renderCdata","renderText","foreignModeIntegrationPoints","xmlMode","assign","tag","attributes","decodeEntities","encodeXML","formatAttrs","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","charCodeAt","fromByteArray","uint8","extraBytes","parts","len2","encodeChunk","lookup","Uint8Array","code","start","end","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","decode_json_1","codePoint","fromCharCode","trim","re_whitespace","ElementPrototype","DomHandler","callback","elementCB","defaultOpts","_callback","_options","_elementCB","_done","_tagStack","_parser","normalizeWhitespace","withStartIndices","withEndIndices","onparserinit","parser","onend","_handleCallback","onerror","error","onclosetag","pop","endIndex","_createDomElement","properties","withDomLvl1","create","_addDomElement","next","startIndex","prev","onopentag","Script","Style","Tag","ontext","lastTag","normalize","ignoreWhitespace","Text","oncomment","oncdatastart","oncommentend","oncdataend","onprocessinginstruction","tabHoverStyle","theme","tab","hover","background","color","extend","StyledTab","div","withConfig","displayName","componentId","plain","disabled","_extends","target","arguments","apply","defaultProps","setPrototypeOf","Tab","_ref","ref","active","icon","title","onMouseOver","onMouseOut","reverse","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_useContext","activeIndex","onActivate","setActiveContent","setActiveTitle","_useState","undefined","over","setOver","_useState2","focus","setFocus","normalizedTitle","tabStyles","console","warn","border","borderColor","global","control","side","size","pad","margin","normalizedIcon","iconProp","cloneElement","withIconStyles","first","second","direction","align","justify","gap","Button","role","onClick","event","preventDefault","onFocus","onBlur","zIndex","as","Box","TabWrapper","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","Doctype","FeedHandler","init","getElements","what","where","getElementsByTagName","getOneElement","fetch","recurse","getText","addConditionally","prop","isValidFeed","childs","feed","feedRoot","href","updated","Date","items","item","entry","description","pubDate","id","Home","datasource","hideCRUDForm","suffix","objectClass","columns","fetchData","afterAction","useState","activeModel","setActiveModel","showFormModal","setShowFormModal","mode","setMode","stores","setStores","dtColumn","setDtColumn","loadData","React","useContext","ResponsiveContext","useCallback","callCloud","action","params","useEffect","newDtColumn","e","property","header","headerText","primary","datum","cursor","toJSON","full","onClose","formConfig","config","model","crud","setTimeout","Tokenizer","formTags","option","optgroup","select","button","datalist","textarea","openImpliesClose","tr","th","td","thead","body","head","li","p","h1","h2","h3","h4","h5","h6","voidElements","foreignContextElements","math","svg","htmlIntegrationElements","mi","mo","mn","ms","mtext","foreignObject","desc","re_nameEnd","_tagname","_attribname","_attribvalue","_attribs","_stack","_foreignContext","_lowerCaseTagNames","lowerCaseTags","_lowerCaseAttributeNames","lowerCaseAttributeNames","_tokenizer","EventEmitter","_updatePosition","initialOffset","_sectionStart","getAbsoluteIndex","onopentagname","toLowerCase","el","onopentagend","_closeCurrentTag","pos","lastIndexOf","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","onattribute","_getInstructionName","search","ondeclaration","oncdata","recognizeCDATA","err","reset","parseComplete","write","chunk","pause","resume","parseChunk","done","encode","decodeStrict","decode","decode_1","encode_1","level","encodeHTML","encode_2","escape","decode_2","getOuterHTML","getInnerHTML","_slicedToArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","sliceIterator","TypeError","inlineStyle","split","reduce","styleObject","stylePropertyValue","_stylePropertyValue$s","filter","_stylePropertyValue$s2","_","character","toUpperCase","decodeCodePoint","entityMap","legacyMap","xmlMap","TEXT","BEFORE_TAG_NAME","IN_TAG_NAME","IN_SELF_CLOSING_TAG","BEFORE_CLOSING_TAG_NAME","IN_CLOSING_TAG_NAME","AFTER_CLOSING_TAG_NAME","BEFORE_ATTRIBUTE_NAME","IN_ATTRIBUTE_NAME","AFTER_ATTRIBUTE_NAME","BEFORE_ATTRIBUTE_VALUE","IN_ATTRIBUTE_VALUE_DQ","IN_ATTRIBUTE_VALUE_SQ","IN_ATTRIBUTE_VALUE_NQ","BEFORE_DECLARATION","IN_DECLARATION","IN_PROCESSING_INSTRUCTION","BEFORE_COMMENT","IN_COMMENT","AFTER_COMMENT_1","AFTER_COMMENT_2","BEFORE_CDATA_1","BEFORE_CDATA_2","BEFORE_CDATA_3","BEFORE_CDATA_4","BEFORE_CDATA_5","BEFORE_CDATA_6","IN_CDATA","AFTER_CDATA_1","AFTER_CDATA_2","BEFORE_SPECIAL","BEFORE_SPECIAL_END","BEFORE_SCRIPT_1","BEFORE_SCRIPT_2","BEFORE_SCRIPT_3","BEFORE_SCRIPT_4","BEFORE_SCRIPT_5","AFTER_SCRIPT_1","AFTER_SCRIPT_2","AFTER_SCRIPT_3","AFTER_SCRIPT_4","AFTER_SCRIPT_5","BEFORE_STYLE_1","BEFORE_STYLE_2","BEFORE_STYLE_3","BEFORE_STYLE_4","AFTER_STYLE_1","AFTER_STYLE_2","AFTER_STYLE_3","AFTER_STYLE_4","BEFORE_ENTITY","BEFORE_NUMERIC_ENTITY","IN_NAMED_ENTITY","IN_NUMERIC_ENTITY","IN_HEX_ENTITY","SPECIAL_NONE","SPECIAL_SCRIPT","SPECIAL_STYLE","whitespace","c","ifElseState","upper","SUCCESS","FAILURE","lower","_state","_index","consumeSpecialNameChar","NEXT_STATE","_buffer","_bufferOffset","_baseState","_special","_running","_ended","_xmlMode","_decodeEntities","_stateText","_getSection","_stateBeforeTagName","_stateInTagName","_emitToken","_stateBeforeCloseingTagName","_stateInCloseingTagName","_stateAfterCloseingTagName","_stateBeforeAttributeName","_stateInSelfClosingTag","_stateInAttributeName","_stateAfterAttributeName","_stateBeforeAttributeValue","_stateInAttributeValueDoubleQuotes","_stateInAttributeValueSingleQuotes","_stateInAttributeValueNoQuotes","_stateBeforeDeclaration","_stateInDeclaration","_stateInProcessingInstruction","_stateBeforeComment","_stateInComment","_stateAfterComment1","_stateAfterComment2","substring","_stateBeforeCdata1","_stateBeforeCdata2","_stateBeforeCdata3","_stateBeforeCdata4","_stateBeforeCdata5","_stateBeforeCdata6","_stateInCdata","_stateAfterCdata1","_stateAfterCdata2","_stateBeforeSpecial","_stateBeforeSpecialEnd","_stateBeforeScript1","_stateBeforeScript2","_stateBeforeScript3","_stateBeforeScript4","_stateBeforeScript5","_stateAfterScript1","_stateAfterScript2","_stateAfterScript3","_stateAfterScript4","_stateAfterScript5","_stateBeforeStyle1","_stateBeforeStyle2","_stateBeforeStyle3","_stateBeforeStyle4","_stateAfterStyle1","_stateAfterStyle2","_stateAfterStyle3","_stateAfterStyle4","_stateBeforeEntity","_stateBeforeNumericEntity","_parseNamedEntityStrict","entity","_emitPartial","_parseLegacyEntity","limit","_stateInNamedEntity","_decodeNumericEntity","offset","sectionStart","parsed","_stateInNumericEntity","_stateInHexEntity","_cleanup","_parse","_finish","_handleTrailingData","decodeMap","find","elems","result","concat","isFinite","Infinity","findOneChild","l","findOne","existsOne","findAll","accept","accesskey","allowfullscreen","allowtransparency","alt","async","autocomplete","autoplay","capture","cellpadding","cellspacing","charset","challenge","checked","cite","classid","class","cols","colspan","content","contenteditable","contextmenu","controls","controlsList","coords","crossorigin","datetime","defer","dir","download","draggable","enctype","form","formaction","formenctype","formmethod","formnovalidate","formtarget","frameborder","headers","height","hidden","high","hreflang","for","inputmode","integrity","is","keyparams","keytype","kind","label","lang","list","loop","low","manifest","marginheight","marginwidth","max","maxlength","media","mediagroup","method","min","minlength","multiple","muted","nonce","novalidate","open","optimum","pattern","placeholder","playsinline","poster","preload","profile","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scoped","scrolling","seamless","selected","shape","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","step","summary","tabindex","usemap","width","wmode","wrap","about","datatype","inlist","prefix","resource","typeof","vocab","autocapitalize","autocorrect","autosave","itemprop","itemscope","itemtype","itemid","itemref","results","security","unselectable","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getInverse","inverseHTML","htmlReplacer","inverse","single","_a","k","count","reNonASCII","singleCharReplacer","codePointAt","reXmlChars","removeElement","replaceElement","replacement","appendChild","child","sibling","append","currNext","prepend","Buffer","isEncoding","encoding","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","allocUnsafe","utf8CheckByte","byte","buf","r","self","utf8CheckExtraBytes","copy","n","total","utf8CheckIncomplete","htmlparser2","convertNodeToElement","processNodes","_processNodes","_convertNodeToElement","_htmlparser","_HtmlParser2","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","isNaN","once","emitter","Promise","resolve","reject","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","m","existing","warning","newListener","warned","w","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","arg","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","handler","listeners","addListener","on","prependListener","prependOnceListener","originalListener","shift","spliceOne","off","removeAllListeners","rawListeners","eventNames","_elementTypes2","_elementTypes","WritableStream","Writable","decoder","_decoder","decodeStrings","_write","cb","defineProp","DefaultHandler","parseDOM","parseFeed","createDomStream","elementCb","attribute","cdatastart","cdataend","processinginstruction","commentend","closetag","opentag","opentagname","buffer","copyProps","dst","SafeBuffer","encodingOrOffset","from","alloc","allocUnsafeSlow","fill","SlowBuffer","_ElementType$Text$Ele","_TextElementType2","_TagElementType2","_StyleElementType2","_UnsupportedElementType2","_defineProperty","styles","read","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","Math","pow","rt","abs","floor","log","LN2","testElement","tag_name","tag_type","tag_contains","Checks","getAttribCheck","attrib","combineFuncs","funcs","getElementById","getElementsByTagType","_FLEX_MAP","StyledTabsHeader","tabs","FLEX_MAP","grow","shrink","flexStyle","flex","StyledTabPanel","panel","StyledTabs","Tabs","alignControls","_ref$justify","_ref$messages","messages","tabContents","_ref$responsive","responsive","propsActiveIndex","onActive","setActiveIndex","activeContent","_useState3","activeTitle","Children","Provider","activateTab","tabsHeaderStyles","tabContentTitle","alignSelf","TabsWrapper","_isEmptyTextNode2","transformed","_convertNodeToElement2","html","_ref$decodeEntities","_ref$preprocessNodes","preprocessNodes","_htmlparser2","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","ArrayBuffer","array","byteOffset","fromArrayLike","fromArrayBuffer","string","actual","fromString","isBuffer","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","decodeCodePointsArray","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","_isBuffer","compare","x","y","swap16","swap32","swap64","equals","inspect","match","thisStart","thisEnd","thisCopy","targetCopy","includes","out","toHex","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","stringtrim","base64clean","ProxyHandler","_htmlAttributesToReact2","_inlineStyleToObject2","attr","mappedAttributes","lowerCaseAttribute","_ReactAttributes2","_BooleanAttributes2","getParsedAttributeValue"],"mappings":"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","file":"1d973ecf76eb6bbe32f30407b779c4a366ccff7d-18a27c79be72dc45ef2f.js","sourcesContent":["module.exports = Stream;\n\nvar Parser = require(\"./WritableStream.js\");\n\nfunction Stream(options) {\n Parser.call(this, new Cbs(this), options);\n}\n\nrequire(\"inherits\")(Stream, Parser);\n\nStream.prototype.readable = true;\n\nfunction Cbs(scope) {\n this.scope = scope;\n}\n\nvar EVENTS = require(\"../\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n Cbs.prototype[\"on\" + name] = function () {\n this.scope.emit(name);\n };\n } else if (EVENTS[name] === 1) {\n Cbs.prototype[\"on\" + name] = function (a) {\n this.scope.emit(name, a);\n };\n } else if (EVENTS[name] === 2) {\n Cbs.prototype[\"on\" + name] = function (a, b) {\n this.scope.emit(name, a, b);\n };\n } else {\n throw Error(\"wrong number of arguments!\");\n }\n});","module.exports = CollectingHandler;\n\nfunction CollectingHandler(cbs) {\n this._cbs = cbs || {};\n this.events = [];\n}\n\nvar EVENTS = require(\"./\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function () {\n this.events.push([name]);\n if (this._cbs[name]) this._cbs[name]();\n };\n } else if (EVENTS[name] === 1) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function (a) {\n this.events.push([name, a]);\n if (this._cbs[name]) this._cbs[name](a);\n };\n } else if (EVENTS[name] === 2) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function (a, b) {\n this.events.push([name, a, b]);\n if (this._cbs[name]) this._cbs[name](a, b);\n };\n } else {\n throw Error(\"wrong number of arguments\");\n }\n});\n\nCollectingHandler.prototype.onreset = function () {\n this.events = [];\n if (this._cbs.onreset) this._cbs.onreset();\n};\n\nCollectingHandler.prototype.restart = function () {\n if (this._cbs.onreset) this._cbs.onreset();\n\n for (var i = 0, len = this.events.length; i < len; i++) {\n if (this._cbs[this.events[i][0]]) {\n var num = this.events[i].length;\n\n if (num === 1) {\n this._cbs[this.events[i][0]]();\n } else if (num === 2) {\n this._cbs[this.events[i][0]](this.events[i][1]);\n } else {\n this._cbs[this.events[i][0]](this.events[i][1], this.events[i][2]);\n }\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TextElementType;\n/**\n * Converts a text node to a React text element\n *\n * @param {Object} node The text node\n * @returns {String} The text\n */\n\nfunction TextElementType(node) {\n // React will accept plain text for rendering so just return the node data\n return node.data;\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = UnsupportedElementType;\n/**\n * Handles an unsupported element type by returning null so nothing is rendered\n * @returns {null}\n */\n\nfunction UnsupportedElementType() {\n // do nothing because the element type is unsupported\n // comment, directive, script, cdata, doctype are all currently unsupported\n return null;\n}","import React from 'react';\nexport var TabsContext = /*#__PURE__*/React.createContext({});","// removeSubsets\n// Given an array of nodes, remove any member that is contained by another.\nexports.removeSubsets = function (nodes) {\n var idx = nodes.length,\n node,\n ancestor,\n replace; // Check if each node (or one of its ancestors) is already contained in the\n // array.\n\n while (--idx > -1) {\n node = ancestor = nodes[idx]; // Temporarily remove the node under consideration\n\n nodes[idx] = null;\n replace = true;\n\n while (ancestor) {\n if (nodes.indexOf(ancestor) > -1) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n\n ancestor = ancestor.parent;\n } // If the node has been found to be unique, re-insert it.\n\n\n if (replace) {\n nodes[idx] = node;\n }\n }\n\n return nodes;\n}; // Source: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition\n\n\nvar POSITION = {\n DISCONNECTED: 1,\n PRECEDING: 2,\n FOLLOWING: 4,\n CONTAINS: 8,\n CONTAINED_BY: 16\n}; // Compare the position of one node against another node in any other document.\n// The return value is a bitmask with the following values:\n//\n// document order:\n// > There is an ordering, document order, defined on all the nodes in the\n// > document corresponding to the order in which the first character of the\n// > XML representation of each node occurs in the XML representation of the\n// > document after expansion of general entities. Thus, the document element\n// > node will be the first node. Element nodes occur before their children.\n// > Thus, document order orders element nodes in order of the occurrence of\n// > their start-tag in the XML (after expansion of entities). The attribute\n// > nodes of an element occur after the element and before its children. The\n// > relative order of attribute nodes is implementation-dependent./\n// Source:\n// http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n//\n// @argument {Node} nodaA The first node to use in the comparison\n// @argument {Node} nodeB The second node to use in the comparison\n//\n// @return {Number} A bitmask describing the input nodes' relative position.\n// See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n// a description of these values.\n\nvar comparePos = exports.compareDocumentPosition = function (nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n var current, sharedParent, siblings, aSibling, bSibling, idx;\n\n if (nodeA === nodeB) {\n return 0;\n }\n\n current = nodeA;\n\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n\n current = nodeB;\n\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n\n idx = 0;\n\n while (aParents[idx] === bParents[idx]) {\n idx++;\n }\n\n if (idx === 0) {\n return POSITION.DISCONNECTED;\n }\n\n sharedParent = aParents[idx - 1];\n siblings = sharedParent.children;\n aSibling = aParents[idx];\n bSibling = bParents[idx];\n\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return POSITION.FOLLOWING | POSITION.CONTAINED_BY;\n }\n\n return POSITION.FOLLOWING;\n } else {\n if (sharedParent === nodeA) {\n return POSITION.PRECEDING | POSITION.CONTAINS;\n }\n\n return POSITION.PRECEDING;\n }\n}; // Sort an array of nodes based on their relative position in the document and\n// remove any duplicate nodes. If the array contains nodes that do not belong\n// to the same document, sort order is unspecified.\n//\n// @argument {Array} nodes Array of DOM nodes\n//\n// @returns {Array} collection of unique nodes, sorted in document order\n\n\nexports.uniqueSort = function (nodes) {\n var idx = nodes.length,\n node,\n position;\n nodes = nodes.slice();\n\n while (--idx > -1) {\n node = nodes[idx];\n position = nodes.indexOf(node);\n\n if (position > -1 && position < idx) {\n nodes.splice(idx, 1);\n }\n }\n\n nodes.sort(function (a, b) {\n var relative = comparePos(a, b);\n\n if (relative & POSITION.PRECEDING) {\n return -1;\n } else if (relative & POSITION.FOLLOWING) {\n return 1;\n }\n\n return 0;\n });\n return nodes;\n};","// This object will be used as the prototype for Nodes when creating a\n// DOM-Level-1-compliant structure.\nvar NodePrototype = module.exports = {\n get firstChild() {\n var children = this.children;\n return children && children[0] || null;\n },\n\n get lastChild() {\n var children = this.children;\n return children && children[children.length - 1] || null;\n },\n\n get nodeType() {\n return nodeTypes[this.type] || nodeTypes.element;\n }\n\n};\nvar domLvl1 = {\n tagName: \"name\",\n childNodes: \"children\",\n parentNode: \"parent\",\n previousSibling: \"prev\",\n nextSibling: \"next\",\n nodeValue: \"data\"\n};\nvar nodeTypes = {\n element: 1,\n text: 3,\n cdata: 4,\n comment: 8\n};\nObject.keys(domLvl1).forEach(function (key) {\n var shorthand = domLvl1[key];\n Object.defineProperty(NodePrototype, key, {\n get: function get() {\n return this[shorthand] || null;\n },\n set: function set(val) {\n this[shorthand] = val;\n return val;\n }\n });\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValidTagOrAttributeName;\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/;\nvar nameCache = {};\n\nfunction isValidTagOrAttributeName(tagName) {\n if (!nameCache.hasOwnProperty(tagName)) {\n nameCache[tagName] = VALID_TAG_REGEX.test(tagName);\n }\n\n return nameCache[tagName];\n}","\"use strict\";\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});\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\n\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\n\nfunction getStrictDecoder(map) {\n var keys = Object.keys(map).join(\"|\");\n var replace = getReplacer(map);\n keys += \"|#[xX][\\\\da-fA-F]+|#\\\\d+\";\n var re = new RegExp(\"&(?:\" + keys + \");\", \"g\");\n return function (str) {\n return String(str).replace(re, replace);\n };\n}\n\nvar sorter = function sorter(a, b) {\n return a < b ? 1 : -1;\n};\n\nexports.decodeHTML = function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n } else {\n keys[i] += \";\";\n }\n }\n\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n\n function replacer(str) {\n if (str.substr(-1) !== \";\") str += \";\";\n return replace(str);\n } //TODO consider creating a merged map\n\n\n return function (str) {\n return String(str).replace(re, replacer);\n };\n}();\n\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n\n return map[str.slice(1, -1)];\n };\n}","var DomUtils = module.exports;\n[require(\"./lib/stringify\"), require(\"./lib/traversal\"), require(\"./lib/manipulation\"), require(\"./lib/querying\"), require(\"./lib/legacy\"), require(\"./lib/helpers\")].forEach(function (ext) {\n Object.keys(ext).forEach(function (key) {\n DomUtils[key] = ext[key].bind(DomUtils);\n });\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * List of boolean attributes\n * These attributes should have their React attribute value set to be the same as their name\n * E.g. <input disabled> = <input disabled>\n * <input disabled=\"\"> = <input disabled>\n * <input disabled=\"disabled\"> = <input disabled>\n * @type {Array}\n */\n\nexports.default = ['allowfullScreen', 'async', 'autoplay', 'capture', 'checked', 'controls', 'default', 'defer', 'disabled', 'formnovalidate', 'hidden', 'loop', 'multiple', 'muted', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'itemscope'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TagElementType;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _processNodes = require('../processNodes');\n\nvar _processNodes2 = _interopRequireDefault(_processNodes);\n\nvar _generatePropsFromAttributes = require('../utils/generatePropsFromAttributes');\n\nvar _generatePropsFromAttributes2 = _interopRequireDefault(_generatePropsFromAttributes);\n\nvar _VoidElements = require('../dom/elements/VoidElements');\n\nvar _VoidElements2 = _interopRequireDefault(_VoidElements);\n\nvar _isValidTagOrAttributeName = require('../utils/isValidTagOrAttributeName');\n\nvar _isValidTagOrAttributeName2 = _interopRequireDefault(_isValidTagOrAttributeName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts any element (excluding style - see StyleElementType - and script) to a react element.\n *\n * @param {Object} node The tag node\n * @param {String} index The index of the React element relative to it's parent\n * @param {Function} transform The transform function to apply to all children\n * @returns {React.Element} The React tag element\n */\n\n\nfunction TagElementType(node, index, transform) {\n var tagName = node.name; // validate tag name\n\n if (!(0, _isValidTagOrAttributeName2.default)(tagName)) {\n return null;\n } // generate props\n\n\n var props = (0, _generatePropsFromAttributes2.default)(node.attribs, index); // If the node is not a void element and has children then process them\n\n var children = null;\n\n if (_VoidElements2.default.indexOf(tagName) === -1) {\n children = (0, _processNodes2.default)(node.children, transform);\n } // create and return the element\n\n\n return _react2.default.createElement(tagName, props, children);\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 '<![CDATA[' + elem.children[0].data + ']]>';\n}\n\nfunction renderComment(elem) {\n return '<!--' + elem.data + '-->';\n}","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","var getChildren = exports.getChildren = function (elem) {\n return elem.children;\n};\n\nvar getParent = exports.getParent = function (elem) {\n return elem.parent;\n};\n\nexports.getSiblings = function (elem) {\n var parent = getParent(elem);\n return parent ? getChildren(parent) : [elem];\n};\n\nexports.getAttributeValue = function (elem, name) {\n return elem.attribs && elem.attribs[name];\n};\n\nexports.hasAttrib = function (elem, name) {\n return !!elem.attribs && hasOwnProperty.call(elem.attribs, name);\n};\n\nexports.getName = function (elem) {\n return elem.name;\n};","\"use strict\";\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 decode_json_1 = __importDefault(require(\"./maps/decode.json\")); // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\n\n\nfunction decodeCodePoint(codePoint) {\n if (codePoint >= 0xd800 && codePoint <= 0xdfff || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n\n var output = \"\";\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(codePoint >>> 10 & 0x3ff | 0xd800);\n codePoint = 0xdc00 | codePoint & 0x3ff;\n }\n\n output += String.fromCharCode(codePoint);\n return output;\n}\n\nexports.default = decodeCodePoint;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmptyTextNode;\n/**\n * Tests a htmlparser2 node and returns whether is it a text node at the start and end of the line containing only\n * white space. This allows these node types to be excluded from the rendering because they are unnecessary.\n *\n * @param {Object} node The element object as created by htmlparser2\n * @returns {boolean} Whether the node is an empty text node\n */\n\nfunction isEmptyTextNode(node) {\n return node.type === 'text' && /\\r?\\n/.test(node.data) && node.data.trim() === '';\n}","var ElementType = require(\"domelementtype\");\n\nvar re_whitespace = /\\s+/g;\n\nvar NodePrototype = require(\"./lib/node\");\n\nvar ElementPrototype = require(\"./lib/element\");\n\nfunction DomHandler(callback, options, elementCB) {\n if (typeof callback === \"object\") {\n elementCB = options;\n options = callback;\n callback = null;\n } else if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n\n this._callback = callback;\n this._options = options || defaultOpts;\n this._elementCB = elementCB;\n this.dom = [];\n this._done = false;\n this._tagStack = [];\n this._parser = this._parser || null;\n} //default options\n\n\nvar defaultOpts = {\n normalizeWhitespace: false,\n //Replace all whitespace with single spaces\n withStartIndices: false,\n //Add startIndex properties to nodes\n withEndIndices: false //Add endIndex properties to nodes\n\n};\n\nDomHandler.prototype.onparserinit = function (parser) {\n this._parser = parser;\n}; //Resets the handler back to starting state\n\n\nDomHandler.prototype.onreset = function () {\n DomHandler.call(this, this._callback, this._options, this._elementCB);\n}; //Signals the handler that parsing is done\n\n\nDomHandler.prototype.onend = function () {\n if (this._done) return;\n this._done = true;\n this._parser = null;\n\n this._handleCallback(null);\n};\n\nDomHandler.prototype._handleCallback = DomHandler.prototype.onerror = function (error) {\n if (typeof this._callback === \"function\") {\n this._callback(error, this.dom);\n } else {\n if (error) throw error;\n }\n};\n\nDomHandler.prototype.onclosetag = function () {\n //if(this._tagStack.pop().name !== name) this._handleCallback(Error(\"Tagname didn't match!\"));\n var elem = this._tagStack.pop();\n\n if (this._options.withEndIndices && elem) {\n elem.endIndex = this._parser.endIndex;\n }\n\n if (this._elementCB) this._elementCB(elem);\n};\n\nDomHandler.prototype._createDomElement = function (properties) {\n if (!this._options.withDomLvl1) return properties;\n var element;\n\n if (properties.type === \"tag\") {\n element = Object.create(ElementPrototype);\n } else {\n element = Object.create(NodePrototype);\n }\n\n for (var key in properties) {\n if (properties.hasOwnProperty(key)) {\n element[key] = properties[key];\n }\n }\n\n return element;\n};\n\nDomHandler.prototype._addDomElement = function (element) {\n var parent = this._tagStack[this._tagStack.length - 1];\n var siblings = parent ? parent.children : this.dom;\n var previousSibling = siblings[siblings.length - 1];\n element.next = null;\n\n if (this._options.withStartIndices) {\n element.startIndex = this._parser.startIndex;\n }\n\n if (this._options.withEndIndices) {\n element.endIndex = this._parser.endIndex;\n }\n\n if (previousSibling) {\n element.prev = previousSibling;\n previousSibling.next = element;\n } else {\n element.prev = null;\n }\n\n siblings.push(element);\n element.parent = parent || null;\n};\n\nDomHandler.prototype.onopentag = function (name, attribs) {\n var properties = {\n type: name === \"script\" ? ElementType.Script : name === \"style\" ? ElementType.Style : ElementType.Tag,\n name: name,\n attribs: attribs,\n children: []\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.ontext = function (data) {\n //the ignoreWhitespace is officially dropped, but for now,\n //it's an alias for normalizeWhitespace\n var normalize = this._options.normalizeWhitespace || this._options.ignoreWhitespace;\n var lastTag;\n\n if (!this._tagStack.length && this.dom.length && (lastTag = this.dom[this.dom.length - 1]).type === ElementType.Text) {\n if (normalize) {\n lastTag.data = (lastTag.data + data).replace(re_whitespace, \" \");\n } else {\n lastTag.data += data;\n }\n } else {\n if (this._tagStack.length && (lastTag = this._tagStack[this._tagStack.length - 1]) && (lastTag = lastTag.children[lastTag.children.length - 1]) && lastTag.type === ElementType.Text) {\n if (normalize) {\n lastTag.data = (lastTag.data + data).replace(re_whitespace, \" \");\n } else {\n lastTag.data += data;\n }\n } else {\n if (normalize) {\n data = data.replace(re_whitespace, \" \");\n }\n\n var element = this._createDomElement({\n data: data,\n type: ElementType.Text\n });\n\n this._addDomElement(element);\n }\n }\n};\n\nDomHandler.prototype.oncomment = function (data) {\n var lastTag = this._tagStack[this._tagStack.length - 1];\n\n if (lastTag && lastTag.type === ElementType.Comment) {\n lastTag.data += data;\n return;\n }\n\n var properties = {\n data: data,\n type: ElementType.Comment\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.oncdatastart = function () {\n var properties = {\n children: [{\n data: \"\",\n type: ElementType.Text\n }],\n type: ElementType.CDATA\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.oncommentend = DomHandler.prototype.oncdataend = function () {\n this._tagStack.pop();\n};\n\nDomHandler.prototype.onprocessinginstruction = function (name, data) {\n var element = this._createDomElement({\n name: name,\n data: data,\n type: ElementType.Directive\n });\n\n this._addDomElement(element);\n};\n\nmodule.exports = DomHandler;","import styled, { css } from 'styled-components';\nimport { genericStyles, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar tabHoverStyle = css([\"&:hover{\", \" \", \" \", \";}\"], function (props) {\n return props.theme.tab.hover.background && css([\"background:\", \";\"], normalizeColor(props.theme.tab.hover.background, props.theme));\n}, function (props) {\n return props.theme.tab.hover.color && css([\"color:\", \";\"], normalizeColor(props.theme.tab.hover.color, props.theme));\n}, function (props) {\n return props.theme.tab.hover.extend;\n});\nvar StyledTab = styled.div.withConfig({\n displayName: \"StyledTab\",\n componentId: \"sc-1nnwnsb-0\"\n})([\"\", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return !props.plain && !props.disabled && props.theme.tab.hover && tabHoverStyle;\n}, function (props) {\n return props.disabled && props.theme.tab.disabled;\n}, function (props) {\n return props.theme.tab.extend;\n});\nStyledTab.defaultProps = {};\nObject.setPrototypeOf(StyledTab.defaultProps, defaultProps);\nexport { StyledTab };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { forwardRef, useContext, useEffect, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { Text } from '../Text';\nimport { TabsContext } from '../Tabs/TabsContext';\nimport { normalizeColor } from '../../utils';\nimport { StyledTab } from './StyledTab';\nvar Tab = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var activeProp = _ref.active,\n disabled = _ref.disabled,\n children = _ref.children,\n icon = _ref.icon,\n plain = _ref.plain,\n title = _ref.title,\n onMouseOver = _ref.onMouseOver,\n onMouseOut = _ref.onMouseOut,\n reverse = _ref.reverse,\n rest = _objectWithoutPropertiesLoose(_ref, [\"active\", \"disabled\", \"children\", \"icon\", \"plain\", \"title\", \"onMouseOver\", \"onMouseOut\", \"reverse\"]);\n\n var _useContext = useContext(TabsContext),\n active = _useContext.active,\n activeIndex = _useContext.activeIndex,\n onActivate = _useContext.onActivate,\n setActiveContent = _useContext.setActiveContent,\n setActiveTitle = _useContext.setActiveTitle;\n\n var theme = useContext(ThemeContext) || defaultProps.theme;\n\n var _useState = useState(undefined),\n over = _useState[0],\n setOver = _useState[1];\n\n var _useState2 = useState(undefined),\n focus = _useState2[0],\n setFocus = _useState2[1];\n\n var normalizedTitle = title;\n var tabStyles = {};\n useEffect(function () {\n if (active) {\n setActiveContent(children);\n var activeTitle = typeof title === 'string' ? title : activeIndex + 1;\n setActiveTitle(activeTitle);\n }\n }, [active, activeIndex, children, setActiveContent, setActiveTitle, title]);\n\n var onMouseOverTab = function onMouseOverTab(event) {\n setOver(true);\n\n if (onMouseOver) {\n onMouseOver(event);\n }\n };\n\n var onMouseOutTab = function onMouseOutTab(event) {\n setOver(undefined);\n\n if (onMouseOut) {\n onMouseOut(event);\n }\n };\n\n var onClickTab = function onClickTab(event) {\n if (event) {\n event.preventDefault();\n }\n\n onActivate();\n };\n\n if (active && disabled) {\n console.warn( // eslint-disable-next-line max-len\n \"Warning: Tab props 'active' and 'disabled' have both been set to TRUE on the same Tab resulting in an interesting Tab state. Is this your intent?\");\n }\n\n if (!plain) {\n if (typeof title !== 'string') {\n normalizedTitle = title;\n } else if (active) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.active, title);\n } else if (disabled && theme.tab.disabled) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.disabled, title);\n } else {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, {\n color: over ? theme.tab.hover.color : theme.tab.color\n }, title);\n }\n\n if (theme.tab.border) {\n var borderColor = theme.tab.border.color || theme.global.control.border.color;\n\n if (active) {\n borderColor = theme.tab.border.active.color || borderColor;\n } else if (disabled && theme.tab.border.disabled) {\n borderColor = theme.tab.border.disabled.color || borderColor;\n } else if (over) {\n borderColor = theme.tab.border.hover.color || borderColor;\n }\n\n borderColor = normalizeColor(borderColor, theme);\n tabStyles.border = {\n side: theme.tab.border.side,\n size: theme.tab.border.size,\n color: borderColor\n };\n }\n\n tabStyles.background = active ? theme.tab.active.background || theme.tab.background : theme.tab.background;\n tabStyles.pad = theme.tab.pad;\n tabStyles.margin = theme.tab.margin;\n } // needed to apply hover/active styles to the icon\n\n\n var renderIcon = function renderIcon(iconProp) {\n if (active) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.active));\n }\n\n if (disabled) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.disabled));\n }\n\n return /*#__PURE__*/React.cloneElement(iconProp, {\n color: over ? theme.tab.hover.color : theme.tab.color\n });\n };\n\n var normalizedIcon;\n\n if (icon) {\n normalizedIcon = renderIcon(icon);\n }\n\n var first = reverse ? normalizedTitle : normalizedIcon;\n var second = reverse ? normalizedIcon : normalizedTitle;\n var withIconStyles;\n\n if (first && second) {\n withIconStyles = {\n direction: 'row',\n align: 'center',\n justify: 'center',\n gap: 'small'\n };\n }\n\n return /*#__PURE__*/React.createElement(Button, _extends({\n ref: ref,\n plain: true,\n role: \"tab\",\n \"aria-selected\": active,\n \"aria-expanded\": active,\n disabled: disabled\n }, rest, {\n onClick: onClickTab,\n onMouseOver: onMouseOverTab,\n onMouseOut: onMouseOutTab,\n onFocus: function onFocus() {\n setFocus(true);\n if (onMouseOver) onMouseOver();\n },\n onBlur: function onBlur() {\n setFocus(undefined);\n if (onMouseOut) onMouseOut();\n } // ensure focus outline is not covered by hover styling\n // of adjacent tabs\n ,\n style: focus && {\n zIndex: 1\n }\n }), /*#__PURE__*/React.createElement(StyledTab, _extends({\n as: Box,\n disabled: disabled,\n plain: plain\n }, withIconStyles, tabStyles), first, second));\n});\nTab.displayName = 'Tab';\nTab.defaultProps = {};\nObject.setPrototypeOf(Tab.defaultProps, defaultProps);\nvar TabDoc;\n\nif (process.env.NODE_ENV !== 'production') {\n TabDoc = require('./doc').doc(Tab); // eslint-disable-line global-require\n}\n\nvar TabWrapper = TabDoc || Tab;\nexport { TabWrapper as Tab };","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","//Types of elements found in the DOM\nmodule.exports = {\n Text: \"text\",\n //Text\n Directive: \"directive\",\n //<? ... ?>\n Comment: \"comment\",\n //<!-- ... -->\n Script: \"script\",\n //<script> tags\n Style: \"style\",\n //<style> tags\n Tag: \"tag\",\n //Any tag\n CDATA: \"cdata\",\n //<![CDATA[ ... ]]>\n Doctype: \"doctype\",\n isTag: function isTag(elem) {\n return elem.type === \"tag\" || elem.type === \"script\" || elem.type === \"style\";\n }\n};","var DomHandler = require(\"domhandler\");\n\nvar DomUtils = require(\"domutils\"); //TODO: make this a streamable handler\n\n\nfunction FeedHandler(callback, options) {\n this.init(callback, options);\n}\n\nrequire(\"inherits\")(FeedHandler, DomHandler);\n\nFeedHandler.prototype.init = DomHandler;\n\nfunction getElements(what, where) {\n return DomUtils.getElementsByTagName(what, where, true);\n}\n\nfunction getOneElement(what, where) {\n return DomUtils.getElementsByTagName(what, where, true, 1)[0];\n}\n\nfunction fetch(what, where, recurse) {\n return DomUtils.getText(DomUtils.getElementsByTagName(what, where, recurse, 1)).trim();\n}\n\nfunction addConditionally(obj, prop, what, where, recurse) {\n var tmp = fetch(what, where, recurse);\n if (tmp) obj[prop] = tmp;\n}\n\nvar isValidFeed = function isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n};\n\nFeedHandler.prototype.onend = function () {\n var feed = {},\n feedRoot = getOneElement(isValidFeed, this.dom),\n tmp,\n childs;\n\n if (feedRoot) {\n if (feedRoot.name === \"feed\") {\n childs = feedRoot.children;\n feed.type = \"atom\";\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n if ((tmp = getOneElement(\"link\", childs)) && (tmp = tmp.attribs) && (tmp = tmp.href)) feed.link = tmp;\n addConditionally(feed, \"description\", \"subtitle\", childs);\n if (tmp = fetch(\"updated\", childs)) feed.updated = new Date(tmp);\n addConditionally(feed, \"author\", \"email\", childs, true);\n feed.items = getElements(\"entry\", childs).map(function (item) {\n var entry = {},\n tmp;\n item = item.children;\n addConditionally(entry, \"id\", \"id\", item);\n addConditionally(entry, \"title\", \"title\", item);\n if ((tmp = getOneElement(\"link\", item)) && (tmp = tmp.attribs) && (tmp = tmp.href)) entry.link = tmp;\n if (tmp = fetch(\"summary\", item) || fetch(\"content\", item)) entry.description = tmp;\n if (tmp = fetch(\"updated\", item)) entry.pubDate = new Date(tmp);\n return entry;\n });\n } else {\n childs = getOneElement(\"channel\", feedRoot.children).children;\n feed.type = feedRoot.name.substr(0, 3);\n feed.id = \"\";\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n if (tmp = fetch(\"lastBuildDate\", childs)) feed.updated = new Date(tmp);\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n feed.items = getElements(\"item\", feedRoot.children).map(function (item) {\n var entry = {},\n tmp;\n item = item.children;\n addConditionally(entry, \"id\", \"guid\", item);\n addConditionally(entry, \"title\", \"title\", item);\n addConditionally(entry, \"link\", \"link\", item);\n addConditionally(entry, \"description\", \"description\", item);\n if (tmp = fetch(\"pubDate\", item)) entry.pubDate = new Date(tmp);\n return entry;\n });\n }\n }\n\n this.dom = feed;\n\n DomHandler.prototype._handleCallback.call(this, feedRoot ? null : Error(\"couldn't find root of feed\"));\n};\n\nmodule.exports = FeedHandler;","import React, { useCallback, useEffect, useState } from \"react\";\nimport { Close, Configure } from \"grommet-icons\";\nimport Modal from \"../../components/Modal\";\nimport {\n Tab,\n Tabs,\n Box,\n Anchor,\n DataTable,\n Text,\n ResponsiveContext,\n} from \"grommet\";\nimport { callCloud, crud } from \"../../library/parse\";\nimport CRUDForm from \"../CRUDForm\";\n\nconst Home = ({\n datasource,\n hideCRUDForm,\n suffix = \"\",\n objectClass,\n columns,\n fetchData,\n afterAction,\n}) => {\n const [activeModel, setActiveModel] = useState({});\n const [showFormModal, setShowFormModal] = useState(false);\n const [mode, setMode] = useState(\"read\");\n const [stores, setStores] = useState(datasource || []);\n const [dtColumn, setDtColumn] = useState([]);\n const size = React.useContext(ResponsiveContext);\n const loadData = useCallback(async () => {\n return (\n fetchData &&\n setStores(await callCloud(fetchData.action, fetchData.params))\n );\n }, [fetchData]);\n\n useEffect(() => {\n if (datasource) {\n setStores(datasource);\n } else {\n loadData();\n }\n }, [loadData, datasource]);\n\n useEffect(() => {\n const newDtColumn = columns.map((e) => ({\n property: e.property,\n header: <Text> {e.headerText}</Text>,\n primary: e.primary,\n render: e.render,\n }));\n\n !hideCRUDForm &&\n newDtColumn.push({\n property: \"objectId\",\n header: (\n <Anchor\n onClick={() => {\n setActiveModel({});\n setMode(\"create\");\n setShowFormModal(true);\n }}\n >\n Add {objectClass}\n </Anchor>\n ),\n render: (datum) => (\n <>\n <Configure\n onClick={() => {\n setActiveModel(datum);\n setMode(\"update\");\n setShowFormModal(true);\n }}\n style={{ cursor: \"pointer\" }}\n />\n <Close\n onClick={() => {\n setActiveModel(datum);\n setMode(\"delete\");\n setShowFormModal(true);\n }}\n style={{ cursor: \"pointer\" }}\n />\n </>\n ),\n });\n setDtColumn(newDtColumn);\n }, [hideCRUDForm, columns]);\n\n return (\n <>\n <Box>\n {stores.length} {objectClass}\n <DataTable columns={dtColumn} data={stores.map((e) => e.toJSON())} />\n </Box>\n {showFormModal && (\n <Modal full={true} onClose={() => setShowFormModal(false)}>\n <Tabs>\n <Tab title=\"Information\">\n <CRUDForm\n formConfig={{ config: columns }}\n mode={mode}\n model={activeModel}\n onClick={(mode, model) => {\n crud(objectClass, model, mode, suffix);\n setTimeout(() => {\n loadData();\n setShowFormModal(false);\n afterAction && afterAction();\n }, 1000);\n }}\n />\n </Tab>\n </Tabs>\n </Modal>\n )}\n </>\n );\n};\n\nexport default Home;\n","var Tokenizer = require(\"./Tokenizer.js\");\n/*\n\tOptions:\n\n\txmlMode: Disables the special behavior for script/style tags (false by default)\n\tlowerCaseAttributeNames: call .toLowerCase for each attribute name (true if xmlMode is `false`)\n\tlowerCaseTags: call .toLowerCase for each tag name (true if xmlMode is `false`)\n*/\n\n/*\n\tCallbacks:\n\n\toncdataend,\n\toncdatastart,\n\tonclosetag,\n\toncomment,\n\toncommentend,\n\tonerror,\n\tonopentag,\n\tonprocessinginstruction,\n\tonreset,\n\tontext\n*/\n\n\nvar formTags = {\n input: true,\n option: true,\n optgroup: true,\n select: true,\n button: true,\n datalist: true,\n textarea: true\n};\nvar openImpliesClose = {\n tr: {\n tr: true,\n th: true,\n td: true\n },\n th: {\n th: true\n },\n td: {\n thead: true,\n th: true,\n td: true\n },\n body: {\n head: true,\n link: true,\n script: true\n },\n li: {\n li: true\n },\n p: {\n p: true\n },\n h1: {\n p: true\n },\n h2: {\n p: true\n },\n h3: {\n p: true\n },\n h4: {\n p: true\n },\n h5: {\n p: true\n },\n h6: {\n p: true\n },\n select: formTags,\n input: formTags,\n output: formTags,\n button: formTags,\n datalist: formTags,\n textarea: formTags,\n option: {\n option: true\n },\n optgroup: {\n optgroup: true\n }\n};\nvar voidElements = {\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};\nvar foreignContextElements = {\n __proto__: null,\n math: true,\n svg: true\n};\nvar htmlIntegrationElements = {\n __proto__: null,\n mi: true,\n mo: true,\n mn: true,\n ms: true,\n mtext: true,\n \"annotation-xml\": true,\n foreignObject: true,\n desc: true,\n title: true\n};\nvar re_nameEnd = /\\s|\\//;\n\nfunction Parser(cbs, options) {\n this._options = options || {};\n this._cbs = cbs || {};\n this._tagname = \"\";\n this._attribname = \"\";\n this._attribvalue = \"\";\n this._attribs = null;\n this._stack = [];\n this._foreignContext = [];\n this.startIndex = 0;\n this.endIndex = null;\n this._lowerCaseTagNames = \"lowerCaseTags\" in this._options ? !!this._options.lowerCaseTags : !this._options.xmlMode;\n this._lowerCaseAttributeNames = \"lowerCaseAttributeNames\" in this._options ? !!this._options.lowerCaseAttributeNames : !this._options.xmlMode;\n\n if (this._options.Tokenizer) {\n Tokenizer = this._options.Tokenizer;\n }\n\n this._tokenizer = new Tokenizer(this._options, this);\n if (this._cbs.onparserinit) this._cbs.onparserinit(this);\n}\n\nrequire(\"inherits\")(Parser, require(\"events\").EventEmitter);\n\nParser.prototype._updatePosition = function (initialOffset) {\n if (this.endIndex === null) {\n if (this._tokenizer._sectionStart <= initialOffset) {\n this.startIndex = 0;\n } else {\n this.startIndex = this._tokenizer._sectionStart - initialOffset;\n }\n } else this.startIndex = this.endIndex + 1;\n\n this.endIndex = this._tokenizer.getAbsoluteIndex();\n}; //Tokenizer event handlers\n\n\nParser.prototype.ontext = function (data) {\n this._updatePosition(1);\n\n this.endIndex--;\n if (this._cbs.ontext) this._cbs.ontext(data);\n};\n\nParser.prototype.onopentagname = function (name) {\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n this._tagname = name;\n\n if (!this._options.xmlMode && name in openImpliesClose) {\n for (var el; ((el = this._stack[this._stack.length - 1]) in openImpliesClose[name]); this.onclosetag(el)) {\n ;\n }\n }\n\n if (this._options.xmlMode || !(name in voidElements)) {\n this._stack.push(name);\n\n if (name in foreignContextElements) this._foreignContext.push(true);else if (name in htmlIntegrationElements) this._foreignContext.push(false);\n }\n\n if (this._cbs.onopentagname) this._cbs.onopentagname(name);\n if (this._cbs.onopentag) this._attribs = {};\n};\n\nParser.prototype.onopentagend = function () {\n this._updatePosition(1);\n\n if (this._attribs) {\n if (this._cbs.onopentag) this._cbs.onopentag(this._tagname, this._attribs);\n this._attribs = null;\n }\n\n if (!this._options.xmlMode && this._cbs.onclosetag && this._tagname in voidElements) {\n this._cbs.onclosetag(this._tagname);\n }\n\n this._tagname = \"\";\n};\n\nParser.prototype.onclosetag = function (name) {\n this._updatePosition(1);\n\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n if (name in foreignContextElements || name in htmlIntegrationElements) {\n this._foreignContext.pop();\n }\n\n if (this._stack.length && (!(name in voidElements) || this._options.xmlMode)) {\n var pos = this._stack.lastIndexOf(name);\n\n if (pos !== -1) {\n if (this._cbs.onclosetag) {\n pos = this._stack.length - pos;\n\n while (pos--) {\n this._cbs.onclosetag(this._stack.pop());\n }\n } else this._stack.length = pos;\n } else if (name === \"p\" && !this._options.xmlMode) {\n this.onopentagname(name);\n\n this._closeCurrentTag();\n }\n } else if (!this._options.xmlMode && (name === \"br\" || name === \"p\")) {\n this.onopentagname(name);\n\n this._closeCurrentTag();\n }\n};\n\nParser.prototype.onselfclosingtag = function () {\n if (this._options.xmlMode || this._options.recognizeSelfClosing || this._foreignContext[this._foreignContext.length - 1]) {\n this._closeCurrentTag();\n } else {\n this.onopentagend();\n }\n};\n\nParser.prototype._closeCurrentTag = function () {\n var name = this._tagname;\n this.onopentagend(); //self-closing tags will be on the top of the stack\n //(cheaper check than in onclosetag)\n\n if (this._stack[this._stack.length - 1] === name) {\n if (this._cbs.onclosetag) {\n this._cbs.onclosetag(name);\n }\n\n this._stack.pop();\n }\n};\n\nParser.prototype.onattribname = function (name) {\n if (this._lowerCaseAttributeNames) {\n name = name.toLowerCase();\n }\n\n this._attribname = name;\n};\n\nParser.prototype.onattribdata = function (value) {\n this._attribvalue += value;\n};\n\nParser.prototype.onattribend = function () {\n if (this._cbs.onattribute) this._cbs.onattribute(this._attribname, this._attribvalue);\n\n if (this._attribs && !Object.prototype.hasOwnProperty.call(this._attribs, this._attribname)) {\n this._attribs[this._attribname] = this._attribvalue;\n }\n\n this._attribname = \"\";\n this._attribvalue = \"\";\n};\n\nParser.prototype._getInstructionName = function (value) {\n var idx = value.search(re_nameEnd),\n name = idx < 0 ? value : value.substr(0, idx);\n\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n return name;\n};\n\nParser.prototype.ondeclaration = function (value) {\n if (this._cbs.onprocessinginstruction) {\n var name = this._getInstructionName(value);\n\n this._cbs.onprocessinginstruction(\"!\" + name, \"!\" + value);\n }\n};\n\nParser.prototype.onprocessinginstruction = function (value) {\n if (this._cbs.onprocessinginstruction) {\n var name = this._getInstructionName(value);\n\n this._cbs.onprocessinginstruction(\"?\" + name, \"?\" + value);\n }\n};\n\nParser.prototype.oncomment = function (value) {\n this._updatePosition(4);\n\n if (this._cbs.oncomment) this._cbs.oncomment(value);\n if (this._cbs.oncommentend) this._cbs.oncommentend();\n};\n\nParser.prototype.oncdata = function (value) {\n this._updatePosition(1);\n\n if (this._options.xmlMode || this._options.recognizeCDATA) {\n if (this._cbs.oncdatastart) this._cbs.oncdatastart();\n if (this._cbs.ontext) this._cbs.ontext(value);\n if (this._cbs.oncdataend) this._cbs.oncdataend();\n } else {\n this.oncomment(\"[CDATA[\" + value + \"]]\");\n }\n};\n\nParser.prototype.onerror = function (err) {\n if (this._cbs.onerror) this._cbs.onerror(err);\n};\n\nParser.prototype.onend = function () {\n if (this._cbs.onclosetag) {\n for (var i = this._stack.length; i > 0; this._cbs.onclosetag(this._stack[--i])) {\n ;\n }\n }\n\n if (this._cbs.onend) this._cbs.onend();\n}; //Resets the parser to a blank state, ready to parse a new HTML document\n\n\nParser.prototype.reset = function () {\n if (this._cbs.onreset) this._cbs.onreset();\n\n this._tokenizer.reset();\n\n this._tagname = \"\";\n this._attribname = \"\";\n this._attribs = null;\n this._stack = [];\n if (this._cbs.onparserinit) this._cbs.onparserinit(this);\n}; //Parses a complete HTML document and pushes it to the handler\n\n\nParser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n};\n\nParser.prototype.write = function (chunk) {\n this._tokenizer.write(chunk);\n};\n\nParser.prototype.end = function (chunk) {\n this._tokenizer.end(chunk);\n};\n\nParser.prototype.pause = function () {\n this._tokenizer.pause();\n};\n\nParser.prototype.resume = function () {\n this._tokenizer.resume();\n}; //alias for backwards compat\n\n\nParser.prototype.parseChunk = Parser.prototype.write;\nParser.prototype.done = Parser.prototype.end;\nmodule.exports = Parser;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.encode = exports.decodeStrict = exports.decode = void 0;\n\nvar decode_1 = require(\"./decode\");\n\nvar encode_1 = require(\"./encode\");\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\n\nfunction decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\n\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\n\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\nfunction encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\n\nexports.encode = encode;\n\nvar encode_2 = require(\"./encode\");\n\nObject.defineProperty(exports, \"encodeXML\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeXML;\n }\n});\nObject.defineProperty(exports, \"encodeHTML\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\nObject.defineProperty(exports, \"escape\", {\n enumerable: true,\n get: function get() {\n return encode_2.escape;\n }\n}); // Legacy aliases\n\nObject.defineProperty(exports, \"encodeHTML4\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\nObject.defineProperty(exports, \"encodeHTML5\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\n\nvar decode_2 = require(\"./decode\");\n\nObject.defineProperty(exports, \"decodeXML\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeXML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTMLStrict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n}); // Legacy aliases\n\nObject.defineProperty(exports, \"decodeHTML4\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML5\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML4Strict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n});\nObject.defineProperty(exports, \"decodeHTML5Strict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n});\nObject.defineProperty(exports, \"decodeXMLStrict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeXML;\n }\n});","// DOM-Level-1-compliant structure\nvar NodePrototype = require('./node');\n\nvar ElementPrototype = module.exports = Object.create(NodePrototype);\nvar domLvl1 = {\n tagName: \"name\"\n};\nObject.keys(domLvl1).forEach(function (key) {\n var shorthand = domLvl1[key];\n Object.defineProperty(ElementPrototype, key, {\n get: function get() {\n return this[shorthand] || null;\n },\n set: function set(val) {\n this[shorthand] = val;\n return val;\n }\n });\n});","var ElementType = require(\"domelementtype\"),\n getOuterHTML = require(\"dom-serializer\"),\n isTag = ElementType.isTag;\n\nmodule.exports = {\n getInnerHTML: getInnerHTML,\n getOuterHTML: getOuterHTML,\n getText: getText\n};\n\nfunction getInnerHTML(elem, opts) {\n return elem.children ? elem.children.map(function (elem) {\n return getOuterHTML(elem, opts);\n }).join(\"\") : \"\";\n}\n\nfunction getText(elem) {\n if (Array.isArray(elem)) return elem.map(getText).join(\"\");\n if (isTag(elem) || elem.type === ElementType.CDATA) return getText(elem.children);\n if (elem.type === ElementType.Text) return elem.data;\n return \"\";\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nexports.default = InlineStyleToObject;\n/**\n * Converts an inline style string into an object of React style properties\n *\n * @param {String} inlineStyle='' The inline style to convert\n * @returns {Object} The converted style\n */\n\nfunction InlineStyleToObject() {\n var inlineStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; // just return empty object if the inlineStyle is empty\n\n if (inlineStyle === '') {\n return {};\n }\n\n return inlineStyle.split(';').reduce(function (styleObject, stylePropertyValue) {\n // extract the style property name and value\n var _stylePropertyValue$s = stylePropertyValue.split(/^([^:]+):/).filter(function (val, i) {\n return i > 0;\n }).map(function (item) {\n return item.trim().toLowerCase();\n }),\n _stylePropertyValue$s2 = _slicedToArray(_stylePropertyValue$s, 2),\n property = _stylePropertyValue$s2[0],\n value = _stylePropertyValue$s2[1]; // if there is no value (i.e. no : in the style) then ignore it\n\n\n if (value === undefined) {\n return styleObject;\n } // convert the property name into the correct React format\n // remove all hyphens and convert the letter immediately after each hyphen to upper case\n // additionally don't uppercase any -ms- prefix\n // e.g. -ms-style-property = msStyleProperty\n // -webkit-style-property = WebkitStyleProperty\n\n\n property = property.replace(/^-ms-/, 'ms-').replace(/-(.)/g, function (_, character) {\n return character.toUpperCase();\n }); // add the new style property and value to the style object\n\n styleObject[property] = value;\n return styleObject;\n }, {});\n}","module.exports = Tokenizer;\n\nvar decodeCodePoint = require(\"entities/lib/decode_codepoint.js\");\n\nvar entityMap = require(\"entities/maps/entities.json\");\n\nvar legacyMap = require(\"entities/maps/legacy.json\");\n\nvar xmlMap = require(\"entities/maps/xml.json\");\n\nvar i = 0;\nvar TEXT = i++;\nvar BEFORE_TAG_NAME = i++; //after <\n\nvar IN_TAG_NAME = i++;\nvar IN_SELF_CLOSING_TAG = i++;\nvar BEFORE_CLOSING_TAG_NAME = i++;\nvar IN_CLOSING_TAG_NAME = i++;\nvar AFTER_CLOSING_TAG_NAME = i++; //attributes\n\nvar BEFORE_ATTRIBUTE_NAME = i++;\nvar IN_ATTRIBUTE_NAME = i++;\nvar AFTER_ATTRIBUTE_NAME = i++;\nvar BEFORE_ATTRIBUTE_VALUE = i++;\nvar IN_ATTRIBUTE_VALUE_DQ = i++; // \"\n\nvar IN_ATTRIBUTE_VALUE_SQ = i++; // '\n\nvar IN_ATTRIBUTE_VALUE_NQ = i++; //declarations\n\nvar BEFORE_DECLARATION = i++; // !\n\nvar IN_DECLARATION = i++; //processing instructions\n\nvar IN_PROCESSING_INSTRUCTION = i++; // ?\n//comments\n\nvar BEFORE_COMMENT = i++;\nvar IN_COMMENT = i++;\nvar AFTER_COMMENT_1 = i++;\nvar AFTER_COMMENT_2 = i++; //cdata\n\nvar BEFORE_CDATA_1 = i++; // [\n\nvar BEFORE_CDATA_2 = i++; // C\n\nvar BEFORE_CDATA_3 = i++; // D\n\nvar BEFORE_CDATA_4 = i++; // A\n\nvar BEFORE_CDATA_5 = i++; // T\n\nvar BEFORE_CDATA_6 = i++; // A\n\nvar IN_CDATA = i++; // [\n\nvar AFTER_CDATA_1 = i++; // ]\n\nvar AFTER_CDATA_2 = i++; // ]\n//special tags\n\nvar BEFORE_SPECIAL = i++; //S\n\nvar BEFORE_SPECIAL_END = i++; //S\n\nvar BEFORE_SCRIPT_1 = i++; //C\n\nvar BEFORE_SCRIPT_2 = i++; //R\n\nvar BEFORE_SCRIPT_3 = i++; //I\n\nvar BEFORE_SCRIPT_4 = i++; //P\n\nvar BEFORE_SCRIPT_5 = i++; //T\n\nvar AFTER_SCRIPT_1 = i++; //C\n\nvar AFTER_SCRIPT_2 = i++; //R\n\nvar AFTER_SCRIPT_3 = i++; //I\n\nvar AFTER_SCRIPT_4 = i++; //P\n\nvar AFTER_SCRIPT_5 = i++; //T\n\nvar BEFORE_STYLE_1 = i++; //T\n\nvar BEFORE_STYLE_2 = i++; //Y\n\nvar BEFORE_STYLE_3 = i++; //L\n\nvar BEFORE_STYLE_4 = i++; //E\n\nvar AFTER_STYLE_1 = i++; //T\n\nvar AFTER_STYLE_2 = i++; //Y\n\nvar AFTER_STYLE_3 = i++; //L\n\nvar AFTER_STYLE_4 = i++; //E\n\nvar BEFORE_ENTITY = i++; //&\n\nvar BEFORE_NUMERIC_ENTITY = i++; //#\n\nvar IN_NAMED_ENTITY = i++;\nvar IN_NUMERIC_ENTITY = i++;\nvar IN_HEX_ENTITY = i++; //X\n\nvar j = 0;\nvar SPECIAL_NONE = j++;\nvar SPECIAL_SCRIPT = j++;\nvar SPECIAL_STYLE = j++;\n\nfunction whitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\f\" || c === \"\\r\";\n}\n\nfunction ifElseState(upper, SUCCESS, FAILURE) {\n var lower = upper.toLowerCase();\n\n if (upper === lower) {\n return function (c) {\n if (c === lower) {\n this._state = SUCCESS;\n } else {\n this._state = FAILURE;\n this._index--;\n }\n };\n } else {\n return function (c) {\n if (c === lower || c === upper) {\n this._state = SUCCESS;\n } else {\n this._state = FAILURE;\n this._index--;\n }\n };\n }\n}\n\nfunction consumeSpecialNameChar(upper, NEXT_STATE) {\n var lower = upper.toLowerCase();\n return function (c) {\n if (c === lower || c === upper) {\n this._state = NEXT_STATE;\n } else {\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n }\n };\n}\n\nfunction Tokenizer(options, cbs) {\n this._state = TEXT;\n this._buffer = \"\";\n this._sectionStart = 0;\n this._index = 0;\n this._bufferOffset = 0; //chars removed from _buffer\n\n this._baseState = TEXT;\n this._special = SPECIAL_NONE;\n this._cbs = cbs;\n this._running = true;\n this._ended = false;\n this._xmlMode = !!(options && options.xmlMode);\n this._decodeEntities = !!(options && options.decodeEntities);\n}\n\nTokenizer.prototype._stateText = function (c) {\n if (c === \"<\") {\n if (this._index > this._sectionStart) {\n this._cbs.ontext(this._getSection());\n }\n\n this._state = BEFORE_TAG_NAME;\n this._sectionStart = this._index;\n } else if (this._decodeEntities && this._special === SPECIAL_NONE && c === \"&\") {\n if (this._index > this._sectionStart) {\n this._cbs.ontext(this._getSection());\n }\n\n this._baseState = TEXT;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeTagName = function (c) {\n if (c === \"/\") {\n this._state = BEFORE_CLOSING_TAG_NAME;\n } else if (c === \"<\") {\n this._cbs.ontext(this._getSection());\n\n this._sectionStart = this._index;\n } else if (c === \">\" || this._special !== SPECIAL_NONE || whitespace(c)) {\n this._state = TEXT;\n } else if (c === \"!\") {\n this._state = BEFORE_DECLARATION;\n this._sectionStart = this._index + 1;\n } else if (c === \"?\") {\n this._state = IN_PROCESSING_INSTRUCTION;\n this._sectionStart = this._index + 1;\n } else {\n this._state = !this._xmlMode && (c === \"s\" || c === \"S\") ? BEFORE_SPECIAL : IN_TAG_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInTagName = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._emitToken(\"onopentagname\");\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateBeforeCloseingTagName = function (c) {\n if (whitespace(c)) ;else if (c === \">\") {\n this._state = TEXT;\n } else if (this._special !== SPECIAL_NONE) {\n if (c === \"s\" || c === \"S\") {\n this._state = BEFORE_SPECIAL_END;\n } else {\n this._state = TEXT;\n this._index--;\n }\n } else {\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInCloseingTagName = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._emitToken(\"onclosetag\");\n\n this._state = AFTER_CLOSING_TAG_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateAfterCloseingTagName = function (c) {\n //skip everything until \">\"\n if (c === \">\") {\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateBeforeAttributeName = function (c) {\n if (c === \">\") {\n this._cbs.onopentagend();\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c === \"/\") {\n this._state = IN_SELF_CLOSING_TAG;\n } else if (!whitespace(c)) {\n this._state = IN_ATTRIBUTE_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInSelfClosingTag = function (c) {\n if (c === \">\") {\n this._cbs.onselfclosingtag();\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (!whitespace(c)) {\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInAttributeName = function (c) {\n if (c === \"=\" || c === \"/\" || c === \">\" || whitespace(c)) {\n this._cbs.onattribname(this._getSection());\n\n this._sectionStart = -1;\n this._state = AFTER_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateAfterAttributeName = function (c) {\n if (c === \"=\") {\n this._state = BEFORE_ATTRIBUTE_VALUE;\n } else if (c === \"/\" || c === \">\") {\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n } else if (!whitespace(c)) {\n this._cbs.onattribend();\n\n this._state = IN_ATTRIBUTE_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeAttributeValue = function (c) {\n if (c === '\"') {\n this._state = IN_ATTRIBUTE_VALUE_DQ;\n this._sectionStart = this._index + 1;\n } else if (c === \"'\") {\n this._state = IN_ATTRIBUTE_VALUE_SQ;\n this._sectionStart = this._index + 1;\n } else if (!whitespace(c)) {\n this._state = IN_ATTRIBUTE_VALUE_NQ;\n this._sectionStart = this._index;\n this._index--; //reconsume token\n }\n};\n\nTokenizer.prototype._stateInAttributeValueDoubleQuotes = function (c) {\n if (c === '\"') {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInAttributeValueSingleQuotes = function (c) {\n if (c === \"'\") {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInAttributeValueNoQuotes = function (c) {\n if (whitespace(c) || c === \">\") {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeDeclaration = function (c) {\n this._state = c === \"[\" ? BEFORE_CDATA_1 : c === \"-\" ? BEFORE_COMMENT : IN_DECLARATION;\n};\n\nTokenizer.prototype._stateInDeclaration = function (c) {\n if (c === \">\") {\n this._cbs.ondeclaration(this._getSection());\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateInProcessingInstruction = function (c) {\n if (c === \">\") {\n this._cbs.onprocessinginstruction(this._getSection());\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateBeforeComment = function (c) {\n if (c === \"-\") {\n this._state = IN_COMMENT;\n this._sectionStart = this._index + 1;\n } else {\n this._state = IN_DECLARATION;\n }\n};\n\nTokenizer.prototype._stateInComment = function (c) {\n if (c === \"-\") this._state = AFTER_COMMENT_1;\n};\n\nTokenizer.prototype._stateAfterComment1 = function (c) {\n if (c === \"-\") {\n this._state = AFTER_COMMENT_2;\n } else {\n this._state = IN_COMMENT;\n }\n};\n\nTokenizer.prototype._stateAfterComment2 = function (c) {\n if (c === \">\") {\n //remove 2 trailing chars\n this._cbs.oncomment(this._buffer.substring(this._sectionStart, this._index - 2));\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c !== \"-\") {\n this._state = IN_COMMENT;\n } // else: stay in AFTER_COMMENT_2 (`--->`)\n\n};\n\nTokenizer.prototype._stateBeforeCdata1 = ifElseState(\"C\", BEFORE_CDATA_2, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata2 = ifElseState(\"D\", BEFORE_CDATA_3, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata3 = ifElseState(\"A\", BEFORE_CDATA_4, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata4 = ifElseState(\"T\", BEFORE_CDATA_5, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata5 = ifElseState(\"A\", BEFORE_CDATA_6, IN_DECLARATION);\n\nTokenizer.prototype._stateBeforeCdata6 = function (c) {\n if (c === \"[\") {\n this._state = IN_CDATA;\n this._sectionStart = this._index + 1;\n } else {\n this._state = IN_DECLARATION;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInCdata = function (c) {\n if (c === \"]\") this._state = AFTER_CDATA_1;\n};\n\nTokenizer.prototype._stateAfterCdata1 = function (c) {\n if (c === \"]\") this._state = AFTER_CDATA_2;else this._state = IN_CDATA;\n};\n\nTokenizer.prototype._stateAfterCdata2 = function (c) {\n if (c === \">\") {\n //remove 2 trailing chars\n this._cbs.oncdata(this._buffer.substring(this._sectionStart, this._index - 2));\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c !== \"]\") {\n this._state = IN_CDATA;\n } //else: stay in AFTER_CDATA_2 (`]]]>`)\n\n};\n\nTokenizer.prototype._stateBeforeSpecial = function (c) {\n if (c === \"c\" || c === \"C\") {\n this._state = BEFORE_SCRIPT_1;\n } else if (c === \"t\" || c === \"T\") {\n this._state = BEFORE_STYLE_1;\n } else {\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n }\n};\n\nTokenizer.prototype._stateBeforeSpecialEnd = function (c) {\n if (this._special === SPECIAL_SCRIPT && (c === \"c\" || c === \"C\")) {\n this._state = AFTER_SCRIPT_1;\n } else if (this._special === SPECIAL_STYLE && (c === \"t\" || c === \"T\")) {\n this._state = AFTER_STYLE_1;\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeScript1 = consumeSpecialNameChar(\"R\", BEFORE_SCRIPT_2);\nTokenizer.prototype._stateBeforeScript2 = consumeSpecialNameChar(\"I\", BEFORE_SCRIPT_3);\nTokenizer.prototype._stateBeforeScript3 = consumeSpecialNameChar(\"P\", BEFORE_SCRIPT_4);\nTokenizer.prototype._stateBeforeScript4 = consumeSpecialNameChar(\"T\", BEFORE_SCRIPT_5);\n\nTokenizer.prototype._stateBeforeScript5 = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._special = SPECIAL_SCRIPT;\n }\n\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n};\n\nTokenizer.prototype._stateAfterScript1 = ifElseState(\"R\", AFTER_SCRIPT_2, TEXT);\nTokenizer.prototype._stateAfterScript2 = ifElseState(\"I\", AFTER_SCRIPT_3, TEXT);\nTokenizer.prototype._stateAfterScript3 = ifElseState(\"P\", AFTER_SCRIPT_4, TEXT);\nTokenizer.prototype._stateAfterScript4 = ifElseState(\"T\", AFTER_SCRIPT_5, TEXT);\n\nTokenizer.prototype._stateAfterScript5 = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._special = SPECIAL_NONE;\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index - 6;\n this._index--; //reconsume the token\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeStyle1 = consumeSpecialNameChar(\"Y\", BEFORE_STYLE_2);\nTokenizer.prototype._stateBeforeStyle2 = consumeSpecialNameChar(\"L\", BEFORE_STYLE_3);\nTokenizer.prototype._stateBeforeStyle3 = consumeSpecialNameChar(\"E\", BEFORE_STYLE_4);\n\nTokenizer.prototype._stateBeforeStyle4 = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._special = SPECIAL_STYLE;\n }\n\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n};\n\nTokenizer.prototype._stateAfterStyle1 = ifElseState(\"Y\", AFTER_STYLE_2, TEXT);\nTokenizer.prototype._stateAfterStyle2 = ifElseState(\"L\", AFTER_STYLE_3, TEXT);\nTokenizer.prototype._stateAfterStyle3 = ifElseState(\"E\", AFTER_STYLE_4, TEXT);\n\nTokenizer.prototype._stateAfterStyle4 = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._special = SPECIAL_NONE;\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index - 5;\n this._index--; //reconsume the token\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeEntity = ifElseState(\"#\", BEFORE_NUMERIC_ENTITY, IN_NAMED_ENTITY);\nTokenizer.prototype._stateBeforeNumericEntity = ifElseState(\"X\", IN_HEX_ENTITY, IN_NUMERIC_ENTITY); //for entities terminated with a semicolon\n\nTokenizer.prototype._parseNamedEntityStrict = function () {\n //offset = 1\n if (this._sectionStart + 1 < this._index) {\n var entity = this._buffer.substring(this._sectionStart + 1, this._index),\n map = this._xmlMode ? xmlMap : entityMap;\n\n if (map.hasOwnProperty(entity)) {\n this._emitPartial(map[entity]);\n\n this._sectionStart = this._index + 1;\n }\n }\n}; //parses legacy entities (without trailing semicolon)\n\n\nTokenizer.prototype._parseLegacyEntity = function () {\n var start = this._sectionStart + 1,\n limit = this._index - start;\n if (limit > 6) limit = 6; //the max length of legacy entities is 6\n\n while (limit >= 2) {\n //the min length of legacy entities is 2\n var entity = this._buffer.substr(start, limit);\n\n if (legacyMap.hasOwnProperty(entity)) {\n this._emitPartial(legacyMap[entity]);\n\n this._sectionStart += limit + 1;\n return;\n } else {\n limit--;\n }\n }\n};\n\nTokenizer.prototype._stateInNamedEntity = function (c) {\n if (c === \";\") {\n this._parseNamedEntityStrict();\n\n if (this._sectionStart + 1 < this._index && !this._xmlMode) {\n this._parseLegacyEntity();\n }\n\n this._state = this._baseState;\n } else if ((c < \"a\" || c > \"z\") && (c < \"A\" || c > \"Z\") && (c < \"0\" || c > \"9\")) {\n if (this._xmlMode) ;else if (this._sectionStart + 1 === this._index) ;else if (this._baseState !== TEXT) {\n if (c !== \"=\") {\n this._parseNamedEntityStrict();\n }\n } else {\n this._parseLegacyEntity();\n }\n this._state = this._baseState;\n this._index--;\n }\n};\n\nTokenizer.prototype._decodeNumericEntity = function (offset, base) {\n var sectionStart = this._sectionStart + offset;\n\n if (sectionStart !== this._index) {\n //parse entity\n var entity = this._buffer.substring(sectionStart, this._index);\n\n var parsed = parseInt(entity, base);\n\n this._emitPartial(decodeCodePoint(parsed));\n\n this._sectionStart = this._index;\n } else {\n this._sectionStart--;\n }\n\n this._state = this._baseState;\n};\n\nTokenizer.prototype._stateInNumericEntity = function (c) {\n if (c === \";\") {\n this._decodeNumericEntity(2, 10);\n\n this._sectionStart++;\n } else if (c < \"0\" || c > \"9\") {\n if (!this._xmlMode) {\n this._decodeNumericEntity(2, 10);\n } else {\n this._state = this._baseState;\n }\n\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInHexEntity = function (c) {\n if (c === \";\") {\n this._decodeNumericEntity(3, 16);\n\n this._sectionStart++;\n } else if ((c < \"a\" || c > \"f\") && (c < \"A\" || c > \"F\") && (c < \"0\" || c > \"9\")) {\n if (!this._xmlMode) {\n this._decodeNumericEntity(3, 16);\n } else {\n this._state = this._baseState;\n }\n\n this._index--;\n }\n};\n\nTokenizer.prototype._cleanup = function () {\n if (this._sectionStart < 0) {\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else if (this._running) {\n if (this._state === TEXT) {\n if (this._sectionStart !== this._index) {\n this._cbs.ontext(this._buffer.substr(this._sectionStart));\n }\n\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else if (this._sectionStart === this._index) {\n //the section just started\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else {\n //remove everything unnecessary\n this._buffer = this._buffer.substr(this._sectionStart);\n this._index -= this._sectionStart;\n this._bufferOffset += this._sectionStart;\n }\n\n this._sectionStart = 0;\n }\n}; //TODO make events conditional\n\n\nTokenizer.prototype.write = function (chunk) {\n if (this._ended) this._cbs.onerror(Error(\".write() after done!\"));\n this._buffer += chunk;\n\n this._parse();\n};\n\nTokenizer.prototype._parse = function () {\n while (this._index < this._buffer.length && this._running) {\n var c = this._buffer.charAt(this._index);\n\n if (this._state === TEXT) {\n this._stateText(c);\n } else if (this._state === BEFORE_TAG_NAME) {\n this._stateBeforeTagName(c);\n } else if (this._state === IN_TAG_NAME) {\n this._stateInTagName(c);\n } else if (this._state === BEFORE_CLOSING_TAG_NAME) {\n this._stateBeforeCloseingTagName(c);\n } else if (this._state === IN_CLOSING_TAG_NAME) {\n this._stateInCloseingTagName(c);\n } else if (this._state === AFTER_CLOSING_TAG_NAME) {\n this._stateAfterCloseingTagName(c);\n } else if (this._state === IN_SELF_CLOSING_TAG) {\n this._stateInSelfClosingTag(c);\n } else if (this._state === BEFORE_ATTRIBUTE_NAME) {\n /*\n *\tattributes\n */\n this._stateBeforeAttributeName(c);\n } else if (this._state === IN_ATTRIBUTE_NAME) {\n this._stateInAttributeName(c);\n } else if (this._state === AFTER_ATTRIBUTE_NAME) {\n this._stateAfterAttributeName(c);\n } else if (this._state === BEFORE_ATTRIBUTE_VALUE) {\n this._stateBeforeAttributeValue(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_DQ) {\n this._stateInAttributeValueDoubleQuotes(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_SQ) {\n this._stateInAttributeValueSingleQuotes(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_NQ) {\n this._stateInAttributeValueNoQuotes(c);\n } else if (this._state === BEFORE_DECLARATION) {\n /*\n *\tdeclarations\n */\n this._stateBeforeDeclaration(c);\n } else if (this._state === IN_DECLARATION) {\n this._stateInDeclaration(c);\n } else if (this._state === IN_PROCESSING_INSTRUCTION) {\n /*\n *\tprocessing instructions\n */\n this._stateInProcessingInstruction(c);\n } else if (this._state === BEFORE_COMMENT) {\n /*\n *\tcomments\n */\n this._stateBeforeComment(c);\n } else if (this._state === IN_COMMENT) {\n this._stateInComment(c);\n } else if (this._state === AFTER_COMMENT_1) {\n this._stateAfterComment1(c);\n } else if (this._state === AFTER_COMMENT_2) {\n this._stateAfterComment2(c);\n } else if (this._state === BEFORE_CDATA_1) {\n /*\n *\tcdata\n */\n this._stateBeforeCdata1(c);\n } else if (this._state === BEFORE_CDATA_2) {\n this._stateBeforeCdata2(c);\n } else if (this._state === BEFORE_CDATA_3) {\n this._stateBeforeCdata3(c);\n } else if (this._state === BEFORE_CDATA_4) {\n this._stateBeforeCdata4(c);\n } else if (this._state === BEFORE_CDATA_5) {\n this._stateBeforeCdata5(c);\n } else if (this._state === BEFORE_CDATA_6) {\n this._stateBeforeCdata6(c);\n } else if (this._state === IN_CDATA) {\n this._stateInCdata(c);\n } else if (this._state === AFTER_CDATA_1) {\n this._stateAfterCdata1(c);\n } else if (this._state === AFTER_CDATA_2) {\n this._stateAfterCdata2(c);\n } else if (this._state === BEFORE_SPECIAL) {\n /*\n * special tags\n */\n this._stateBeforeSpecial(c);\n } else if (this._state === BEFORE_SPECIAL_END) {\n this._stateBeforeSpecialEnd(c);\n } else if (this._state === BEFORE_SCRIPT_1) {\n /*\n * script\n */\n this._stateBeforeScript1(c);\n } else if (this._state === BEFORE_SCRIPT_2) {\n this._stateBeforeScript2(c);\n } else if (this._state === BEFORE_SCRIPT_3) {\n this._stateBeforeScript3(c);\n } else if (this._state === BEFORE_SCRIPT_4) {\n this._stateBeforeScript4(c);\n } else if (this._state === BEFORE_SCRIPT_5) {\n this._stateBeforeScript5(c);\n } else if (this._state === AFTER_SCRIPT_1) {\n this._stateAfterScript1(c);\n } else if (this._state === AFTER_SCRIPT_2) {\n this._stateAfterScript2(c);\n } else if (this._state === AFTER_SCRIPT_3) {\n this._stateAfterScript3(c);\n } else if (this._state === AFTER_SCRIPT_4) {\n this._stateAfterScript4(c);\n } else if (this._state === AFTER_SCRIPT_5) {\n this._stateAfterScript5(c);\n } else if (this._state === BEFORE_STYLE_1) {\n /*\n * style\n */\n this._stateBeforeStyle1(c);\n } else if (this._state === BEFORE_STYLE_2) {\n this._stateBeforeStyle2(c);\n } else if (this._state === BEFORE_STYLE_3) {\n this._stateBeforeStyle3(c);\n } else if (this._state === BEFORE_STYLE_4) {\n this._stateBeforeStyle4(c);\n } else if (this._state === AFTER_STYLE_1) {\n this._stateAfterStyle1(c);\n } else if (this._state === AFTER_STYLE_2) {\n this._stateAfterStyle2(c);\n } else if (this._state === AFTER_STYLE_3) {\n this._stateAfterStyle3(c);\n } else if (this._state === AFTER_STYLE_4) {\n this._stateAfterStyle4(c);\n } else if (this._state === BEFORE_ENTITY) {\n /*\n * entities\n */\n this._stateBeforeEntity(c);\n } else if (this._state === BEFORE_NUMERIC_ENTITY) {\n this._stateBeforeNumericEntity(c);\n } else if (this._state === IN_NAMED_ENTITY) {\n this._stateInNamedEntity(c);\n } else if (this._state === IN_NUMERIC_ENTITY) {\n this._stateInNumericEntity(c);\n } else if (this._state === IN_HEX_ENTITY) {\n this._stateInHexEntity(c);\n } else {\n this._cbs.onerror(Error(\"unknown _state\"), this._state);\n }\n\n this._index++;\n }\n\n this._cleanup();\n};\n\nTokenizer.prototype.pause = function () {\n this._running = false;\n};\n\nTokenizer.prototype.resume = function () {\n this._running = true;\n\n if (this._index < this._buffer.length) {\n this._parse();\n }\n\n if (this._ended) {\n this._finish();\n }\n};\n\nTokenizer.prototype.end = function (chunk) {\n if (this._ended) this._cbs.onerror(Error(\".end() after done!\"));\n if (chunk) this.write(chunk);\n this._ended = true;\n if (this._running) this._finish();\n};\n\nTokenizer.prototype._finish = function () {\n //if there is remaining data, emit it in a reasonable way\n if (this._sectionStart < this._index) {\n this._handleTrailingData();\n }\n\n this._cbs.onend();\n};\n\nTokenizer.prototype._handleTrailingData = function () {\n var data = this._buffer.substr(this._sectionStart);\n\n if (this._state === IN_CDATA || this._state === AFTER_CDATA_1 || this._state === AFTER_CDATA_2) {\n this._cbs.oncdata(data);\n } else if (this._state === IN_COMMENT || this._state === AFTER_COMMENT_1 || this._state === AFTER_COMMENT_2) {\n this._cbs.oncomment(data);\n } else if (this._state === IN_NAMED_ENTITY && !this._xmlMode) {\n this._parseLegacyEntity();\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state === IN_NUMERIC_ENTITY && !this._xmlMode) {\n this._decodeNumericEntity(2, 10);\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state === IN_HEX_ENTITY && !this._xmlMode) {\n this._decodeNumericEntity(3, 16);\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state !== IN_TAG_NAME && this._state !== BEFORE_ATTRIBUTE_NAME && this._state !== BEFORE_ATTRIBUTE_VALUE && this._state !== AFTER_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_VALUE_SQ && this._state !== IN_ATTRIBUTE_VALUE_DQ && this._state !== IN_ATTRIBUTE_VALUE_NQ && this._state !== IN_CLOSING_TAG_NAME) {\n this._cbs.ontext(data);\n } //else, ignore remaining data\n //TODO add a way to remove current tag\n\n};\n\nTokenizer.prototype.reset = function () {\n Tokenizer.call(this, {\n xmlMode: this._xmlMode,\n decodeEntities: this._decodeEntities\n }, this._cbs);\n};\n\nTokenizer.prototype.getAbsoluteIndex = function () {\n return this._bufferOffset + this._index;\n};\n\nTokenizer.prototype._getSection = function () {\n return this._buffer.substring(this._sectionStart, this._index);\n};\n\nTokenizer.prototype._emitToken = function (name) {\n this._cbs[name](this._getSection());\n\n this._sectionStart = -1;\n};\n\nTokenizer.prototype._emitPartial = function (value) {\n if (this._baseState !== TEXT) {\n this._cbs.onattribdata(value); //TODO implement the new event\n\n } else {\n this._cbs.ontext(value);\n }\n};","var decodeMap = require(\"../maps/decode.json\");\n\nmodule.exports = decodeCodePoint; // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\n\nfunction decodeCodePoint(codePoint) {\n if (codePoint >= 0xd800 && codePoint <= 0xdfff || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n\n if (codePoint in decodeMap) {\n codePoint = decodeMap[codePoint];\n }\n\n var output = \"\";\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(codePoint >>> 10 & 0x3ff | 0xd800);\n codePoint = 0xdc00 | codePoint & 0x3ff;\n }\n\n output += String.fromCharCode(codePoint);\n return output;\n}","var isTag = require(\"domelementtype\").isTag;\n\nmodule.exports = {\n filter: filter,\n find: find,\n findOneChild: findOneChild,\n findOne: findOne,\n existsOne: existsOne,\n findAll: findAll\n};\n\nfunction filter(test, element, recurse, limit) {\n if (!Array.isArray(element)) element = [element];\n\n if (typeof limit !== \"number\" || !isFinite(limit)) {\n limit = Infinity;\n }\n\n return find(test, element, recurse !== false, limit);\n}\n\nfunction find(test, elems, recurse, limit) {\n var result = [],\n childs;\n\n for (var i = 0, j = elems.length; i < j; i++) {\n if (test(elems[i])) {\n result.push(elems[i]);\n if (--limit <= 0) break;\n }\n\n childs = elems[i].children;\n\n if (recurse && childs && childs.length > 0) {\n childs = find(test, childs, recurse, limit);\n result = result.concat(childs);\n limit -= childs.length;\n if (limit <= 0) break;\n }\n }\n\n return result;\n}\n\nfunction findOneChild(test, elems) {\n for (var i = 0, l = elems.length; i < l; i++) {\n if (test(elems[i])) return elems[i];\n }\n\n return null;\n}\n\nfunction findOne(test, elems) {\n var elem = null;\n\n for (var i = 0, l = elems.length; i < l && !elem; i++) {\n if (!isTag(elems[i])) {\n continue;\n } else if (test(elems[i])) {\n elem = elems[i];\n } else if (elems[i].children.length > 0) {\n elem = findOne(test, elems[i].children);\n }\n }\n\n return elem;\n}\n\nfunction existsOne(test, elems) {\n for (var i = 0, l = elems.length; i < l; i++) {\n if (isTag(elems[i]) && (test(elems[i]) || elems[i].children.length > 0 && existsOne(test, elems[i].children))) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction findAll(test, elems) {\n var result = [];\n\n for (var i = 0, j = elems.length; i < j; i++) {\n if (!isTag(elems[i])) continue;\n if (test(elems[i])) result.push(elems[i]);\n\n if (elems[i].children.length > 0) {\n result = result.concat(findAll(test, elems[i].children));\n }\n }\n\n return result;\n}","\"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; //<script> tags\n\nexports.Style = \"style\"\n/* Style */\n; //<style> tags\n\nexports.Tag = \"tag\"\n/* Tag */\n; //Any tag\n\nexports.CDATA = \"cdata\"\n/* CDATA */\n; //<![CDATA[ ... ]]>\n\nexports.Doctype = \"doctype\"\n/* Doctype */\n;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Mapping of standard HTML attributes to their React counterparts\n * List taken and reversed from react/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n * https://github.com/facebook/react/blob/c9c3c339b757682f1154f1c915eb55e6a8766933/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n * @type {Object}\n */\n\nexports.default = {\n /**\n * Standard Properties\n */\n accept: 'accept',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n allowtransparency: 'allowTransparency',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocomplete: 'autoComplete',\n autoplay: 'autoPlay',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n charset: 'charSet',\n challenge: 'challenge',\n checked: 'checked',\n cite: 'cite',\n classid: 'classID',\n class: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlsList: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n form: 'form',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formmethod: 'formMethod',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n for: 'htmlFor',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginheight: 'marginHeight',\n marginwidth: 'marginWidth',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n slot: 'slot',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n\n /**\n * RDFa Properties\n */\n about: 'about',\n datatype: 'datatype',\n inlist: 'inlist',\n prefix: 'prefix',\n property: 'property',\n resource: 'resource',\n typeof: 'typeof',\n vocab: 'vocab',\n\n /**\n * Non-standard Properties\n */\n autocapitalize: 'autoCapitalize',\n autocorrect: 'autoCorrect',\n autosave: 'autoSave',\n color: 'color',\n itemprop: 'itemProp',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n itemid: 'itemID',\n itemref: 'itemRef',\n results: 'results',\n security: 'security',\n unselectable: 'unselectable'\n};","\"use strict\";\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});\nexports.escape = exports.encodeHTML = exports.encodeXML = void 0;\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\nexports.encodeXML = getInverse(inverseXML, xmlReplacer);\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n\nfunction getInverseObj(obj) {\n return Object.keys(obj).sort().reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\n\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n } else {\n // Add value to multiple array\n multiple.push(k);\n }\n } // Add ranges to single characters.\n\n\n single.sort();\n\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n\n while (end < single.length - 1 && single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n\n var count = 1 + end - start; // We want to replace at least three characters\n\n if (count < 3) continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\n\nfunction singleCharReplacer(c) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return \"&#x\" + c.codePointAt(0).toString(16).toUpperCase() + \";\";\n}\n\nfunction getInverse(inverse, re) {\n return function (data) {\n return data.replace(re, function (name) {\n return inverse[name];\n }).replace(reNonASCII, singleCharReplacer);\n };\n}\n\nvar reXmlChars = getInverseReplacer(inverseXML);\n\nfunction escape(data) {\n return data.replace(reXmlChars, singleCharReplacer).replace(reNonASCII, singleCharReplacer);\n}\n\nexports.escape = escape;","exports.removeElement = function (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.replaceElement = function (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.appendChild = function (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.append = function (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.prepend = function (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};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n case 'raw':\n return true;\n\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n\n case 'latin1':\n case 'binary':\n return 'latin1';\n\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n\n default:\n if (retried) return; // undefined\n\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n}\n\n; // Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\n\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n} // StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\n\n\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n} // Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n\n return nb;\n }\n\n return 0;\n} // Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\n\n\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n} // UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\n\n\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n\n return r;\n }\n\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n} // For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\n\n\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.htmlparser2 = exports.convertNodeToElement = exports.processNodes = undefined;\n\nvar _processNodes = require('./processNodes');\n\nObject.defineProperty(exports, 'processNodes', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_processNodes).default;\n }\n});\n\nvar _convertNodeToElement = require('./convertNodeToElement');\n\nObject.defineProperty(exports, 'convertNodeToElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_convertNodeToElement).default;\n }\n});\n\nvar _htmlparser = require('htmlparser2');\n\nObject.defineProperty(exports, 'htmlparser2', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_htmlparser).default;\n }\n});\n\nvar _HtmlParser = require('./HtmlParser');\n\nvar _HtmlParser2 = _interopRequireDefault(_HtmlParser);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _HtmlParser2.default;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n var errorListener; // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = convertNodeToElement;\n\nvar _elementTypes = require('./elementTypes');\n\nvar _elementTypes2 = _interopRequireDefault(_elementTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts a htmlparser2 node to a React element\n *\n * @param {Object} node The htmlparser2 node to convert\n * @param {Number} index The index of the current node\n * @param {Function} transform Transform function to apply to children of the node\n * @returns {React.Element}\n */\n\n\nfunction convertNodeToElement(node, index, transform) {\n return _elementTypes2.default[node.type](node, index, transform);\n}","module.exports = Stream;\n\nvar Parser = require(\"./Parser.js\");\n\nvar WritableStream = require(\"readable-stream\").Writable;\n\nvar StringDecoder = require(\"string_decoder\").StringDecoder;\n\nvar Buffer = require(\"buffer\").Buffer;\n\nfunction Stream(cbs, options) {\n var parser = this._parser = new Parser(cbs, options);\n var decoder = this._decoder = new StringDecoder();\n WritableStream.call(this, {\n decodeStrings: false\n });\n this.once(\"finish\", function () {\n parser.end(decoder.end());\n });\n}\n\nrequire(\"inherits\")(Stream, WritableStream);\n\nStream.prototype._write = function (chunk, encoding, cb) {\n if (chunk instanceof Buffer) chunk = this._decoder.write(chunk);\n\n this._parser.write(chunk);\n\n cb();\n};","var Parser = require(\"./Parser.js\");\n\nvar DomHandler = require(\"domhandler\");\n\nfunction defineProp(name, value) {\n delete module.exports[name];\n module.exports[name] = value;\n return value;\n}\n\nmodule.exports = {\n Parser: Parser,\n Tokenizer: require(\"./Tokenizer.js\"),\n ElementType: require(\"domelementtype\"),\n DomHandler: DomHandler,\n\n get FeedHandler() {\n return defineProp(\"FeedHandler\", require(\"./FeedHandler.js\"));\n },\n\n get Stream() {\n return defineProp(\"Stream\", require(\"./Stream.js\"));\n },\n\n get WritableStream() {\n return defineProp(\"WritableStream\", require(\"./WritableStream.js\"));\n },\n\n get ProxyHandler() {\n return defineProp(\"ProxyHandler\", require(\"./ProxyHandler.js\"));\n },\n\n get DomUtils() {\n return defineProp(\"DomUtils\", require(\"domutils\"));\n },\n\n get CollectingHandler() {\n return defineProp(\"CollectingHandler\", require(\"./CollectingHandler.js\"));\n },\n\n // For legacy support\n DefaultHandler: DomHandler,\n\n get RssHandler() {\n return defineProp(\"RssHandler\", this.FeedHandler);\n },\n\n //helper methods\n parseDOM: function parseDOM(data, options) {\n var handler = new DomHandler(options);\n new Parser(handler, options).end(data);\n return handler.dom;\n },\n parseFeed: function parseFeed(feed, options) {\n var handler = new module.exports.FeedHandler(options);\n new Parser(handler, options).end(feed);\n return handler.dom;\n },\n createDomStream: function createDomStream(cb, options, elementCb) {\n var handler = new DomHandler(cb, options, elementCb);\n return new Parser(handler, options);\n },\n // List of all events that the parser emits\n EVENTS: {\n /* Format: eventname: number of arguments */\n attribute: 2,\n cdatastart: 0,\n cdataend: 0,\n text: 1,\n processinginstruction: 2,\n comment: 1,\n commentend: 0,\n closetag: 1,\n opentag: 2,\n opentagname: 1,\n error: 1,\n end: 0\n }\n};","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n} // Copy static methods from Buffer\n\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ElementType$Text$Ele;\n\nvar _htmlparser = require('htmlparser2');\n\nvar _TextElementType = require('./TextElementType');\n\nvar _TextElementType2 = _interopRequireDefault(_TextElementType);\n\nvar _TagElementType = require('./TagElementType');\n\nvar _TagElementType2 = _interopRequireDefault(_TagElementType);\n\nvar _StyleElementType = require('./StyleElementType');\n\nvar _StyleElementType2 = _interopRequireDefault(_StyleElementType);\n\nvar _UnsupportedElementType = require('./UnsupportedElementType');\n\nvar _UnsupportedElementType2 = _interopRequireDefault(_UnsupportedElementType);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\n * Map each htmlparser2 element type to a function which will convert that element type to a React element\n * Not all of the element types are supported so the UnsupportedElementType is used for them which will not return any\n * value\n */\n\n\nexports.default = (_ElementType$Text$Ele = {}, _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Text, _TextElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Tag, _TagElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Style, _StyleElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Directive, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Comment, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Script, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.CDATA, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Doctype, _UnsupportedElementType2.default), _ElementType$Text$Ele);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = StyleElementType;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _generatePropsFromAttributes = require('../utils/generatePropsFromAttributes');\n\nvar _generatePropsFromAttributes2 = _interopRequireDefault(_generatePropsFromAttributes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts a <style> element to a React element\n *\n * @param {Object} node The style node\n * @param {String} index The index of the React element relative to it's parent\n * @returns {React.Element} The React style element\n */\n\n\nfunction StyleElementType(node, index) {\n // The style element only ever has a single child which is the styles so try and find this to add as\n // a child to the style element that will be created\n var styles = void 0;\n\n if (node.children.length > 0) {\n styles = node.children[0].data;\n } // generate props\n\n\n var props = (0, _generatePropsFromAttributes2.default)(node.attribs, index); // create and return the element\n\n return _react2.default.createElement('style', props, styles);\n}","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var ElementType = require(\"domelementtype\");\n\nvar isTag = exports.isTag = ElementType.isTag;\n\nexports.testElement = function (options, element) {\n for (var key in options) {\n if (!options.hasOwnProperty(key)) ;else if (key === \"tag_name\") {\n if (!isTag(element) || !options.tag_name(element.name)) {\n return false;\n }\n } else if (key === \"tag_type\") {\n if (!options.tag_type(element.type)) return false;\n } else if (key === \"tag_contains\") {\n if (isTag(element) || !options.tag_contains(element.data)) {\n return false;\n }\n } else if (!element.attribs || !options[key](element.attribs[key])) {\n return false;\n }\n }\n\n return true;\n};\n\nvar Checks = {\n tag_name: function tag_name(name) {\n if (typeof name === \"function\") {\n return function (elem) {\n return isTag(elem) && name(elem.name);\n };\n } else if (name === \"*\") {\n return isTag;\n } else {\n return function (elem) {\n return isTag(elem) && elem.name === name;\n };\n }\n },\n tag_type: function tag_type(type) {\n if (typeof type === \"function\") {\n return function (elem) {\n return type(elem.type);\n };\n } else {\n return function (elem) {\n return elem.type === type;\n };\n }\n },\n tag_contains: function tag_contains(data) {\n if (typeof data === \"function\") {\n return function (elem) {\n return !isTag(elem) && data(elem.data);\n };\n } else {\n return function (elem) {\n return !isTag(elem) && elem.data === data;\n };\n }\n }\n};\n\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) {\n return elem.attribs && value(elem.attribs[attrib]);\n };\n } else {\n return function (elem) {\n return elem.attribs && elem.attribs[attrib] === value;\n };\n }\n}\n\nfunction combineFuncs(a, b) {\n return function (elem) {\n return a(elem) || b(elem);\n };\n}\n\nexports.getElements = function (options, element, recurse, limit) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return key in Checks ? Checks[key](value) : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? [] : this.filter(funcs.reduce(combineFuncs), element, recurse, limit);\n};\n\nexports.getElementById = function (id, element, recurse) {\n if (!Array.isArray(element)) element = [element];\n return this.findOne(getAttribCheck(\"id\", id), element, recurse !== false);\n};\n\nexports.getElementsByTagName = function (name, element, recurse, limit) {\n return this.filter(Checks.tag_name(name), element, recurse, limit);\n};\n\nexports.getElementsByTagType = function (type, element, recurse, limit) {\n return this.filter(Checks.tag_type(type), element, recurse, limit);\n};","var _FLEX_MAP;\n\nimport styled, { css } from 'styled-components';\nimport { genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar StyledTabsHeader = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabsHeader\",\n componentId: \"a4fwxl-0\"\n})([\"\", \";\"], function (props) {\n return props.theme.tabs.header.extend;\n});\nStyledTabsHeader.defaultProps = {};\nObject.setPrototypeOf(StyledTabsHeader.defaultProps, defaultProps);\nvar FLEX_MAP = (_FLEX_MAP = {}, _FLEX_MAP[true] = '1 1', _FLEX_MAP[false] = '0 0', _FLEX_MAP.grow = '1 0', _FLEX_MAP.shrink = '0 1', _FLEX_MAP);\nvar flexStyle = css([\"flex:\", \";\"], function (props) {\n return \"\" + FLEX_MAP[props.flex] + (props.flex !== true ? ' auto' : '');\n});\nvar StyledTabPanel = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabPanel\",\n componentId: \"a4fwxl-1\"\n})([\"min-height:0;\", \" \", \";\"], function (props) {\n return props.flex && flexStyle;\n}, function (props) {\n return props.theme.tabs.panel.extend;\n});\nStyledTabPanel.defaultProps = {};\nObject.setPrototypeOf(StyledTabPanel.defaultProps, defaultProps);\nvar StyledTabs = styled.div.withConfig({\n displayName: \"StyledTabs\",\n componentId: \"a4fwxl-2\"\n})([\"\", \" \", \";\"], genericStyles, function (props) {\n return props.theme.tabs.extend;\n});\nStyledTabs.defaultProps = {};\nObject.setPrototypeOf(StyledTabs.defaultProps, defaultProps);\nexport { StyledTabsHeader, StyledTabPanel, StyledTabs };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { forwardRef, useContext, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { TabsContext } from './TabsContext';\nimport { StyledTabPanel, StyledTabs, StyledTabsHeader } from './StyledTabs';\nimport { normalizeColor } from '../../utils';\nvar Tabs = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var alignControls = _ref.alignControls,\n children = _ref.children,\n flex = _ref.flex,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? 'center' : _ref$justify,\n _ref$messages = _ref.messages,\n messages = _ref$messages === void 0 ? {\n tabContents: 'Tab Contents'\n } : _ref$messages,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n rest = _objectWithoutPropertiesLoose(_ref, [\"alignControls\", \"children\", \"flex\", \"justify\", \"messages\", \"responsive\"]);\n\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var propsActiveIndex = rest.activeIndex,\n onActive = rest.onActive;\n\n var _useState = useState(rest.activeIndex || 0),\n activeIndex = _useState[0],\n setActiveIndex = _useState[1];\n\n var _useState2 = useState(),\n activeContent = _useState2[0],\n setActiveContent = _useState2[1];\n\n var _useState3 = useState(),\n activeTitle = _useState3[0],\n setActiveTitle = _useState3[1];\n\n if (activeIndex !== propsActiveIndex && propsActiveIndex !== undefined) {\n setActiveIndex(propsActiveIndex);\n }\n\n var activateTab = function activateTab(index) {\n if (propsActiveIndex === undefined) {\n setActiveIndex(index);\n }\n\n if (onActive) {\n onActive(index);\n }\n };\n /* eslint-disable no-param-reassign */\n\n\n delete rest.activeIndex;\n delete rest.onActive;\n /* eslint-enable no-param-reassign */\n\n var tabs = React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(TabsContext.Provider, {\n value: {\n activeIndex: activeIndex,\n active: activeIndex === index,\n onActivate: function onActivate() {\n return activateTab(index);\n },\n setActiveContent: setActiveContent,\n setActiveTitle: setActiveTitle\n }\n }, child ?\n /*#__PURE__*/\n // cloneElement is needed for backward compatibility with custom\n // styled components that rely on props.active. We should reassess\n // if it is still necessary in our next major release.\n React.cloneElement(child, {\n active: activeIndex === index\n }) : child);\n });\n var tabsHeaderStyles = {};\n\n if (theme.tabs.header && theme.tabs.header.border) {\n var borderColor = theme.tabs.header.border.color || theme.global.control.border.color;\n borderColor = normalizeColor(borderColor, theme);\n tabsHeaderStyles.border = {\n side: theme.tabs.header.border.side,\n size: theme.tabs.header.border.size,\n style: theme.tabs.header.border.style,\n color: borderColor\n };\n }\n\n var tabContentTitle = (activeTitle || '') + \" \" + messages.tabContents;\n return /*#__PURE__*/React.createElement(StyledTabs, _extends({\n ref: ref,\n as: Box,\n role: \"tablist\",\n flex: flex,\n responsive: responsive\n }, rest, {\n background: theme.tabs.background\n }), /*#__PURE__*/React.createElement(StyledTabsHeader, _extends({\n as: Box,\n direction: \"row\",\n justify: justify,\n alignSelf: alignControls,\n flex: false,\n wrap: true,\n background: theme.tabs.header.background,\n gap: theme.tabs.gap\n }, tabsHeaderStyles), tabs), /*#__PURE__*/React.createElement(StyledTabPanel, {\n flex: flex,\n \"aria-label\": tabContentTitle,\n role: \"tabpanel\"\n }, activeContent));\n});\nTabs.displayName = 'Tabs';\nvar TabsDoc;\n\nif (process.env.NODE_ENV !== 'production') {\n TabsDoc = require('./doc').doc(Tabs); // eslint-disable-line global-require\n}\n\nvar TabsWrapper = TabsDoc || Tabs;\nexport { TabsWrapper as Tabs };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = processNodes;\n\nvar _isEmptyTextNode = require('./utils/isEmptyTextNode');\n\nvar _isEmptyTextNode2 = _interopRequireDefault(_isEmptyTextNode);\n\nvar _convertNodeToElement = require('./convertNodeToElement');\n\nvar _convertNodeToElement2 = _interopRequireDefault(_convertNodeToElement);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Processes the nodes generated by htmlparser2 and convert them all into React elements\n *\n * @param {Object[]} nodes List of nodes to process\n * @param {Function} transform Transform function to optionally apply to nodes\n * @returns {React.Element[]} The list of processed React elements\n */\n\n\nfunction processNodes(nodes, transform) {\n return nodes.filter(function (node) {\n return !(0, _isEmptyTextNode2.default)(node);\n }).map(function (node, index) {\n // return the result of the transform function if applicable\n var transformed = void 0;\n\n if (typeof transform === 'function') {\n transformed = transform(node, index);\n\n if (transformed === null || !!transformed) {\n return transformed;\n }\n } // otherwise convert the node as standard\n\n\n return (0, _convertNodeToElement2.default)(node, index, transform);\n });\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * List of void elements\n * These elements are not allowed to have children\n * @type {Array}\n */\n\nexports.default = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HtmlParser;\n\nvar _htmlparser = require('htmlparser2');\n\nvar _htmlparser2 = _interopRequireDefault(_htmlparser);\n\nvar _processNodes = require('./processNodes');\n\nvar _processNodes2 = _interopRequireDefault(_processNodes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Parses a HTML string and returns a list of React components generated from it\n *\n * @param {String} html The HTML to convert into React component\n * @param {Object} options Options to pass\n * @returns {Array} List of top level React elements\n */\n\n\nfunction HtmlParser(html) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$decodeEntities = _ref.decodeEntities,\n decodeEntities = _ref$decodeEntities === undefined ? true : _ref$decodeEntities,\n transform = _ref.transform,\n _ref$preprocessNodes = _ref.preprocessNodes,\n preprocessNodes = _ref$preprocessNodes === undefined ? function (nodes) {\n return nodes;\n } : _ref$preprocessNodes;\n\n var nodes = preprocessNodes(_htmlparser2.default.parseDOM(html, {\n decodeEntities: decodeEntities\n }));\n return (0, _processNodes2.default)(nodes, transform);\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","module.exports = ProxyHandler;\n\nfunction ProxyHandler(cbs) {\n this._cbs = cbs || {};\n}\n\nvar EVENTS = require(\"./\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function () {\n if (this._cbs[name]) this._cbs[name]();\n };\n } else if (EVENTS[name] === 1) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function (a) {\n if (this._cbs[name]) this._cbs[name](a);\n };\n } else if (EVENTS[name] === 2) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function (a, b) {\n if (this._cbs[name]) this._cbs[name](a, b);\n };\n } else {\n throw Error(\"wrong number of arguments\");\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports.default = generatePropsFromAttributes;\n\nvar _htmlAttributesToReact = require('./htmlAttributesToReact');\n\nvar _htmlAttributesToReact2 = _interopRequireDefault(_htmlAttributesToReact);\n\nvar _inlineStyleToObject = require('./inlineStyleToObject');\n\nvar _inlineStyleToObject2 = _interopRequireDefault(_inlineStyleToObject);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Generates props for a React element from an object of HTML attributes\n *\n * @param {Object} attributes The HTML attributes\n * @param {String} key The key to give the react element\n */\n\n\nfunction generatePropsFromAttributes(attributes, key) {\n // generate props\n var props = _extends({}, (0, _htmlAttributesToReact2.default)(attributes), {\n key: key\n }); // if there is an inline/string style prop then convert it to a React style object\n // otherwise, it is invalid and omitted\n\n\n if (typeof props.style === 'string' || props.style instanceof String) {\n props.style = (0, _inlineStyleToObject2.default)(props.style);\n } else {\n delete props.style;\n }\n\n return props;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = htmlAttributesToReact;\n\nvar _BooleanAttributes = require('../dom/attributes/BooleanAttributes');\n\nvar _BooleanAttributes2 = _interopRequireDefault(_BooleanAttributes);\n\nvar _ReactAttributes = require('../dom/attributes/ReactAttributes');\n\nvar _ReactAttributes2 = _interopRequireDefault(_ReactAttributes);\n\nvar _isValidTagOrAttributeName = require('./isValidTagOrAttributeName');\n\nvar _isValidTagOrAttributeName2 = _interopRequireDefault(_isValidTagOrAttributeName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Returns the parsed attribute value taking into account things like boolean attributes\n *\n * @param {String} attribute The name of the attribute\n * @param {*} value The value of the attribute from the HTML\n * @returns {*} The parsed attribute value\n */\n\n\nvar getParsedAttributeValue = function getParsedAttributeValue(attribute, value) {\n // if the attribute if a boolean then it's value should be the same as it's name\n // e.g. disabled=\"disabled\"\n var lowerBooleanAttributes = _BooleanAttributes2.default.map(function (attr) {\n return attr.toLowerCase();\n });\n\n if (lowerBooleanAttributes.indexOf(attribute.toLowerCase()) >= 0) {\n value = attribute;\n }\n\n return value;\n};\n/**\n * Takes an object of standard HTML property names and converts them to their React counterpart. If the react\n * version does not exist for an attribute then just use it as it is\n *\n * @param {Object} attributes The HTML attributes to convert\n * @returns {Object} The React attributes\n */\n\n\nfunction htmlAttributesToReact(attributes) {\n return Object.keys(attributes).filter(function (attr) {\n return (0, _isValidTagOrAttributeName2.default)(attr);\n }).reduce(function (mappedAttributes, attribute) {\n // lowercase the attribute name and find it in the react attribute map\n var lowerCaseAttribute = attribute.toLowerCase(); // format the attribute name\n\n var name = _ReactAttributes2.default[lowerCaseAttribute] || lowerCaseAttribute; // add the parsed attribute value to the mapped attributes\n\n mappedAttributes[name] = getParsedAttributeValue(name, attributes[attribute]);\n return mappedAttributes;\n }, {});\n}"],"sourceRoot":""}