{"version":3,"sources":["webpack://_N_E/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://_N_E/./node_modules/xss/lib/util.js","webpack://_N_E/./components/button.tsx","webpack://_N_E/./node_modules/core-js/internals/string-repeat.js","webpack://_N_E/./node_modules/cssfilter/lib/index.js","webpack://_N_E/./node_modules/xss/lib/xss.js","webpack://_N_E/./node_modules/core-js/internals/this-number-value.js","webpack://_N_E/./node_modules/xss/lib/parser.js","webpack://_N_E/./node_modules/xss/lib/index.js","webpack://_N_E/./node_modules/cssfilter/lib/default.js","webpack://_N_E/./node_modules/cssfilter/lib/util.js","webpack://_N_E/./node_modules/core-js/modules/es.array.splice.js","webpack://_N_E/./node_modules/cssfilter/lib/parser.js","webpack://_N_E/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://_N_E/./node_modules/cssfilter/lib/css.js","webpack://_N_E/./node_modules/xss/lib/default.js"],"names":["defineWellKnownSymbol","module","exports","indexOf","arr","item","i","j","Array","prototype","length","forEach","fn","scope","call","trim","str","String","replace","spaceIndex","match","exec","index","Button","event","props","loading","disabled","onClick","preventDefault","stopPropagation","this","type","style","children","className","role","classnames","React","toInteger","requireObjectCoercible","repeat","count","result","n","Infinity","RangeError","DEFAULT","FilterCSS","html","options","process","window","filterCSS","parser","parseTag","parseAttr","_","isNull","obj","undefined","FilterXSS","ret","shallowCopyObject","stripIgnoreTag","onIgnoreTag","console","error","onIgnoreTagStripAll","whiteList","onTag","onTagAttr","onIgnoreTagAttr","safeAttrValue","escapeHtml","css","cssFilter","toString","stripBlankChar","allowCommentTag","stripCommentTag","stripIgnoreTagBody","StripTagBody","retHtml","sourcePosition","position","tag","isClosing","info","isWhite","hasOwnProperty","attrs","closing","slice","getAttrs","whiteAttrList","attrsHtml","name","value","isWhiteAttr","remove","classof","TypeError","getTagName","tagName","toLowerCase","REGEXP_ILLEGAL_ATTR_NAME","findNextEqual","c","findBeforeEqual","stripQuoteWrap","text","isQuoteWrapString","substr","rethtml","lastPos","tagStart","quoteStart","currentPos","len","currentTagName","currentHtml","charAt","onAttr","retAttrs","tmpName","addAttr","push","test","join","filterXSS","self","DedicatedWorkerGlobalScope","getDefaultWhiteList","REGEXP_URL_JAVASCRIPT","onIgnoreAttr","trimRight","$","toAbsoluteIndex","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","max","Math","min","target","proto","forced","splice","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","actualStart","argumentsLength","arguments","cssLength","isParenthesisOpen","retCSS","addNewAttr","source","thisNumberValue","fails","nativeToFixed","toFixed","floor","pow","x","acc","fractionDigits","e","z","number","fractDigits","data","sign","multiply","c2","divide","dataToString","s","t","x2","log","parseStyle","check","RegExp","opts","getDefaultCSSWhiteList","a","abbr","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","caption","center","cite","code","col","colgroup","dd","del","details","div","dl","dt","em","font","footer","h1","h2","h3","h4","h5","h6","header","hr","img","ins","li","mark","nav","ol","p","pre","section","small","span","sub","sup","strong","table","tbody","td","tfoot","th","thead","tr","tt","u","ul","video","defaultCSSFilter","REGEXP_LT","REGEXP_GT","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeQuote","unescapeQuote","escapeHtmlEntities","fromCharCode","parseInt","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","charCodeAt","friendlyAttrValue","escapeAttrValue","STRIP_COMMENT_TAG_REGEXP","lastIndex","tags","next","isRemoveAllTag","isArray","removeList","posStart","isRemoveTag","end","pos","chars","split","filter","char"],"mappings":"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","file":"static/chunks/8e3a7844473fba48bb96e58cf827b45de9e62262.0717999035fad6ec6438.js","sourcesContent":["var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","module.exports = {\n indexOf: function(arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function(arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function(str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function(str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n","import * as React from 'react'\nimport classnames from 'classnames'\n\ninterface Props {\n /**\n * primary: 黄色底部,常用语询底价\n * default: 带边框\n * highlight: 带边框,颜色为橘色\n */\n type?: 'primary' | 'default' | 'highlight' | 'new_primary'\n style?: React.CSSProperties\n loading?: boolean\n disabled?: boolean\n className?: string\n onClick?: React.MouseEventHandler\n}\n\nexport default class Button extends React.PureComponent {\n static defaultProps = {\n type: 'default',\n loading: false,\n disabled: false,\n }\n\n onClick = (event: React.MouseEvent) => {\n // event.preventDefault()\n // event.stopPropagation()\n const { loading, disabled, onClick } = this.props\n if (loading || disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n if (typeof onClick === 'function') {\n onClick(event)\n }\n }\n\n render() {\n const { type, style, loading, disabled, children, className } = this.props\n return (\n \n {loading ? : children}\n \n \n )\n }\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function(html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function(sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function(name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if ((c === '\"' || c === \"'\") && html.charAt(currentPos - 1) === \"=\") {\n quoteStart = c;\n continue;\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"user strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape doube quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function() {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function(tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function(html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function(pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n return html.replace(STRIP_COMMENT_TAG_REGEXP, \"\");\n}\nvar STRIP_COMMENT_TAG_REGEXP = //g;\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function(char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n"],"sourceRoot":""}