UNPKG

aurelia-bootstrap

Version:
1,208 lines (1,197 loc) 298 kB
!function(e){function r(e,r,o){return 4===arguments.length?t.apply(this,arguments):void n(e,{declarative:!0,deps:r,declare:o})}function t(e,r,t,o){n(e,{declarative:!1,deps:r,executingRequire:t,execute:o})}function n(e,r){r.name=e,e in p||(p[e]=r),r.normalizedDeps=r.deps}function o(e,r){if(r[e.groupIndex]=r[e.groupIndex]||[],-1==v.call(r[e.groupIndex],e)){r[e.groupIndex].push(e);for(var t=0,n=e.normalizedDeps.length;n>t;t++){var a=e.normalizedDeps[t],u=p[a];if(u&&!u.evaluated){var d=e.groupIndex+(u.declarative!=e.declarative);if(void 0===u.groupIndex||u.groupIndex<d){if(void 0!==u.groupIndex&&(r[u.groupIndex].splice(v.call(r[u.groupIndex],u),1),0==r[u.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");u.groupIndex=d}o(u,r)}}}}function a(e){var r=p[e];r.groupIndex=0;var t=[];o(r,t);for(var n=!!r.declarative==t.length%2,a=t.length-1;a>=0;a--){for(var u=t[a],i=0;i<u.length;i++){var s=u[i];n?d(s):l(s)}n=!n}}function u(e){return x[e]||(x[e]={name:e,dependencies:[],exports:{},importers:[]})}function d(r){if(!r.module){var t=r.module=u(r.name),n=r.module.exports,o=r.declare.call(e,function(e,r){if(t.locked=!0,"object"==typeof e)for(var o in e)n[o]=e[o];else n[e]=r;for(var a=0,u=t.importers.length;u>a;a++){var d=t.importers[a];if(!d.locked)for(var i=0;i<d.dependencies.length;++i)d.dependencies[i]===t&&d.setters[i](n)}return t.locked=!1,r},r.name);t.setters=o.setters,t.execute=o.execute;for(var a=0,i=r.normalizedDeps.length;i>a;a++){var l,s=r.normalizedDeps[a],c=p[s],v=x[s];v?l=v.exports:c&&!c.declarative?l=c.esModule:c?(d(c),v=c.module,l=v.exports):l=f(s),v&&v.importers?(v.importers.push(t),t.dependencies.push(v)):t.dependencies.push(null),t.setters[a]&&t.setters[a](l)}}}function i(e){var r,t=p[e];if(t)t.declarative?c(e,[]):t.evaluated||l(t),r=t.module.exports;else if(r=f(e),!r)throw new Error("Unable to load dependency "+e+".");return(!t||t.declarative)&&r&&r.__useDefault?r["default"]:r}function l(r){if(!r.module){var t={},n=r.module={exports:t,id:r.name};if(!r.executingRequire)for(var o=0,a=r.normalizedDeps.length;a>o;o++){var u=r.normalizedDeps[o],d=p[u];d&&l(d)}r.evaluated=!0;var c=r.execute.call(e,function(e){for(var t=0,n=r.deps.length;n>t;t++)if(r.deps[t]==e)return i(r.normalizedDeps[t]);throw new TypeError("Module "+e+" not declared as a dependency.")},t,n);c&&(n.exports=c),t=n.exports,t&&t.__esModule?r.esModule=t:r.esModule=s(t)}}function s(r){if(r===e)return r;var t={};if("object"==typeof r||"function"==typeof r)if(g){var n;for(var o in r)(n=Object.getOwnPropertyDescriptor(r,o))&&h(t,o,n)}else{var a=r&&r.hasOwnProperty;for(var o in r)(!a||r.hasOwnProperty(o))&&(t[o]=r[o])}return t["default"]=r,h(t,"__useDefault",{value:!0}),t}function c(r,t){var n=p[r];if(n&&!n.evaluated&&n.declarative){t.push(r);for(var o=0,a=n.normalizedDeps.length;a>o;o++){var u=n.normalizedDeps[o];-1==v.call(t,u)&&(p[u]?c(u,t):f(u))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}function f(e){if(D[e])return D[e];if("@node/"==e.substr(0,6))return y(e.substr(6));var r=p[e];if(!r)throw"Module "+e+" not present.";return a(e),c(e,[]),p[e]=void 0,r.declarative&&h(r.module.exports,"__esModule",{value:!0}),D[e]=r.declarative?r.module.exports:r.esModule}var p={},v=Array.prototype.indexOf||function(e){for(var r=0,t=this.length;t>r;r++)if(this[r]===e)return r;return-1},g=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(m){g=!1}var h;!function(){try{Object.defineProperty({},"a",{})&&(h=Object.defineProperty)}catch(e){h=function(e,r,t){try{e[r]=t.value||t.get.call(e)}catch(n){}}}}();var x={},y="undefined"!=typeof System&&System._nodeRequire||"undefined"!=typeof require&&require.resolve&&"undefined"!=typeof process&&require,D={"@empty":{}};return function(e,n,o){return function(a){a(function(a){for(var u={_nodeRequire:y,register:r,registerDynamic:t,get:f,set:function(e,r){D[e]=r},newModule:function(e){return e}},d=0;d<n.length;d++)(function(e,r){r&&r.__esModule?D[e]=r:D[e]=s(r)})(n[d],arguments[d]);o(u);var i=f(e[0]);if(e.length>1)for(var d=1;d<e.length;d++)f(e[d]);return i.__useDefault?i["default"]:i})}}}("undefined"!=typeof self?self:global) (["1"], [], function($__System) { $__System.registerDynamic("2", ["@node/fs", "@node/path", "@node/http", "@node/https", "@node/url", "3", "4", "5", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var fs = $__require('@node/fs'); var path = $__require('@node/path'); var http = $__require('@node/http'); var https = $__require('@node/https'); var url = $__require('@node/url'); var rewriteUrls = $__require('3'); var split = $__require('4'); var override = $__require('5').override; var MAP_MARKER = /\/\*# sourceMappingURL=(\S+) \*\//; var REMOTE_RESOURCE = /^(https?:)?\/\//; var NO_PROTOCOL_RESOURCE = /^\/\//; function ImportInliner(context) { this.outerContext = context; } ImportInliner.prototype.process = function(data, context) { var root = this.outerContext.options.root; context = override(context, { baseRelativeTo: this.outerContext.options.relativeTo || root, debug: this.outerContext.options.debug, done: [], errors: this.outerContext.errors, left: [], inliner: this.outerContext.options.inliner, rebase: this.outerContext.options.rebase, relativeTo: this.outerContext.options.relativeTo || root, root: root, sourceReader: this.outerContext.sourceReader, sourceTracker: this.outerContext.sourceTracker, warnings: this.outerContext.warnings, visited: [] }); return importFrom(data, context); }; function importFrom(data, context) { if (context.shallow) { context.shallow = false; context.done.push(data); return processNext(context); } var nextStart = 0; var nextEnd = 0; var cursor = 0; var isComment = commentScanner(data); for (; nextEnd < data.length; ) { nextStart = nextImportAt(data, cursor); if (nextStart == -1) break; if (isComment(nextStart)) { cursor = nextStart + 1; continue; } nextEnd = data.indexOf(';', nextStart); if (nextEnd == -1) { cursor = data.length; data = ''; break; } var noImportPart = data.substring(0, nextStart); context.done.push(noImportPart); context.left.unshift([data.substring(nextEnd + 1), context]); context.afterContent = hasContent(noImportPart); return inline(data, nextStart, nextEnd, context); } context.done.push(data); return processNext(context); } function rebaseMap(data, source) { return data.replace(MAP_MARKER, function(match, sourceMapUrl) { return REMOTE_RESOURCE.test(sourceMapUrl) ? match : match.replace(sourceMapUrl, url.resolve(source, sourceMapUrl)); }); } function nextImportAt(data, cursor) { var nextLowerCase = data.indexOf('@import', cursor); var nextUpperCase = data.indexOf('@IMPORT', cursor); if (nextLowerCase > -1 && nextUpperCase == -1) return nextLowerCase; else if (nextLowerCase == -1 && nextUpperCase > -1) return nextUpperCase; else return Math.min(nextLowerCase, nextUpperCase); } function processNext(context) { return context.left.length > 0 ? importFrom.apply(null, context.left.shift()) : context.whenDone(context.done.join('')); } function commentScanner(data) { var commentRegex = /(\/\*(?!\*\/)[\s\S]*?\*\/)/; var lastStartIndex = 0; var lastEndIndex = 0; var noComments = false; return function scanner(idx) { var comment; var localStartIndex = 0; var localEndIndex = 0; var globalStartIndex = 0; var globalEndIndex = 0; if (noComments) return false; do { if (idx > lastStartIndex && idx < lastEndIndex) return true; comment = data.match(commentRegex); if (!comment) { noComments = true; return false; } lastStartIndex = localStartIndex = comment.index; localEndIndex = localStartIndex + comment[0].length; globalEndIndex = localEndIndex + lastEndIndex; globalStartIndex = globalEndIndex - comment[0].length; data = data.substring(localEndIndex); lastEndIndex = globalEndIndex; } while (globalEndIndex < idx); return globalEndIndex > idx && idx > globalStartIndex; }; } function hasContent(data) { var isComment = commentScanner(data); var firstContentIdx = -1; while (true) { firstContentIdx = data.indexOf('{', firstContentIdx + 1); if (firstContentIdx == -1 || !isComment(firstContentIdx)) break; } return firstContentIdx > -1; } function inline(data, nextStart, nextEnd, context) { context.shallow = data.indexOf('@shallow') > 0; var importDeclaration = data.substring(nextImportAt(data, nextStart) + '@import'.length + 1, nextEnd).replace(/@shallow\)$/, ')').trim(); var viaUrl = importDeclaration.indexOf('url(') === 0; var urlStartsAt = viaUrl ? 4 : 0; var isQuoted = /^['"]/.exec(importDeclaration.substring(urlStartsAt, urlStartsAt + 2)); var urlEndsAt = isQuoted ? importDeclaration.indexOf(isQuoted[0], urlStartsAt + 1) : split(importDeclaration, ' ')[0].length - (viaUrl ? 1 : 0); var importedFile = importDeclaration.substring(urlStartsAt, urlEndsAt).replace(/['"]/g, '').replace(/\)$/, '').trim(); var mediaQuery = importDeclaration.substring(urlEndsAt + 1).replace(/^\)/, '').trim(); var isRemote = context.isRemote || REMOTE_RESOURCE.test(importedFile); if (isRemote && (context.localOnly || !allowedResource(importedFile, true, context.imports))) { if (context.afterContent || hasContent(context.done.join(''))) context.warnings.push('Ignoring remote @import of "' + importedFile + '" as no callback given.'); else restoreImport(importedFile, mediaQuery, context); return processNext(context); } if (!isRemote && !allowedResource(importedFile, false, context.imports)) { if (context.afterImport) context.warnings.push('Ignoring local @import of "' + importedFile + '" as after other inlined content.'); else restoreImport(importedFile, mediaQuery, context); return processNext(context); } if (!isRemote && context.afterContent) { context.warnings.push('Ignoring local @import of "' + importedFile + '" as after other CSS content.'); return processNext(context); } var method = isRemote ? inlineRemoteResource : inlineLocalResource; return method(importedFile, mediaQuery, context); } function allowedResource(importedFile, isRemote, rules) { if (rules.length === 0) return false; if (isRemote && NO_PROTOCOL_RESOURCE.test(importedFile)) importedFile = 'http:' + importedFile; var match = isRemote ? url.parse(importedFile).host : importedFile; var allowed = true; for (var i = 0; i < rules.length; i++) { var rule = rules[i]; if (rule == 'all') allowed = true; else if (isRemote && rule == 'local') allowed = false; else if (isRemote && rule == 'remote') allowed = true; else if (!isRemote && rule == 'remote') allowed = false; else if (!isRemote && rule == 'local') allowed = true; else if (rule[0] == '!' && rule.substring(1) === match) allowed = false; } return allowed; } function inlineRemoteResource(importedFile, mediaQuery, context) { var importedUrl = REMOTE_RESOURCE.test(importedFile) ? importedFile : url.resolve(context.relativeTo, importedFile); var originalUrl = importedUrl; if (NO_PROTOCOL_RESOURCE.test(importedUrl)) importedUrl = 'http:' + importedUrl; if (context.visited.indexOf(importedUrl) > -1) return processNext(context); if (context.debug) console.error('Inlining remote stylesheet: ' + importedUrl); context.visited.push(importedUrl); var proxyProtocol = context.inliner.request.protocol || context.inliner.request.hostname; var get = ((proxyProtocol && proxyProtocol.indexOf('https://') !== 0) || importedUrl.indexOf('http://') === 0) ? http.get : https.get; var errorHandled = false; function handleError(message) { if (errorHandled) return; errorHandled = true; context.errors.push('Broken @import declaration of "' + importedUrl + '" - ' + message); restoreImport(importedUrl, mediaQuery, context); process.nextTick(function() { processNext(context); }); } var requestOptions = override(url.parse(importedUrl), context.inliner.request); if (context.inliner.request.hostname !== undefined) { requestOptions.protocol = context.inliner.request.protocol || 'http:'; requestOptions.path = requestOptions.href; } get(requestOptions, function(res) { if (res.statusCode < 200 || res.statusCode > 399) { return handleError('error ' + res.statusCode); } else if (res.statusCode > 299) { var movedUrl = url.resolve(importedUrl, res.headers.location); return inlineRemoteResource(movedUrl, mediaQuery, context); } var chunks = []; var parsedUrl = url.parse(importedUrl); res.on('data', function(chunk) { chunks.push(chunk.toString()); }); res.on('end', function() { var importedData = chunks.join(''); if (context.rebase) importedData = rewriteUrls(importedData, {toBase: originalUrl}, context); context.sourceReader.trackSource(importedUrl, importedData); importedData = context.sourceTracker.store(importedUrl, importedData); importedData = rebaseMap(importedData, importedUrl); if (mediaQuery.length > 0) importedData = '@media ' + mediaQuery + '{' + importedData + '}'; context.afterImport = true; var newContext = override(context, { isRemote: true, relativeTo: parsedUrl.protocol + '//' + parsedUrl.host + parsedUrl.pathname }); process.nextTick(function() { importFrom(importedData, newContext); }); }); }).on('error', function(res) { handleError(res.message); }).on('timeout', function() { handleError('timeout'); }).setTimeout(context.inliner.timeout); } function inlineLocalResource(importedFile, mediaQuery, context) { var relativeTo = importedFile[0] == '/' ? context.root : context.relativeTo; var fullPath = path.resolve(path.join(relativeTo, importedFile)); if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile()) { context.errors.push('Broken @import declaration of "' + importedFile + '"'); return processNext(context); } if (context.visited.indexOf(fullPath) > -1) return processNext(context); if (context.debug) console.error('Inlining local stylesheet: ' + fullPath); context.visited.push(fullPath); var importRelativeTo = path.dirname(fullPath); var importedData = fs.readFileSync(fullPath, 'utf8'); if (context.rebase) { var rewriteOptions = { relative: true, fromBase: importRelativeTo, toBase: context.baseRelativeTo }; importedData = rewriteUrls(importedData, rewriteOptions, context); } var relativePath = path.relative(context.root, fullPath); context.sourceReader.trackSource(relativePath, importedData); importedData = context.sourceTracker.store(relativePath, importedData); if (mediaQuery.length > 0) importedData = '@media ' + mediaQuery + '{' + importedData + '}'; context.afterImport = true; var newContext = override(context, {relativeTo: importRelativeTo}); return importFrom(importedData, newContext); } function restoreImport(importedUrl, mediaQuery, context) { var restoredImport = '@import url(' + importedUrl + ')' + (mediaQuery.length > 0 ? ' ' + mediaQuery : '') + ';'; context.done.push(restoredImport); } module.exports = ImportInliner; return module.exports; }); $__System.registerDynamic("7", ["@node/path", "3", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var path = $__require('@node/path'); var rewriteUrls = $__require('3'); function rebaseUrls(data, context) { var rebaseOpts = { absolute: context.options.explicitRoot, relative: !context.options.explicitRoot && context.options.explicitTarget, fromBase: context.options.relativeTo }; if (!rebaseOpts.absolute && !rebaseOpts.relative) return data; if (rebaseOpts.absolute && context.options.explicitTarget) context.warnings.push('Both \'root\' and output file given so rebasing URLs as absolute paths'); if (rebaseOpts.absolute) rebaseOpts.toBase = path.resolve(context.options.root); if (rebaseOpts.relative) rebaseOpts.toBase = path.resolve(context.options.target); if (!rebaseOpts.fromBase || !rebaseOpts.toBase) return data; return rewriteUrls(data, rebaseOpts, context); } module.exports = rebaseUrls; return module.exports; }); $__System.registerDynamic("8", ["4", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var split = $__require('4'); var COMMA = ','; var FORWARD_SLASH = '/'; var AT_RULE = 'at-rule'; var IMPORTANT_WORD = 'important'; var IMPORTANT_TOKEN = '!' + IMPORTANT_WORD; var IMPORTANT_WORD_MATCH = new RegExp('^' + IMPORTANT_WORD + '$', 'i'); var IMPORTANT_TOKEN_MATCH = new RegExp('^' + IMPORTANT_TOKEN + '$', 'i'); function selectorName(value) { return value[0]; } function noop() {} function withoutComments(string, into, heading, context) { var matcher = heading ? /^__ESCAPED_COMMENT_/ : /__ESCAPED_COMMENT_/; var track = heading ? context.track : noop; while (matcher.test(string)) { var startOfComment = string.indexOf('__'); var endOfComment = string.indexOf('__', startOfComment + 1) + 2; var comment = string.substring(startOfComment, endOfComment); string = string.substring(0, startOfComment) + string.substring(endOfComment); track(comment); into.push(comment); } return string; } function withoutHeadingComments(string, into, context) { return withoutComments(string, into, true, context); } function withoutInnerComments(string, into, context) { return withoutComments(string, into, false, context); } function trackComments(comments, into, context) { for (var i = 0, l = comments.length; i < l; i++) { context.track(comments[i]); into.push(comments[i]); } } function extractProperties(string, selectors, context) { var list = []; var innerComments = []; var valueSeparator = /[ ,\/]/; if (typeof string != 'string') return []; if (string.indexOf(')') > -1) string = string.replace(/\)([^\s_;:,\)])/g, context.sourceMap ? ') __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ $1' : ') $1'); if (string.indexOf('ESCAPED_URL_CLEAN_CSS') > -1) string = string.replace(/(ESCAPED_URL_CLEAN_CSS[^_]+?__)/g, context.sourceMap ? '$1 __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ ' : '$1 '); var candidates = split(string, ';', false, '{', '}'); for (var i = 0, l = candidates.length; i < l; i++) { var candidate = candidates[i]; var firstColonAt = candidate.indexOf(':'); var atRule = candidate.trim()[0] == '@'; if (atRule) { context.track(candidate); list.push([AT_RULE, candidate.trim()]); continue; } if (firstColonAt == -1) { context.track(candidate); if (candidate.indexOf('__ESCAPED_COMMENT_SPECIAL') > -1) list.push(candidate.trim()); continue; } if (candidate.indexOf('{') > 0 && candidate.indexOf('{') < firstColonAt) { context.track(candidate); continue; } var body = []; var name = candidate.substring(0, firstColonAt); innerComments = []; if (name.indexOf('__ESCAPED_COMMENT') > -1) name = withoutHeadingComments(name, list, context); if (name.indexOf('__ESCAPED_COMMENT') > -1) name = withoutInnerComments(name, innerComments, context); body.push([name.trim()].concat(context.track(name, true))); context.track(':'); trackComments(innerComments, list, context); var firstBraceAt = candidate.indexOf('{'); var isVariable = name.trim().indexOf('--') === 0; if (isVariable && firstBraceAt > 0) { var blockPrefix = candidate.substring(firstColonAt + 1, firstBraceAt + 1); var blockSuffix = candidate.substring(candidate.indexOf('}')); var blockContent = candidate.substring(firstBraceAt + 1, candidate.length - blockSuffix.length); context.track(blockPrefix); body.push(extractProperties(blockContent, selectors, context)); list.push(body); context.track(blockSuffix); context.track(i < l - 1 ? ';' : ''); continue; } var values = split(candidate.substring(firstColonAt + 1), valueSeparator, true); if (values.length == 1 && values[0] === '') { context.warnings.push('Empty property \'' + name + '\' inside \'' + selectors.filter(selectorName).join(',') + '\' selector. Ignoring.'); continue; } for (var j = 0, m = values.length; j < m; j++) { var value = values[j]; var trimmed = value.trim(); if (trimmed.length === 0) continue; var lastCharacter = trimmed[trimmed.length - 1]; var endsWithNonSpaceSeparator = trimmed.length > 1 && (lastCharacter == COMMA || lastCharacter == FORWARD_SLASH); if (endsWithNonSpaceSeparator) trimmed = trimmed.substring(0, trimmed.length - 1); if (trimmed.indexOf('__ESCAPED_COMMENT_CLEAN_CSS(0,-') > -1) { context.track(trimmed); continue; } innerComments = []; if (trimmed.indexOf('__ESCAPED_COMMENT') > -1) trimmed = withoutHeadingComments(trimmed, list, context); if (trimmed.indexOf('__ESCAPED_COMMENT') > -1) trimmed = withoutInnerComments(trimmed, innerComments, context); if (trimmed.length === 0) { trackComments(innerComments, list, context); continue; } var pos = body.length - 1; if (IMPORTANT_WORD_MATCH.test(trimmed) && body[pos][0] == '!') { context.track(trimmed); body[pos - 1][0] += IMPORTANT_TOKEN; body.pop(); continue; } if (IMPORTANT_TOKEN_MATCH.test(trimmed) || (IMPORTANT_WORD_MATCH.test(trimmed) && body[pos][0][body[pos][0].length - 1] == '!')) { context.track(trimmed); body[pos][0] += trimmed; continue; } body.push([trimmed].concat(context.track(value, true))); trackComments(innerComments, list, context); if (endsWithNonSpaceSeparator) { body.push([lastCharacter]); context.track(lastCharacter); } } if (i < l - 1) context.track(';'); list.push(body); } return list; } module.exports = extractProperties; return module.exports; }); $__System.registerDynamic("9", ["4", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var split = $__require('4'); function extractSelectors(string, context) { var list = []; var metadata; var selectors = split(string, ','); for (var i = 0, l = selectors.length; i < l; i++) { metadata = context.track(selectors[i], true, i); context.track(','); list.push([selectors[i].trim()].concat(metadata)); } return list; } module.exports = extractSelectors; return module.exports; }); $__System.registerDynamic("a", ["6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var escapePrefix = '__ESCAPED_'; function trackPrefix(value, context, interestingContent) { if (!interestingContent && value.indexOf('\n') == -1) { if (value.indexOf(escapePrefix) === 0) { return value; } else { context.column += value.length; return; } } var withoutContent = 0; var split = value.split('\n'); var total = split.length; var shift = 0; while (true) { if (withoutContent == total - 1) break; var part = split[withoutContent]; if (/\S/.test(part)) break; shift += part.length + 1; withoutContent++; } context.line += withoutContent; context.column = withoutContent > 0 ? 0 : context.column; context.column += /^(\s)*/.exec(split[withoutContent])[0].length; return value.substring(shift).trimLeft(); } function sourceFor(originalMetadata, contextMetadata, context) { var source = originalMetadata.source || contextMetadata.source; if (source && context.resolvePath) return context.resolvePath(contextMetadata.source, source); return source; } function snapshot(data, context, fallbacks) { var metadata = { line: context.line, column: context.column, source: context.source }; var sourceContent = null; var sourceMetadata = context.sourceMapTracker.isTracking(metadata.source) ? context.sourceMapTracker.originalPositionFor(metadata, data, fallbacks || 0) : {}; metadata.line = sourceMetadata.line || metadata.line; metadata.column = sourceMetadata.column || metadata.column; metadata.source = sourceMetadata.sourceResolved ? sourceMetadata.source : sourceFor(sourceMetadata, metadata, context); if (context.sourceMapInlineSources) { var sourceMapSourcesContent = context.sourceMapTracker.sourcesContentFor(context.source); sourceContent = sourceMapSourcesContent && sourceMapSourcesContent[metadata.source] ? sourceMapSourcesContent : context.sourceReader.sourceAt(context.source); } return sourceContent ? [metadata.line, metadata.column, metadata.source, sourceContent] : [metadata.line, metadata.column, metadata.source]; } function trackSuffix(data, context) { var parts = data.split('\n'); for (var i = 0, l = parts.length; i < l; i++) { var part = parts[i]; var cursor = 0; if (i > 0) { context.line++; context.column = 0; } while (true) { var next = part.indexOf(escapePrefix, cursor); if (next == -1) { context.column += part.substring(cursor).length; break; } context.column += next - cursor; cursor += next - cursor; var escaped = part.substring(next, part.indexOf('__', next + 1) + 2); var encodedValues = escaped.substring(escaped.indexOf('(') + 1, escaped.indexOf(')')).split(','); context.line += ~~encodedValues[0]; context.column = (~~encodedValues[0] === 0 ? context.column : 0) + ~~encodedValues[1]; cursor += escaped.length; } } } function track(data, context, snapshotMetadata, fallbacks) { var untracked = trackPrefix(data, context, snapshotMetadata); var metadata = snapshotMetadata ? snapshot(untracked, context, fallbacks) : []; if (untracked) trackSuffix(untracked, context); return metadata; } module.exports = track; return module.exports; }); $__System.registerDynamic("b", ["8", "9", "a", "4", "@node/path", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var extractProperties = $__require('8'); var extractSelectors = $__require('9'); var track = $__require('a'); var split = $__require('4'); var path = $__require('@node/path'); var flatBlock = /(@(font\-face|page|\-ms\-viewport|\-o\-viewport|viewport|counter\-style)|\\@.+?)/; function tokenize(data, outerContext) { var chunks = split(normalize(data), '}', true, '{', '}'); if (chunks.length === 0) return []; var context = { chunk: chunks.shift(), chunks: chunks, column: 0, cursor: 0, line: 1, mode: 'top', resolvePath: outerContext.options.explicitTarget ? relativePathResolver(outerContext.options.root, outerContext.options.target) : null, source: undefined, sourceMap: outerContext.options.sourceMap, sourceMapInlineSources: outerContext.options.sourceMapInlineSources, sourceMapTracker: outerContext.inputSourceMapTracker, sourceReader: outerContext.sourceReader, sourceTracker: outerContext.sourceTracker, state: [], track: outerContext.options.sourceMap ? function(data, snapshotMetadata, fallbacks) { return [[track(data, context, snapshotMetadata, fallbacks)]]; } : function() { return []; }, warnings: outerContext.warnings }; return intoTokens(context); } function normalize(data) { return data.replace(/\r\n/g, '\n'); } function relativePathResolver(root, target) { var rebaseTo = path.relative(root, target); return function(relativeTo, sourcePath) { return relativeTo != sourcePath ? path.normalize(path.join(path.relative(rebaseTo, path.dirname(relativeTo)), sourcePath)) : sourcePath; }; } function whatsNext(context) { var mode = context.mode; var chunk = context.chunk; var closest; if (chunk.length == context.cursor) { if (context.chunks.length === 0) return null; context.chunk = chunk = context.chunks.shift(); context.cursor = 0; } if (mode == 'body') { if (chunk[context.cursor] == '}') return [context.cursor, 'bodyEnd']; if (chunk.indexOf('}', context.cursor) == -1) return null; closest = context.cursor + split(chunk.substring(context.cursor - 1), '}', true, '{', '}')[0].length - 2; return [closest, 'bodyEnd']; } var nextSpecial = chunk.indexOf('@', context.cursor); var nextEscape = chunk.indexOf('__ESCAPED_', context.cursor); var nextBodyStart = chunk.indexOf('{', context.cursor); var nextBodyEnd = chunk.indexOf('}', context.cursor); if (nextEscape > -1 && /\S/.test(chunk.substring(context.cursor, nextEscape))) nextEscape = -1; closest = nextSpecial; if (closest == -1 || (nextEscape > -1 && nextEscape < closest)) closest = nextEscape; if (closest == -1 || (nextBodyStart > -1 && nextBodyStart < closest)) closest = nextBodyStart; if (closest == -1 || (nextBodyEnd > -1 && nextBodyEnd < closest)) closest = nextBodyEnd; if (closest == -1) return; if (nextEscape === closest) return [closest, 'escape']; if (nextBodyStart === closest) return [closest, 'bodyStart']; if (nextBodyEnd === closest) return [closest, 'bodyEnd']; if (nextSpecial === closest) return [closest, 'special']; } function intoTokens(context) { var chunk = context.chunk; var tokenized = []; var newToken; var value; while (true) { var next = whatsNext(context); if (!next) { var whatsLeft = context.chunk.substring(context.cursor); if (whatsLeft.trim().length > 0) { if (context.mode == 'body') { context.warnings.push('Missing \'}\' after \'' + whatsLeft + '\'. Ignoring.'); } else { tokenized.push(['text', [whatsLeft]]); } context.cursor += whatsLeft.length; } break; } var nextSpecial = next[0]; var what = next[1]; var nextEnd; var oldMode; chunk = context.chunk; if (context.cursor != nextSpecial && what != 'bodyEnd') { var spacing = chunk.substring(context.cursor, nextSpecial); var leadingWhitespace = /^\s+/.exec(spacing); if (leadingWhitespace) { context.cursor += leadingWhitespace[0].length; context.track(leadingWhitespace[0]); } } if (what == 'special') { var firstOpenBraceAt = chunk.indexOf('{', nextSpecial); var firstSemicolonAt = chunk.indexOf(';', nextSpecial); var isSingle = firstSemicolonAt > -1 && (firstOpenBraceAt == -1 || firstSemicolonAt < firstOpenBraceAt); var isBroken = firstOpenBraceAt == -1 && firstSemicolonAt == -1; if (isBroken) { context.warnings.push('Broken declaration: \'' + chunk.substring(context.cursor) + '\'.'); context.cursor = chunk.length; } else if (isSingle) { nextEnd = chunk.indexOf(';', nextSpecial + 1); value = chunk.substring(context.cursor, nextEnd + 1); tokenized.push(['at-rule', [value].concat(context.track(value, true))]); context.track(';'); context.cursor = nextEnd + 1; } else { nextEnd = chunk.indexOf('{', nextSpecial + 1); value = chunk.substring(context.cursor, nextEnd); var trimmedValue = value.trim(); var isFlat = flatBlock.test(trimmedValue); oldMode = context.mode; context.cursor = nextEnd + 1; context.mode = isFlat ? 'body' : 'block'; newToken = [isFlat ? 'flat-block' : 'block']; newToken.push([trimmedValue].concat(context.track(value, true))); context.track('{'); newToken.push(intoTokens(context)); if (typeof newToken[2] == 'string') newToken[2] = extractProperties(newToken[2], [[trimmedValue]], context); context.mode = oldMode; context.track('}'); tokenized.push(newToken); } } else if (what == 'escape') { nextEnd = chunk.indexOf('__', nextSpecial + 1); var escaped = chunk.substring(context.cursor, nextEnd + 2); var isStartSourceMarker = !!context.sourceTracker.nextStart(escaped); var isEndSourceMarker = !!context.sourceTracker.nextEnd(escaped); if (isStartSourceMarker) { context.track(escaped); context.state.push({ source: context.source, line: context.line, column: context.column }); context.source = context.sourceTracker.nextStart(escaped).filename; context.line = 1; context.column = 0; } else if (isEndSourceMarker) { var oldState = context.state.pop(); context.source = oldState.source; context.line = oldState.line; context.column = oldState.column; context.track(escaped); } else { if (escaped.indexOf('__ESCAPED_COMMENT_SPECIAL') === 0) tokenized.push(['text', [escaped]]); context.track(escaped); } context.cursor = nextEnd + 2; } else if (what == 'bodyStart') { var selectors = extractSelectors(chunk.substring(context.cursor, nextSpecial), context); oldMode = context.mode; context.cursor = nextSpecial + 1; context.mode = 'body'; var body = extractProperties(intoTokens(context), selectors, context); context.track('{'); context.mode = oldMode; tokenized.push(['selector', selectors, body]); } else if (what == 'bodyEnd') { if (context.mode == 'top') { var at = context.cursor; var warning = chunk[context.cursor] == '}' ? 'Unexpected \'}\' in \'' + chunk.substring(at - 20, at + 20) + '\'. Ignoring.' : 'Unexpected content: \'' + chunk.substring(at, nextSpecial + 1) + '\'. Ignoring.'; context.warnings.push(warning); context.cursor = nextSpecial + 1; continue; } if (context.mode == 'block') context.track(chunk.substring(context.cursor, nextSpecial)); if (context.mode != 'block') tokenized = chunk.substring(context.cursor, nextSpecial); context.cursor = nextSpecial + 1; break; } } return tokenized; } module.exports = tokenize; return module.exports; }); $__System.registerDynamic("c", ["6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; function RGB(red, green, blue) { this.red = red; this.green = green; this.blue = blue; } RGB.prototype.toHex = function() { var red = Math.max(0, Math.min(~~this.red, 255)); var green = Math.max(0, Math.min(~~this.green, 255)); var blue = Math.max(0, Math.min(~~this.blue, 255)); return '#' + ('00000' + (red << 16 | green << 8 | blue).toString(16)).slice(-6); }; module.exports = RGB; return module.exports; }); $__System.registerDynamic("d", ["6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; function HSLColor(hue, saturation, lightness) { this.hue = hue; this.saturation = saturation; this.lightness = lightness; } function hslToRgb(h, s, l) { var r, g, b; h = h % 360; if (h < 0) h += 360; h = ~~h / 360; if (s < 0) s = 0; else if (s > 100) s = 100; s = ~~s / 100; if (l < 0) l = 0; else if (l > 100) l = 100; l = ~~l / 100; if (s === 0) { r = g = b = l; } else { var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hueToRgb(p, q, h + 1 / 3); g = hueToRgb(p, q, h); b = hueToRgb(p, q, h - 1 / 3); } return [~~(r * 255), ~~(g * 255), ~~(b * 255)]; } function hueToRgb(p, q, t) { if (t < 0) t += 1; if (t > 1) t -= 1; if (t < 1 / 6) return p + (q - p) * 6 * t; if (t < 1 / 2) return q; if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; return p; } HSLColor.prototype.toHex = function() { var asRgb = hslToRgb(this.hue, this.saturation, this.lightness); var redAsHex = asRgb[0].toString(16); var greenAsHex = asRgb[1].toString(16); var blueAsHex = asRgb[2].toString(16); return '#' + ((redAsHex.length == 1 ? '0' : '') + redAsHex) + ((greenAsHex.length == 1 ? '0' : '') + greenAsHex) + ((blueAsHex.length == 1 ? '0' : '') + blueAsHex); }; module.exports = HSLColor; return module.exports; }); $__System.registerDynamic("e", ["6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var HexNameShortener = {}; var COLORS = { aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#0ff', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', bisque: '#ffe4c4', black: '#000', blanchedalmond: '#ffebcd', blue: '#00f', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#0ff', darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', 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: '#f0f', gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', gray: '#808080', green: '#008000', greenyellow: '#adff2f', grey: '#808080', 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', lightgreen: '#90ee90', lightgrey: '#d3d3d3', lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', lime: '#0f0', limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', maroon: '#800000', mediumaquamarine: '#66cdaa', mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', 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: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd', powderblue: '#b0e0e6', purple: '#800080', rebeccapurple: '#663399', red: '#f00', 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: '#fff', whitesmoke: '#f5f5f5', yellow: '#ff0', yellowgreen: '#9acd32' }; var toHex = {}; var toName = {}; for (var name in COLORS) { var hex = COLORS[name]; if (name.length < hex.length) toName[hex] = name; else toHex[name] = hex; } var toHexPattern = new RegExp('(^| |,|\\))(' + Object.keys(toHex).join('|') + ')( |,|\\)|$)', 'ig'); var toNamePattern = new RegExp('(' + Object.keys(toName).join('|') + ')([^a-f0-9]|$)', 'ig'); function hexConverter(match, prefix, colorValue, suffix) { return prefix + toHex[colorValue.toLowerCase()] + suffix; } function nameConverter(match, colorValue, suffix) { return toName[colorValue.toLowerCase()] + suffix; } HexNameShortener.shorten = function(value) { var hasHex = value.indexOf('#') > -1; var shortened = value.replace(toHexPattern, hexConverter); if (shortened != value) shortened = shortened.replace(toHexPattern, hexConverter); return hasHex ? shortened.replace(toNamePattern, nameConverter) : shortened; }; module.exports = HexNameShortener; return module.exports; }); $__System.registerDynamic("f", ["10", "4", "c", "d", "e", "11", "12", "13", "6"], true, function($__require, exports, module) { var process = $__require("6"); var define, global = this, GLOBAL = this; var cleanUpSelectors = $__require('10').selectors; var cleanUpBlock = $__require('10').block; var cleanUpAtRule = $__require('10').atRule; var split = $__require('4'); var RGB = $__require('c'); var HSL = $__require('d'); var HexNameShortener = $__require('e'); var wrapForOptimizing = $__require('11').all; var restoreFromOptimizing = $__require('12'); var removeUnused = $__require('13'); var DEFAULT_ROUNDING_PRECISION = 2; var CHARSET_TOKEN = '@charset'; var CHARSET_REGEXP = new RegExp('^' + CHARSET_TOKEN, 'i'); var FONT_NUMERAL_WEIGHTS = ['100', '200', '300', '400', '500', '600', '700', '800', '900']; var FONT_NAME_WEIGHTS = ['normal', 'bold', 'bolder', 'lighter']; var FONT_NAME_WEIGHTS_WITHOUT_NORMAL = ['bold', 'bolder', 'lighter']; var WHOLE_PIXEL_VALUE = /(?:^|\s|\()(-?\d+)px/; var TIME_VALUE = /^(\-?[\d\.]+)(m?s)$/; var valueMinifiers = { 'background': function(value, index, total) { return index === 0 && total == 1 && (value == 'none' || value == 'transparent') ? '0 0' : value; }, 'font-weight': function(value) { if (value == 'normal') return '400'; else if (value == 'bold') return '700'; else return value; }, 'outline': function(value, index, total) { return index === 0 && total == 1 && value == 'none' ? '0' : value; } }; function isNegative(property, idx) { return property.value[idx] && property.value[idx][0][0] == '-' && parseFloat(property.value[idx][0]) < 0; } function zeroMinifier(name, value) { if (value.indexOf('0') == -1) return value; if (value.indexOf('-') > -1) { value = value.replace(/([^\w\d\-]|^)\-0([^\.]|$)/g, '$10$2').replace(/([^\w\d\-]|^)\-0([^\.]|$)/g, '$10$2'); } return value.replace(/(^|\s)0+([1-9])/g, '$1$2').replace(/(^|\D)\.0+(\D|$)/g, '$10$2').replace(/(^|\D)\.0+(\D|$)/g, '$10$2').replace(/\.([1-9]*)0+(\D|$)/g, function(match, nonZeroPart, suffix) { return (nonZeroPart.length > 0 ? '.' : '') + nonZeroPart + suffix; }).replace(/(^|\D)0\.(\d)/g, '$1.$2'); } function zeroDegMinifier(_, value) { if (value.indexOf('0deg') == -1) return value; return value.replace(/\(0deg\)/g, '(0)'); } function whitespaceMinifier(name, value) { if (name.indexOf('filter') > -1 || value.indexOf(' ') == -1) return value; value = value.replace(/\s+/g, ' '); if (value.indexOf('calc') > -1) value = value.replace(/\) ?\/ ?/g, ')/ '); return value.replace(/\( /g, '(').replace(/ \)/g, ')').replace(/, /g, ','); } function precisionMinifier(_, value, precisionOptions) { if (precisionOptions.value === -1 || value.indexOf('.') === -1) return value; return value.replace(precisionOptions.regexp, function(match, number) { return Math.round(parseFloat(number) * precisionOptions.multiplier) / precisionOptions.multiplier + 'px'; }).replace(/(\d)\.($|\D)/g, '$1$2'); } function unitMinifier(name, value, unitsRegexp) { if (/^(?:\-moz\-calc|\-webkit\-calc|calc)\(/.test(value)) return value; if (name == 'flex' || name == '-ms-flex' || name == '-webkit-flex' || name == 'flex-basis' || name == '-webkit-flex-basis') return value; if (value.indexOf('%') > 0 && (name == 'height' || name == 'max-height')) return value; return value.replace(unitsRegexp, '$1' + '0' + '$2').replace(unitsRegexp, '$1' + '0' + '$2'); } function multipleZerosMinifier(property) { var values = property.value; var spliceAt; if (values.length == 4 && values[0][0] === '0' && values[1][0] === '0' && values[2][0] === '0' && values[3][0] === '0') { if (property.name.indexOf('box-shadow') > -1) spliceAt = 2; else spliceAt = 1; } if (spliceAt) { property.value.splice(spliceAt); property.dirty = true; } } function colorMininifier(name, value, compatibility) { if (value.indexOf('#') === -1 && value.indexOf('rgb') == -1 && value.indexOf('hsl') == -1) return HexNameShortener.shorten(value); value = value.replace(/rgb\((\-?\d+),(\-?\d+),(\-?\d+)\)/g, function(match, red, green, blue) { return new RGB(red, green, blue).toHex(); }).replace(/hsl\((-?\d+),(-?\d+)%?,(-?\d+)%?\)/g, function(match, hue, saturation, lightness) { return new HSL(hue, saturation, lightness).toHex(); }).replace(/(^|[^='"])#([0-9a-f]{6})/gi, function(match, prefix, color) { if (color[0] == color[1] && color[2] == color[3] && color[4] == color[5]) return prefix + '#' + color[0] + color[2] + color[4]; else return prefix + '#' + color; }).replace(/(rgb|rgba|hsl|hsla)\(([^\)]+)\)/g, function(match, colorFunction, colorDef) { var tokens = colorDef.split(','); var applies = (colorFunction == 'hsl' && tokens.length == 3) || (colorFunction == 'hsla' && tokens.length == 4) || (colorFunction == 'rgb' && tokens.length == 3 && colorDef.indexOf('%') > 0) || (colorFunction == 'rgba' && tokens.length == 4 && colorDef.indexOf('%') > 0); if (!applies) return match; if (tokens[1].indexOf('%') == -1) tokens[1] += '%'; if (tokens[2].indexOf('%') == -1) tokens[2] += '%'; return colorFunction + '(' + tokens.join(',') + ')'; }); if (compatibility.colors.opacity && name.indexOf('background') == -1) { value = value.replace(/(?:rgba|hsla)\(0,0%?,0%?,0\)/g, function(match) { if (split(value, ',').pop().indexOf('gradient(') > -1) return match; return 'transparent'; }); } return HexNameShortener.shorten(value); } function pixelLengthMinifier(_, value, compatibility) { if (!WHOLE_PIXEL_VALUE.test(value)) return value; return value.replace(WHOLE_PIXEL_VALUE, function(match, val) { var newValue; var intVal = parseInt(val); if (intVal === 0) return match; if (compatibility.properties.shorterLengthUnits && compatibility.units.pt && intVal * 3 % 4 === 0) newValue = intVal * 3 / 4 + 'pt'; if (compatibility.properties.shorterLengthUnits && compatibility.units.pc && intVal % 16 === 0) newValue = intVal /