{"version":3,"file":"node.mjs","sources":["../../../../node_modules/gradient-parser/build/node.js"],"sourcesContent":["// Copyright (c) 2014 Rafael Caricio. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nvar GradientParser = (GradientParser || {});\n\nGradientParser.stringify = (function() {\n\n  var visitor = {\n\n    'visit_linear-gradient': function(node) {\n      return visitor.visit_gradient(node);\n    },\n\n    'visit_repeating-linear-gradient': function(node) {\n      return visitor.visit_gradient(node);\n    },\n\n    'visit_radial-gradient': function(node) {\n      return visitor.visit_gradient(node);\n    },\n\n    'visit_repeating-radial-gradient': function(node) {\n      return visitor.visit_gradient(node);\n    },\n\n    'visit_gradient': function(node) {\n      var orientation = visitor.visit(node.orientation);\n      if (orientation) {\n        orientation += ', ';\n      }\n\n      return node.type + '(' + orientation + visitor.visit(node.colorStops) + ')';\n    },\n\n    'visit_shape': function(node) {\n      var result = node.value,\n          at = visitor.visit(node.at),\n          style = visitor.visit(node.style);\n\n      if (style) {\n        result += ' ' + style;\n      }\n\n      if (at) {\n        result += ' at ' + at;\n      }\n\n      return result;\n    },\n\n    'visit_default-radial': function(node) {\n      var result = '',\n          at = visitor.visit(node.at);\n\n      if (at) {\n        result += at;\n      }\n      return result;\n    },\n\n    'visit_extent-keyword': function(node) {\n      var result = node.value,\n          at = visitor.visit(node.at);\n\n      if (at) {\n        result += ' at ' + at;\n      }\n\n      return result;\n    },\n\n    'visit_position-keyword': function(node) {\n      return node.value;\n    },\n\n    'visit_position': function(node) {\n      return visitor.visit(node.value.x) + ' ' + visitor.visit(node.value.y);\n    },\n\n    'visit_%': function(node) {\n      return node.value + '%';\n    },\n\n    'visit_em': function(node) {\n      return node.value + 'em';\n    },\n\n    'visit_px': function(node) {\n      return node.value + 'px';\n    },\n\n    'visit_literal': function(node) {\n      return visitor.visit_color(node.value, node);\n    },\n\n    'visit_hex': function(node) {\n      return visitor.visit_color('#' + node.value, node);\n    },\n\n    'visit_rgb': function(node) {\n      return visitor.visit_color('rgb(' + node.value.join(', ') + ')', node);\n    },\n\n    'visit_rgba': function(node) {\n      return visitor.visit_color('rgba(' + node.value.join(', ') + ')', node);\n    },\n\n    'visit_color': function(resultColor, node) {\n      var result = resultColor,\n          length = visitor.visit(node.length);\n\n      if (length) {\n        result += ' ' + length;\n      }\n      return result;\n    },\n\n    'visit_angular': function(node) {\n      return node.value + 'deg';\n    },\n\n    'visit_directional': function(node) {\n      return 'to ' + node.value;\n    },\n\n    'visit_array': function(elements) {\n      var result = '',\n          size = elements.length;\n\n      elements.forEach(function(element, i) {\n        result += visitor.visit(element);\n        if (i < size - 1) {\n          result += ', ';\n        }\n      });\n\n      return result;\n    },\n\n    'visit': function(element) {\n      if (!element) {\n        return '';\n      }\n      var result = '';\n\n      if (element instanceof Array) {\n        return visitor.visit_array(element, result);\n      } else if (element.type) {\n        var nodeVisitor = visitor['visit_' + element.type];\n        if (nodeVisitor) {\n          return nodeVisitor(element);\n        } else {\n          throw Error('Missing visitor visit_' + element.type);\n        }\n      } else {\n        throw Error('Invalid node.');\n      }\n    }\n\n  };\n\n  return function(root) {\n    return visitor.visit(root);\n  };\n})();\n\n// Copyright (c) 2014 Rafael Caricio. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nvar GradientParser = (GradientParser || {});\n\nGradientParser.parse = (function() {\n\n  var tokens = {\n    linearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(linear\\-gradient)/i,\n    repeatingLinearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-linear\\-gradient)/i,\n    radialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(radial\\-gradient)/i,\n    repeatingRadialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-radial\\-gradient)/i,\n    sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,\n    extentKeywords: /^(closest\\-side|closest\\-corner|farthest\\-side|farthest\\-corner|contain|cover)/,\n    positionKeywords: /^(left|center|right|top|bottom)/i,\n    pixelValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))px/,\n    percentageValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))\\%/,\n    emValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))em/,\n    angleValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))deg/,\n    startCall: /^\\(/,\n    endCall: /^\\)/,\n    comma: /^,/,\n    hexColor: /^\\#([0-9a-fA-F]+)/,\n    literalColor: /^([a-zA-Z]+)/,\n    rgbColor: /^rgb/i,\n    rgbaColor: /^rgba/i,\n    number: /^(([0-9]*\\.[0-9]+)|([0-9]+\\.?))/\n  };\n\n  var input = '';\n\n  function error(msg) {\n    var err = new Error(input + ': ' + msg);\n    err.source = input;\n    throw err;\n  }\n\n  function getAST() {\n    var ast = matchListDefinitions();\n\n    if (input.length > 0) {\n      error('Invalid input not EOF');\n    }\n\n    return ast;\n  }\n\n  function matchListDefinitions() {\n    return matchListing(matchDefinition);\n  }\n\n  function matchDefinition() {\n    return matchGradient(\n            'linear-gradient',\n            tokens.linearGradient,\n            matchLinearOrientation) ||\n\n          matchGradient(\n            'repeating-linear-gradient',\n            tokens.repeatingLinearGradient,\n            matchLinearOrientation) ||\n\n          matchGradient(\n            'radial-gradient',\n            tokens.radialGradient,\n            matchListRadialOrientations) ||\n\n          matchGradient(\n            'repeating-radial-gradient',\n            tokens.repeatingRadialGradient,\n            matchListRadialOrientations);\n  }\n\n  function matchGradient(gradientType, pattern, orientationMatcher) {\n    return matchCall(pattern, function(captures) {\n\n      var orientation = orientationMatcher();\n      if (orientation) {\n        if (!scan(tokens.comma)) {\n          error('Missing comma before color stops');\n        }\n      }\n\n      return {\n        type: gradientType,\n        orientation: orientation,\n        colorStops: matchListing(matchColorStop)\n      };\n    });\n  }\n\n  function matchCall(pattern, callback) {\n    var captures = scan(pattern);\n\n    if (captures) {\n      if (!scan(tokens.startCall)) {\n        error('Missing (');\n      }\n\n      var result = callback(captures);\n\n      if (!scan(tokens.endCall)) {\n        error('Missing )');\n      }\n\n      return result;\n    }\n  }\n\n  function matchLinearOrientation() {\n    return matchSideOrCorner() ||\n      matchAngle();\n  }\n\n  function matchSideOrCorner() {\n    return match('directional', tokens.sideOrCorner, 1);\n  }\n\n  function matchAngle() {\n    return match('angular', tokens.angleValue, 1);\n  }\n\n  function matchListRadialOrientations() {\n    var radialOrientations,\n        radialOrientation = matchRadialOrientation(),\n        lookaheadCache;\n\n    if (radialOrientation) {\n      radialOrientations = [];\n      radialOrientations.push(radialOrientation);\n\n      lookaheadCache = input;\n      if (scan(tokens.comma)) {\n        radialOrientation = matchRadialOrientation();\n        if (radialOrientation) {\n          radialOrientations.push(radialOrientation);\n        } else {\n          input = lookaheadCache;\n        }\n      }\n    }\n\n    return radialOrientations;\n  }\n\n  function matchRadialOrientation() {\n    var radialType = matchCircle() ||\n      matchEllipse();\n\n    if (radialType) {\n      radialType.at = matchAtPosition();\n    } else {\n      var extent = matchExtentKeyword();\n      if (extent) {\n        radialType = extent;\n        var positionAt = matchAtPosition();\n        if (positionAt) {\n          radialType.at = positionAt;\n        }\n      } else {\n        var defaultPosition = matchPositioning();\n        if (defaultPosition) {\n          radialType = {\n            type: 'default-radial',\n            at: defaultPosition\n          };\n        }\n      }\n    }\n\n    return radialType;\n  }\n\n  function matchCircle() {\n    var circle = match('shape', /^(circle)/i, 0);\n\n    if (circle) {\n      circle.style = matchLength() || matchExtentKeyword();\n    }\n\n    return circle;\n  }\n\n  function matchEllipse() {\n    var ellipse = match('shape', /^(ellipse)/i, 0);\n\n    if (ellipse) {\n      ellipse.style =  matchDistance() || matchExtentKeyword();\n    }\n\n    return ellipse;\n  }\n\n  function matchExtentKeyword() {\n    return match('extent-keyword', tokens.extentKeywords, 1);\n  }\n\n  function matchAtPosition() {\n    if (match('position', /^at/, 0)) {\n      var positioning = matchPositioning();\n\n      if (!positioning) {\n        error('Missing positioning value');\n      }\n\n      return positioning;\n    }\n  }\n\n  function matchPositioning() {\n    var location = matchCoordinates();\n\n    if (location.x || location.y) {\n      return {\n        type: 'position',\n        value: location\n      };\n    }\n  }\n\n  function matchCoordinates() {\n    return {\n      x: matchDistance(),\n      y: matchDistance()\n    };\n  }\n\n  function matchListing(matcher) {\n    var captures = matcher(),\n      result = [];\n\n    if (captures) {\n      result.push(captures);\n      while (scan(tokens.comma)) {\n        captures = matcher();\n        if (captures) {\n          result.push(captures);\n        } else {\n          error('One extra comma');\n        }\n      }\n    }\n\n    return result;\n  }\n\n  function matchColorStop() {\n    var color = matchColor();\n\n    if (!color) {\n      error('Expected color definition');\n    }\n\n    color.length = matchDistance();\n    return color;\n  }\n\n  function matchColor() {\n    return matchHexColor() ||\n      matchRGBAColor() ||\n      matchRGBColor() ||\n      matchLiteralColor();\n  }\n\n  function matchLiteralColor() {\n    return match('literal', tokens.literalColor, 0);\n  }\n\n  function matchHexColor() {\n    return match('hex', tokens.hexColor, 1);\n  }\n\n  function matchRGBColor() {\n    return matchCall(tokens.rgbColor, function() {\n      return  {\n        type: 'rgb',\n        value: matchListing(matchNumber)\n      };\n    });\n  }\n\n  function matchRGBAColor() {\n    return matchCall(tokens.rgbaColor, function() {\n      return  {\n        type: 'rgba',\n        value: matchListing(matchNumber)\n      };\n    });\n  }\n\n  function matchNumber() {\n    return scan(tokens.number)[1];\n  }\n\n  function matchDistance() {\n    return match('%', tokens.percentageValue, 1) ||\n      matchPositionKeyword() ||\n      matchLength();\n  }\n\n  function matchPositionKeyword() {\n    return match('position-keyword', tokens.positionKeywords, 1);\n  }\n\n  function matchLength() {\n    return match('px', tokens.pixelValue, 1) ||\n      match('em', tokens.emValue, 1);\n  }\n\n  function match(type, pattern, captureIndex) {\n    var captures = scan(pattern);\n    if (captures) {\n      return {\n        type: type,\n        value: captures[captureIndex]\n      };\n    }\n  }\n\n  function scan(regexp) {\n    var captures,\n        blankCaptures;\n\n    blankCaptures = /^[\\n\\r\\t\\s]+/.exec(input);\n    if (blankCaptures) {\n        consume(blankCaptures[0].length);\n    }\n\n    captures = regexp.exec(input);\n    if (captures) {\n        consume(captures[0].length);\n    }\n\n    return captures;\n  }\n\n  function consume(size) {\n    input = input.substr(size);\n  }\n\n  return function(code) {\n    input = code.toString();\n    return getAST();\n  };\n})();\n\nexports.parse = GradientParser.parse;\nexports.stringify = GradientParser.stringify;\n"],"names":[],"mappings":"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"}