html:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/less"> *{margin: 0;} body{ background-color: #fff; } .bigBox{ position: relative; } .container{ position: absolute; #svg{ path{ transition: transform .2s; color:white; cursor: pointer; } .center{ border-radius: 50%; background-color: #fff; img{ width: 100%; height: 100%; } } .list{ transition: transform .2s; cursor: pointer; div{ text-align: center;color:#fff } } } } .containerBox{ width: 100px; height: 100px; overflow: hidden; position:absolute; top: 40px; left: 40px; } </style> <script type="text/javascript" src="js/less.min.js"></script> </head> <body> <div class="bigBox"> <div class="container"> <svg id="svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="200px" height="200px"> <path class="paths" stroke="#fff" stroke-width="1" fill="#1bbc9d" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#2fcc71" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#3598dc" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#9c59b8" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#34495e" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#16a086" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#27ae61" /> <path class="paths" stroke="#fff" stroke-width="1" fill="#2a80b9" /> <foreignObject class='center'> <a href=""> <!-- <img src="t.png"/> --> </a> </foreignObject> </svg> </div> </div> <script type="text/javascript"> Object.defineProperties(window, { El: { value: function(el) { return document.querySelector(el) }, enumerable: false }, Els: { value: function(el) { return document.querySelectorAll(el) }, enumerable: false } }) init(); window.onresize = function() { init(); } function init() { //宽高为当前页面的40% El(".container").style.width = 225 + 'px'; El(".container").style.height = 225 + 'px'; var contW = El(".container").style.width, contH = El(".container").style.height; //svg自适应 El("#svg").setAttribute('width', contW) El("#svg").setAttribute('height', contH) //中间图形自适应 El(".center").setAttribute('x', contW.split('px')[0] / 2 - contW.split('px')[0] / 4) El(".center").setAttribute('y', contW.split('px')[0] / 2 - contW.split('px')[0] / 4) El(".center").setAttribute('width', contW.split('px')[0] / 2) El(".center").setAttribute('height', contW.split('px')[0] / 2) mkChart(); } function mkChart() { //配置各种宽高 var svgWsm = El("#svg").clientWidth - 100, svgHsm = El("#svg").clientHeight - 100, svgW2 = svgWsm / 2, svgH2 = svgWsm / 2, svgW = El("#svg").clientWidth, svgH = El("#svg").clientHeight, djx = Math.sqrt(Math.pow(svgW2, 2) + Math.pow(svgH2, 2)), djxW = Math.sqrt(Math.pow(djx - svgW2, 2) / 2), findex = 0; var ds = `M${svgW2+50} ${svgH2+50} L${svgW2+50} 50 A ${svgW2} ${svgH2} 0 0 0 ${djxW+50} ${djxW+50} Z`; //循环扇形 Els(".paths").forEach((item, index) => { item.setAttribute("d", ds); //自己旋转 // 30 item.style.transform = `rotate(${45*index}deg)`; item.style.transformOrigin = `${svgW2+50}px ${svgH2+50}px`; //点击 item.onclick = () => { console.log('index', index); console.log('findex', findex); // 还原上一个 Els('.paths')[findex].style.transform = `rotate(${45*findex}deg)`; //扇形放大 item.style.transform = `rotate(${45*index}deg) scale(1.1)`; //里面内容同步放大 findex = index; } }) //中间事件 El(".center>a").onclick = () => { alert("中间事件") } } </script> </body> </html>
less.min.js:
/*! * Less - Leaner CSS v2.5.3 * http://lesscss.org * * Copyright (c) 2009-2015, Alexis Sellier <self@cloudhead.net> * Licensed under the License. * */ /** * @license */ ! function(a) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = a(); else if ("function" == typeof define && define.amd) define([], a); else { var b; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, b.less = a() } }(function() { return function a(b, c, d) { function e(g, h) { if (!c[g]) { if (!b[g]) { var i = "function" == typeof require && require; if (!h && i) return i(g, !0); if (f) return f(g, !0); var j = new Error("Cannot find module '" + g + "'"); throw j.code = "MODULE_NOT_FOUND", j } var k = c[g] = { exports: {} }; b[g][0].call(k.exports, function(a) { var c = b[g][1][a]; return e(c ? c : a) }, k, k.exports, a, b, c, d) } return c[g].exports } for (var f = "function" == typeof require && require, g = 0; d.length > g; g++) e(d[g]); return e }({ 1: [function(a, b) { var c = a("./utils").addDataAttr, d = a("./browser"); b.exports = function(a, b) { c(b, d.currentScript(a)), void 0 === b.isFileProtocol && (b.isFileProtocol = /^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(a.location.protocol)), b.async = b.async || ! 1, b.fileAsync = b.fileAsync || !1, b.poll = b.poll || (b.isFileProtocol ? 1e3 : 1500), b.env = b.env || ( "127.0.0.1" == a.location.hostname || "0.0.0.0" == a.location.hostname || "localhost" == a.location.hostname || a.location.port && a.location.port.length > 0 || b.isFileProtocol ? "development" : "production"); var e = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(a.location.hash); e && (b.dumpLineNumbers = e[1]), void 0 === b.useFileCache && (b.useFileCache = !0), void 0 === b.onReady && (b.onReady = !0) } }, { "./browser": 3, "./utils": 9 }], 2: [function(a, b) { a("promise/polyfill.js"); var c = window.less || {}; a("./add-default-options")(window, c); var d = b.exports = a("./index")(window, c); window.less = d, c.onReady && (/!watch/.test(window.location.hash) && d.watch(), d.registerStylesheetsImmediately(), d.pageLoadFinished = d.refresh("development" === d.env)) }, { "./add-default-options": 1, "./index": 7, "promise/polyfill.js": 95 }], 3: [function(a, b) { var c = a("./utils"); b.exports = { createCSS: function(a, b, d) { var e = d.href || "", f = "less:" + (d.title || c.extractId(e)), g = a.getElementById(f), h = !1, i = a.createElement("style"); i.setAttribute("type", "text/css"), d.media && i.setAttribute("media", d.media), i.id = f, i.styleSheet || (i.appendChild(a.createTextNode(b)), h = null !== g && g.childNodes.length > 0 && i.childNodes.length > 0 && g.firstChild.nodeValue === i.firstChild.nodeValue); var j = a.getElementsByTagName("head")[0]; if (null === g || h === !1) { var k = d && d.nextSibling || null; k ? k.parentNode.insertBefore(i, k) : j.appendChild(i) } if (g && h === !1 && g.parentNode.removeChild(g), i.styleSheet) try { i.styleSheet.cssText = b } catch (l) { throw new Error("Couldn't reassign styleSheet.cssText.") } }, currentScript: function(a) { var b = a.document; return b.currentScript || function() { var a = b.getElementsByTagName("script"); return a[a.length - 1] }() } } }, { "./utils": 9 }], 4: [function(a, b) { b.exports = function(a, b, c) { var d = null; if ("development" !== b.env) try { d = "undefined" == typeof a.localStorage ? null : a.localStorage } catch (e) {} return { setCSS: function(a, b, e) { if (d) { c.info("saving " + a + " to cache."); try { d.setItem(a, e), d.setItem(a + ":timestamp", b) } catch (f) { c.error('failed to save "' + a + '" to local storage for caching.') } } }, getCSS: function(a, b) { var c = d && d.getItem(a), e = d && d.getItem(a + ":timestamp"); return e && b.lastModified && new Date(b.lastModified).valueOf() === new Date(e).valueOf() ? c : void 0 } } } }, {}], 5: [function(a, b) { var c = a("./utils"), d = a("./browser"); b.exports = function(a, b, e) { function f(b, f) { var g, h, i = "less-error-message:" + c.extractId(f || ""), j = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>', k = a.document.createElement("div"), l = [], m = b.filename || f, n = m.match(/([^/]+(?.*)?)$/)[1]; k.id = i, k.className = "less-error-message", h = "<h3>" + (b.type || "Syntax") + "Error: " + (b.message || "There is an error in your .less file") + '</h3><p>in <a href="' + m + '">' + n + "</a> "; var o = function(a, b, c) { void 0 !== a.extract[b] && l.push(j.replace(/{line}/, (parseInt(a.line, 10) || 0) + (b - 1)).replace( /{class}/, c).replace(/{content}/, a.extract[b])) }; b.extract && (o(b, 0, ""), o(b, 1, "line"), o(b, 2, ""), h += "on line " + b.line + ", column " + (b.column + 1) + ":</p><ul>" + l.join("") + "</ul>"), b.stack && (b.extract || e.logLevel >= 4) && (h += "<br/>Stack Trace</br />" + b.stack.split(" ").slice(1).join("<br/>")), k.innerHTML = h, d.createCSS(a.document, [".less-error-message ul, .less-error-message li {", "list-style-type: none;", "margin-right: 15px;", "padding: 4px 0;", "margin: 0;", "}", ".less-error-message label {", "font-size: 12px;", "margin-right: 15px;", "padding: 4px 0;", "color: #cc7777;", "}", ".less-error-message pre {", "color: #dd6666;", "padding: 4px 0;", "margin: 0;", "display: inline-block;", "}", ".less-error-message pre.line {", "color: #ff0000;", "}", ".less-error-message h3 {", "font-size: 20px;", "font-weight: bold;", "padding: 15px 0 5px 0;", "margin: 0;", "}", ".less-error-message a {", "color: #10a", "}", ".less-error-message .error {", "color: red;", "font-weight: bold;", "padding-bottom: 2px;", "border-bottom: 1px dashed red;", "}" ].join(" "), { title: "error-message" }), k.style.cssText = ["font-family: Arial, sans-serif", "border: 1px solid #e00", "background-color: #eee", "border-radius: 5px", "-webkit-border-radius: 5px", "-moz-border-radius: 5px", "color: #e00", "padding: 15px", "margin-bottom: 15px" ].join(";"), "development" === e.env && (g = setInterval(function() { var b = a.document, c = b.body; c && (b.getElementById(i) ? c.replaceChild(k, b.getElementById(i)) : c.insertBefore(k, c.firstChild), clearInterval(g)) }, 10)) } function g(a, b) { e.errorReporting && "html" !== e.errorReporting ? "console" === e.errorReporting ? k(a, b) : "function" == typeof e.errorReporting && e.errorReporting("add", a, b) : f(a, b) } function h(b) { var d = a.document.getElementById("less-error-message:" + c.extractId(b)); d && d.parentNode.removeChild(d) } function i() {} function j(a) { e.errorReporting && "html" !== e.errorReporting ? "console" === e.errorReporting ? i(a) : "function" == typeof e.errorReporting && e.errorReporting("remove", a) : h(a) } function k(a, c) { var d = "{line} {content}", f = a.filename || c, g = [], h = (a.type || "Syntax") + "Error: " + (a.message || "There is an error in your .less file") + " in " + f + " ", i = function(a, b, c) { void 0 !== a.extract[b] && g.push(d.replace(/{line}/, (parseInt(a.line, 10) || 0) + (b - 1)).replace( /{class}/, c).replace(/{content}/, a.extract[b])) }; a.extract && (i(a, 0, ""), i(a, 1, "line"), i(a, 2, ""), h += "on line " + a.line + ", column " + (a.column + 1) + ": " + g.join(" ")), a.stack && (a.extract || e.logLevel >= 4) && (h += " Stack Trace " + a.stack), b.logger.error(h) } return { add: g, remove: j } } }, { "./browser": 3, "./utils": 9 }], 6: [function(a, b) { b.exports = function(b, c) { function d() { if (window.XMLHttpRequest && !("file:" === window.location.protocol && "ActiveXObject" in window)) return new XMLHttpRequest; try { return new ActiveXObject("Microsoft.XMLHTTP") } catch (a) { return c.error("browser doesn't support AJAX."), null } } var e = a("../less/environment/abstract-file-manager.js"), f = {}, g = function() {}; return g.prototype = new e, g.prototype.alwaysMakePathsAbsolute = function() { return !0 }, g.prototype.join = function(a, b) { return a ? this.extractUrlParts(b, a).path : b }, g.prototype.doXHR = function(a, e, f, g) { function h(b, c, d) { b.status >= 200 && 300 > b.status ? c(b.responseText, b.getResponseHeader("Last-Modified")) : "function" == typeof d && d(b.status, a) } var i = d(), j = b.isFileProtocol ? b.fileAsync : b.async; "function" == typeof i.overrideMimeType && i.overrideMimeType("text/css"), c.debug("XHR: Getting '" + a + "'"), i.open("GET", a, j), i.setRequestHeader("Accept", e || "text/x-less, text/css; q=0.9, */*; q=0.5"), i.send(null), b.isFileProtocol && !b.fileAsync ? 0 === i.status || i.status >= 200 && 300 > i.status ? f(i .responseText) : g(i.status, a) : j ? i.onreadystatechange = function() { 4 == i.readyState && h(i, f, g) } : h(i, f, g) }, g.prototype.supports = function() { return !0 }, g.prototype.clearFileCache = function() { f = {} }, g.prototype.loadFile = function(a, b, c, d, e) { b && !this.isPathAbsolute(a) && (a = b + a), c = c || {}; var g = this.extractUrlParts(a, window.location.href), h = g.url; if (c.useFileCache && f[h]) try { var i = f[h]; e(null, { contents: i, filename: h, webInfo: { lastModified: new Date } }) } catch (j) { e({ filename: h, message: "Error loading file " + h + " error was " + j.message }) } else this.doXHR(h, c.mime, function(a, b) { f[h] = a, e(null, { contents: a, filename: h, webInfo: { lastModified: b } }) }, function(a, b) { e({ type: "File", message: "'" + b + "' wasn't found (" + a + ")", href: h }) }) }, g } }, { "../less/environment/abstract-file-manager.js": 14 }], 7: [function(a, b) { var c = a("./utils").addDataAttr, d = a("./browser"); b.exports = function(b, e) { function f(a) { return e.postProcessor && "function" == typeof e.postProcessor && (a = e.postProcessor.call(a, a) || a), a } function g(a) { var b = {}; for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]); return b } function h(a, b) { var c = Array.prototype.slice.call(arguments, 2); return function() { var d = c.concat(Array.prototype.slice.call(arguments, 0)); return a.apply(b, d) } } function i(a) { for (var b, c = m.getElementsByTagName("style"), d = 0; c.length > d; d++) if (b = c[d], b.type.match(t)) { var f = g(e); f.modifyVars = a; var i = b.innerHTML || ""; f.filename = m.location.href.replace(/#.*$/, ""), n.render(i, f, h(function(a, b, c) { b ? r.add(b, "inline") : (a.type = "text/css", a.styleSheet ? a.styleSheet.cssText = c.css : a.innerHTML = c.css) }, null, b)) } } function j(a, b, d, h, i) { function j(c) { var e = c.contents, g = c.filename, i = c.webInfo, j = { currentDirectory: q.getPath(g), filename: g, rootFilename: g, relativeUrls: k.relativeUrls }; if (j.entryPath = j.currentDirectory, j.rootpath = k.rootpath || j.currentDirectory, i && (i.remaining = h, !k.modifyVars)) { var l = s.getCSS(g, i); if (!d && l) return i.local = !0, void b(null, l, e, a, i, g) } r.remove(g), k.rootFileInfo = j, n.render(e, k, function(c, d) { c ? (c.href = g, b(c)) : (d.css = f(d.css), k.modifyVars || s.setCSS(a.href, i.lastModified, d.css), b( null, d.css, e, a, i, g)) }) } var k = g(e); c(k, a), k.mime = a.type, i && (k.modifyVars = i), q.loadFile(a.href, null, k, o, function(a, c) { return a ? void b(a) : void j(c) }) } function k(a, b, c) { for (var d = 0; n.sheets.length > d; d++) j(n.sheets[d], a, b, n.sheets.length - (d + 1), c) } function l() { "development" === n.env && (n.watchTimer = setInterval(function() { n.watchMode && (q.clearFileCache(), k(function(a, c, e, f) { a ? r.add(a, a.href || f.href) : c && d.createCSS(b.document, c, f) })) }, e.poll)) } var m = b.document, n = a("../less")(); n.options = e; var o = n.environment, p = a("./file-manager")(e, n.logger), q = new p; o.addFileManager(q), n.FileManager = p, a("./log-listener")(n, e); var r = a("./error-reporting")(b, n, e), s = n.cache = e.cache || a("./cache")(b, e, n.logger); e.functions && n.functions.functionRegistry.addMultiple(e.functions); var t = /^text/(x-)?less$/; return n.watch = function() { return n.watchMode || (n.env = "development", l()), this.watchMode = !0, !0 }, n.unwatch = function() { return clearInterval(n.watchTimer), this.watchMode = !1, !1 }, n.registerStylesheetsImmediately = function() { var a = m.getElementsByTagName("link"); n.sheets = []; for (var b = 0; a.length > b; b++)("stylesheet/less" === a[b].rel || a[b].rel.match(/stylesheet/) && a[b].type .match(t)) && n.sheets.push(a[b]) }, n.registerStylesheets = function() { return new Promise(function(a) { n.registerStylesheetsImmediately(), a() }) }, n.modifyVars = function(a) { return n.refresh(!0, a, !1) }, n.refresh = function(a, c, e) { return (a || e) && e !== !1 && q.clearFileCache(), new Promise(function(e, f) { var g, h, j; g = h = new Date, k(function(a, c, i, k, l) { return a ? (r.add(a, a.href || k.href), void f(a)) : (n.logger.info(l.local ? "loading " + k.href + " from cache." : "rendered " + k.href + " successfully."), d.createCSS(b.document, c, k), n.logger .info("css for " + k.href + " generated in " + (new Date - h) + "ms"), 0 === l.remaining && (j = new Date - g, n.logger.info("less has finished. css generated in " + j + "ms"), e({ startTime: g, endTime: h, totalMilliseconds: j, sheets: n.sheets.length })), void(h = new Date)) }, a, c), i(c) }) }, n.refreshStyles = i, n } }, { "../less": 30, "./browser": 3, "./cache": 4, "./error-reporting": 5, "./file-manager": 6, "./log-listener": 8, "./utils": 9 }], 8: [function(a, b) { b.exports = function(a, b) { var c = 4, d = 3, e = 2, f = 1; b.logLevel = "undefined" != typeof b.logLevel ? b.logLevel : "development" === b.env ? d : f, b.loggers || (b .loggers = [{ debug: function(a) { b.logLevel >= c && console.log(a) }, info: function(a) { b.logLevel >= d && console.log(a) }, warn: function(a) { b.logLevel >= e && console.warn(a) }, error: function(a) { b.logLevel >= f && console.error(a) } }]); for (var g = 0; b.loggers.length > g; g++) a.logger.addListener(b.loggers[g]) } }, {}], 9: [function(a, b) { b.exports = { extractId: function(a) { return a.replace(/^[a-z-]+:/+?[^/]+/, "").replace(/[?&]livereload=w+/, "").replace(/^//, "").replace( /.[a-zA-Z]+$/, "").replace(/[^.w-]+/g, "-").replace(/./g, ":") }, addDataAttr: function(a, b) { for (var c in b.dataset) if (b.dataset.hasOwnProperty(c)) if ("env" === c || "dumpLineNumbers" === c || "rootpath" === c || "errorReporting" === c) a[c] = b.dataset[ c]; else try { a[c] = JSON.parse(b.dataset[c]) } catch (d) {} } } }, {}], 10: [function(a, b) { var c = {}; b.exports = c; var d = function(a, b, c) { if (a) for (var d = 0; c.length > d; d++) a.hasOwnProperty(c[d]) && (b[c[d]] = a[c[d]]) }, e = ["paths", "relativeUrls", "rootpath", "strictImports", "insecure", "dumpLineNumbers", "compress", "syncImport", "chunkInput", "mime", "useFileCache", "processImports", "reference", "pluginManager" ]; c.Parse = function(a) { d(a, this, e), "string" == typeof this.paths && (this.paths = [this.paths]) }; var f = ["paths", "compress", "ieCompat", "strictMath", "strictUnits", "sourceMap", "importMultiple", "urlArgs", "javascriptEnabled", "pluginManager", "importantScope" ]; c.Eval = function(a, b) { d(a, this, f), "string" == typeof this.paths && (this.paths = [this.paths]), this.frames = b || [], this.importantScope = this.importantScope || [] }, c.Eval.prototype.inParenthesis = function() { this.parensStack || (this.parensStack = []), this.parensStack.push(!0) }, c.Eval.prototype.outOfParenthesis = function() { this.parensStack.pop() }, c.Eval.prototype.isMathOn = function() { return this.strictMath ? this.parensStack && this.parensStack.length : !0 }, c.Eval.prototype.isPathRelative = function(a) { return !/^(?:[a-z-]+:|/|#)/i.test(a) }, c.Eval.prototype.normalizePath = function(a) { var b, c = a.split("/").reverse(); for (a = []; 0 !== c.length;) switch (b = c.pop()) { case ".": break; case "..": 0 === a.length || ".." === a[a.length - 1] ? a.push(b) : a.pop(); break; default: a.push(b) } return a.join("/") } }, {}], 11: [function(a, b) { b.exports = { aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff00", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgrey: "#a9a9a9", darkgreen: "#006400", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkslategrey: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdc", ghostwhite: "#f8f8ff", gold: "#ffd700", goldenrod: "#daa520", gray: "#808080", grey: "#808080", green: "#008000", greenyellow: "#adff2f", honeydew: "#f0fff0", hotpink: "#ff69b4", indianred: "#cd5c5c", indigo: "#4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgrey: "#d3d3d3", lightgreen: "#90ee90", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370d8", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#d87093", papayawhip: "#ffefd5", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", rebeccapurple: "#663399", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", slategrey: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32" } }, {}], 12: [function(a, b) { b.exports = { colors: a("./colors"), unitConversions: a("./unit-conversions") } }, { "./colors": 11, "./unit-conversions": 13 }], 13: [function(a, b) { b.exports = { length: { m: 1, cm: .01, mm: .001, "in": .0254, px: .0254 / 96, pt: .0254 / 72, pc: .0254 / 72 * 12 }, duration: { s: 1, ms: .001 }, angle: { rad: 1 / (2 * Math.PI), deg: 1 / 360, grad: .0025, turn: 1 } } }, {}], 14: [function(a, b) { var c = function() {}; c.prototype.getPath = function(a) { var b = a.lastIndexOf("?"); return b > 0 && (a = a.slice(0, b)), b = a.lastIndexOf("/"), 0 > b && (b = a.lastIndexOf("\")), 0 > b ? "" : a.slice(0, b + 1) }, c.prototype.tryAppendExtension = function(a, b) { return /(.[a-z]*$)|([?;].*)$/.test(a) ? a : a + b }, c.prototype.tryAppendLessExtension = function(a) { return this.tryAppendExtension(a, ".less") }, c.prototype.supportsSync = function() { return !1 }, c.prototype.alwaysMakePathsAbsolute = function() { return !1 }, c.prototype.isPathAbsolute = function(a) { return /^(?:[a-z-]+:|/|\|#)/i.test(a) }, c.prototype.join = function(a, b) { return a ? a + b : b }, c.prototype.pathDiff = function(a, b) { var c, d, e, f, g = this.extractUrlParts(a), h = this.extractUrlParts(b), i = ""; if (g.hostPart !== h.hostPart) return ""; for (d = Math.max(h.directories.length, g.directories.length), c = 0; d > c && h.directories[c] === g.directories[ c]; c++); for (f = h.directories.slice(c), e = g.directories.slice(c), c = 0; f.length - 1 > c; c++) i += "../"; for (c = 0; e.length - 1 > c; c++) i += e[c] + "/"; return i }, c.prototype.extractUrlParts = function(a, b) { var c, d, e = /^((?:[a-z-]+:)?/+?(?:[^/?#]*/)|([/\]))?((?:[^/\?#]*[/\])*)([^/\?#]*)([#?].*)?$/i, f = a.match(e), g = {}, h = []; if (!f) throw new Error("Could not parse sheet href - '" + a + "'"); if (b && (!f[1] || f[2])) { if (d = b.match(e), !d) throw new Error("Could not parse page url - '" + b + "'"); f[1] = f[1] || d[1] || "", f[2] || (f[3] = d[3] + f[3]) } if (f[3]) { for (h = f[3].replace(/\/g, "/").split("/"), c = 0; h.length > c; c++) "." === h[c] && (h.splice(c, 1), c -= 1); for (c = 0; h.length > c; c++) ".." === h[c] && c > 0 && (h.splice(c - 1, 2), c -= 2) } return g.hostPart = f[1], g.directories = h, g.path = (f[1] || "") + h.join("/"), g.fileUrl = g.path + (f[4] || ""), g.url = g.fileUrl + (f[5] || ""), g }, b.exports = c }, {}], 15: [function(a, b) { var c = a("../logger"), d = function(a, b) { this.fileManagers = b || [], a = a || {}; for (var c = ["encodeBase64", "mimeLookup", "charsetLookup", "getSourceMapGenerator"], d = [], e = d.concat(c), f = 0; e.length > f; f++) { var g = e[f], h = a[g]; h ? this[g] = h.bind(a) : d.length > f && this.warn("missing required function in environment - " + g) } }; d.prototype.getFileManager = function(a, b, d, e, f) { a || c.warn("getFileManager called with no filename.. Please report this issue. continuing."), null == b && c .warn("getFileManager called with null directory.. Please report this issue. continuing."); var g = this.fileManagers; d.pluginManager && (g = [].concat(g).concat(d.pluginManager.getFileManagers())); for (var h = g.length - 1; h >= 0; h--) { var i = g[h]; if (i[f ? "supportsSync" : "supports"](a, b, d, e)) return i } return null }, d.prototype.addFileManager = function(a) { this.fileManagers.push(a) }, d.prototype.clearFileManagers = function() { this.fileManagers = [] }, b.exports = d }, { "../logger": 32 }], 16: [function(a) { function b(a, b, d) { var e, f, g, h, i = b.alpha, j = d.alpha, k = []; g = j + i * (1 - j); for (var l = 0; 3 > l; l++) e = b.rgb[l] / 255, f = d.rgb[l] / 255, h = a(e, f), g && (h = (j * f + i * (e - j * (e + f - h))) / g), k[l] = 255 * h; return new c(k, g) } var c = a("../tree/color"), d = a("./function-registry"), e = { multiply: function(a, b) { return a * b }, screen: function(a, b) { return a + b - a * b }, overlay: function(a, b) { return a *= 2, 1 >= a ? e.multiply(a, b) : e.screen(a - 1, b) }, softlight: function(a, b) { var c = 1, d = a; return b > .5 && (d = 1, c = a > .25 ? Math.sqrt(a) : ((16 * a - 12) * a + 4) * a), a - (1 - 2 * b) * d * ( c - a) }, hardlight: function(a, b) { return e.overlay(b, a) }, difference: function(a, b) { return Math.abs(a - b) }, exclusion: function(a, b) { return a + b - 2 * a * b }, average: function(a, b) { return (a + b) / 2 }, negation: function(a, b) { return 1 - Math.abs(a + b - 1) } }; for (var f in e) e.hasOwnProperty(f) && (b[f] = b.bind(null, e[f])); d.addMultiple(b) }, { "../tree/color": 49, "./function-registry": 21 }], 17: [function(a) { function b(a) { return Math.min(1, Math.max(0, a)) } function c(a) { return f.hsla(a.h, a.s, a.l, a.a) } function d(a) { if (a instanceof g) return parseFloat(a.unit.is("%") ? a.value / 100 : a.value); if ("number" == typeof a) return a; throw { type: "Argument", message: "color functions take numbers as parameters" } } function e(a, b) { return a instanceof g && a.unit.is("%") ? parseFloat(a.value * b / 100) : d(a) } var f, g = a("../tree/dimension"), h = a("../tree/color"), i = a("../tree/quoted"), j = a("../tree/anonymous"), k = a("./function-registry"); f = { rgb: function(a, b, c) { return f.rgba(a, b, c, 1) }, rgba: function(a, b, c, f) { var g = [a, b, c].map(function(a) { return e(a, 255) }); return f = d(f), new h(g, f) }, hsl: function(a, b, c) { return f.hsla(a, b, c, 1) }, hsla: function(a, c, e, g) { function h(a) { return a = 0 > a ? a + 1 : a > 1 ? a - 1 : a, 1 > 6 * a ? j + (i - j) * a * 6 : 1 > 2 * a ? i : 2 > 3 * a ? j + (i - j) * (2 / 3 - a) * 6 : j } a = d(a) % 360 / 360, c = b(d(c)), e = b(d(e)), g = b(d(g)); var i = .5 >= e ? e * (c + 1) : e + c - e * c, j = 2 * e - i; return f.rgba(255 * h(a + 1 / 3), 255 * h(a), 255 * h(a - 1 / 3), g) }, hsv: function(a, b, c) { return f.hsva(a, b, c, 1) }, hsva: function(a, b, c, e) { a = d(a) % 360 / 360 * 360, b = d(b), c = d(c), e = d(e); var g, h; g = Math.floor(a / 60 % 6), h = a / 60 - g; var i = [c, c * (1 - b), c * (1 - h * b), c * (1 - (1 - h) * b)], j = [ [0, 3, 1], [2, 0, 1], [1, 0, 3], [1, 2, 0], [3, 1, 0], [0, 1, 2] ]; return f.rgba(255 * i[j[g][0]], 255 * i[j[g][1]], 255 * i[j[g][2]], e) }, hue: function(a) { return new g(a.toHSL().h) }, saturation: function(a) { return new g(100 * a.toHSL().s, "%") }, lightness: function(a) { return new g(100 * a.toHSL().l, "%") }, hsvhue: function(a) { return new g(a.toHSV().h) }, hsvsaturation: function(a) { return new g(100 * a.toHSV().s, "%") }, hsvvalue: function(a) { return new g(100 * a.toHSV().v, "%") }, red: function(a) { return new g(a.rgb[0]) }, green: function(a) { return new g(a.rgb[1]) }, blue: function(a) { return new g(a.rgb[2]) }, alpha: function(a) { return new g(a.toHSL().a) }, luma: function(a) { return new g(a.luma() * a.alpha * 100, "%") }, luminance: function(a) { var b = .2126 * a.rgb[0] / 255 + .7152 * a.rgb[1] / 255 + .0722 * a.rgb[2] / 255; return new g(b * a.alpha * 100, "%") }, saturate: function(a, d, e) { if (!a.rgb) return null; var f = a.toHSL(); return f.s += "undefined" != typeof e && "relative" === e.value ? f.s * d.value / 100 : d.value / 100, f.s = b(f.s), c(f) }, desaturate: function(a, d, e) { var f = a.toHSL(); return f.s -= "undefined" != typeof e && "relative" === e.value ? f.s * d.value / 100 : d.value / 100, f.s = b(f.s), c(f) }, lighten: function(a, d, e) { var f = a.toHSL(); return f.l += "undefined" != typeof e && "relative" === e.value ? f.l * d.value / 100 : d.value / 100, f.l = b(f.l), c(f) }, darken: function(a, d, e) { var f = a.toHSL(); return f.l -= "undefined" != typeof e && "relative" === e.value ? f.l * d.value / 100 : d.value / 100, f.l = b(f.l), c(f) }, fadein: function(a, d, e) { var f = a.toHSL(); return f.a += "undefined" != typeof e && "relative" === e.value ? f.a * d.value / 100 : d.value / 100, f.a = b(f.a), c(f) }, fadeout: function(a, d, e) { var f = a.toHSL(); return f.a -= "undefined" != typeof e && "relative" === e.value ? f.a * d.value / 100 : d.value / 100, f.a = b(f.a), c(f) }, fade: function(a, d) { var e = a.toHSL(); return e.a = d.value / 100, e.a = b(e.a), c(e) }, spin: function(a, b) { var d = a.toHSL(), e = (d.h + b.value) % 360; return d.h = 0 > e ? 360 + e : e, c(d) }, mix: function(a, b, c) { a.toHSL && b.toHSL || (console.log(b.type), console.dir(b)), c || (c = new g(50)); var d = c.value / 100, e = 2 * d - 1, f = a.toHSL().a - b.toHSL().a, i = ((e * f == -1 ? e : (e + f) / (1 + e * f)) + 1) / 2, j = 1 - i, k = [a.rgb[0] * i + b.rgb[0] * j, a.rgb[1] * i + b.rgb[1] * j, a.rgb[2] * i + b.rgb[2] * j], l = a.alpha * d + b.alpha * (1 - d); return new h(k, l) }, greyscale: function(a) { return f.desaturate(a, new g(100)) }, contrast: function(a, b, c, e) { if (!a.rgb) return null; if ("undefined" == typeof c && (c = f.rgba(255, 255, 255, 1)), "undefined" == typeof b && (b = f.rgba(0, 0, 0, 1)), b.luma() > c.luma()) { var g = c; c = b, b = g } return e = "undefined" == typeof e ? .43 : d(e), a.luma() < e ? c : b }, argb: function(a) { return new j(a.toARGB()) }, color: function(a) { if (a instanceof i && /^#([a-f0-9]{6}|[a-f0-9]{3})$/i.test(a.value)) return new h(a.value.slice(1)); if (a instanceof h || (a = h.fromKeyword(a.value))) return a.value = void 0, a; throw { type: "Argument", message: "argument must be a color keyword or 3/6 digit hex e.g. #FFF" } }, tint: function(a, b) { return f.mix(f.rgb(255, 255, 255), a, b) }, shade: function(a, b) { return f.mix(f.rgb(0, 0, 0), a, b) } }, k.addMultiple(f) }, { "../tree/anonymous": 45, "../tree/color": 49, "../tree/dimension": 55, "../tree/quoted": 72, "./function-registry": 21 }], 18: [function(a, b) { b.exports = function(b) { var c = a("../tree/quoted"), d = a("../tree/url"), e = a("./function-registry"), f = function(a, b) { return new d(b, a.index, a.currentFileInfo).eval(a.context) }, g = a("../logger"); e.add("data-uri", function(a, e) { e || (e = a, a = null); var h = a && a.value, i = e.value, j = this.currentFileInfo, k = j.relativeUrls ? j.currentDirectory : j.entryPath, l = i.indexOf("#"), m = ""; - 1 !== l && (m = i.slice(l), i = i.slice(0, l)); var n = b.getFileManager(i, k, this.context, b, !0); if (!n) return f(this, e); var o = !1; if (a) o = /;base64$/.test(h); else { if (h = b.mimeLookup(i), "image/svg+xml" === h) o = !1; else { var p = b.charsetLookup(h); o = ["US-ASCII", "UTF-8"].indexOf(p) < 0 } o && (h += ";base64") } var q = n.loadFileSync(i, k, this.context, b); if (!q.contents) return g.warn("Skipped data-uri embedding of " + i + " because file not found"), f(this, e || a); var r = q.contents; if (o && !b.encodeBase64) return f(this, e); r = o ? b.encodeBase64(r) : encodeURIComponent(r); var s = "data:" + h + "," + r + m, t = 32768; return s.length >= t && this.context.ieCompat !== !1 ? (g.warn("Skipped data-uri embedding of " + i + " because its size (" + s.length + " characters) exceeds IE8-safe " + t + " characters!"), f(this, e || a)) : new d(new c('"' + s + '"', s, !1, this.index, this.currentFileInfo), this.index, this.currentFileInfo) }) } }, { "../logger": 32, "../tree/quoted": 72, "../tree/url": 79, "./function-registry": 21 }], 19: [function(a, b) { var c = a("../tree/keyword"), d = a("./function-registry"), e = { eval: function() { var a = this.value_, b = this.error_; if (b) throw b; return null != a ? a ? c.True : c.False : void 0 }, value: function(a) { this.value_ = a }, error: function(a) { this.error_ = a }, reset: function() { this.value_ = this.error_ = null } }; d.add("default", e.eval.bind(e)), b.exports = e }, { "../tree/keyword": 64, "./function-registry": 21 }], 20: [function(a, b) { var c = a("../tree/expression"), d = function(a, b, c, d) { this.name = a.toLowerCase(), this.index = c, this.context = b, this.currentFileInfo = d, this.func = b.frames[ 0].functionRegistry.get(this.name) }; d.prototype.isValid = function() { return Boolean(this.func) }, d.prototype.call = function(a) { return Array.isArray(a) && (a = a.filter(function(a) { return "Comment" === a.type ? !1 : !0 }).map(function(a) { if ("Expression" === a.type) { var b = a.value.filter(function(a) { return "Comment" === a.type ? !1 : !0 }); return 1 === b.length ? b[0] : new c(b) } return a })), this.func.apply(this, a) }, b.exports = d }, { "../tree/expression": 58 }], 21: [function(a, b) { function c(a) { return { _data: {}, add: function(a, b) { a = a.toLowerCase(), this._data.hasOwnProperty(a), this._data[a] = b }, addMultiple: function(a) { Object.keys(a).forEach(function(b) { this.add(b, a[b]) }.bind(this)) }, get: function(b) { return this._data[b] || a && a.get(b) }, inherit: function() { return c(this) } } } b.exports = c(null) }, {}], 22: [function(a, b) { b.exports = function(b) { var c = { functionRegistry: a("./function-registry"), functionCaller: a("./function-caller") }; return a("./default"), a("./color"), a("./color-blending"), a("./data-uri")(b), a("./math"), a("./number"), a( "./string"), a("./svg")(b), a("./types"), c } }, { "./color": 17, "./color-blending": 16, "./data-uri": 18, "./default": 19, "./function-caller": 20, "./function-registry": 21, "./math": 24, "./number": 25, "./string": 26, "./svg": 27, "./types": 28 }], 23: [function(a, b) { var c = a("../tree/dimension"), d = function() {}; d._math = function(a, b, d) { if (!(d instanceof c)) throw { type: "Argument", message: "argument must be a number" }; return null == b ? b = d.unit : d = d.unify(), new c(a(parseFloat(d.value)), b) }, b.exports = d }, { "../tree/dimension": 55 }], 24: [function(a) { var b = a("./function-registry"), c = a("./math-helper.js"), d = { ceil: null, floor: null, sqrt: null, abs: null, tan: "", sin: "", cos: "", atan: "rad", asin: "rad", acos: "rad" }; for (var e in d) d.hasOwnProperty(e) && (d[e] = c._math.bind(null, Math[e], d[e])); d.round = function(a, b) { var d = "undefined" == typeof b ? 0 : b.value; return c._math(function(a) { return a.toFixed(d) }, null, a) }, b.addMultiple(d) }, { "./function-registry": 21, "./math-helper.js": 23 }], 25: [function(a) { var b = a("../tree/dimension"), c = a("../tree/anonymous"), d = a("./function-registry"), e = a("./math-helper.js"), f = function(a, d) { switch (d = Array.prototype.slice.call(d), d.length) { case 0: throw { type: "Argument", message: "one or more arguments required" } } var e, f, g, h, i, j, k, l, m = [], n = {}; for (e = 0; d.length > e; e++) if (g = d[e], g instanceof b) if (h = "" === g.unit.toString() && void 0 !== l ? new b(g.value, l).unify() : g.unify(), j = "" === h.unit .toString() && void 0 !== k ? k : h.unit.toString(), k = "" !== j && void 0 === k || "" !== j && "" === m[ 0].unify().unit.toString() ? j : k, l = "" !== j && void 0 === l ? g.unit.toString() : l, f = void 0 !== n[""] && "" !== j && j === k ? n[""] : n[j], void 0 !== f) i = "" === m[f].unit.toString() && void 0 !== l ? new b(m[f].value, l).unify() : m[f].unify(), (a && i.value > h.value || !a && h.value > i.value) && (m[ f] = g); else { if (void 0 !== k && j !== k) throw { type: "Argument", message: "incompatible types" }; n[j] = m.length, m.push(g) } else Array.isArray(d[e].value) && Array.prototype.push.apply(d, Array.prototype.slice.call(d[e].value)); return 1 == m.length ? m[0] : (d = m.map(function(a) { return a.toCSS(this.context) }).join(this.context.compress ? "," : ", "), new c((a ? "min" : "max") + "(" + d + ")")) }; d.addMultiple({ min: function() { return f(!0, arguments) }, max: function() { return f(!1, arguments) }, convert: function(a, b) { return a.convertTo(b.value) }, pi: function() { return new b(Math.PI) }, mod: function(a, c) { return new b(a.value % c.value, a.unit) }, pow: function(a, c) { if ("number" == typeof a && "number" == typeof c) a = new b(a), c = new b(c); else if (!(a instanceof b && c instanceof b)) throw { type: "Argument", message: "arguments must be numbers" }; return new b(Math.pow(a.value, c.value), a.unit) }, percentage: function(a) { var b = e._math(function(a) { return 100 * a }, "%", a); return b } }) }, { "../tree/anonymous": 45, "../tree/dimension": 55, "./function-registry": 21, "./math-helper.js": 23 }], 26: [function(a) { var b = a("../tree/quoted"), c = a("../tree/anonymous"), d = a("../tree/javascript"), e = a("./function-registry"); e.addMultiple({ e: function(a) { return new c(a instanceof d ? a.evaluated : a.value) }, escape: function(a) { return new c(encodeURI(a.value).replace(/=/g, "%3D").replace(/:/g, "%3A").replace(/#/g, "%23").replace( /;/g, "%3B").replace(/(/g, "%28").replace(/)/g, "%29")) }, replace: function(a, c, d, e) { var f = a.value; return d = "Quoted" === d.type ? d.value : d.toCSS(), f = f.replace(new RegExp(c.value, e ? e.value : ""), d), new b(a.quote || "", f, a.escaped) }, "%": function(a) { for (var c = Array.prototype.slice.call(arguments, 1), d = a.value, e = 0; c.length > e; e++) d = d.replace( /%[sda]/i, function(a) { var b = "Quoted" === c[e].type && a.match(/s/i) ? c[e].value : c[e].toCSS(); return a.match(/[A-Z]$/) ? encodeURIComponent(b) : b }); return d = d.replace(/%%/g, "%"), new b(a.quote || "", d, a.escaped) } }) }, { "../tree/anonymous": 45, "../tree/javascript": 62, "../tree/quoted": 72, "./function-registry": 21 }], 27: [function(a, b) { b.exports = function() { var b = a("../tree/dimension"), c = a("../tree/color"), d = a("../tree/expression"), e = a("../tree/quoted"), f = a("../tree/url"), g = a("./function-registry"); g.add("svg-gradient", function(a) { function g() { throw { type: "Argument", message: "svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position] or direction, color list" } } var h, i, j, k, l, m, n, o, p = "linear", q = 'x="0" y="0" width="1" height="1"', r = { compress: !1 }, s = a.toCSS(r); switch (2 == arguments.length ? (arguments[1].value.length < 2 && g(), h = arguments[1].value) : arguments .length < 3 ? g() : h = Array.prototype.slice.call(arguments, 1), s) { case "to bottom": i = 'x1="0%" y1="0%" x2="0%" y2="100%"'; break; case "to right": i = 'x1="0%" y1="0%" x2="100%" y2="0%"'; break; case "to bottom right": i = 'x1="0%" y1="0%" x2="100%" y2="100%"'; break; case "to top right": i = 'x1="0%" y1="100%" x2="100%" y2="0%"'; break; case "ellipse": case "ellipse at center": p = "radial", i = 'cx="50%" cy="50%" r="75%"', q = 'x="-50" y="-50" width="101" height="101"'; break; default: throw { type: "Argument", message: "svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'" } } for (j = '<?xml version="1.0" ?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><' + p + 'Gradient id="gradient" gradientUnits="userSpaceOnUse" ' + i + ">", k = 0; h.length > k; k += 1) h[k] instanceof d ? (l = h[k].value[0], m = h[k].value[1]) : (l = h[k], m = void 0), l instanceof c && ((0 === k || k + 1 === h.length) && void 0 === m || m instanceof b) || g(), n = m ? m.toCSS(r) : 0 === k ? "0%" : "100%", o = l .alpha, j += '<stop offset="' + n + '" stop-color="' + l.toRGB() + '"' + (1 > o ? ' stop-opacity="' + o + '"' : "") + "/>"; return j += "</" + p + "Gradient><rect " + q + ' fill="url(#gradient)" /></svg>', j = encodeURIComponent(j), j = "data:image/svg+xml," + j, new f(new e("'" + j + "'", j, !1, this.index, this.currentFileInfo), this.index, this.currentFileInfo) }) } }, { "../tree/color": 49, "../tree/dimension": 55, "../tree/expression": 58, "../tree/quoted": 72, "../tree/url": 79, "./function-registry": 21 }], 28: [function(a) { var b = a("../tree/keyword"), c = a("../tree/detached-ruleset"), d = a("../tree/dimension"), e = a("../tree/color"), f = a("../tree/quoted"), g = a("../tree/anonymous"), h = a("../tree/url"), i = a("../tree/operation"), j = a("./function-registry"), k = function(a, c) { return a instanceof c ? b.True : b.False }, l = function(a, c) { if (void 0 === c) throw { type: "Argument", message: "missing the required second argument to isunit." }; if (c = "string" == typeof c.value ? c.value : c, "string" != typeof c) throw { type: "Argument", message: "Second argument to isunit should be a unit or a string." }; return a instanceof d && a.unit.is(c) ? b.True : b.False }, m = function(a) { var b = Array.isArray(a.value) ? a.value : Array(a); return b }; j.addMultiple({ isruleset: function(a) { return k(a, c) }, iscolor: function(a) { return k(a, e) }, isnumber: function(a) { return k(a, d) }, isstring: function(a) { return k(a, f) }, iskeyword: function(a) { return k(a, b) }, isurl: function(a) { return k(a, h) }, ispixel: function(a) { return l(a, "px") }, ispercentage: function(a) { return l(a, "%") }, isem: function(a) { return l(a, "em") }, isunit: l, unit: function(a, c) { if (!(a instanceof d)) throw { type: "Argument", message: "the first argument to unit must be a number" + (a instanceof i ? ". Have you forgotten parenthesis?" : "") }; return c = c ? c instanceof b ? c.value : c.toCSS() : "", new d(a.value, c) }, "get-unit": function(a) { return new g(a.unit) }, extract: function(a, b) { return b = b.value - 1, m(a)[b] }, length: function(a) { return new d(m(a).length) } }) }, { "../tree/anonymous": 45, "../tree/color": 49, "../tree/detached-ruleset": 54, "../tree/dimension": 55, "../tree/keyword": 64, "../tree/operation": 70, "../tree/quoted": 72, "../tree/url": 79, "./function-registry": 21 }], 29: [function(a, b) { var c = a("./contexts"), d = a("./parser/parser"), e = a("./plugins/function-importer"); b.exports = function(a) { var b = function(a, b) { this.rootFilename = b.filename, this.paths = a.paths || [], this.contents = {}, this.contentsIgnoredChars = {}, this.mime = a.mime, this.error = null, this.context = a, this.queue = [], this.files = {} }; return b.prototype.push = function(b, f, g, h, i) { var j = this; this.queue.push(b); var k = function(a, c, d) { j.queue.splice(j.queue.indexOf(b), 1); var e = d === j.rootFilename; h.optional && a ? i(null, { rules: [] }, !1, null) : (j.files[d] = c, a && !j.error && (j.error = a), i(a, c, e, d)) }, l = { relativeUrls: this.context.relativeUrls, entryPath: g.entryPath, rootpath: g.rootpath, rootFilename: g.rootFilename }, m = a.getFileManager(b, g.currentDirectory, this.context, a); if (!m) return void k({ message: "Could not find a file-manager for " + b }); f && (b = m.tryAppendExtension(b, h.plugin ? ".js" : ".less")); var n = function(a) { var b = a.filename, f = a.contents.replace(/^uFEFF/, ""); l.currentDirectory = m.getPath(b), l.relativeUrls && (l.rootpath = m.join(j.context.rootpath || "", m.pathDiff( l.currentDirectory, l.entryPath)), !m.isPathAbsolute(l.rootpath) && m.alwaysMakePathsAbsolute() && (l.rootpath = m.join(l.entryPath, l.rootpath))), l.filename = b; var i = new c.Parse(j.context); i.processImports = !1, j.contents[b] = f, (g.reference || h.reference) && (l.reference = !0), h.plugin ? new e(i, l).eval(f, function(a, c) { k(a, c, b) }) : h.inline ? k(null, f, b) : new d(i, j, l).parse(f, function(a, c) { k(a, c, b) }) }, o = m.loadFile(b, g.currentDirectory, this.context, a, function(a, b) { a ? k(a) : n(b) }); o && o.then(n, k) }, b } }, { "./contexts": 10, "./parser/parser": 37, "./plugins/function-importer": 39 }], 30: [function(a, b) { b.exports = function(b, c) { var d, e, f, g, h, i = { version: [2, 5, 3], data: a("./data"), tree: a("./tree"), Environment: h = a("./environment/environment"), AbstractFileManager: a("./environment/abstract-file-manager"), environment: b = new h(b, c), visitors: a("./visitors"), Parser: a("./parser/parser"), functions: a("./functions")(b), contexts: a("./contexts"), SourceMapOutput: d = a("./source-map-output")(b), SourceMapBuilder: e = a("./source-map-builder")(d, b), ParseTree: f = a("./parse-tree")(e), ImportManager: g = a("./import-manager")(b), render: a("./render")(b, f, g), parse: a("./parse")(b, f, g), LessError: a("./less-error"), transformTree: a("./transform-tree"), utils: a("./utils"), PluginManager: a("./plugin-manager"), logger: a("./logger") }; return i } }, { "./contexts": 10, "./data": 12, "./environment/abstract-file-manager": 14, "./environment/environment": 15, "./functions": 22, "./import-manager": 29, "./less-error": 31, "./logger": 32, "./parse": 34, "./parse-tree": 33, "./parser/parser": 37, "./plugin-manager": 38, "./render": 40, "./source-map-builder": 41, "./source-map-output": 42, "./transform-tree": 43, "./tree": 61, "./utils": 82, "./visitors": 86 }], 31: [function(a, b) { var c = a("./utils"), d = b.exports = function(a, b, d) { Error.call(this); var e = a.filename || d; if (b && e) { var f = b.contents[e], g = c.getLocation(a.index, f), h = g.line, i = g.column, j = a.call && c.getLocation(a.call, f).line, k = f.split(" "); this.type = a.type || "Syntax", this.filename = e, this.index = a.index, this.line = "number" == typeof h ? h + 1 : null, this.callLine = j + 1, this.callExtract = k[j], this.column = i, this.extract = [k[h - 1], k[ h], k[h + 1]] } this.message = a.message, this.stack = a.stack }; if ("undefined" == typeof Object.create) { var e = function() {}; e.prototype = Error.prototype, d.prototype = new e } else d.prototype = Object.create(Error.prototype); d.prototype.constructor = d }, { "./utils": 82 }], 32: [function(a, b) { b.exports = { error: function(a) { this._fireEvent("error", a) }, warn: function(a) { this._fireEvent("warn", a) }, info: function(a) { this._fireEvent("info", a) }, debug: function(a) { this._fireEvent("debug", a) }, addListener: function(a) { this._listeners.push(a) }, removeListener: function(a) { for (var b = 0; this._listeners.length > b; b++) if (this._listeners[b] === a) return void this._listeners.splice(b, 1) }, _fireEvent: function(a, b) { for (var c = 0; this._listeners.length > c; c++) { var d = this._listeners[c][a]; d && d(b) } }, _listeners: [] } }, {}], 33: [function(a, b) { var c = a("./less-error"), d = a("./transform-tree"), e = a("./logger"); b.exports = function(a) { var b = function(a, b) { this.root = a, this.imports = b }; return b.prototype.toCSS = function(b) { var f, g, h = {}; try { f = d(this.root, b) } catch (i) { throw new c(i, this.imports) } try { var j = Boolean(b.compress); j && e.warn( "The compress option has been deprecated. We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css." ); var k = { compress: j, dumpLineNumbers: b.dumpLineNumbers, strictUnits: Boolean(b.strictUnits), numPrecision: 8 }; b.sourceMap ? (g = new a(b.sourceMap), h.css = g.toCSS(f, k, this.imports)) : h.css = f.toCSS(k) } catch (i) { throw new c(i, this.imports) } if (b.pluginManager) for (var l = b.pluginManager.getPostProcessors(), m = 0; l.length > m; m++) h.css = l[m].process(h.css, { sourceMap: g, options: b, imports: this.imports }); b.sourceMap && (h.map = g.getExternalSourceMap()), h.imports = []; for (var n in this.imports.files) this.imports.files.hasOwnProperty(n) && n !== this.imports.rootFilename && h.imports.push(n); return h }, b } }, { "./less-error": 31, "./logger": 32, "./transform-tree": 43 }], 34: [function(a, b) { var c, d = a("./contexts"), e = a("./parser/parser"), f = a("./plugin-manager"); b.exports = function(b, g, h) { var i = function(b, g, j) { if (g = g || {}, "function" == typeof g && (j = g, g = {}), !j) { c || (c = "undefined" == typeof Promise ? a("promise") : Promise); var k = this; return new c(function(a, c) { i.call(k, b, g, function(b, d) { b ? c(b) : a(d) }) }) } var l, m, n = new f(this); if (n.addPlugins(g.plugins), g.pluginManager = n, l = new d.Parse(g), g.rootFileInfo) m = g.rootFileInfo; else { var o = g.filename || "input", p = o.replace(/[^/\]*$/, ""); m = { filename: o, relativeUrls: l.relativeUrls, rootpath: l.rootpath || "", currentDirectory: p, entryPath: p, rootFilename: o }, m.rootpath && "/" !== m.rootpath.slice(-1) && (m.rootpath += "/") } var q = new h(l, m); new e(l, q, m).parse(b, function(a, b) { return a ? j(a) : void j(null, b, q, g) }, g) }; return i } }, { "./contexts": 10, "./parser/parser": 37, "./plugin-manager": 38, promise: void 0 }], 35: [function(a, b) { b.exports = function(a, b) { function c(b) { var c = h - q; 512 > c && !b || !c || (p.push(a.slice(q, h + 1)), q = h + 1) } var d, e, f, g, h, i, j, k, l, m = a.length, n = 0, o = 0, p = [], q = 0; for (h = 0; m > h; h++) if (j = a.charCodeAt(h), !(j >= 97 && 122 >= j || 34 > j)) switch (j) { case 40: o++, e = h; continue; case 41: if (--o < 0) return b("missing opening `(`", h); continue; case 59: o || c(); continue; case 123: n++, d = h; continue; case 125: if (--n < 0) return b("missing opening `{`", h); n || o || c(); continue; case 92: if (m - 1 > h) { h++; continue } return b("unescaped `\`", h); case 34: case 39: case 96: for (l = 0, i = h, h += 1; m > h; h++) if (k = a.charCodeAt(h), !(k > 96)) { if (k == j) { l = 1; break } if (92 == k) { if (h == m - 1) return b("unescaped `\`", h); h++ } } if (l) continue; return b("unmatched `" + String.fromCharCode(j) + "`", i); case 47: if (o || h == m - 1) continue; if (k = a.charCodeAt(h + 1), 47 == k) for (h += 2; m > h && (k = a.charCodeAt(h), !(13 >= k) || 10 != k && 13 != k); h++); else if (42 == k) { for (f = i = h, h += 2; m - 1 > h && (k = a.charCodeAt(h), 125 == k && (g = h), 42 != k || 47 != a.charCodeAt( h + 1)); h++); if (h == m - 1) return b("missing closing `*/`", i); h++ } continue; case 42: if (m - 1 > h && 47 == a.charCodeAt(h + 1)) return b("unmatched `/*`", h); continue } return 0 !== n ? f > d && g > f ? b("missing closing `}` or `*/`", d) : b("missing closing `}`", d) : 0 !== o ? b("missing closing `)`", e) : (c(!0), p) } }, {}], 36: [function(a, b) { var c = a("./chunker"); b.exports = function() { var a, b, d, e, f, g, h, i = [], j = {}; j.save = function() { h = j.i, i.push({ current: g, i: j.i, j: b }) }, j.restore = function(a) { (j.i > d || j.i === d && a && !e) && (d = j.i, e = a); var c = i.pop(); g = c.current, h = j.i = c.i, b = c.j }, j.forget = function() { i.pop() }, j.isWhitespace = function(b) { var c = j.i + (b || 0), d = a.charCodeAt(c); return d === k || d === n || d === l || d === m }, j.$re = function(a) { j.i > h && (g = g.slice(j.i - h), h = j.i); var b = a.exec(g); return b ? (s(b[0].length), "string" == typeof b ? b : 1 === b.length ? b[0] : b) : null }, j.$char = function(b) { return a.charAt(j.i) !== b ? null : (s(1), b) }, j.$str = function(b) { for (var c = b.length, d = 0; c > d; d++) if (a.charAt(j.i + d) !== b.charAt(d)) return null; return s(c), b }, j.$quoted = function() { var b = a.charAt(j.i); if ("'" === b || '"' === b) { for (var c = a.length, d = j.i, e = 1; c > e + d; e++) { var f = a.charAt(e + d); switch (f) { case "\": e++; continue; case " ": case " ": break; case b: var g = a.substr(d, e + 1); return s(e + 1), g } } return null } }; var k = 32, l = 9, m = 10, n = 13, o = 43, p = 44, q = 47, r = 57; j.autoCommentAbsorb = !0, j.commentStore = [], j.finished = !1; var s = function(c) { for (var d, e, i, o = j.i, p = b, r = j.i - h, t = j.i + g.length - r, u = j.i += c, v = a; t > j.i; j.i++) { if (d = v.charCodeAt(j.i), j.autoCommentAbsorb && d === q) { if (e = v.charAt(j.i + 1), "/" === e) { i = { index: j.i, isLineComment: !0 }; var w = v.indexOf(" ", j.i + 2); 0 > w && (w = t), j.i = w, i.text = v.substr(i.i, j.i - i.i), j.commentStore.push(i); continue } if ("*" === e) { var x = v.indexOf("*/", j.i + 2); if (x >= 0) { i = { index: j.i, text: v.substr(j.i, x + 2 - j.i), isLineComment: !1 }, j.i += i.text.length - 1, j.commentStore.push(i); continue } } break } if (d !== k && d !== m && d !== l && d !== n) break } if (g = g.slice(c + j.i - u + r), h = j.i, !g.length) { if (f.length - 1 > b) return g = f[++b], s(0), !0; j.finished = !0 } return o !== j.i || p !== b }; return j.peek = function(b) { if ("string" == typeof b) { for (var c = 0; b.length > c; c++) if (a.charAt(j.i + c) !== b.charAt(c)) return !1; return !0 } return b.test(g) }, j.peekChar = function(b) { return a.charAt(j.i) === b }, j.currentChar = function() { return a.charAt(j.i) }, j.getInput = function() { return a }, j.peekNotNumeric = function() { var b = a.charCodeAt(j.i); return b > r || o > b || b === q || b === p }, j.start = function(e, i, k) { a = e, j.i = b = h = d = 0, f = i ? c(e, k) : [e], g = f[0], s(0) }, j.end = function() { var b, c = j.i >= a.length; return d > j.i && (b = e, j.i = d), { isFinished: c, furthest: j.i, furthestPossibleErrorMessage: b, furthestReachedEnd: j.i >= a.length - 1, furthestChar: a[j.i] } }, j } }, { "./chunker": 35 }], 37: [function(a, b) { var c = a("../less-error"), d = a("../tree"), e = a("../visitors"), f = a("./parser-input"), g = a("../utils"), h = function i(a, b, h) { function j(a, b) { var c = "[object Function]" === Object.prototype.toString.call(a) ? a.call(n) : o.$re(a); return c ? c : void l(b || ("string" == typeof a ? "expected '" + a + "' got '" + o.currentChar() + "'" : "unexpected token")) } function k(a, b) { return o.$char(a) ? a : void l(b || "expected '" + a + "' got '" + o.currentChar() + "'") } function l(a, d) { throw new c({ index: o.i, filename: h.filename, type: d || "Syntax", message: a }, b) } function m(a) { var b = h.filename; return { lineNumber: g.getLocation(a, o.getInput()).line + 1, fileName: b } } var n, o = f(); return { parse: function(f, g, j) { var k, l, m, n, p = null, q = ""; if (l = j && j.globalVars ? i.serializeVars(j.globalVars) + " " : "", m = j && j.modifyVars ? " " + i.serializeVars( j.modifyVars) : "", a.pluginManager) for (var r = a.pluginManager.getPreProcessors(), s = 0; r.length > s; s++) f = r[s].process(f, { context: a, imports: b, fileInfo: h }); (l || j && j.banner) && (q = (j && j.banner ? j.banner : "") + l, n = b.contentsIgnoredChars, n[h.filename] = n[h.filename] || 0, n[h.filename] += q.length), f = f.replace(/ ?/g, " "), f = q + f.replace( /^uFEFF/, "") + m, b.contents[h.filename] = f; try { o.start(f, a.chunkInput, function(a, d) { throw new c({ index: d, type: "Parse", message: a, filename: h.filename }, b) }), k = new d.Ruleset(null, this.parsers.primary()), k.root = !0, k.firstRoot = !0 } catch (t) { return g(new c(t, b, h.filename)) } var u = o.end(); if (!u.isFinished) { var v = u.furthestPossibleErrorMessage; v || (v = "Unrecognised input", "}" === u.furthestChar ? v += ". Possibly missing opening '{'" : ")" === u.furthestChar ? v += ". Possibly missing opening '('" : u.furthestReachedEnd && (v += ". Possibly missing something")), p = new c({ type: "Parse", message: v, index: u.furthest, filename: h.filename }, b) } var w = function(a) { return a = p || a || b.error, a ? (a instanceof c || (a = new c(a, b, h.filename)), g(a)) : g(null, k) }; return a.processImports === !1 ? w() : void new e.ImportVisitor(b, w).run(k) }, parsers: n = { primary: function() { for (var a, b = this.mixin, c = [];;) { for (;;) { if (a = this.comment(), !a) break; c.push(a) } if (o.finished) break; if (o.peek("}")) break; if (a = this.extendRule()) c = c.concat(a); else if (a = b.definition() || this.rule() || this.ruleset() || b.call() || this.rulesetCall() || this.directive()) c.push(a); else { for (var d = !1; o.$char(";");) d = !0; if (!d) break } } return c }, comment: function() { if (o.commentStore.length) { var a = o.commentStore.shift(); return new d.Comment(a.text, a.isLineComment, a.index, h) } }, entities: { quoted: function() { var a, b = o.i, c = !1; return o.save(), o.$char("~") && (c = !0), (a = o.$quoted()) ? (o.forget(), new d.Quoted(a.charAt(0), a .substr(1, a.length - 2), c, b, h)) : void o.restore() }, keyword: function() { var a = o.$char("%") || o.$re(/^[_A-Za-z-][_A-Za-z0-9-]*/); return a ? d.Color.fromKeyword(a) || new d.Keyword(a) : void 0 }, call: function() { var a, b, c, e, f = o.i; if (!o.peek(/^url(/i)) return o.save(), (a = o.$re(/^([w-]+|%|progid:[w.]+)(/)) ? (a = a[1], b = a .toLowerCase(), "alpha" === b && (e = n.alpha()) ? (o.forget(), e) : (c = this.arguments(), o.$char( ")") ? (o.forget(), new d.Call(a, c, f, h)) : void o.restore( "Could not parse call arguments or missing ')'"))) : void o.forget() }, arguments: function() { for (var a, b = [];;) { if (a = this.assignment() || n.expression(), !a) break; if (b.push(a), !o.$char(",")) break } return b }, literal: function() { return this.dimension() || this.color() || this.quoted() || this.unicodeDescriptor() }, assignment: function() { var a, b; return o.save(), (a = o.$re(/^w+(?=s?=)/i)) && o.$char("=") && (b = n.entity()) ? (o.forget(), new d.Assignment( a, b)) : void o.restore() }, url: function() { var a, b = o.i; return o.autoCommentAbsorb = !1, o.$str("url(") ? (a = this.quoted() || this.variable() || o.$re( /^(?:(?:\[()'"])|[^()'"])+/) || "", o.autoCommentAbsorb = !0, k(")"), new d.URL(null != a.value || a instanceof d.Variable ? a : new d.Anonymous(a), b, h)) : void(o.autoCommentAbsorb = !0) }, variable: function() { var a, b = o.i; return "@" === o.currentChar() && (a = o.$re(/^@@?[w-]+/)) ? new d.Variable(a, b, h) : void 0 }, variableCurly: function() { var a, b = o.i; return "@" === o.currentChar() && (a = o.$re(/^@{([w-]+)}/)) ? new d.Variable("@" + a[1], b, h) : void 0 }, color: function() { var a; if ("#" === o.currentChar() && (a = o.$re(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/))) { var b = a.input.match(/^#([w]+).*/); return b = b[1], b.match(/^[A-Fa-f0-9]+$/) || l("Invalid HEX color code"), new d.Color(a[1], void 0, "#" + b) } }, dimension: function() { if (!o.peekNotNumeric()) { var a = o.$re(/^([+-]?d*.?d+)(%|[a-z]+)?/i); return a ? new d.Dimension(a[1], a[2]) : void 0 } }, unicodeDescriptor: function() { var a; return a = o.$re(/^U+[0-9a-fA-F?]+(-[0-9a-fA-F?]+)?/), a ? new d.UnicodeDescriptor(a[0]) : void 0 }, javascript: function() { var a, b = o.i; o.save(); var c = o.$char("~"), e = o.$char("`"); return e ? (a = o.$re(/^[^`]*`/)) ? (o.forget(), new d.JavaScript(a.substr(0, a.length - 1), Boolean(c), b, h)) : void o.restore("invalid javascript definition") : void o.restore() } }, variable: function() { var a; return "@" === o.currentChar() && (a = o.$re(/^(@[w-]+)s*:/)) ? a[1] : void 0 }, rulesetCall: function() { var a; return "@" === o.currentChar() && (a = o.$re(/^(@[w-]+)s*(s*)s*;/)) ? new d.RulesetCall(a[1]) : void 0 }, extend: function(a) { var b, c, e, f, g, h = o.i; if (o.$str(a ? "&:extend(" : ":extend(")) { do { for (e = null, b = null; !(e = o.$re(/^(all)(?=s*()|,))/)) && (c = this.element());) b ? b.push(c) : b = [c]; e = e && e[1], b || l("Missing target selector for :extend()."), g = new d.Extend(new d.Selector(b), e, h), f ? f.push(g) : f = [g] } while (o.$char(",")); return j(/^)/), a && j(/^;/), f } }, extendRule: function() { return this.extend(!0) }, mixin: { call: function() { var a, b, c, e, f, g, i = o.currentChar(), j = !1, l = o.i; if ("." === i || "#" === i) { for (o.save();;) { if (a = o.i, e = o.$re(/^[#.](?:[w-]|\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/), !e) break; c = new d.Element(f, e, a, h), b ? b.push(c) : b = [c], f = o.$char(">") } return b && (o.$char("(") && (g = this.args(!0).args, k(")")), n.important() && (j = !0), n.end()) ? ( o.forget(), new d.mixin.Call(b, g, l, h, j)) : void o.restore() } }, args: function(a) { var b, c, e, f, g, h, i, j = n.entities, k = { args: null, variadic: !1 }, m = [], p = [], q = []; for (o.save();;) { if (a) h = n.detachedRuleset() || n.expression(); else { if (o.commentStore.length = 0, o.$str("...")) { k.variadic = !0, o.$char(";") && !b && (b = !0), (b ? p : q).push({ variadic: !0 }); break } h = j.variable() || j.literal() || j.keyword() } if (!h) break; f = null, h.throwAwayComments && h.throwAwayComments(), g = h; var r = null; if (a ? h.value && 1 == h.value.length && (r = h.value[0]) : r = h, r && r instanceof d.Variable) if (o.$char(":")) { if (m.length > 0 && (b && l("Cannot mix ; and , as delimiter types"), c = !0), g = n.detachedRuleset() || n.expression(), !g) { if (!a) return o.restore(), k.args = [], k; l("could not understand value for named argument") } f = e = r.name } else if (o.$str("...")) { if (!a) { k.variadic = !0, o.$char(";") && !b && (b = !0), (b ? p : q).push({ name: h.name, variadic: !0 }); break } i = !0 } else a || (e = f = r.name, g = null); g && m.push(g), q.push({ name: f, value: g, expand: i }), o.$char(",") || (o.$char(";") || b) && (c && l("Cannot mix ; and , as delimiter types"), b = !0, m.length > 1 && (g = new d.Value(m)), p.push({ name: e, value: g, expand: i }), e = null, m = [], c = !1) } return o.forget(), k.args = b ? p : q, k }, definition: function() { var a, b, c, e, f = [], g = !1; if (!("." !== o.currentChar() && "#" !== o.currentChar() || o.peek(/^[^{]*}/))) if (o.save(), b = o.$re(/^([#.](?:[w-]|\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)s*(/)) { a = b[1]; var h = this.args(!1); if (f = h.args, g = h.variadic, !o.$char(")")) return void o.restore("Missing closing ')'"); if (o.commentStore.length = 0, o.$str("when") && (e = j(n.conditions, "expected condition")), c = n.block()) return o.forget(), new d.mixin.Definition(a, f, c, e, g); o.restore() } else o.forget() } }, entity: function() { var a = this.entities; return this.comment() || a.literal() || a.variable() || a.url() || a.call() || a.keyword() || a.javascript() }, end: function() { return o.$char(";") || o.peek("}") }, alpha: function() { var a; if (o.$re(/^opacity=/i)) return a = o.$re(/^d+/), a || (a = j(this.entities.variable, "Could not parse alpha")), k(")"), new d.Alpha(a) }, element: function() { var a, b, c, e = o.i; return b = this.combinator(), a = o.$re(/^(?:d+.d+|d+)%/) || o.$re( /^(?:[.#]?|:*)(?:[w-]|[^x00-x9f]|\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/) || o.$char("*") || o.$char( "&") || this.attribute() || o.$re(/^([^&()@]+)/) || o.$re(/^[.#:](?=@)/) || this.entities.variableCurly(), a || (o.save(), o.$char("(") ? (c = this.selector()) && o.$char(")") ? (a = new d.Paren(c), o.forget()) : o.restore("Missing closing ')'") : o.forget()), a ? new d.Element(b, a, e, h) : void 0 }, combinator: function() { var a = o.currentChar(); if ("/" === a) { o.save(); var b = o.$re(/^/[a-z]+//i); if (b) return o.forget(), new d.Combinator(b); o.restore() } if (">" === a || "+" === a || "~" === a || "|" === a || "^" === a) { for (o.i++, "^" === a && "^" === o.currentChar() && (a = "^^", o.i++); o.isWhitespace();) o.i++; return new d.Combinator(a) } return new d.Combinator(o.isWhitespace(-1) ? " " : null) }, lessSelector: function() { return this.selector(!0) }, selector: function(a) { for (var b, c, e, f, g, i, k, m = o.i; (a && (c = this.extend()) || a && (i = o.$str("when")) || (f = this.element())) && (i ? k = j(this.conditions, "expected condition") : k ? l("CSS guard can only be used at the end of selector") : c ? g = g ? g.concat( c) : c : (g && l("Extend can only be used at the end of selector"), e = o.currentChar(), b ? b.push(f) : b = [f], f = null), "{" !== e && "}" !== e && ";" !== e && "," !== e && ")" !== e);); return b ? new d.Selector(b, g, k, m, h) : void(g && l( "Extend must be used to extend a selector, it cannot be used on its own")) }, attribute: function() { if (o.$char("[")) { var a, b, c, e = this.entities; return (a = e.variableCurly()) || (a = j(/^(?:[_A-Za-z0-9-*]*|)?(?:[_A-Za-z0-9-]|\.)+/)), c = o.$re( /^[|~*$^]?=/), c && (b = e.quoted() || o.$re(/^[0-9]+%/) || o.$re(/^[w-]+/) || e.variableCurly()), k( "]"), new d.Attribute(a, c, b) } }, block: function() { var a; return o.$char("{") && (a = this.primary()) && o.$char("}") ? a : void 0 }, blockRuleset: function() { var a = this.block(); return a && (a = new d.Ruleset(null, a)), a }, detachedRuleset: function() { var a = this.blockRuleset(); return a ? new d.DetachedRuleset(a) : void 0 }, ruleset: function() { var b, c, e, f; for (o.save(), a.dumpLineNumbers && (f = m(o.i));;) { if (c = this.lessSelector(), !c) break; if (b ? b.push(c) : b = [c], o.commentStore.length = 0, c.condition && b.length > 1 && l( "Guards are only currently allowed on a single selector."), !o.$char(",")) break; c.condition && l("Guards are only currently allowed on a single selector."), o.commentStore.length = 0 } if (b && (e = this.block())) { o.forget(); var g = new d.Ruleset(b, e, a.strictImports); return a.dumpLineNumbers && (g.debugInfo = f), g } o.restore() }, rule: function(b) { var c, e, f, g, i, j = o.i, k = o.currentChar(); if ("." !== k && "#" !== k && "&" !== k && ":" !== k) if (o.save(), c = this.variable() || this.ruleProperty()) { if (i = "string" == typeof c, i && (e = this.detachedRuleset()), o.commentStore.length = 0, !e) { g = !i && c.length > 1 && c.pop().value; var l = !b && (a.compress || i); if (l && (e = this.value()), !e && (e = this.anonymousValue())) return o.forget(), new d.Rule(c, e, ! 1, g, j, h); l || e || (e = this.value()), f = this.important() } if (e && this.end()) return o.forget(), new d.Rule(c, e, f, g, j, h); if (o.restore(), e && !b) return this.rule(!0) } else o.forget() }, anonymousValue: function() { var a = o.$re(/^([^@+/'"*`(;{}-]*);/); return a ? new d.Anonymous(a[1]) : void 0 }, "import": function() { var a, b, c = o.i, e = o.$re(/^@import?s+/); if (e) { var f = (e ? this.importOptions() : null) || {}; if (a = this.entities.quoted() || this.entities.url()) return b = this.mediaFeatures(), o.$char(";") || (o.i = c, l("missing semi-colon or unrecognised media features on import")), b = b && new d.Value(b), new d.Import(a, b, f, c, h); o.i = c, l("malformed import statement") } }, importOptions: function() { var a, b, c, d = {}; if (!o.$char("(")) return null; do if (a = this.importOption()) { switch (b = a, c = !0, b) { case "css": b = "less", c = !1; break; case "once": b = "multiple", c = !1 } if (d[b] = c, !o.$char(",")) break } while (a); return k(")"), d }, importOption: function() { var a = o.$re(/^(less|css|multiple|once|inline|reference|optional)/); return a ? a[1] : void 0 }, mediaFeature: function() { var a, b, c = this.entities, e = []; o.save(); do if (a = c.keyword() || c.variable()) e.push(a); else if (o.$char("(")) { if (b = this.property(), a = this.value(), !o.$char(")")) return o.restore("Missing closing ')'"), null; if (b && a) e.push(new d.Paren(new d.Rule(b, a, null, null, o.i, h, !0))); else { if (!a) return o.restore("badly formed media feature definition"), null; e.push(new d.Paren(a)) } } while (a); return o.forget(), e.length > 0 ? new d.Expression(e) : void 0 }, mediaFeatures: function() { var a, b = this.entities, c = []; do if (a = this.mediaFeature()) { if (c.push(a), !o.$char(",")) break } else if (a = b.variable(), a && (c.push(a), !o.$char(","))) break; while (a); return c.length > 0 ? c : null }, media: function() { var b, c, e, f; return a.dumpLineNumbers && (f = m(o.i)), o.save(), o.$str("@media") ? (b = this.mediaFeatures(), (c = this.block()) ? (o.forget(), e = new d.Media(c, b, o.i, h), a.dumpLineNumbers && (e.debugInfo = f), e) : void o.restore("media definitions require block statements after any features")) : void o.restore() }, plugin: function() { var a, b = o.i, c = o.$re(/^@plugin?s+/); if (c) { var e = { plugin: !0 }; if (a = this.entities.quoted() || this.entities.url()) return o.$char(";") || (o.i = b, l( "missing semi-colon on plugin")), new d.Import(a, null, e, b, h); o.i = b, l("malformed plugin statement") } }, directive: function() { var b, c, e, f, g, i, j, k = o.i, n = !0, p = !0; if ("@" === o.currentChar()) { if (c = this["import"]() || this.plugin() || this.media()) return c; if (o.save(), b = o.$re(/^@[a-z-]+/)) { switch (f = b, "-" == b.charAt(1) && b.indexOf("-", 2) > 0 && (f = "@" + b.slice(b.indexOf("-", 2) + 1)), f) { case "@counter-style": g = !0, n = !0; break; case "@charset": g = !0, n = !1; break; case "@namespace": i = !0, n = !1; break; case "@keyframes": g = !0; break; case "@host": case "@page": j = !0; break; case "@document": case "@supports": j = !0, p = !1 } return o.commentStore.length = 0, g ? (c = this.entity(), c || l("expected " + b + " identifier")) : i ? (c = this.expression(), c || l("expected " + b + " expression")) : j && (c = (o.$re(/^[^{;]+/) || "") .trim(), c && (c = new d.Anonymous(c))), n && (e = this.blockRuleset()), e || !n && c && o.$char(";") ? (o.forget(), new d.Directive(b, c, e, k, h, a.dumpLineNumbers ? m(k) : null, !1, p)) : void o.restore( "directive options not recognised") } } }, value: function() { var a, b = []; do if (a = this.expression(), a && (b.push(a), !o.$char(","))) break; while (a); return b.length > 0 ? new d.Value(b) : void 0 }, important: function() { return "!" === o.currentChar() ? o.$re(/^! *important/) : void 0 }, sub: function() { var a, b; return o.save(), o.$char("(") ? (a = this.addition(), a && o.$char(")") ? (o.forget(), b = new d.Expression( [a]), b.parens = !0, b) : void o.restore("Expected ')'")) : void o.restore() }, multiplication: function() { var a, b, c, e, f; if (a = this.operand()) { for (f = o.isWhitespace(-1);;) { if (o.peek(/^/[*/]/)) break; if (o.save(), c = o.$char("/") || o.$char("*"), !c) { o.forget(); break } if (b = this.operand(), !b) { o.restore(); break } o.forget(), a.parensInOp = !0, b.parensInOp = !0, e = new d.Operation(c, [e || a, b], f), f = o.isWhitespace( -1) } return e || a } }, addition: function() { var a, b, c, e, f; if (a = this.multiplication()) { for (f = o.isWhitespace(-1);;) { if (c = o.$re(/^[-+]s+/) || !f && (o.$char("+") || o.$char("-")), !c) break; if (b = this.multiplication(), !b) break; a.parensInOp = !0, b.parensInOp = !0, e = new d.Operation(c, [e || a, b], f), f = o.isWhitespace(-1) } return e || a } }, conditions: function() { var a, b, c, e = o.i; if (a = this.condition()) { for (;;) { if (!o.peek(/^,s*(nots*)?(/) || !o.$char(",")) break; if (b = this.condition(), !b) break; c = new d.Condition("or", c || a, b, e) } return c || a } }, condition: function() { var a, b, c, e, f = this.entities, g = o.i, h = !1; return o.$str("not") && (h = !0), k("("), a = this.addition() || f.keyword() || f.quoted(), a ? (o.$char( ">") ? e = o.$char("=") ? ">=" : ">" : o.$char("<") ? e = o.$char("=") ? "<=" : "<" : o.$char("=") && (e = o.$char(">") ? "=>" : o.$char("<") ? "=<" : "="), e ? (b = this.addition() || f.keyword() || f.quoted(), b ? c = new d.Condition(e, a, b, g, h) : l("expected expression")) : c = new d.Condition("=", a, new d .Keyword("true"), g, h), k(")"), o.$str("and") ? new d.Condition("and", c, this.condition()) : c) : void 0 }, operand: function() { var a, b = this.entities; o.peek(/^-[@(]/) && (a = o.$char("-")); var c = this.sub() || b.dimension() || b.color() || b.variable() || b.call(); return a && (c.parensInOp = !0, c = new d.Negative(c)), c }, expression: function() { var a, b, c = []; do a = this.comment(), a ? c.push(a) : (a = this.addition() || this.entity(), a && (c.push(a), o.peek( /^/[/*]/) || (b = o.$char("/"), b && c.push(new d.Anonymous(b))))); while (a); return c.length > 0 ? new d.Expression(c) : void 0 }, property: function() { var a = o.$re(/^(*?-?[_a-zA-Z0-9-]+)s*:/); return a ? a[1] : void 0 }, ruleProperty: function() { function a(a) { var b = o.i, c = o.$re(a); return c ? (f.push(b), e.push(c[1])) : void 0 } var b, c, e = [], f = []; o.save(); var g = o.$re(/^([_a-zA-Z0-9-]+)s*:/); if (g) return e = [new d.Keyword(g[1])], o.forget(), e; for (a(/^(*?)/);;) if (!a(/^((?:[w-]+)|(?:@{[w-]+}))/)) break; if (e.length > 1 && a(/^((?:+_|+)?)s*:/)) { for (o.forget(), "" === e[0] && (e.shift(), f.shift()), c = 0; e.length > c; c++) b = e[c], e[c] = "@" !== b.charAt(0) ? new d.Keyword(b) : new d.Variable("@" + b.slice(2, -1), f[c], h); return e } o.restore() } } } }; h.serializeVars = function(a) { var b = ""; for (var c in a) if (Object.hasOwnProperty.call(a, c)) { var d = a[c]; b += ("@" === c[0] ? "" : "@") + c + ": " + d + (";" === String(d).slice(-1) ? "" : ";") } return b }, b.exports = h }, { "../less-error": 31, "../tree": 61, "../utils": 82, "../visitors": 86, "./parser-input": 36 }], 38: [function(a, b) { var c = function(a) { this.less = a, this.visitors = [], this.preProcessors = [], this.postProcessors = [], this.installedPlugins = [], this.fileManagers = [] }; c.prototype.addPlugins = function(a) { if (a) for (var b = 0; a.length > b; b++) this.addPlugin(a[b]) }, c.prototype.addPlugin = function(a) { this.installedPlugins.push(a), a.install(this.less, this) }, c.prototype.addVisitor = function(a) { this.visitors.push(a) }, c.prototype.addPreProcessor = function(a, b) { var c; for (c = 0; this.preProcessors.length > c && !(this.preProcessors[c].priority >= b); c++); this.preProcessors.splice(c, 0, { preProcessor: a, priority: b }) }, c.prototype.addPostProcessor = function(a, b) { var c; for (c = 0; this.postProcessors.length > c && !(this.postProcessors[c].priority >= b); c++); this.postProcessors.splice(c, 0, { postProcessor: a, priority: b }) }, c.prototype.addFileManager = function(a) { this.fileManagers.push(a) }, c.prototype.getPreProcessors = function() { for (var a = [], b = 0; this.preProcessors.length > b; b++) a.push(this.preProcessors[b].preProcessor); return a }, c.prototype.getPostProcessors = function() { for (var a = [], b = 0; this.postProcessors.length > b; b++) a.push(this.postProcessors[b].postProcessor); return a }, c.prototype.getVisitors = function() { return this.visitors }, c.prototype.getFileManagers = function() { return this.fileManagers }, b.exports = c }, {}], 39: [function(a, b) { var c = a("../less-error"), d = a("../tree"), e = b.exports = function(a, b) { this.fileInfo = b }; e.prototype.eval = function(a, b) { var e, f, g = {}; f = { add: function(a, b) { g[a] = b }, addMultiple: function(a) { Object.keys(a).forEach(function(b) { g[b] = a[b] }) } }; try { e = new Function("functions", "tree", "fileInfo", a), e(f, d, this.fileInfo) } catch (h) { b(new c({ message: "Plugin evaluation error: '" + h.name + ": " + h.message.replace(/["]/g, "'") + "'", filename: this.fileInfo.filename }), null) } b(null, { functions: g }) } }, { "../less-error": 31, "../tree": 61 }], 40: [function(a, b) { var c; b.exports = function(b, d) { var e = function(b, f, g) { if ("function" == typeof f && (g = f, f = {}), !g) { c || (c = "undefined" == typeof Promise ? a("promise") : Promise); var h = this; return new c(function(a, c) { e.call(h, b, f, function(b, d) { b ? c(b) : a(d) }) }) } this.parse(b, f, function(a, b, c, e) { if (a) return g(a); var f; try { var h = new d(b, c); f = h.toCSS(e) } catch (a) { return g(a) } g(null, f) }) }; return e } }, { promise: void 0 }], 41: [function(a, b) { b.exports = function(a, b) { var c = function(a) { this.options = a }; return c.prototype.toCSS = function(b, c, d) { var e = new a({ contentsIgnoredCharsMap: d.contentsIgnoredChars, rootNode: b, contentsMap: d.contents, sourceMapFilename: this.options.sourceMapFilename, sourceMapURL: this.options.sourceMapURL, outputFilename: this.options.sourceMapOutputFilename, sourceMapBasepath: this.options.sourceMapBasepath, sourceMapRootpath: this.options.sourceMapRootpath, outputSourceFiles: this.options.outputSourceFiles, sourceMapGenerator: this.options.sourceMapGenerator, sourceMapFileInline: this.options.sourceMapFileInline }), f = e.toCSS(c); return this.sourceMap = e.sourceMap, this.sourceMapURL = e.sourceMapURL, this.options.sourceMapInputFilename && (this.sourceMapInputFilename = e.normalizeFilename(this.options.sourceMapInputFilename)), f + this.getCSSAppendage() }, c.prototype.getCSSAppendage = function() { var a = this.sourceMapURL; if (this.options.sourceMapFileInline) { if (void 0 === this.sourceMap) return ""; a = "data:application/json;base64," + b.encodeBase64(this.sourceMap) } return a ? "/*# sourceMappingURL=" + a + " */" : "" }, c.prototype.getExternalSourceMap = function() { return this.sourceMap }, c.prototype.setExternalSourceMap = function(a) { this.sourceMap = a }, c.prototype.isInline = function() { return this.options.sourceMapFileInline }, c.prototype.getSourceMapURL = function() { return this.sourceMapURL }, c.prototype.getOutputFilename = function() { return this.options.sourceMapOutputFilename }, c.prototype.getInputFilename = function() { return this.sourceMapInputFilename }, c } }, {}], 42: [function(a, b) { b.exports = function(a) { var b = function(b) { this._css = [], this._rootNode = b.rootNode, this._contentsMap = b.contentsMap, this._contentsIgnoredCharsMap = b.contentsIgnoredCharsMap, b.sourceMapFilename && (this._sourceMapFilename = b.sourceMapFilename.replace(/\/g, "/")), this._outputFilename = b.outputFilename, this.sourceMapURL = b.sourceMapURL, b.sourceMapBasepath && (this._sourceMapBasepath = b.sourceMapBasepath.replace(/\/g, "/")), b.sourceMapRootpath ? (this._sourceMapRootpath = b.sourceMapRootpath.replace(/\/g, "/"), "/" !== this._sourceMapRootpath.charAt( this._sourceMapRootpath.length - 1) && (this._sourceMapRootpath += "/")) : this._sourceMapRootpath = "", this._outputSourceFiles = b.outputSourceFiles, this._sourceMapGeneratorConstructor = a.getSourceMapGenerator(), this._lineNumber = 0, this._column = 0 }; return b.prototype.normalizeFilename = function(a) { return a = a.replace(/\/g, "/"), this._sourceMapBasepath && 0 === a.indexOf(this._sourceMapBasepath) && (a = a.substring(this._sourceMapBasepath.length), ("\" === a.charAt(0) || "/" === a.charAt(0)) && (a = a.substring( 1))), (this._sourceMapRootpath || "") + a }, b.prototype.add = function(a, b, c, d) { if (a) { var e, f, g, h, i; if (b) { var j = this._contentsMap[b.filename]; this._contentsIgnoredCharsMap[b.filename] && (c -= this._contentsIgnoredCharsMap[b.filename], 0 > c && (c = 0), j = j.slice(this._contentsIgnoredCharsMap[b.filename])), j = j.substring(0, c), f = j.split(" "), h = f[f.length - 1] } if (e = a.split(" "), g = e[e.length - 1], b) if (d) for (i = 0; e.length > i; i++) this._sourceMapGenerator.addMapping({ generated: { line: this._lineNumber + i + 1, column: 0 === i ? this._column : 0 }, original: { line: f.length + i, column: 0 === i ? h.length : 0 }, source: this.normalizeFilename(b.filename) }); else this._sourceMapGenerator.addMapping({ generated: { line: this._lineNumber + 1, column: this._column }, original: { line: f.length, column: h.length }, source: this.normalizeFilename(b.filename) }); 1 === e.length ? this._column += g.length : (this._lineNumber += e.length - 1, this._column = g.length), this._css.push(a) } }, b.prototype.isEmpty = function() { return 0 === this._css.length }, b.prototype.toCSS = function(a) { if (this._sourceMapGenerator = new this._sourceMapGeneratorConstructor({ file: this._outputFilename, sourceRoot: null }), this._outputSourceFiles) for (var b in this._contentsMap) if (this._contentsMap.hasOwnProperty(b)) { var c = this._contentsMap[b]; this._contentsIgnoredCharsMap[b] && (c = c.slice(this._contentsIgnoredCharsMap[b])), this._sourceMapGenerator .setSourceContent(this.normalizeFilename(b), c) } if (this._rootNode.genCSS(a, this), this._css.length > 0) { var d, e = JSON.stringify(this._sourceMapGenerator.toJSON()); this.sourceMapURL ? d = this.sourceMapURL : this._sourceMapFilename && (d = this._sourceMapFilename), this .sourceMapURL = d, this.sourceMap = e } return this._css.join("") }, b } }, {}], 43: [function(a, b) { var c = a("./contexts"), d = a("./visitors"), e = a("./tree"); b.exports = function(a, b) { b = b || {}; var f, g = b.variables, h = new c.Eval(b); "object" != typeof g || Array.isArray(g) || (g = Object.keys(g).map(function(a) { var b = g[a]; return b instanceof e.Value || (b instanceof e.Expression || (b = new e.Expression([b])), b = new e.Value( [b])), new e.Rule("@" + a, b, !1, null, 0) }), h.frames = [new e.Ruleset(null, g)]); var i, j = [], k = [new d.JoinSelectorVisitor, new d.ExtendVisitor, new d.ToCSSVisitor({ compress: Boolean(b.compress) })]; if (b.pluginManager) { var l = b.pluginManager.getVisitors(); for (i = 0; l.length > i; i++) { var m = l[i]; m.isPreEvalVisitor ? j.push(m) : m.isPreVisitor ? k.splice(0, 0, m) : k.push(m) } } for (i = 0; j.length > i; i++) j[i].run(a); for (f = a.eval(h), i = 0; k.length > i; i++) k[i].run(f); return f } }, { "./contexts": 10, "./tree": 61, "./visitors": 86 }], 44: [function(a, b) { var c = a("./node"), d = function(a) { this.value = a }; d.prototype = new c, d.prototype.type = "Alpha", d.prototype.accept = function(a) { this.value = a.visit(this.value) }, d.prototype.eval = function(a) { return this.value.eval ? new d(this.value.eval(a)) : this }, d.prototype.genCSS = function(a, b) { b.add("alpha(opacity="), this.value.genCSS ? this.value.genCSS(a, b) : b.add(this.value), b.add(")") }, b.exports = d }, { "./node": 69 }], 45: [function(a, b) { var c = a("./node"), d = function(a, b, c, d, e, f) { this.value = a, this.index = b, this.mapLines = d, this.currentFileInfo = c, this.rulesetLike = "undefined" == typeof e ? !1 : e, this.isReferenced = f || !1 }; d.prototype = new c, d.prototype.type = "Anonymous", d.prototype.eval = function() { return new d(this.value, this.index, this.currentFileInfo, this.mapLines, this.rulesetLike, this.isReferenced) }, d.prototype.compare = function(a) { return a.toCSS && this.toCSS() === a.toCSS() ? 0 : void 0 }, d.prototype.isRulesetLike = function() { return this.rulesetLike }, d.prototype.genCSS = function(a, b) { b.add(this.value, this.currentFileInfo, this.index, this.mapLines) }, d.prototype.markReferenced = function() { this.isReferenced = !0 }, d.prototype.getIsReferenced = function() { return !this.currentFileInfo || !this.currentFileInfo.reference || this.isReferenced }, b.exports = d }, { "./node": 69 }], 46: [function(a, b) { var c = a("./node"), d = function(a, b) { this.key = a, this.value = b }; d.prototype = new c, d.prototype.type = "Assignment", d.prototype.accept = function(a) { this.value = a.visit(this.value) }, d.prototype.eval = function(a) { return this.value.eval ? new d(this.key, this.value.eval(a)) : this }, d.prototype.genCSS = function(a, b) { b.add(this.key + "="), this.value.genCSS ? this.value.genCSS(a, b) : b.add(this.value) }, b.exports = d }, { "./node": 69 }], 47: [function(a, b) { var c = a("./node"), d = function(a, b, c) { this.key = a, this.op = b, this.value = c }; d.prototype = new c, d.prototype.type = "Attribute", d.prototype.eval = function(a) { return new d(this.key.eval ? this.key.eval(a) : this.key, this.op, this.value && this.value.eval ? this.value .eval(a) : this.value) }, d.prototype.genCSS = function(a, b) { b.add(this.toCSS(a)) }, d.prototype.toCSS = function(a) { var b = this.key.toCSS ? this.key.toCSS(a) : this.key; return this.op && (b += this.op, b += this.value.toCSS ? this.value.toCSS(a) : this.value), "[" + b + "]" }, b.exports = d }, { "./node": 69 }], 48: [function(a, b) { var c = a("./node"), d = a("../functions/function-caller"), e = function(a, b, c, d) { this.name = a, this.args = b, this.index = c, this.currentFileInfo = d }; e.prototype = new c, e.prototype.type = "Call", e.prototype.accept = function(a) { this.args && (this.args = a.visitArray(this.args)) }, e.prototype.eval = function(a) { var b, c = this.args.map(function(b) { return b.eval(a) }), f = new d(this.name, a, this.index, this.currentFileInfo); if (f.isValid()) try { if (b = f.call(c), null != b) return b } catch (g) { throw { type: g.type || "Runtime", message: "error evaluating function `" + this.name + "`" + (g.message ? ": " + g.message : ""), index: this.index, filename: this.currentFileInfo.filename } } return new e(this.name, c, this.index, this.currentFileInfo) }, e.prototype.genCSS = function(a, b) { b.add(this.name + "(", this.currentFileInfo, this.index); for (var c = 0; this.args.length > c; c++) this.args[c].genCSS(a, b), this.args.length > c + 1 && b.add(", "); b.add(")") }, b.exports = e }, { "../functions/function-caller": 20, "./node": 69 }], 49: [function(a, b) { function c(a, b) { return Math.min(Math.max(a, 0), b) } function d(a) { return "#" + a.map(function(a) { return a = c(Math.round(a), 255), (16 > a ? "0" : "") + a.toString(16) }).join("") } var e = a("./node"), f = a("../data/colors"), g = function(a, b, c) { this.rgb = Array.isArray(a) ? a : 6 == a.length ? a.match(/.{2}/g).map(function(a) { return parseInt(a, 16) }) : a.split("").map(function(a) { return parseInt(a + a, 16) }), this.alpha = "number" == typeof b ? b : 1, "undefined" != typeof c && (this.value = c) }; g.prototype = new e, g.prototype.type = "Color", g.prototype.luma = function() { var a = this.rgb[0] / 255, b = this.rgb[1] / 255, c = this.rgb[2] / 255; return a = .03928 >= a ? a / 12.92 : Math.pow((a + .055) / 1.055, 2.4), b = .03928 >= b ? b / 12.92 : Math.pow( (b + .055) / 1.055, 2.4), c = .03928 >= c ? c / 12.92 : Math.pow((c + .055) / 1.055, 2.4), .2126 * a + .7152 * b + .0722 * c }, g.prototype.genCSS = function(a, b) { b.add(this.toCSS(a)) }, g.prototype.toCSS = function(a, b) { var d, e, f = a && a.compress && !b; if (this.value) return this.value; if (e = this.fround(a, this.alpha), 1 > e) return "rgba(" + this.rgb.map(function(a) { return c(Math.round(a), 255) }).concat(c(e, 1)).join("," + (f ? "" : " ")) + ")"; if (d = this.toRGB(), f) { var g = d.split(""); g[1] === g[2] && g[3] === g[4] && g[5] === g[6] && (d = "#" + g[1] + g[3] + g[5]) } return d }, g.prototype.operate = function(a, b, c) { for (var d = [], e = this.alpha * (1 - c.alpha) + c.alpha, f = 0; 3 > f; f++) d[f] = this._operate(a, b, this .rgb[f], c.rgb[f]); return new g(d, e) }, g.prototype.toRGB = function() { return d(this.rgb) }, g.prototype.toHSL = function() { var a, b, c = this.rgb[0] / 255, d = this.rgb[1] / 255, e = this.rgb[2] / 255, f = this.alpha, g = Math.max(c, d, e), h = Math.min(c, d, e), i = (g + h) / 2, j = g - h; if (g === h) a = b = 0; else { switch (b = i > .5 ? j / (2 - g - h) : j / (g + h), g) { case c: a = (d - e) / j + (e > d ? 6 : 0); break; case d: a = (e - c) / j + 2; break; case e: a = (c - d) / j + 4 } a /= 6 } return { h: 360 * a, s: b, l: i, a: f } }, g.prototype.toHSV = function() { var a, b, c = this.rgb[0] / 255, d = this.rgb[1] / 255, e = this.rgb[2] / 255, f = this.alpha, g = Math.max(c, d, e), h = Math.min(c, d, e), i = g, j = g - h; if (b = 0 === g ? 0 : j / g, g === h) a = 0; else { switch (g) { case c: a = (d - e) / j + (e > d ? 6 : 0); break; case d: a = (e - c) / j + 2; break; case e: a = (c - d) / j + 4 } a /= 6 } return { h: 360 * a, s: b, v: i, a: f } }, g.prototype.toARGB = function() { return d([255 * this.alpha].concat(this.rgb)) }, g.prototype.compare = function(a) { return a.rgb && a.rgb[0] === this.rgb[0] && a.rgb[1] === this.rgb[1] && a.rgb[2] === this.rgb[2] && a.alpha === this.alpha ? 0 : void 0 }, g.fromKeyword = function(a) { var b, c = a.toLowerCase(); return f.hasOwnProperty(c) ? b = new g(f[c].slice(1)) : "transparent" === c && (b = new g([0, 0, 0], 0)), b ? (b.value = a, b) : void 0 }, b.exports = g }, { "../data/colors": 11, "./node": 69 }], 50: [function(a, b) { var c = a("./node"), d = function(a) { " " === a ? (this.value = " ", this.emptyOrWhitespace = !0) : (this.value = a ? a.trim() : "", this.emptyOrWhitespace = "" === this.value) }; d.prototype = new c, d.prototype.type = "Combinator"; var e = { "": !0, " ": !0, "|": !0 }; d.prototype.genCSS = function(a, b) { var c = a.compress || e[this.value] ? "" : " "; b.add(c + this.value + c) }, b.exports = d }, { "./node": 69 }], 51: [function(a, b) { var c = a("./node"), d = a("./debug-info"), e = function(a, b, c, d) { this.value = a, this.isLineComment = b, this.currentFileInfo = d }; e.prototype = new c, e.prototype.type = "Comment", e.prototype.genCSS = function(a, b) { this.debugInfo && b.add(d(a, this), this.currentFileInfo, this.index), b.add(this.value) }, e.prototype.isSilent = function(a) { var b = this.currentFileInfo && this.currentFileInfo.reference && !this.isReferenced, c = a.compress && "!" !== this.value[2]; return this.isLineComment || b || c }, e.prototype.markReferenced = function() { this.isReferenced = !0 }, b.exports = e }, { "./debug-info": 53, "./node": 69 }], 52: [function(a, b) { var c = a("./node"), d = function(a, b, c, d, e) { this.op = a.trim(), this.lvalue = b, this.rvalue = c, this.index = d, this.negate = e }; d.prototype = new c, d.prototype.type = "Condition", d.prototype.accept = function(a) { this.lvalue = a.visit(this.lvalue), this.rvalue = a.visit(this.rvalue) }, d.prototype.eval = function(a) { var b = function(a, b, d) { switch (a) { case "and": return b && d; case "or": return b || d; default: switch (c.compare(b, d)) { case -1: return "<" === a || "=<" === a || "<=" === a; case 0: return "=" === a || ">=" === a || "=<" === a || "<=" === a; case 1: return ">" === a || ">=" === a; default: return !1 } } }(this.op, this.lvalue.eval(a), this.rvalue.eval(a)); return this.negate ? !b : b }, b.exports = d }, { "./node": 69 }], 53: [function(a, b) { var c = function(a, b, d) { var e = ""; if (a.dumpLineNumbers && !a.compress) switch (a.dumpLineNumbers) { case "comments": e = c.asComment(b); break; case "mediaquery": e = c.asMediaQuery(b); break; case "all": e = c.asComment(b) + (d || "") + c.asMediaQuery(b) } return e }; c.asComment = function(a) { return "/* line " + a.debugInfo.lineNumber + ", " + a.debugInfo.fileName + " */ " }, c.asMediaQuery = function(a) { var b = a.debugInfo.fileName; return /^[a-z]+:///i.test(b) || (b = "file://" + b), "@media -sass-debug-info{filename{font-family:" + b.replace( /([.:/\])/g, function(a) { return "\" == a && (a = "/"), "\" + a }) + "}line{font-family:\00003" + a.debugInfo.lineNumber + "}} " }, b.exports = c }, {}], 54: [function(a, b) { var c = a("./node"), d = a("../contexts"), e = function(a, b) { this.ruleset = a, this.frames = b }; e.prototype = new c, e.prototype.type = "DetachedRuleset", e.prototype.evalFirst = !0, e.prototype.accept = function(a) { this.ruleset = a.visit(this.ruleset) }, e.prototype.eval = function(a) { var b = this.frames || a.frames.slice(0); return new e(this.ruleset, b) }, e.prototype.callEval = function(a) { return this.ruleset.eval(this.frames ? new d.Eval(a, this.frames.concat(a.frames)) : a) }, b.exports = e }, { "../contexts": 10, "./node": 69 }], 55: [function(a, b) { var c = a("./node"), d = a("../data/unit-conversions"), e = a("./unit"), f = a("./color"), g = function(a, b) { this.value = parseFloat(a), this.unit = b && b instanceof e ? b : new e(b ? [b] : void 0) }; g.prototype = new c, g.prototype.type = "Dimension", g.prototype.accept = function(a) { this.unit = a.visit(this.unit) }, g.prototype.eval = function() { return this }, g.prototype.toColor = function() { return new f([this.value, this.value, this.value]) }, g.prototype.genCSS = function(a, b) { if (a && a.strictUnits && !this.unit.isSingular()) throw new Error( "Multiple units in dimension. Correct the units or use the unit function. Bad unit: " + this.unit.toString() ); var c = this.fround(a, this.value), d = String(c); if (0 !== c && 1e-6 > c && c > -1e-6 && (d = c.toFixed(20).replace(/0+$/, "")), a && a.compress) { if (0 === c && this.unit.isLength()) return void b.add(d); c > 0 && 1 > c && (d = d.substr(1)) } b.add(d), this.unit.genCSS(a, b) }, g.prototype.operate = function(a, b, c) { var d = this._operate(a, b, this.value, c.value), e = this.unit.clone(); if ("+" === b || "-" === b) if (0 === e.numerator.length && 0 === e.denominator.length) e = c.unit.clone(), this.unit.backupUnit && (e.backupUnit = this.unit.backupUnit); else if (0 === c.unit.numerator.length && 0 === e.denominator.length); else { if (c = c.convertTo(this.unit.usedUnits()), a.strictUnits && c.unit.toString() !== e.toString()) throw new Error( "Incompatible units. Change the units or use the unit function. Bad units: '" + e.toString() + "' and '" + c.unit.toString() + "'."); d = this._operate(a, b, this.value, c.value) } else "*" === b ? (e.numerator = e.numerator.concat(c.unit.numerator).sort(), e.denominator = e.denominator.concat( c.unit.denominator).sort(), e.cancel()) : "/" === b && (e.numerator = e.numerator.concat(c.unit.denominator) .sort(), e.denominator = e.denominator.concat(c.unit.numerator).sort(), e.cancel()); return new g(d, e) }, g.prototype.compare = function(a) { var b, d; if (!(a instanceof g)) return void 0; if (this.unit.isEmpty() || a.unit.isEmpty()) b = this, d = a; else if (b = this.unify(), d = a.unify(), 0 !== b.unit.compare(d.unit)) return void 0; return c.numericCompare(b.value, d.value) }, g.prototype.unify = function() { return this.convertTo({ length: "px", duration: "s", angle: "rad" }) }, g.prototype.convertTo = function(a) { var b, c, e, f, h, i = this.value, j = this.unit.clone(), k = {}; if ("string" == typeof a) { for (b in d) d[b].hasOwnProperty(a) && (k = {}, k[b] = a); a = k } h = function(a, b) { return e.hasOwnProperty(a) ? (b ? i /= e[a] / e[f] : i *= e[a] / e[f], f) : a }; for (c in a) a.hasOwnProperty(c) && (f = a[c], e = d[c], j.map(h)); return j.cancel(), new g(i, j) }, b.exports = g }, { "../data/unit-conversions": 13, "./color": 49, "./node": 69, "./unit": 78 }], 56: [function(a, b) { var c = a("./node"), d = a("./selector"), e = a("./ruleset"), f = function(a, b, c, e, f, g, h, i) { var j; if (this.name = a, this.value = b, c) for (Array.isArray(c) ? this.rules = c : (this.rules = [c], this.rules[0].selectors = new d([], null, null, this.index, f).createEmptySelectors()), j = 0; this.rules.length > j; j++) this.rules[j].allowImports = !0; this.index = e, this.currentFileInfo = f, this.debugInfo = g, this.isReferenced = h, this.isRooted = i || !1 }; f.prototype = new c, f.prototype.type = "Directive", f.prototype.accept = function(a) { var b = this.value, c = this.rules; c && (this.rules = a.visitArray(c)), b && (this.value = a.visit(b)) }, f.prototype.isRulesetLike = function() { return this.rules || !this.isCharset() }, f.prototype.isCharset = function() { return "@charset" === this.name }, f.prototype.genCSS = function(a, b) { var c = this.value, d = this.rules; b.add(this.name, this.currentFileInfo, this.index), c && (b.add(" "), c.genCSS(a, b)), d ? this.outputRuleset( a, b, d) : b.add(";") }, f.prototype.eval = function(a) { var b, c, d = this.value, e = this.rules; return b = a.mediaPath, c = a.mediaBlocks, a.mediaPath = [], a.mediaBlocks = [], d && (d = d.eval(a)), e && ( e = [e[0].eval(a)], e[0].root = !0), a.mediaPath = b, a.mediaBlocks = c, new f(this.name, d, e, this.index, this.currentFileInfo, this.debugInfo, this.isReferenced, this.isRooted) }, f.prototype.variable = function(a) { return this.rules ? e.prototype.variable.call(this.rules[0], a) : void 0 }, f.prototype.find = function() { return this.rules ? e.prototype.find.apply(this.rules[0], arguments) : void 0 }, f.prototype.rulesets = function() { return this.rules ? e.prototype.rulesets.apply(this.rules[0]) : void 0 }, f.prototype.markReferenced = function() { var a, b; if (this.isReferenced = !0, this.rules) for (b = this.rules, a = 0; b.length > a; a++) b[a].markReferenced && b[a].markReferenced() }, f.prototype.getIsReferenced = function() { return !this.currentFileInfo || !this.currentFileInfo.reference || this.isReferenced }, f.prototype.outputRuleset = function(a, b, c) { var d, e = c.length; if (a.tabLevel = (0 | a.tabLevel) + 1, a.compress) { for (b.add("{"), d = 0; e > d; d++) c[d].genCSS(a, b); return b.add("}"), void a.tabLevel-- } var f = " " + Array(a.tabLevel).join(" "), g = f + " "; if (e) { for (b.add(" {" + g), c[0].genCSS(a, b), d = 1; e > d; d++) b.add(g), c[d].genCSS(a, b); b.add(f + "}") } else b.add(" {" + f + "}"); a.tabLevel-- }, b.exports = f }, { "./node": 69, "./ruleset": 75, "./selector": 76 }], 57: [function(a, b) { var c = a("./node"), d = a("./paren"), e = a("./combinator"), f = function(a, b, c, d) { this.combinator = a instanceof e ? a : new e(a), this.value = "string" == typeof b ? b.trim() : b ? b : "", this.index = c, this.currentFileInfo = d }; f.prototype = new c, f.prototype.type = "Element", f.prototype.accept = function(a) { var b = this.value; this.combinator = a.visit(this.combinator), "object" == typeof b && (this.value = a.visit(b)) }, f.prototype.eval = function(a) { return new f(this.combinator, this.value.eval ? this.value.eval(a) : this.value, this.index, this.currentFileInfo) }, f.prototype.genCSS = function(a, b) { b.add(this.toCSS(a), this.currentFileInfo, this.index) }, f.prototype.toCSS = function(a) { a = a || {}; var b = this.value, c = a.firstSelector; return b instanceof d && (a.firstSelector = !0), b = b.toCSS ? b.toCSS(a) : b, a.firstSelector = c, "" === b && "&" === this.combinator.value.charAt(0) ? "" : this.combinator.toCSS(a) + b }, b.exports = f }, { "./combinator": 50, "./node": 69, "./paren": 71 }], 58: [function(a, b) { var c = a("./node"), d = a("./paren"), e = a("./comment"), f = function(a) { if (this.value = a, !a) throw new Error("Expression requires an array parameter") }; f.prototype = new c, f.prototype.type = "Expression", f.prototype.accept = function(a) { this.value = a.visitArray(this.value) }, f.prototype.eval = function(a) { var b, c = this.parens && !this.parensInOp, e = !1; return c && a.inParenthesis(), this.value.length > 1 ? b = new f(this.value.map(function(b) { return b.eval(a) })) : 1 === this.value.length ? (this.value[0].parens && !this.value[0].parensInOp && (e = !0), b = this.value[ 0].eval(a)) : b = this, c && a.outOfParenthesis(), this.parens && this.parensInOp && !a.isMathOn() && !e && (b = new d(b)), b }, f.prototype.genCSS = function(a, b) { for (var c = 0; this.value.length > c; c++) this.value[c].genCSS(a, b), this.value.length > c + 1 && b.add( " ") }, f.prototype.throwAwayComments = function() { this.value = this.value.filter(function(a) { return !(a instanceof e) }) }, f.prototype.markReferenced = function() { this.value.forEach(function(a) { a.markReferenced && a.markReferenced() }) }, b.exports = f }, { "./comment": 51, "./node": 69, "./paren": 71 }], 59: [function(a, b) { var c = a("./node"), d = function e(a, b, c) { switch (this.selector = a, this.option = b, this.index = c, this.object_id = e.next_id++, this.parent_ids = [ this.object_id ], b) { case "all": this.allowBefore = !0, this.allowAfter = !0; break; default: this.allowBefore = !1, this.allowAfter = !1 } }; d.next_id = 0, d.prototype = new c, d.prototype.type = "Extend", d.prototype.accept = function(a) { this.selector = a.visit(this.selector) }, d.prototype.eval = function(a) { return new d(this.selector.eval(a), this.option, this.index) }, d.prototype.clone = function() { return new d(this.selector, this.option, this.index) }, d.prototype.findSelfSelectors = function(a) { var b, c, d = []; for (b = 0; a.length > b; b++) c = a[b].elements, b > 0 && c.length && "" === c[0].combinator.value && (c[0].combinator .value = " "), d = d.concat(a[b].elements); this.selfSelectors = [{ elements: d }] }, b.exports = d }, { "./node": 69 }], 60: [function(a, b) { var c = a("./node"), d = a("./media"), e = a("./url"), f = a("./quoted"), g = a("./ruleset"), h = a("./anonymous"), i = function(a, b, c, d, e) { if (this.options = c, this.index = d, this.path = a, this.features = b, this.currentFileInfo = e, void 0 !== this.options.less || this.options.inline) this.css = !this.options.less || this.options.inline; else { var f = this.getPath(); f && /[#.&?/]css([?;].*)?$/.test(f) && (this.css = !0) } }; i.prototype = new c, i.prototype.type = "Import", i.prototype.accept = function(a) { this.features && (this.features = a.visit(this.features)), this.path = a.visit(this.path), this.options.plugin || this.options.inline || !this.root || (this.root = a.visit(this.root)) }, i.prototype.genCSS = function(a, b) { this.css && void 0 === this.path.currentFileInfo.reference && (b.add("@import ", this.currentFileInfo, this.index), this.path.genCSS(a, b), this.features && (b.add(" "), this.features.genCSS(a, b)), b.add(";")) }, i.prototype.getPath = function() { return this.path instanceof e ? this.path.value.value : this.path.value }, i.prototype.isVariableImport = function() { var a = this.path; return a instanceof e && (a = a.value), a instanceof f ? a.containsVariables() : !0 }, i.prototype.evalForImport = function(a) { var b = this.path; return b instanceof e && (b = b.value), new i(b.eval(a), this.features, this.options, this.index, this.currentFileInfo) }, i.prototype.evalPath = function(a) { var b = this.path.eval(a), c = this.currentFileInfo && this.currentFileInfo.rootpath; if (!(b instanceof e)) { if (c) { var d = b.value; d && a.isPathRelative(d) && (b.value = c + d) } b.value = a.normalizePath(b.value) } return b }, i.prototype.eval = function(a) { var b, c, e = this.features && this.features.eval(a); if (this.options.plugin) return c = a.frames[0] && a.frames[0].functionRegistry, c && this.root && this.root.functions && c.addMultiple(this.root.functions), []; if (this.skip && ("function" == typeof this.skip && (this.skip = this.skip()), this.skip)) return []; if (this.options.inline) { var f = new h(this.root, 0, { filename: this.importedFilename, reference: this.path.currentFileInfo && this.path.currentFileInfo.reference }, !0, !0, !1); return this.features ? new d([f], this.features.value) : [f] } if (this.css) { var j = new i(this.evalPath(a), e, this.options, this.index); if (!j.css && this.error) throw this.error; return j } return b = new g(null, this.root.rules.slice(0)), b.evalImports(a), this.features ? new d(b.rules, this.features .value) : b.rules }, b.exports = i }, { "./anonymous": 45, "./media": 65, "./node": 69, "./quoted": 72, "./ruleset": 75, "./url": 79 }], 61: [function(a, b) { var c = {}; c.Node = a("./node"), c.Alpha = a("./alpha"), c.Color = a("./color"), c.Directive = a("./directive"), c.DetachedRuleset = a("./detached-ruleset"), c.Operation = a("./operation"), c.Dimension = a("./dimension"), c.Unit = a("./unit"), c.Keyword = a("./keyword"), c.Variable = a("./variable"), c.Ruleset = a("./ruleset"), c.Element = a( "./element"), c.Attribute = a("./attribute"), c.Combinator = a("./combinator"), c.Selector = a("./selector"), c.Quoted = a("./quoted"), c.Expression = a("./expression"), c.Rule = a("./rule"), c.Call = a("./call"), c.URL = a("./url"), c.Import = a("./import"), c.mixin = { Call: a("./mixin-call"), Definition: a("./mixin-definition") }, c.Comment = a("./comment"), c.Anonymous = a("./anonymous"), c.Value = a("./value"), c.JavaScript = a( "./javascript"), c.Assignment = a("./assignment"), c.Condition = a("./condition"), c.Paren = a("./paren"), c.Media = a("./media"), c.UnicodeDescriptor = a("./unicode-descriptor"), c.Negative = a("./negative"), c.Extend = a( "./extend"), c.RulesetCall = a("./ruleset-call"), b.exports = c }, { "./alpha": 44, "./anonymous": 45, "./assignment": 46, "./attribute": 47, "./call": 48, "./color": 49, "./combinator": 50, "./comment": 51, "./condition": 52, "./detached-ruleset": 54, "./dimension": 55, "./directive": 56, "./element": 57, "./expression": 58, "./extend": 59, "./import": 60, "./javascript": 62, "./keyword": 64, "./media": 65, "./mixin-call": 66, "./mixin-definition": 67, "./negative": 68, "./node": 69, "./operation": 70, "./paren": 71, "./quoted": 72, "./rule": 73, "./ruleset": 75, "./ruleset-call": 74, "./selector": 76, "./unicode-descriptor": 77, "./unit": 78, "./url": 79, "./value": 80, "./variable": 81 }], 62: [function(a, b) { var c = a("./js-eval-node"), d = a("./dimension"), e = a("./quoted"), f = a("./anonymous"), g = function(a, b, c, d) { this.escaped = b, this.expression = a, this.index = c, this.currentFileInfo = d }; g.prototype = new c, g.prototype.type = "JavaScript", g.prototype.eval = function(a) { var b = this.evaluateJavaScript(this.expression, a); return "number" == typeof b ? new d(b) : "string" == typeof b ? new e('"' + b + '"', b, this.escaped, this.index) : new f(Array.isArray(b) ? b.join(", ") : b) }, b.exports = g }, { "./anonymous": 45, "./dimension": 55, "./js-eval-node": 63, "./quoted": 72 }], 63: [function(a, b) { var c = a("./node"), d = a("./variable"), e = function() {}; e.prototype = new c, e.prototype.evaluateJavaScript = function(a, b) { var c, e = this, f = {}; if (void 0 !== b.javascriptEnabled && !b.javascriptEnabled) throw { message: "You are using JavaScript, which has been disabled.", filename: this.currentFileInfo.filename, index: this.index }; a = a.replace(/@{([w-]+)}/g, function(a, c) { return e.jsify(new d("@" + c, e.index, e.currentFileInfo).eval(b)) }); try { a = new Function("return (" + a + ")") } catch (g) { throw { message: "JavaScript evaluation error: " + g.message + " from `" + a + "`", filename: this.currentFileInfo.filename, index: this.index } } var h = b.frames[0].variables(); for (var i in h) h.hasOwnProperty(i) && (f[i.slice(1)] = { value: h[i].value, toJS: function() { return this.value.eval(b).toCSS() } }); try { c = a.call(f) } catch (g) { throw { message: "JavaScript evaluation error: '" + g.name + ": " + g.message.replace(/["]/g, "'") + "'", filename: this.currentFileInfo.filename, index: this.index } } return c }, e.prototype.jsify = function(a) { return Array.isArray(a.value) && a.value.length > 1 ? "[" + a.value.map(function(a) { return a.toCSS() }).join(", ") + "]" : a.toCSS() }, b.exports = e }, { "./node": 69, "./variable": 81 }], 64: [function(a, b) { var c = a("./node"), d = function(a) { this.value = a }; d.prototype = new c, d.prototype.type = "Keyword", d.prototype.genCSS = function(a, b) { if ("%" === this.value) throw { type: "Syntax", message: "Invalid % without number" }; b.add(this.value) }, d.True = new d("true"), d.False = new d("false"), b.exports = d }, { "./node": 69 }], 65: [function(a, b) { var c = a("./ruleset"), d = a("./value"), e = a("./selector"), f = a("./anonymous"), g = a("./expression"), h = a("./directive"), i = function(a, b, f, g) { this.index = f, this.currentFileInfo = g; var h = new e([], null, null, this.index, this.currentFileInfo).createEmptySelectors(); this.features = new d(b), this.rules = [new c(h, a)], this.rules[0].allowImports = !0 }; i.prototype = new h, i.prototype.type = "Media", i.prototype.isRulesetLike = !0, i.prototype.accept = function( a) { this.features && (this.features = a.visit(this.features)), this.rules && (this.rules = a.visitArray(this.rules)) }, i.prototype.genCSS = function(a, b) { b.add("@media ", this.currentFileInfo, this.index), this.features.genCSS(a, b), this.outputRuleset(a, b, this .rules) }, i.prototype.eval = function(a) { a.mediaBlocks || (a.mediaBlocks = [], a.mediaPath = []); var b = new i(null, [], this.index, this.currentFileInfo); this.debugInfo && (this.rules[0].debugInfo = this.debugInfo, b.debugInfo = this.debugInfo); var c = !1; a.strictMath || (c = !0, a.strictMath = !0); try { b.features = this.features.eval(a) } finally { c && (a.strictMath = !1) } return a.mediaPath.push(b), a.mediaBlocks.push(b), this.rules[0].functionRegistry = a.frames[0].functionRegistry .inherit(), a.frames.unshift(this.rules[0]), b.rules = [this.rules[0].eval(a)], a.frames.shift(), a.mediaPath .pop(), 0 === a.mediaPath.length ? b.evalTop(a) : b.evalNested(a) }, i.prototype.evalTop = function(a) { var b = this; if (a.mediaBlocks.length > 1) { var d = new e([], null, null, this.index, this.currentFileInfo).createEmptySelectors(); b = new c(d, a.mediaBlocks), b.multiMedia = !0 } return delete a.mediaBlocks, delete a.mediaPath, b }, i.prototype.evalNested = function(a) { var b, e, h = a.mediaPath.concat([this]); for (b = 0; h.length > b; b++) e = h[b].features instanceof d ? h[b].features.value : h[b].features, h[b] = Array.isArray(e) ? e : [e]; return this.features = new d(this.permute(h).map(function(a) { for (a = a.map(function(a) { return a.toCSS ? a : new f(a) }), b = a.length - 1; b > 0; b--) a.splice(b, 0, new f("and")); return new g(a) })), new c([], []) }, i.prototype.permute = function(a) { if (0 === a.length) return []; if (1 === a.length) return a[0]; for (var b = [], c = this.permute(a.slice(1)), d = 0; c.length > d; d++) for (var e = 0; a[0].length > e; e++) b.push([a[0][e]].concat(c[d])); return b }, i.prototype.bubbleSelectors = function(a) { a && (this.rules = [new c(a.slice(0), [this.rules[0]])]) }, b.exports = i }, { "./anonymous": 45, "./directive": 56, "./expression": 58, "./ruleset": 75, "./selector": 76, "./value": 80 }], 66: [function(a, b) { var c = a("./node"), d = a("./selector"), e = a("./mixin-definition"), f = a("../functions/default"), g = function(a, b, c, e, f) { this.selector = new d(a), this.arguments = b || [], this.index = c, this.currentFileInfo = e, this.important = f }; g.prototype = new c, g.prototype.type = "MixinCall", g.prototype.accept = function(a) { this.selector && (this.selector = a.visit(this.selector)), this.arguments.length && (this.arguments = a.visitArray( this.arguments)) }, g.prototype.eval = function(a) { function b(b, c) { var d, e, g; for (d = 0; 2 > d; d++) { for (y[d] = !0, f.value(d), e = 0; c.length > e && y[d]; e++) g = c[e], g.matchCondition && (y[d] = y[d] && g.matchCondition(null, a)); b.matchCondition && (y[d] = y[d] && b.matchCondition(u, a)) } return y[0] || y[1] ? y[0] != y[1] ? y[1] ? B : C : A : z } var c, d, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = [], v = [], w = !1, x = [], y = [], z = -1, A = 0, B = 1, C = 2; for (k = 0; this.arguments.length > k; k++) if (h = this.arguments[k], i = h.value.eval(a), h.expand && Array.isArray(i.value)) for (i = i.value, l = 0; i.length > l; l++) u.push({ value: i[l] }); else u.push({ name: h.name, value: i }); for (t = function(b) { return b.matchArgs(null, a) }, k = 0; a.frames.length > k; k++) if ((c = a.frames[k].find(this.selector, null, t)).length > 0) { for (o = !0, l = 0; c.length > l; l++) { for (d = c[l].rule, g = c[l].path, n = !1, m = 0; a.frames.length > m; m++) if (!(d instanceof e) && d === (a.frames[m].originalRuleset || a.frames[m])) { n = !0; break } n || d.matchArgs(u, a) && (p = { mixin: d, group: b(d, g) }, p.group !== z && x.push(p), w = !0) } for (f.reset(), r = [0, 0, 0], l = 0; x.length > l; l++) r[x[l].group]++; if (r[A] > 0) q = C; else if (q = B, r[B] + r[C] > 1) throw { type: "Runtime", message: "Ambiguous use of `default()` found when matching for `" + this.format(u) + "`", index: this.index, filename: this.currentFileInfo.filename }; for (l = 0; x.length > l; l++) if (p = x[l].group, p === A || p === q) try { d = x[l].mixin, d instanceof e || (s = d.originalRuleset || d, d = new e("", [], d.rules, null, !1), d.originalRuleset = s), Array.prototype.push.apply(v, d.evalCall(a, u, this.important).rules) } catch (D) { throw { message: D.message, index: this.index, filename: this.currentFileInfo.filename, stack: D.stack } } if (w) { if (!this.currentFileInfo || !this.currentFileInfo.reference) for (k = 0; v.length > k; k++) j = v[k], j.markReferenced && j.markReferenced(); return v } } throw o ? { type: "Runtime", message: "No matching definition was found for `" + this.format(u) + "`", index: this.index, filename: this.currentFileInfo.filename } : { type: "Name", message: this.selector.toCSS().trim() + " is undefined", index: this.index, filename: this.currentFileInfo.filename } }, g.prototype.format = function(a) { return this.selector.toCSS().trim() + "(" + (a ? a.map(function(a) { var b = ""; return a.name && (b += a.name + ":"), b += a.value.toCSS ? a.value.toCSS() : "???" }).join(", ") : "") + ")" }, b.exports = g }, { "../functions/default": 19, "./mixin-definition": 67, "./node": 69, "./selector": 76 }], 67: [function(a, b) { var c = a("./selector"), d = a("./element"), e = a("./ruleset"), f = a("./rule"), g = a("./expression"), h = a("../contexts"), i = function(a, b, e, f, g, h) { this.name = a, this.selectors = [new c([new d(null, a, this.index, this.currentFileInfo)])], this.params = b, this.condition = f, this.variadic = g, this.arity = b.length, this.rules = e, this._lookups = {}; var i = []; this.required = b.reduce(function(a, b) { return !b.name || b.name && !b.value ? a + 1 : (i.push(b.name), a) }, 0), this.optionalParameters = i, this.frames = h }; i.prototype = new e, i.prototype.type = "MixinDefinition", i.prototype.evalFirst = !0, i.prototype.accept = function(a) { this.params && this.params.length && (this.params = a.visitArray(this.params)), this.rules = a.visitArray( this.rules), this.condition && (this.condition = a.visit(this.condition)) }, i.prototype.evalParams = function(a, b, c, d) { var i, j, k, l, m, n, o, p, q = new e(null, null), r = this.params.slice(0), s = 0; if (b.frames && b.frames[0] && b.frames[0].functionRegistry && (q.functionRegistry = b.frames[0].functionRegistry .inherit()), b = new h.Eval(b, [q].concat(b.frames)), c) for (c = c.slice(0), s = c.length, k = 0; s > k; k++) if (j = c[k], n = j && j.name) { for (o = !1, l = 0; r.length > l; l++) if (!d[l] && n === r[l].name) { d[l] = j.value.eval(a), q.prependRule(new f(n, j.value.eval(a))), o = !0; break } if (o) { c.splice(k, 1), k--; continue } throw { type: "Runtime", message: "Named argument for " + this.name + " " + c[k].name + " not found" } } for (p = 0, k = 0; r.length > k; k++) if (!d[k]) { if (j = c && c[p], n = r[k].name) if (r[k].variadic) { for (i = [], l = p; s > l; l++) i.push(c[l].value.eval(a)); q.prependRule(new f(n, new g(i).eval(a))) } else { if (m = j && j.value) m = m.eval(a); else { if (!r[k].value) throw { type: "Runtime", message: "wrong number of arguments for " + this.name + " (" + s + " for " + this.arity + ")" }; m = r[k].value.eval(b), q.resetCache() } q.prependRule(new f(n, m)), d[k] = m } if (r[k].variadic && c) for (l = p; s > l; l++) d[l] = c[l].value.eval(a); p++ } return q }, i.prototype.makeImportant = function() { var a = this.rules ? this.rules.map(function(a) { return a.makeImportant ? a.makeImportant(!0) : a }) : this.rules, b = new i(this.name, this.params, a, this.condition, this.variadic, this.frames); return b }, i.prototype.eval = function(a) { return new i(this.name, this.params, this.rules, this.condition, this.variadic, this.frames || a.frames.slice( 0)) }, i.prototype.evalCall = function(a, b, c) { var d, i, j = [], k = this.frames ? this.frames.concat(a.frames) : a.frames, l = this.evalParams(a, new h.Eval(a, k), b, j); return l.prependRule(new f("@arguments", new g(j).eval(a))), d = this.rules.slice(0), i = new e(null, d), i.originalRuleset = this, i = i.eval(new h.Eval(a, [this, l].concat(k))), c && (i = i.makeImportant()), i }, i.prototype.matchCondition = function(a, b) { return this.condition && !this.condition.eval(new h.Eval(b, [this.evalParams(b, new h.Eval(b, this.frames ? this.frames.concat(b.frames) : b.frames), a, [])].concat(this.frames || []).concat(b.frames))) ? !1 : !0 }, i.prototype.matchArgs = function(a, b) { var c, d = a && a.length || 0, e = this.optionalParameters, f = a ? a.reduce(function(a, b) { return e.indexOf(b.name) < 0 ? a + 1 : a }, 0) : 0; if (this.variadic) { if (this.required - 1 > f) return !1 } else { if (this.required > f) return !1; if (d > this.params.length) return !1 } c = Math.min(f, this.arity); for (var g = 0; c > g; g++) if (!this.params[g].name && !this.params[g].variadic && a[g].value.eval(b).toCSS() != this.params[g].value.eval( b).toCSS()) return !1; return !0 }, b.exports = i }, { "../contexts": 10, "./element": 57, "./expression": 58, "./rule": 73, "./ruleset": 75, "./selector": 76 }], 68: [function(a, b) { var c = a("./node"), d = a("./operation"), e = a("./dimension"), f = function(a) { this.value = a }; f.prototype = new c, f.prototype.type = "Negative", f.prototype.genCSS = function(a, b) { b.add("-"), this.value.genCSS(a, b) }, f.prototype.eval = function(a) { return a.isMathOn() ? new d("*", [new e(-1), this.value]).eval(a) : new f(this.value.eval(a)) }, b.exports = f }, { "./dimension": 55, "./node": 69, "./operation": 70 }], 69: [function(a, b) { var c = function() {}; c.prototype.toCSS = function(a) { var b = []; return this.genCSS(a, { add: function(a) { b.push(a) }, isEmpty: function() { return 0 === b.length } }), b.join("") }, c.prototype.genCSS = function(a, b) { b.add(this.value) }, c.prototype.accept = function(a) { this.value = a.visit(this.value) }, c.prototype.eval = function() { return this }, c.prototype._operate = function(a, b, c, d) { switch (b) { case "+": return c + d; case "-": return c - d; case "*": return c * d; case "/": return c / d } }, c.prototype.fround = function(a, b) { var c = a && a.numPrecision; return null == c ? b : Number((b + 2e-16).toFixed(c)) }, c.compare = function(a, b) { if (a.compare && "Quoted" !== b.type && "Anonymous" !== b.type) return a.compare(b); if (b.compare) return -b.compare(a); if (a.type !== b.type) return void 0; if (a = a.value, b = b.value, !Array.isArray(a)) return a === b ? 0 : void 0; if (a.length !== b.length) return void 0; for (var d = 0; a.length > d; d++) if (0 !== c.compare(a[d], b[d])) return void 0; return 0 }, c.numericCompare = function(a, b) { return b > a ? -1 : a === b ? 0 : a > b ? 1 : void 0 }, b.exports = c }, {}], 70: [function(a, b) { var c = a("./node"), d = a("./color"), e = a("./dimension"), f = function(a, b, c) { this.op = a.trim(), this.operands = b, this.isSpaced = c }; f.prototype = new c, f.prototype.type = "Operation", f.prototype.accept = function(a) { this.operands = a.visit(this.operands) }, f.prototype.eval = function(a) { var b = this.operands[0].eval(a), c = this.operands[1].eval(a); if (a.isMathOn()) { if (b instanceof e && c instanceof d && (b = b.toColor()), c instanceof e && b instanceof d && (c = c.toColor()), !b.operate) throw { type: "Operation", message: "Operation on an invalid type" }; return b.operate(a, this.op, c) } return new f(this.op, [b, c], this.isSpaced) }, f.prototype.genCSS = function(a, b) { this.operands[0].genCSS(a, b), this.isSpaced && b.add(" "), b.add(this.op), this.isSpaced && b.add(" "), this .operands[1].genCSS(a, b) }, b.exports = f }, { "./color": 49, "./dimension": 55, "./node": 69 }], 71: [function(a, b) { var c = a("./node"), d = function(a) { this.value = a }; d.prototype = new c, d.prototype.type = "Paren", d.prototype.genCSS = function(a, b) { b.add("("), this.value.genCSS(a, b), b.add(")") }, d.prototype.eval = function(a) { return new d(this.value.eval(a)) }, b.exports = d }, { "./node": 69 }], 72: [function(a, b) { var c = a("./node"), d = a("./js-eval-node"), e = a("./variable"), f = function(a, b, c, d, e) { this.escaped = null == c ? !0 : c, this.value = b || "", this.quote = a.charAt(0), this.index = d, this.currentFileInfo = e }; f.prototype = new d, f.prototype.type = "Quoted", f.prototype.genCSS = function(a, b) { this.escaped || b.add(this.quote, this.currentFileInfo, this.index), b.add(this.value), this.escaped || b.add( this.quote) }, f.prototype.containsVariables = function() { return this.value.match(/(`([^`]+)`)|@{([w-]+)}/) }, f.prototype.eval = function(a) { function b(a, b, c) { var d = a; do a = d, d = a.replace(b, c); while (a !== d); return d } var c = this, d = this.value, g = function(b, d) { return String(c.evaluateJavaScript(d, a)) }, h = function(b, d) { var g = new e("@" + d, c.index, c.currentFileInfo).eval(a, !0); return g instanceof f ? g.value : g.toCSS() }; return d = b(d, /`([^`]+)`/g, g), d = b(d, /@{([w-]+)}/g, h), new f(this.quote + d + this.quote, d, this.escaped, this.index, this.currentFileInfo) }, f.prototype.compare = function(a) { return "Quoted" !== a.type || this.escaped || a.escaped ? a.toCSS && this.toCSS() === a.toCSS() ? 0 : void 0 : c.numericCompare(this.value, a.value) }, b.exports = f }, { "./js-eval-node": 63, "./node": 69, "./variable": 81 }], 73: [function(a, b) { function c(a, b) { var c, d = "", e = b.length, f = { add: function(a) { d += a } }; for (c = 0; e > c; c++) b[c].eval(a).genCSS(a, f); return d } var d = a("./node"), e = a("./value"), f = a("./keyword"), g = function(a, b, c, f, g, h, i, j) { this.name = a, this.value = b instanceof d ? b : new e([b]), this.important = c ? " " + c.trim() : "", this.merge = f, this.index = g, this.currentFileInfo = h, this.inline = i || !1, this.variable = void 0 !== j ? j : a.charAt && "@" === a.charAt(0) }; g.prototype = new d, g.prototype.type = "Rule", g.prototype.genCSS = function(a, b) { b.add(this.name + (a.compress ? ":" : ": "), this.currentFileInfo, this.index); try { this.value.genCSS(a, b) } catch (c) { throw c.index = this.index, c.filename = this.currentFileInfo.filename, c } b.add(this.important + (this.inline || a.lastRule && a.compress ? "" : ";"), this.currentFileInfo, this.index) }, g.prototype.eval = function(a) { var b, d = !1, e = this.name, h = this.variable; "string" != typeof e && (e = 1 === e.length && e[0] instanceof f ? e[0].value : c(a, e), h = !1), "font" !== e || a.strictMath || (d = !0, a.strictMath = !0); try { if (a.importantScope.push({}), b = this.value.eval(a), !this.variable && "DetachedRuleset" === b.type) throw { message: "Rulesets cannot be evaluated on a property.", index: this.index, filename: this.currentFileInfo.filename }; var i = this.important, j = a.importantScope.pop(); return !i && j.important && (i = j.important), new g(e, b, i, this.merge, this.index, this.currentFileInfo, this.inline, h) } catch (k) { throw "number" != typeof k.index && (k.index = this.index, k.filename = this.currentFileInfo.filename), k } finally { d && (a.strictMath = !1) } }, g.prototype.makeImportant = function() { return new g(this.name, this.value, "!important", this.merge, this.index, this.currentFileInfo, this.inline) }; var h = function(a) { Array.isArray(a) ? a.forEach(function(a) { h(a) }) : a.markReferenced && a.markReferenced() }; g.prototype.markReferenced = function() { this.value && h(this.value) }, b.exports = g }, { "./keyword": 64, "./node": 69, "./value": 80 }], 74: [function(a, b) { var c = a("./node"), d = a("./variable"), e = function(a) { this.variable = a }; e.prototype = new c, e.prototype.type = "RulesetCall", e.prototype.eval = function(a) { var b = new d(this.variable).eval(a); return b.callEval(a) }, b.exports = e }, { "./node": 69, "./variable": 81 }], 75: [function(a, b) { var c = a("./node"), d = a("./rule"), e = a("./selector"), f = a("./element"), g = a("./paren"), h = a("../contexts"), i = a("../functions/function-registry"), j = a("../functions/default"), k = a("./debug-info"), l = function(a, b, c) { this.selectors = a, this.rules = b, this._lookups = {}, this.strictImports = c }; l.prototype = new c, l.prototype.type = "Ruleset", l.prototype.isRuleset = !0, l.prototype.isRulesetLike = !0, l.prototype.accept = function(a) { this.paths ? a.visitArray(this.paths, !0) : this.selectors && (this.selectors = a.visitArray(this.selectors)), this.rules && this.rules.length && (this.rules = a.visitArray(this.rules)) }, l.prototype.eval = function(a) { var b, c, e, f, g = this.selectors, h = !1; if (g && (c = g.length)) { for (b = [], j.error({ type: "Syntax", message: "it is currently only allowed in parametric mixin guards," }), f = 0; c > f; f++) e = g[f].eval(a), b.push(e), e.evaldCondition && (h = !0); j.reset() } else h = !0; var k, m, n = this.rules ? this.rules.slice(0) : null, o = new l(b, n, this.strictImports); o.originalRuleset = this, o.root = this.root, o.firstRoot = this.firstRoot, o.allowImports = this.allowImports, this.debugInfo && (o.debugInfo = this.debugInfo), h || (n.length = 0), o.functionRegistry = function(a) { for (var b, c = 0, d = a.length; c !== d; ++c) if (b = a[c].functionRegistry) return b; return i }(a.frames).inherit(); var p = a.frames; p.unshift(o); var q = a.selectors; q || (a.selectors = q = []), q.unshift(this.selectors), (o.root || o.allowImports || !o.strictImports) && o.evalImports( a); var r = o.rules, s = r ? r.length : 0; for (f = 0; s > f; f++) r[f].evalFirst && (r[f] = r[f].eval(a)); var t = a.mediaBlocks && a.mediaBlocks.length || 0; for (f = 0; s > f; f++) "MixinCall" === r[f].type ? (n = r[f].eval(a).filter(function(a) { return a instanceof d && a.variable ? !o.variable(a.name) : !0 }), r.splice.apply(r, [f, 1].concat(n)), s += n.length - 1, f += n.length - 1, o.resetCache()) : "RulesetCall" === r[f].type && (n = r[f].eval(a).rules.filter(function(a) { return a instanceof d && a.variable ? !1 : !0 }), r.splice.apply(r, [f, 1].concat(n)), s += n.length - 1, f += n.length - 1, o.resetCache()); for (f = 0; r.length > f; f++) k = r[f], k.evalFirst || (r[f] = k = k.eval ? k.eval(a) : k); for (f = 0; r.length > f; f++) if (k = r[f], k instanceof l && k.selectors && 1 === k.selectors.length && k.selectors[0].isJustParentSelector()) { r.splice(f--, 1); for (var u = 0; k.rules.length > u; u++) m = k.rules[u], m instanceof d && m.variable || r.splice(++f, 0, m) } if (p.shift(), q.shift(), a.mediaBlocks) for (f = t; a.mediaBlocks.length > f; f++) a.mediaBlocks[f].bubbleSelectors(b); return o }, l.prototype.evalImports = function(a) { var b, c, d = this.rules; if (d) for (b = 0; d.length > b; b++) "Import" === d[b].type && (c = d[b].eval(a), c && c.length ? (d.splice.apply( d, [b, 1].concat(c)), b += c.length - 1) : d.splice(b, 1, c), this.resetCache()) }, l.prototype.makeImportant = function() { var a = new l(this.selectors, this.rules.map(function(a) { return a.makeImportant ? a.makeImportant() : a }), this.strictImports); return a }, l.prototype.matchArgs = function(a) { return !a || 0 === a.length }, l.prototype.matchCondition = function(a, b) { var c = this.selectors[this.selectors.length - 1]; return c.evaldCondition ? c.condition && !c.condition.eval(new h.Eval(b, b.frames)) ? !1 : !0 : !1 }, l.prototype.resetCache = function() { this._rulesets = null, this._variables = null, this._lookups = {} }, l.prototype.variables = function() { return this._variables || (this._variables = this.rules ? this.rules.reduce(function(a, b) { if (b instanceof d && b.variable === !0 && (a[b.name] = b), "Import" === b.type && b.root && b.root.variables) { var c = b.root.variables(); for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) } return a }, {}) : {}), this._variables }, l.prototype.variable = function(a) { return this.variables()[a] }, l.prototype.rulesets = function() { if (!this.rules) return []; var a, b, c = [], d = this.rules, e = d.length; for (a = 0; e > a; a++) b = d[a], b.isRuleset && c.push(b); return c }, l.prototype.prependRule = function(a) { var b = this.rules; b ? b.unshift(a) : this.rules = [a] }, l.prototype.find = function(a, b, c) { b = b || this; var d, f, g = [], h = a.toCSS(); return h in this._lookups ? this._lookups[h] : (this.rulesets().forEach(function(h) { if (h !== b) for (var i = 0; h.selectors.length > i; i++) if (d = a.match(h.selectors[i])) { if (a.elements.length > d) { if (!c || c(h)) { f = h.find(new e(a.elements.slice(d)), b, c); for (var j = 0; f.length > j; ++j) f[j].path.push(h); Array.prototype.push.apply(g, f) } } else g.push({ rule: h, path: [] }); break } }), this._lookups[h] = g, g) }, l.prototype.genCSS = function(a, b) { function c(a) { return "boolean" == typeof a.isRulesetLike ? a.isRulesetLike : "function" == typeof a.isRulesetLike ? a.isRulesetLike() : !1 } var d, e, f, g, h, i = [], j = []; a.tabLevel = a.tabLevel || 0, this.root || a.tabLevel++; var l, m = a.compress ? "" : Array(a.tabLevel + 1).join(" "), n = a.compress ? "" : Array(a.tabLevel).join(" "), o = 0, p = 0; for (d = 0; this.rules.length > d; d++) g = this.rules[d], "Comment" === g.type ? (p === d && p++, j.push(g)) : g.isCharset && g.isCharset() ? (j.splice(o, 0, g), o++, p++) : "Import" === g.type ? (j.splice(p, 0, g), p++) : j.push(g); if (j = i.concat(j), !this.root) { f = k(a, this, n), f && (b.add(f), b.add(n)); var q, r = this.paths, s = r.length; for (l = a.compress ? "," : ", " + n, d = 0; s > d; d++) if (h = r[d], q = h.length) for (d > 0 && b.add(l), a.firstSelector = !0, h[0].genCSS(a, b), a.firstSelector = !1, e = 1; q > e; e++) h[ e].genCSS(a, b); b.add((a.compress ? "{" : " { ") + m) } for (d = 0; j.length > d; d++) { g = j[d], d + 1 === j.length && (a.lastRule = !0); var t = a.lastRule; c(g) && (a.lastRule = !1), g.genCSS ? g.genCSS(a, b) : g.value && b.add(g.value.toString()), a.lastRule = t, a.lastRule ? a.lastRule = !1 : b.add(a.compress ? "" : " " + m) } this.root || (b.add(a.compress ? "}" : " " + n + "}"), a.tabLevel--), b.isEmpty() || a.compress || !this.firstRoot || b.add(" ") }, l.prototype.markReferenced = function() { var a; if (this.selectors) for (a = 0; this.selectors.length > a; a++) this.selectors[a].markReferenced(); if (this.rules) for (a = 0; this.rules.length > a; a++) this.rules[a].markReferenced && this.rules[a].markReferenced() }, l.prototype.getIsReferenced = function() { var a, b, c, d; if (this.paths) for (a = 0; this.paths.length > a; a++) for (c = this.paths[a], b = 0; c.length > b; b++) if (c[b].getIsReferenced && c[b].getIsReferenced()) return !0; if (this.selectors) for (a = 0; this.selectors.length > a; a++) if (d = this.selectors[a], d.getIsReferenced && d.getIsReferenced()) return !0; return !1 }, l.prototype.joinSelectors = function(a, b, c) { for (var d = 0; c.length > d; d++) this.joinSelector(a, b, c[d]) }, l.prototype.joinSelector = function(a, b, c) { function d(a, b) { var c, d; if (0 === a.length) c = new g(a[0]); else { var h = []; for (d = 0; a.length > d; d++) h.push(new f(null, a[d], b.index, b.currentFileInfo)); c = new g(new e(h)) } return c } function h(a, b) { var c, d; return c = new f(null, a, b.index, b.currentFileInfo), d = new e([c]) } function i(a, b, c) { function e(a) { var b; return "Paren" !== a.value.type ? null : (b = a.value.value, "Selector" !== b.type ? null : b) } var g, m, n, o, p, q, r, s, t, u, v = !1; for (o = [], p = [ [] ], g = 0; c.elements.length > g; g++) if (s = c.elements[g], "&" !== s.value) { var w = e(s); if (null != w) { l(o, p); var x, y = [], z = []; for (x = i(y, b, w), v = v || x, n = 0; y.length > n; n++) { var A = h(d(y[n], s), s); k(p, [A], s, c, z) } p = z, o = [] } else o.push(s) } else { for (v = !0, q = [], l(o, p), m = 0; p.length > m; m++) if (r = p[m], 0 === b.length) r.length > 0 && r[0].elements.push(new f(s.combinator, "", s.index, s.currentFileInfo)), q.push(r); else for (n = 0; b.length > n; n++) { var B = j(r, b[n], s, c); q.push(B) } p = q, o = [] } for (l(o, p), g = 0; p.length > g; g++) t = p[g].length, t > 0 && (a.push(p[g]), u = p[g][t - 1], p[g][t - 1 ] = u.createDerived(u.elements, c.extendList)); return v } function j(a, b, c, d) { var e, g, h; if (e = [], a.length > 0 ? (e = a.slice(0), g = e.pop(), h = d.createDerived(g.elements.slice(0))) : h = d.createDerived( []), b.length > 0) { var i = c.combinator, j = b[0].elements[0]; i.emptyOrWhitespace && !j.combinator.emptyOrWhitespace && (i = j.combinator), h.elements.push(new f(i, j.value, c.index, c.currentFileInfo)), h.elements = h.elements.concat(b[0].elements.slice(1)) } return 0 !== h.elements.length && e.push(h), b.length > 1 && (e = e.concat(b.slice(1))), e } function k(a, b, c, d, e) { var f; for (f = 0; a.length > f; f++) { var g = j(a[f], b, c, d); e.push(g) } return e } function l(a, b) { var c, d; if (0 !== a.length) { if (0 === b.length) return void b.push([new e(a)]); for (c = 0; b.length > c; c++) d = b[c], d.length > 0 ? d[d.length - 1] = d[d.length - 1].createDerived(d[d .length - 1].elements.concat(a)) : d.push(new e(a)) } } var m, n, o; if (n = [], o = i(n, b, c), !o) if (b.length > 0) for (n = [], m = 0; b.length > m; m++) n.push(b[m].concat(c)); else n = [ [c] ]; for (m = 0; n.length > m; m++) a.push(n[m]) }, b.exports = l }, { "../contexts": 10, "../functions/default": 19, "../functions/function-registry": 21, "./debug-info": 53, "./element": 57, "./node": 69, "./paren": 71, "./rule": 73, "./selector": 76 }], 76: [function(a, b) { var c = a("./node"), d = a("./element"), e = function(a, b, c, d, e, f) { this.elements = a, this.extendList = b, this.condition = c, this.currentFileInfo = e || {}, this.isReferenced = f, c || (this.evaldCondition = !0) }; e.prototype = new c, e.prototype.type = "Selector", e.prototype.accept = function(a) { this.elements && (this.elements = a.visitArray(this.elements)), this.extendList && (this.extendList = a.visitArray( this.extendList)), this.condition && (this.condition = a.visit(this.condition)) }, e.prototype.createDerived = function(a, b, c) { c = null != c ? c : this.evaldCondition; var d = new e(a, b || this.extendList, null, this.index, this.currentFileInfo, this.isReferenced); return d.evaldCondition = c, d.mediaEmpty = this.mediaEmpty, d }, e.prototype.createEmptySelectors = function() { var a = new d("", "&", this.index, this.currentFileInfo), b = [new e([a], null, null, this.index, this.currentFileInfo)]; return b[0].mediaEmpty = !0, b }, e.prototype.match = function(a) { var b, c, d = this.elements, e = d.length; if (a.CacheElements(), b = a._elements.length, 0 === b || b > e) return 0; for (c = 0; b > c; c++) if (d[c].value !== a._elements[c]) return 0; return b }, e.prototype.CacheElements = function() { if (!this._elements) { var a = this.elements.map(function(a) { return a.combinator.value + (a.value.value || a.value) }).join("").match(/[,&#*.w-]([w-]|(\.))*/g); a ? "&" === a[0] && a.shift() : a = [], this._elements = a } }, e.prototype.isJustParentSelector = function() { return !this.mediaEmpty && 1 === this.elements.length && "&" === this.elements[0].value && (" " === this.elements[ 0].combinator.value || "" === this.elements[0].combinator.value) }, e.prototype.eval = function(a) { var b = this.condition && this.condition.eval(a), c = this.elements, d = this.extendList; return c = c && c.map(function(b) { return b.eval(a) }), d = d && d.map(function(b) { return b.eval(a) }), this.createDerived(c, d, b) }, e.prototype.genCSS = function(a, b) { var c, d; if (a && a.firstSelector || "" !== this.elements[0].combinator.value || b.add(" ", this.currentFileInfo, this .index), !this._css) for (c = 0; this.elements.length > c; c++) d = this.elements[c], d.genCSS(a, b) }, e.prototype.markReferenced = function() { this.isReferenced = !0 }, e.prototype.getIsReferenced = function() { return !this.currentFileInfo.reference || this.isReferenced }, e.prototype.getIsOutput = function() { return this.evaldCondition }, b.exports = e }, { "./element": 57, "./node": 69 }], 77: [function(a, b) { var c = a("./node"), d = function(a) { this.value = a }; d.prototype = new c, d.prototype.type = "UnicodeDescriptor", b.exports = d }, { "./node": 69 }], 78: [function(a, b) { var c = a("./node"), d = a("../data/unit-conversions"), e = function(a, b, c) { this.numerator = a ? a.slice(0).sort() : [], this.denominator = b ? b.slice(0).sort() : [], c ? this.backupUnit = c : a && a.length && (this.backupUnit = a[0]) }; e.prototype = new c, e.prototype.type = "Unit", e.prototype.clone = function() { return new e(this.numerator.slice(0), this.denominator.slice(0), this.backupUnit) }, e.prototype.genCSS = function(a, b) { var c = a && a.strictUnits; 1 === this.numerator.length ? b.add(this.numerator[0]) : !c && this.backupUnit ? b.add(this.backupUnit) : !c && this.denominator.length && b.add(this.denominator[0]) }, e.prototype.toString = function() { var a, b = this.numerator.join("*"); for (a = 0; this.denominator.length > a; a++) b += "/" + this.denominator[a]; return b }, e.prototype.compare = function(a) { return this.is(a.toString()) ? 0 : void 0 }, e.prototype.is = function(a) { return this.toString().toUpperCase() === a.toUpperCase() }, e.prototype.isLength = function() { return Boolean(this.toCSS().match(/px|em|%|in|cm|mm|pc|pt|ex/)) }, e.prototype.isEmpty = function() { return 0 === this.numerator.length && 0 === this.denominator.length }, e.prototype.isSingular = function() { return 1 >= this.numerator.length && 0 === this.denominator.length }, e.prototype.map = function(a) { var b; for (b = 0; this.numerator.length > b; b++) this.numerator[b] = a(this.numerator[b], !1); for (b = 0; this.denominator.length > b; b++) this.denominator[b] = a(this.denominator[b], !0) }, e.prototype.usedUnits = function() { var a, b, c = {}; b = function(b) { return a.hasOwnProperty(b) && !c[e] && (c[e] = b), b }; for (var e in d) d.hasOwnProperty(e) && (a = d[e], this.map(b)); return c }, e.prototype.cancel = function() { var a, b, c = {}; for (b = 0; this.numerator.length > b; b++) a = this.numerator[b], c[a] = (c[a] || 0) + 1; for (b = 0; this.denominator.length > b; b++) a = this.denominator[b], c[a] = (c[a] || 0) - 1; this.numerator = [], this.denominator = []; for (a in c) if (c.hasOwnProperty(a)) { var d = c[a]; if (d > 0) for (b = 0; d > b; b++) this.numerator.push(a); else if (0 > d) for (b = 0; - d > b; b++) this.denominator.push(a) } this.numerator.sort(), this.denominator.sort() }, b.exports = e }, { "../data/unit-conversions": 13, "./node": 69 }], 79: [function(a, b) { var c = a("./node"), d = function(a, b, c, d) { this.value = a, this.currentFileInfo = c, this.index = b, this.isEvald = d }; d.prototype = new c, d.prototype.type = "Url", d.prototype.accept = function(a) { this.value = a.visit(this.value) }, d.prototype.genCSS = function(a, b) { b.add("url("), this.value.genCSS(a, b), b.add(")") }, d.prototype.eval = function(a) { var b, c = this.value.eval(a); if (!this.isEvald && (b = this.currentFileInfo && this.currentFileInfo.rootpath, b && "string" == typeof c.value && a.isPathRelative(c.value) && (c.quote || (b = b.replace(/[()'"s]/g, function(a) { return "\" + a })), c.value = b + c.value), c.value = a.normalizePath(c.value), a.urlArgs && !c.value.match(/^s*data:/))) { var e = -1 === c.value.indexOf("?") ? "?" : "&", f = e + a.urlArgs; - 1 !== c.value.indexOf("#") ? c.value = c.value.replace("#", f + "#") : c.value += f } return new d(c, this.index, this.currentFileInfo, !0) }, b.exports = d }, { "./node": 69 }], 80: [function(a, b) { var c = a("./node"), d = function(a) { if (this.value = a, !a) throw new Error("Value requires an array argument") }; d.prototype = new c, d.prototype.type = "Value", d.prototype.accept = function(a) { this.value && (this.value = a.visitArray(this.value)) }, d.prototype.eval = function(a) { return 1 === this.value.length ? this.value[0].eval(a) : new d(this.value.map(function(b) { return b.eval(a) })) }, d.prototype.genCSS = function(a, b) { var c; for (c = 0; this.value.length > c; c++) this.value[c].genCSS(a, b), this.value.length > c + 1 && b.add(a && a .compress ? "," : ", ") }, b.exports = d }, { "./node": 69 }], 81: [function(a, b) { var c = a("./node"), d = function(a, b, c) { this.name = a, this.index = b, this.currentFileInfo = c || {} }; d.prototype = new c, d.prototype.type = "Variable", d.prototype.eval = function(a) { var b, c = this.name; if (0 === c.indexOf("@@") && (c = "@" + new d(c.slice(1), this.index, this.currentFileInfo).eval(a).value), this.evaluating) throw { type: "Name", message: "Recursive variable definition for " + c, filename: this.currentFileInfo.filename, index: this.index }; if (this.evaluating = !0, b = this.find(a.frames, function(b) { var d = b.variable(c); if (d) { if (d.important) { var e = a.importantScope[a.importantScope.length - 1]; e.important = d.important } return d.value.eval(a) } })) return this.evaluating = !1, b; throw { type: "Name", message: "variable " + c + " is undefined", filename: this.currentFileInfo.filename, index: this.index } }, d.prototype.find = function(a, b) { for (var c, d = 0; a.length > d; d++) if (c = b.call(a, a[d])) return c; return null }, b.exports = d }, { "./node": 69 }], 82: [function(a, b) { b.exports = { getLocation: function(a, b) { for (var c = a + 1, d = null, e = -1; --c >= 0 && " " !== b.charAt(c);) e++; return "number" == typeof a && (d = (b.slice(0, a).match(/ /g) || "").length), { line: d, column: e } } } }, {}], 83: [function(a, b) { var c = a("../tree"), d = a("./visitor"), e = a("../logger"), f = function() { this._visitor = new d(this), this.contexts = [], this.allExtendsStack = [ [] ] }; f.prototype = { run: function(a) { return a = this._visitor.visit(a), a.allExtends = this.allExtendsStack[0], a }, visitRule: function(a, b) { b.visitDeeper = !1 }, visitMixinDefinition: function(a, b) { b.visitDeeper = !1 }, visitRuleset: function(a) { if (!a.root) { var b, d, e, f, g = [], h = a.rules, i = h ? h.length : 0; for (b = 0; i > b; b++) a.rules[b] instanceof c.Extend && (g.push(h[b]), a.extendOnEveryPath = !0); var j = a.paths; for (b = 0; j.length > b; b++) { var k = j[b], l = k[k.length - 1], m = l.extendList; for (f = m ? m.slice(0).concat(g) : g, f && (f = f.map(function(a) { return a.clone() })), d = 0; f.length > d; d++) this.foundExtends = !0, e = f[d], e.findSelfSelectors(k), e.ruleset = a, 0 === d && (e.firstExtendOnThisSelectorPath = !0), this.allExtendsStack[this.allExtendsStack.length - 1] .push(e) } this.contexts.push(a.selectors) } }, visitRulesetOut: function(a) { a.root || (this.contexts.length = this.contexts.length - 1) }, visitMedia: function(a) { a.allExtends = [], this.allExtendsStack.push(a.allExtends) }, visitMediaOut: function() { this.allExtendsStack.length = this.allExtendsStack.length - 1 }, visitDirective: function(a) { a.allExtends = [], this.allExtendsStack.push(a.allExtends) }, visitDirectiveOut: function() { this.allExtendsStack.length = this.allExtendsStack.length - 1 } }; var g = function() { this._visitor = new d(this) }; g.prototype = { run: function(a) { var b = new f; if (this.extendIndicies = {}, b.run(a), !b.foundExtends) return a; a.allExtends = a.allExtends.concat(this.doExtendChaining(a.allExtends, a.allExtends)), this.allExtendsStack = [ a.allExtends ]; var c = this._visitor.visit(a); return this.checkExtendsForNonMatched(a.allExtends), c }, checkExtendsForNonMatched: function(a) { var b = this.extendIndicies; a.filter(function(a) { return !a.hasFoundMatches && 1 == a.parent_ids.length }).forEach(function(a) { var c = "_unknown_"; try { c = a.selector.toCSS({}) } catch (d) {} b[a.index + " " + c] || (b[a.index + " " + c] = !0, e.warn("extend '" + c + "' has no matches")) }) }, doExtendChaining: function(a, b, d) { var e, f, g, h, i, j, k, l, m = [], n = this; for (d = d || 0, e = 0; a.length > e; e++) for (f = 0; b.length > f; f++) j = a[e], k = b[f], j.parent_ids.indexOf(k.object_id) >= 0 || (i = [k.selfSelectors[ 0]], g = n.findMatch(j, i), g.length && (j.hasFoundMatches = !0, j.selfSelectors.forEach(function(a) { h = n.extendSelector(g, i, a), l = new c.Extend(k.selector, k.option, 0), l.selfSelectors = h, h[h.length - 1].extendList = [l], m.push(l), l.ruleset = k.ruleset, l.parent_ids = l.parent_ids.concat(k.parent_ids, j.parent_ids), k.firstExtendOnThisSelectorPath && (l.firstExtendOnThisSelectorPath = !0, k.ruleset.paths .push(h)) }))); if (m.length) { if (this.extendChainCount++, d > 100) { var o = "{unable to calculate}", p = "{unable to calculate}"; try { o = m[0].selfSelectors[0].toCSS(), p = m[0].selector.toCSS() } catch (q) {} throw { message: "extend circular reference detected. One of the circular extends is currently:" + o + ":extend(" + p + ")" } } return m.concat(n.doExtendChaining(m, b, d + 1)) } return m }, visitRule: function(a, b) { b.visitDeeper = !1 }, visitMixinDefinition: function(a, b) { b.visitDeeper = !1 }, visitSelector: function(a, b) { b.visitDeeper = !1 }, visitRuleset: function(a) { if (!a.root) { var b, c, d, e, f = this.allExtendsStack[this.allExtendsStack.length - 1], g = [], h = this; for (d = 0; f.length > d; d++) for (c = 0; a.paths.length > c; c++) if (e = a.paths[c], !a.extendOnEveryPath) { var i = e[e.length - 1].extendList; i && i.length || (b = this.findMatch(f[d], e), b.length && (f[d].hasFoundMatches = !0, f[d].selfSelectors .forEach(function(a) { g.push(h.extendSelector(b, e, a)) }))) } a.paths = a.paths.concat(g) } }, findMatch: function(a, b) { var c, d, e, f, g, h, i, j = this, k = a.selector.elements, l = [], m = []; for (c = 0; b.length > c; c++) for (d = b[c], e = 0; d.elements.length > e; e++) for (f = d.elements[e], (a.allowBefore || 0 === c && 0 === e) && l.push({ pathIndex: c, index: e, matched: 0, initialCombinator: f.combinator }), h = 0; l.length > h; h++) i = l[h], g = f.combinator.value, "" === g && 0 === e && (g = " "), !j.isElementValuesEqual( k[i.matched].value, f.value) || i.matched > 0 && k[i.matched].combinator.value !== g ? i = null : i.matched++, i && (i.finished = i.matched === k.length, i.finished && !a.allowAfter && (d.elements.length > e + 1 || b.length > c + 1) && (i = null)), i ? i.finished && (i.length = k.length, i.endPathIndex = c, i.endPathElementIndex = e + 1, l.length = 0, m.push(i)) : (l.splice(h, 1), h--); return m }, isElementValuesEqual: function(a, b) { if ("string" == typeof a || "string" == typeof b) return a === b; if (a instanceof c.Attribute) return a.op !== b.op || a.key !== b.key ? !1 : a.value && b.value ? (a = a.value .value || a.value, b = b.value.value || b.value, a === b) : a.value || b.value ? !1 : !0; if (a = a.value, b = b.value, a instanceof c.Selector) { if (!(b instanceof c.Selector) || a.elements.length !== b.elements.length) return !1; for (var d = 0; a.elements.length > d; d++) { if (a.elements[d].combinator.value !== b.elements[d].combinator.value && (0 !== d || (a.elements[d].combinator .value || " ") !== (b.elements[d].combinator.value || " "))) return !1; if (!this.isElementValuesEqual(a.elements[d].value, b.elements[d].value)) return !1 } return !0 } return !1 }, extendSelector: function(a, b, d) { var e, f, g, h, i, j = 0, k = 0, l = []; for (e = 0; a.length > e; e++) h = a[e], f = b[h.pathIndex], g = new c.Element(h.initialCombinator, d.elements[ 0].value, d.elements[0].index, d.elements[0].currentFileInfo), h.pathIndex > j && k > 0 && (l[l.length - 1].elements = l[l.length - 1].elements.concat(b[j].elements.slice(k)), k = 0, j++), i = f.elements.slice( k, h.index).concat([g]).concat(d.elements.slice(1)), j === h.pathIndex && e > 0 ? l[l.length - 1].elements = l[l.length - 1].elements.concat(i) : (l = l.concat(b.slice(j, h.pathIndex)), l.push(new c.Selector(i))), j = h.endPathIndex, k = h.endPathElementIndex, k >= b[j].elements.length && (k = 0, j++); return b.length > j && k > 0 && (l[l.length - 1].elements = l[l.length - 1].elements.concat(b[j].elements.slice( k)), j++), l = l.concat(b.slice(j, b.length)) }, visitRulesetOut: function() {}, visitMedia: function(a) { var b = a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]); b = b.concat(this.doExtendChaining(b, a.allExtends)), this.allExtendsStack.push(b) }, visitMediaOut: function() { var a = this.allExtendsStack.length - 1; this.allExtendsStack.length = a }, visitDirective: function(a) { var b = a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]); b = b.concat(this.doExtendChaining(b, a.allExtends)), this.allExtendsStack.push(b) }, visitDirectiveOut: function() { var a = this.allExtendsStack.length - 1; this.allExtendsStack.length = a } }, b.exports = g }, { "../logger": 32, "../tree": 61, "./visitor": 89 }], 84: [function(a, b) { function c(a) { this.imports = [], this.variableImports = [], this._onSequencerEmpty = a, this._currentDepth = 0 } c.prototype.addImport = function(a) { var b = this, c = { callback: a, args: null, isReady: !1 }; return this.imports.push(c), function() { c.args = Array.prototype.slice.call(arguments, 0), c.isReady = !0, b.tryRun() } }, c.prototype.addVariableImport = function(a) { this.variableImports.push(a) }, c.prototype.tryRun = function() { this._currentDepth++; try { for (;;) { for (; this.imports.length > 0;) { var a = this.imports[0]; if (!a.isReady) return; this.imports = this.imports.slice(1), a.callback.apply(null, a.args) } if (0 === this.variableImports.length) break; var b = this.variableImports[0]; this.variableImports = this.variableImports.slice(1), b() } } finally { this._currentDepth-- } 0 === this._currentDepth && this._onSequencerEmpty && this._onSequencerEmpty() }, b.exports = c }, {}], 85: [function(a, b) { var c = a("../contexts"), d = a("./visitor"), e = a("./import-sequencer"), f = function(a, b) { this._visitor = new d(this), this._importer = a, this._finish = b, this.context = new c.Eval, this.importCount = 0, this.onceFileDetectionMap = {}, this.recursionDetector = {}, this._sequencer = new e(this._onSequencerEmpty .bind(this)) }; f.prototype = { isReplacing: !1, run: function(a) { try { this._visitor.visit(a) } catch (b) { this.error = b } this.isFinished = !0, this._sequencer.tryRun() }, _onSequencerEmpty: function() { this.isFinished && this._finish(this.error) }, visitImport: function(a, b) { var d = a.options.inline; if (!a.css || d) { var e = new c.Eval(this.context, this.context.frames.slice(0)), f = e.frames[0]; this.importCount++, a.isVariableImport() ? this._sequencer.addVariableImport(this.processImportNode.bind( this, a, e, f)) : this.processImportNode(a, e, f) } b.visitDeeper = !1 }, processImportNode: function(a, b, c) { var d, e = a.options.inline; try { d = a.evalForImport(b) } catch (f) { f.filename || (f.index = a.index, f.filename = a.currentFileInfo.filename), a.css = !0, a.error = f } if (!d || d.css && !e) this.importCount--, this.isFinished && this._sequencer.tryRun(); else { d.options.multiple && (b.importMultiple = !0); for (var g = void 0 === d.css, h = 0; c.rules.length > h; h++) if (c.rules[h] === a) { c.rules[h] = d; break } var i = this.onImported.bind(this, d, b), j = this._sequencer.addImport(i); this._importer.push(d.getPath(), g, d.currentFileInfo, d.options, j) } }, onImported: function(a, b, c, d, e, f) { c && (c.filename || (c.index = a.index, c.filename = a.currentFileInfo.filename), this.error = c); var g = this, h = a.options.inline, i = a.options.plugin, j = a.options.optional, k = e || f in g.recursionDetector; if (b.importMultiple || (a.skip = k ? !0 : function() { return f in g.onceFileDetectionMap ? !0 : (g.onceFileDetectionMap[f] = !0, !1) }), !f && j && (a.skip = !0), d && (a.root = d, a.importedFilename = f, !(h || i || !b.importMultiple && k))) { g.recursionDetector[f] = !0; var l = this.context; this.context = b; try { this._visitor.visit(d) } catch (c) { this.error = c } this.context = l } g.importCount--, g.isFinished && g._sequencer.tryRun() }, visitRule: function(a, b) { "DetachedRuleset" === a.value.type ? this.context.frames.unshift(a) : b.visitDeeper = !1 }, visitRuleOut: function(a) { "DetachedRuleset" === a.value.type && this.context.frames.shift() }, visitDirective: function(a) { this.context.frames.unshift(a) }, visitDirectiveOut: function() { this.context.frames.shift() }, visitMixinDefinition: function(a) { this.context.frames.unshift(a) }, visitMixinDefinitionOut: function() { this.context.frames.shift() }, visitRuleset: function(a) { this.context.frames.unshift(a) }, visitRulesetOut: function() { this.context.frames.shift() }, visitMedia: function(a) { this.context.frames.unshift(a.rules[0]) }, visitMediaOut: function() { this.context.frames.shift() } }, b.exports = f }, { "../contexts": 10, "./import-sequencer": 84, "./visitor": 89 }], 86: [function(a, b) { var c = { Visitor: a("./visitor"), ImportVisitor: a("./import-visitor"), ExtendVisitor: a("./extend-visitor"), JoinSelectorVisitor: a("./join-selector-visitor"), ToCSSVisitor: a("./to-css-visitor") }; b.exports = c }, { "./extend-visitor": 83, "./import-visitor": 85, "./join-selector-visitor": 87, "./to-css-visitor": 88, "./visitor": 89 }], 87: [function(a, b) { var c = a("./visitor"), d = function() { this.contexts = [ [] ], this._visitor = new c(this) }; d.prototype = { run: function(a) { return this._visitor.visit(a) }, visitRule: function(a, b) { b.visitDeeper = !1 }, visitMixinDefinition: function(a, b) { b.visitDeeper = !1 }, visitRuleset: function(a) { var b, c = this.contexts[this.contexts.length - 1], d = []; this.contexts.push(d), a.root || (b = a.selectors, b && (b = b.filter(function(a) { return a.getIsOutput() }), a.selectors = b.length ? b : b = null, b && a.joinSelectors(d, c, b)), b || (a.rules = null), a.paths = d) }, visitRulesetOut: function() { this.contexts.length = this.contexts.length - 1 }, visitMedia: function(a) { var b = this.contexts[this.contexts.length - 1]; a.rules[0].root = 0 === b.length || b[0].multiMedia }, visitDirective: function(a) { var b = this.contexts[this.contexts.length - 1]; a.rules && a.rules.length && (a.rules[0].root = a.isRooted || 0 === b.length || null) } }, b.exports = d }, { "./visitor": 89 }], 88: [function(a, b) { var c = a("../tree"), d = a("./visitor"), e = function(a) { this._visitor = new d(this), this._context = a }; e.prototype = { isReplacing: !0, run: function(a) { return this._visitor.visit(a) }, visitRule: function(a) { return a.variable ? void 0 : a }, visitMixinDefinition: function(a) { a.frames = [] }, visitExtend: function() {}, visitComment: function(a) { return a.isSilent(this._context) ? void 0 : a }, visitMedia: function(a, b) { return a.accept(this._visitor), b.visitDeeper = !1, a.rules.length ? a : void 0 }, visitImport: function(a) { return void 0 !== a.path.currentFileInfo.reference && a.css ? void 0 : a }, visitDirective: function(a, b) { function d(a) { var b, c = a.rules; 1 !== c.length || c[0].paths && 0 !== c[0].paths.length || (c = c[0].rules); for (var d = 0; c.length > d; d++) if (b = c[d], b.getIsReferenced && b.getIsReferenced()) return !0; return !1 } if ("@charset" === a.name) { if (!a.getIsReferenced()) return; if (this.charset) { if (a.debugInfo) { var e = new c.Comment("/* " + a.toCSS(this._context).replace(/ /g, "") + " */ "); return e.debugInfo = a.debugInfo, this._visitor.visit(e) } return } this.charset = !0 } if (a.rules && a.rules.length) { if (this._mergeRules(a.rules[0].rules), a.accept(this._visitor), b.visitDeeper = !1, a.getIsReferenced()) return a; if (!a.rules || !a.rules.length) return; if (d(a)) return a.markReferenced(), a } else if (a.getIsReferenced()) return a }, checkPropertiesInRoot: function(a) { for (var b, d = 0; a.length > d; d++) if (b = a[d], b instanceof c.Rule && !b.variable) throw { message: "properties must be inside selector blocks, they cannot be in the root.", index: b.index, filename: b.currentFileInfo ? b.currentFileInfo.filename : null } }, visitRuleset: function(a, b) { var d, e = []; if (a.firstRoot && this.checkPropertiesInRoot(a.rules), a.root) a.accept(this._visitor), b.visitDeeper = !1, (a.firstRoot || a.rules && a.rules.length > 0) && e.splice(0, 0, a); else { a.paths && (a.paths = a.paths.filter(function(a) { var b; for (" " === a[0].elements[0].combinator.value && (a[0].elements[0].combinator = new c.Combinator("")), b = 0; a.length > b; b++) if (a[b].getIsReferenced() && a[b].getIsOutput()) return !0; return !1 })); for (var f = a.rules, g = f ? f.length : 0, h = 0; g > h;) d = f[h], d && d.rules ? (e.push(this._visitor.visit( d)), f.splice(h, 1), g--) : h++; g > 0 ? a.accept(this._visitor) : a.rules = null, b.visitDeeper = !1, f = a.rules, f && (this._mergeRules( f), f = a.rules), f && (this._removeDuplicateRules(f), f = a.rules), f && f.length > 0 && a.paths.length > 0 && e.splice(0, 0, a) } return 1 === e.length ? e[0] : e }, _removeDuplicateRules: function(a) { if (a) { var b, d, e, f = {}; for (e = a.length - 1; e >= 0; e--) if (d = a[e], d instanceof c.Rule) if (f[d.name]) { b = f[d.name], b instanceof c.Rule && (b = f[d.name] = [f[d.name].toCSS(this._context)]); var g = d.toCSS(this._context); - 1 !== b.indexOf(g) ? a.splice(e, 1) : b.push(g) } else f[d.name] = d } }, _mergeRules: function(a) { if (a) { for (var b, d, e, f = {}, g = 0; a.length > g; g++) d = a[g], d instanceof c.Rule && d.merge && (e = [d.name, d.important ? "!" : "" ].join(","), f[e] ? a.splice(g--, 1) : f[e] = [], f[e].push(d)); Object.keys(f).map(function(a) { function e(a) { return new c.Expression(a.map(function(a) { return a.value })) } function g(a) { return new c.Value(a.map(function(a) { return a })) } if (b = f[a], b.length > 1) { d = b[0]; var h = [], i = []; b.map(function(a) { "+" === a.merge && (i.length > 0 && h.push(e(i)), i = []), i.push(a) }), h.push(e(i)), d.value = g(h) } }) } }, visitAnonymous: function(a) { return a.getIsReferenced() ? (a.accept(this._visitor), a) : void 0 } }, b.exports = e }, { "../tree": 61, "./visitor": 89 }], 89: [function(a, b) { function c(a) { return a } function d(a, b) { var c, e; for (c in a) if (a.hasOwnProperty(c)) switch (e = a[c], typeof e) { case "function": e.prototype && e.prototype.type && (e.prototype.typeIndex = b++); break; case "object": b = d(e, b) } return b } var e = a("../tree"), f = { visitDeeper: !0 }, g = !1, h = function(a) { this._implementation = a, this._visitFnCache = [], g || (d(e, 1), g = !0) }; h.prototype = { visit: function(a) { if (!a) return a; var b = a.typeIndex; if (!b) return a; var d, e = this._visitFnCache, g = this._implementation, h = b << 1, i = 1 | h, j = e[h], k = e[i], l = f; if (l.visitDeeper = !0, j || (d = "visit" + a.type, j = g[d] || c, k = g[d + "Out"] || c, e[h] = j, e[i] = k), j !== c) { var m = j.call(g, a, l); g.isReplacing && (a = m) } return l.visitDeeper && a && a.accept && a.accept(this), k != c && k.call(g, a), a }, visitArray: function(a, b) { if (!a) return a; var c, d = a.length; if (b || !this._implementation.isReplacing) { for (c = 0; d > c; c++) this.visit(a[c]); return a } var e = []; for (c = 0; d > c; c++) { var f = this.visit(a[c]); void 0 !== f && (f.splice ? f.length && this.flatten(f, e) : e.push(f)) } return e }, flatten: function(a, b) { b || (b = []); var c, d, e, f, g, h; for (d = 0, c = a.length; c > d; d++) if (e = a[d], void 0 !== e) if (e.splice) for (g = 0, f = e.length; f > g; g++) h = e[g], void 0 !== h && (h.splice ? h.length && this.flatten(h, b) : b.push(h)); else b.push(e); return b } }, b.exports = h }, { "../tree": 61 }], 90: [function(a, b) { function c() { if (!g) { g = !0; for (var a, b = f.length; b;) { a = f, f = []; for (var c = -1; ++c < b;) a[c](); b = f.length } g = !1 } } function d() {} var e = b.exports = {}, f = [], g = !1; e.nextTick = function(a) { f.push(a), g || setTimeout(c, 0) }, e.title = "browser", e.browser = !0, e.env = {}, e.argv = [], e.version = "", e.versions = {}, e.on = d, e.addListener = d, e.once = d, e.off = d, e.removeListener = d, e.removeAllListeners = d, e.emit = d, e.binding = function() { throw new Error("process.binding is not supported") }, e.cwd = function() { return "/" }, e.chdir = function() { throw new Error("process.chdir is not supported") }, e.umask = function() { return 0 } }, {}], 91: [function(a, b) { "use strict"; function c(a) { function b(a) { return null === i ? void k.push(a) : void f(function() { var b = i ? a.onFulfilled : a.onRejected; if (null === b) return void(i ? a.resolve : a.reject)(j); var c; try { c = b(j) } catch (d) { return void a.reject(d) } a.resolve(c) }) } function c(a) { try { if (a === l) throw new TypeError("A promise cannot be resolved with itself."); if (a && ("object" == typeof a || "function" == typeof a)) { var b = a.then; if ("function" == typeof b) return void e(b.bind(a), c, g) } i = !0, j = a, h() } catch (d) { g(d) } } function g(a) { i = !1, j = a, h() } function h() { for (var a = 0, c = k.length; c > a; a++) b(k[a]); k = null } if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof a) throw new TypeError("not a function"); var i = null, j = null, k = [], l = this; this.then = function(a, c) { return new l.constructor(function(e, f) { b(new d(a, c, e, f)) }) }, e(a, c, g) } function d(a, b, c, d) { this.onFulfilled = "function" == typeof a ? a : null, this.onRejected = "function" == typeof b ? b : null, this.resolve = c, this.reject = d } function e(a, b, c) { var d = !1; try { a(function(a) { d || (d = !0, b(a)) }, function(a) { d || (d = !0, c(a)) }) } catch (e) { if (d) return; d = !0, c(e) } } var f = a("asap"); b.exports = c }, { asap: 93 }], 92: [function(a, b) { "use strict"; function c(a) { this.then = function(b) { return "function" != typeof b ? this : new d(function(c, d) { e(function() { try { c(b(a)) } catch (e) { d(e) } }) }) } } var d = a("./core.js"), e = a("asap"); b.exports = d, c.prototype = d.prototype; var f = new c(!0), g = new c(!1), h = new c(null), i = new c(void 0), j = new c(0), k = new c(""); d.resolve = function(a) { if (a instanceof d) return a; if (null === a) return h; if (void 0 === a) return i; if (a === !0) return f; if (a === !1) return g; if (0 === a) return j; if ("" === a) return k; if ("object" == typeof a || "function" == typeof a) try { var b = a.then; if ("function" == typeof b) return new d(b.bind(a)) } catch (e) { return new d(function(a, b) { b(e) }) } return new c(a) }, d.all = function(a) { var b = Array.prototype.slice.call(a); return new d(function(a, c) { function d(f, g) { try { if (g && ("object" == typeof g || "function" == typeof g)) { var h = g.then; if ("function" == typeof h) return void h.call(g, function(a) { d(f, a) }, c) } b[f] = g, 0 === --e && a(b) } catch (i) { c(i) } } if (0 === b.length) return a([]); for (var e = b.length, f = 0; b.length > f; f++) d(f, b[f]) }) }, d.reject = function(a) { return new d(function(b, c) { c(a) }) }, d.race = function(a) { return new d(function(b, c) { a.forEach(function(a) { d.resolve(a).then(b, c) }) }) }, d.prototype["catch"] = function(a) { return this.then(null, a) } }, { "./core.js": 91, asap: 93 }], 93: [function(a, b) { (function(a) { function c() { for (; e.next;) { e = e.next; var a = e.task; e.task = void 0; var b = e.domain; b && (e.domain = void 0, b.enter()); try { a() } catch (d) { if (i) throw b && b.exit(), setTimeout(c, 0), b && b.enter(), d; setTimeout(function() { throw d }, 0) } b && b.exit() } g = !1 } function d(b) { f = f.next = { task: b, domain: i && a.domain, next: null }, g || (g = !0, h()) } var e = { task: void 0, next: null }, f = e, g = !1, h = void 0, i = !1; if ("undefined" != typeof a && a.nextTick) i = !0, h = function() { a.nextTick(c) }; else if ("function" == typeof setImmediate) h = "undefined" != typeof window ? setImmediate.bind(window, c) : function() { setImmediate(c) }; else if ("undefined" != typeof MessageChannel) { var j = new MessageChannel; j.port1.onmessage = c, h = function() { j.port2.postMessage(0) } } else h = function() { setTimeout(c, 0) }; b.exports = d }).call(this, a("_process")) }, { _process: 90 }], 94: [function() { "function" != typeof Promise.prototype.done && (Promise.prototype.done = function() { var a = arguments.length ? this.then.apply(this, arguments) : this; a.then(null, function(a) { setTimeout(function() { throw a }, 0) }) }) }, {}], 95: [function(a) { a("asap"); "undefined" == typeof Promise && (Promise = a("./lib/core.js"), a("./lib/es6-extensions.js")), a( "./polyfill-done.js") }, { "./lib/core.js": 91, "./lib/es6-extensions.js": 92, "./polyfill-done.js": 94, asap: 93 }] }, {}, [2])(2) });
效果: