You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1662 lines
						
					
					
						
							52 KiB
						
					
					
				
			
		
		
	
	
							1662 lines
						
					
					
						
							52 KiB
						
					
					
				/* AUTO-GENERATED. DO NOT MODIFY. */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
 | 
						|
 | 
						|
 CSS Beautifier | 
						|
--------------- | 
						|
 | 
						|
    Written by Harutyun Amirjanyan, (amirjanyan@gmail.com) | 
						|
 | 
						|
    Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io> | 
						|
        https://beautifier.io/ | 
						|
 | 
						|
    Usage: | 
						|
        css_beautify(source_text); | 
						|
        css_beautify(source_text, options); | 
						|
 | 
						|
    The options are (default in brackets): | 
						|
        indent_size (4)                         — indentation size, | 
						|
        indent_char (space)                     — character to indent with, | 
						|
        selector_separator_newline (true)       - separate selectors with newline or | 
						|
                                                  not (e.g. "a,\nbr" or "a, br") | 
						|
        end_with_newline (false)                - end with a newline | 
						|
        newline_between_rules (true)            - add a new line after every css rule | 
						|
        space_around_selector_separator (false) - ensure space around selector separators: | 
						|
                                                  '>', '+', '~' (e.g. "a>b" -> "a > b") | 
						|
    e.g | 
						|
 | 
						|
    css_beautify(css_source_text, { | 
						|
      'indent_size': 1, | 
						|
      'indent_char': '\t', | 
						|
      'selector_separator': ' ', | 
						|
      'end_with_newline': false, | 
						|
      'newline_between_rules': true, | 
						|
      'space_around_selector_separator': true | 
						|
    }); | 
						|
*/ | 
						|
 | 
						|
// http://www.w3.org/TR/CSS21/syndata.html#tokenization | 
						|
// http://www.w3.org/TR/css3-syntax/ | 
						|
 | 
						|
(function() { | 
						|
 | 
						|
/* GENERATED_BUILD_OUTPUT */ | 
						|
var legacy_beautify_css = | 
						|
/******/ (function(modules) { // webpackBootstrap | 
						|
/******/ 	// The module cache | 
						|
/******/ 	var installedModules = {}; | 
						|
/******/ | 
						|
/******/ 	// The require function | 
						|
/******/ 	function __webpack_require__(moduleId) { | 
						|
/******/ | 
						|
/******/ 		// Check if module is in cache | 
						|
/******/ 		if(installedModules[moduleId]) { | 
						|
/******/ 			return installedModules[moduleId].exports; | 
						|
/******/ 		} | 
						|
/******/ 		// Create a new module (and put it into the cache) | 
						|
/******/ 		var module = installedModules[moduleId] = { | 
						|
/******/ 			i: moduleId, | 
						|
/******/ 			l: false, | 
						|
/******/ 			exports: {} | 
						|
/******/ 		}; | 
						|
/******/ | 
						|
/******/ 		// Execute the module function | 
						|
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | 
						|
/******/ | 
						|
/******/ 		// Flag the module as loaded | 
						|
/******/ 		module.l = true; | 
						|
/******/ | 
						|
/******/ 		// Return the exports of the module | 
						|
/******/ 		return module.exports; | 
						|
/******/ 	} | 
						|
/******/ | 
						|
/******/ | 
						|
/******/ 	// expose the modules object (__webpack_modules__) | 
						|
/******/ 	__webpack_require__.m = modules; | 
						|
/******/ | 
						|
/******/ 	// expose the module cache | 
						|
/******/ 	__webpack_require__.c = installedModules; | 
						|
/******/ | 
						|
/******/ 	// define getter function for harmony exports | 
						|
/******/ 	__webpack_require__.d = function(exports, name, getter) { | 
						|
/******/ 		if(!__webpack_require__.o(exports, name)) { | 
						|
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter }); | 
						|
/******/ 		} | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// define __esModule on exports | 
						|
/******/ 	__webpack_require__.r = function(exports) { | 
						|
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | 
						|
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | 
						|
/******/ 		} | 
						|
/******/ 		Object.defineProperty(exports, '__esModule', { value: true }); | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// create a fake namespace object | 
						|
/******/ 	// mode & 1: value is a module id, require it | 
						|
/******/ 	// mode & 2: merge all properties of value into the ns | 
						|
/******/ 	// mode & 4: return value when already ns object | 
						|
/******/ 	// mode & 8|1: behave like require | 
						|
/******/ 	__webpack_require__.t = function(value, mode) { | 
						|
/******/ 		if(mode & 1) value = __webpack_require__(value); | 
						|
/******/ 		if(mode & 8) return value; | 
						|
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | 
						|
/******/ 		var ns = Object.create(null); | 
						|
/******/ 		__webpack_require__.r(ns); | 
						|
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | 
						|
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | 
						|
/******/ 		return ns; | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// getDefaultExport function for compatibility with non-harmony modules | 
						|
/******/ 	__webpack_require__.n = function(module) { | 
						|
/******/ 		var getter = module && module.__esModule ? | 
						|
/******/ 			function getDefault() { return module['default']; } : | 
						|
/******/ 			function getModuleExports() { return module; }; | 
						|
/******/ 		__webpack_require__.d(getter, 'a', getter); | 
						|
/******/ 		return getter; | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// Object.prototype.hasOwnProperty.call | 
						|
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | 
						|
/******/ | 
						|
/******/ 	// __webpack_public_path__ | 
						|
/******/ 	__webpack_require__.p = ""; | 
						|
/******/ | 
						|
/******/ | 
						|
/******/ 	// Load entry module and return exports | 
						|
/******/ 	return __webpack_require__(__webpack_require__.s = 15); | 
						|
/******/ }) | 
						|
/************************************************************************/ | 
						|
/******/ ([ | 
						|
/* 0 */, | 
						|
/* 1 */, | 
						|
/* 2 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
function OutputLine(parent) { | 
						|
  this.__parent = parent; | 
						|
  this.__character_count = 0; | 
						|
  // use indent_count as a marker for this.__lines that have preserved indentation | 
						|
  this.__indent_count = -1; | 
						|
  this.__alignment_count = 0; | 
						|
  this.__wrap_point_index = 0; | 
						|
  this.__wrap_point_character_count = 0; | 
						|
  this.__wrap_point_indent_count = -1; | 
						|
  this.__wrap_point_alignment_count = 0; | 
						|
 | 
						|
  this.__items = []; | 
						|
} | 
						|
 | 
						|
OutputLine.prototype.clone_empty = function() { | 
						|
  var line = new OutputLine(this.__parent); | 
						|
  line.set_indent(this.__indent_count, this.__alignment_count); | 
						|
  return line; | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.item = function(index) { | 
						|
  if (index < 0) { | 
						|
    return this.__items[this.__items.length + index]; | 
						|
  } else { | 
						|
    return this.__items[index]; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.has_match = function(pattern) { | 
						|
  for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) { | 
						|
    if (this.__items[lastCheckedOutput].match(pattern)) { | 
						|
      return true; | 
						|
    } | 
						|
  } | 
						|
  return false; | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.set_indent = function(indent, alignment) { | 
						|
  if (this.is_empty()) { | 
						|
    this.__indent_count = indent || 0; | 
						|
    this.__alignment_count = alignment || 0; | 
						|
    this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count); | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype._set_wrap_point = function() { | 
						|
  if (this.__parent.wrap_line_length) { | 
						|
    this.__wrap_point_index = this.__items.length; | 
						|
    this.__wrap_point_character_count = this.__character_count; | 
						|
    this.__wrap_point_indent_count = this.__parent.next_line.__indent_count; | 
						|
    this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype._should_wrap = function() { | 
						|
  return this.__wrap_point_index && | 
						|
    this.__character_count > this.__parent.wrap_line_length && | 
						|
    this.__wrap_point_character_count > this.__parent.next_line.__character_count; | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype._allow_wrap = function() { | 
						|
  if (this._should_wrap()) { | 
						|
    this.__parent.add_new_line(); | 
						|
    var next = this.__parent.current_line; | 
						|
    next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count); | 
						|
    next.__items = this.__items.slice(this.__wrap_point_index); | 
						|
    this.__items = this.__items.slice(0, this.__wrap_point_index); | 
						|
 | 
						|
    next.__character_count += this.__character_count - this.__wrap_point_character_count; | 
						|
    this.__character_count = this.__wrap_point_character_count; | 
						|
 | 
						|
    if (next.__items[0] === " ") { | 
						|
      next.__items.splice(0, 1); | 
						|
      next.__character_count -= 1; | 
						|
    } | 
						|
    return true; | 
						|
  } | 
						|
  return false; | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.is_empty = function() { | 
						|
  return this.__items.length === 0; | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.last = function() { | 
						|
  if (!this.is_empty()) { | 
						|
    return this.__items[this.__items.length - 1]; | 
						|
  } else { | 
						|
    return null; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.push = function(item) { | 
						|
  this.__items.push(item); | 
						|
  var last_newline_index = item.lastIndexOf('\n'); | 
						|
  if (last_newline_index !== -1) { | 
						|
    this.__character_count = item.length - last_newline_index; | 
						|
  } else { | 
						|
    this.__character_count += item.length; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.pop = function() { | 
						|
  var item = null; | 
						|
  if (!this.is_empty()) { | 
						|
    item = this.__items.pop(); | 
						|
    this.__character_count -= item.length; | 
						|
  } | 
						|
  return item; | 
						|
}; | 
						|
 | 
						|
 | 
						|
OutputLine.prototype._remove_indent = function() { | 
						|
  if (this.__indent_count > 0) { | 
						|
    this.__indent_count -= 1; | 
						|
    this.__character_count -= this.__parent.indent_size; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype._remove_wrap_indent = function() { | 
						|
  if (this.__wrap_point_indent_count > 0) { | 
						|
    this.__wrap_point_indent_count -= 1; | 
						|
  } | 
						|
}; | 
						|
OutputLine.prototype.trim = function() { | 
						|
  while (this.last() === ' ') { | 
						|
    this.__items.pop(); | 
						|
    this.__character_count -= 1; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
OutputLine.prototype.toString = function() { | 
						|
  var result = ''; | 
						|
  if (this.is_empty()) { | 
						|
    if (this.__parent.indent_empty_lines) { | 
						|
      result = this.__parent.get_indent_string(this.__indent_count); | 
						|
    } | 
						|
  } else { | 
						|
    result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count); | 
						|
    result += this.__items.join(''); | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
function IndentStringCache(options, baseIndentString) { | 
						|
  this.__cache = ['']; | 
						|
  this.__indent_size = options.indent_size; | 
						|
  this.__indent_string = options.indent_char; | 
						|
  if (!options.indent_with_tabs) { | 
						|
    this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char); | 
						|
  } | 
						|
 | 
						|
  // Set to null to continue support for auto detection of base indent | 
						|
  baseIndentString = baseIndentString || ''; | 
						|
  if (options.indent_level > 0) { | 
						|
    baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string); | 
						|
  } | 
						|
 | 
						|
  this.__base_string = baseIndentString; | 
						|
  this.__base_string_length = baseIndentString.length; | 
						|
} | 
						|
 | 
						|
IndentStringCache.prototype.get_indent_size = function(indent, column) { | 
						|
  var result = this.__base_string_length; | 
						|
  column = column || 0; | 
						|
  if (indent < 0) { | 
						|
    result = 0; | 
						|
  } | 
						|
  result += indent * this.__indent_size; | 
						|
  result += column; | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
IndentStringCache.prototype.get_indent_string = function(indent_level, column) { | 
						|
  var result = this.__base_string; | 
						|
  column = column || 0; | 
						|
  if (indent_level < 0) { | 
						|
    indent_level = 0; | 
						|
    result = ''; | 
						|
  } | 
						|
  column += indent_level * this.__indent_size; | 
						|
  this.__ensure_cache(column); | 
						|
  result += this.__cache[column]; | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
IndentStringCache.prototype.__ensure_cache = function(column) { | 
						|
  while (column >= this.__cache.length) { | 
						|
    this.__add_column(); | 
						|
  } | 
						|
}; | 
						|
 | 
						|
IndentStringCache.prototype.__add_column = function() { | 
						|
  var column = this.__cache.length; | 
						|
  var indent = 0; | 
						|
  var result = ''; | 
						|
  if (this.__indent_size && column >= this.__indent_size) { | 
						|
    indent = Math.floor(column / this.__indent_size); | 
						|
    column -= indent * this.__indent_size; | 
						|
    result = new Array(indent + 1).join(this.__indent_string); | 
						|
  } | 
						|
  if (column) { | 
						|
    result += new Array(column + 1).join(' '); | 
						|
  } | 
						|
 | 
						|
  this.__cache.push(result); | 
						|
}; | 
						|
 | 
						|
function Output(options, baseIndentString) { | 
						|
  this.__indent_cache = new IndentStringCache(options, baseIndentString); | 
						|
  this.raw = false; | 
						|
  this._end_with_newline = options.end_with_newline; | 
						|
  this.indent_size = options.indent_size; | 
						|
  this.wrap_line_length = options.wrap_line_length; | 
						|
  this.indent_empty_lines = options.indent_empty_lines; | 
						|
  this.__lines = []; | 
						|
  this.previous_line = null; | 
						|
  this.current_line = null; | 
						|
  this.next_line = new OutputLine(this); | 
						|
  this.space_before_token = false; | 
						|
  this.non_breaking_space = false; | 
						|
  this.previous_token_wrapped = false; | 
						|
  // initialize | 
						|
  this.__add_outputline(); | 
						|
} | 
						|
 | 
						|
Output.prototype.__add_outputline = function() { | 
						|
  this.previous_line = this.current_line; | 
						|
  this.current_line = this.next_line.clone_empty(); | 
						|
  this.__lines.push(this.current_line); | 
						|
}; | 
						|
 | 
						|
Output.prototype.get_line_number = function() { | 
						|
  return this.__lines.length; | 
						|
}; | 
						|
 | 
						|
Output.prototype.get_indent_string = function(indent, column) { | 
						|
  return this.__indent_cache.get_indent_string(indent, column); | 
						|
}; | 
						|
 | 
						|
Output.prototype.get_indent_size = function(indent, column) { | 
						|
  return this.__indent_cache.get_indent_size(indent, column); | 
						|
}; | 
						|
 | 
						|
Output.prototype.is_empty = function() { | 
						|
  return !this.previous_line && this.current_line.is_empty(); | 
						|
}; | 
						|
 | 
						|
Output.prototype.add_new_line = function(force_newline) { | 
						|
  // never newline at the start of file | 
						|
  // otherwise, newline only if we didn't just add one or we're forced | 
						|
  if (this.is_empty() || | 
						|
    (!force_newline && this.just_added_newline())) { | 
						|
    return false; | 
						|
  } | 
						|
 | 
						|
  // if raw output is enabled, don't print additional newlines, | 
						|
  // but still return True as though you had | 
						|
  if (!this.raw) { | 
						|
    this.__add_outputline(); | 
						|
  } | 
						|
  return true; | 
						|
}; | 
						|
 | 
						|
Output.prototype.get_code = function(eol) { | 
						|
  this.trim(true); | 
						|
 | 
						|
  // handle some edge cases where the last tokens | 
						|
  // has text that ends with newline(s) | 
						|
  var last_item = this.current_line.pop(); | 
						|
  if (last_item) { | 
						|
    if (last_item[last_item.length - 1] === '\n') { | 
						|
      last_item = last_item.replace(/\n+$/g, ''); | 
						|
    } | 
						|
    this.current_line.push(last_item); | 
						|
  } | 
						|
 | 
						|
  if (this._end_with_newline) { | 
						|
    this.__add_outputline(); | 
						|
  } | 
						|
 | 
						|
  var sweet_code = this.__lines.join('\n'); | 
						|
 | 
						|
  if (eol !== '\n') { | 
						|
    sweet_code = sweet_code.replace(/[\n]/g, eol); | 
						|
  } | 
						|
  return sweet_code; | 
						|
}; | 
						|
 | 
						|
Output.prototype.set_wrap_point = function() { | 
						|
  this.current_line._set_wrap_point(); | 
						|
}; | 
						|
 | 
						|
Output.prototype.set_indent = function(indent, alignment) { | 
						|
  indent = indent || 0; | 
						|
  alignment = alignment || 0; | 
						|
 | 
						|
  // Next line stores alignment values | 
						|
  this.next_line.set_indent(indent, alignment); | 
						|
 | 
						|
  // Never indent your first output indent at the start of the file | 
						|
  if (this.__lines.length > 1) { | 
						|
    this.current_line.set_indent(indent, alignment); | 
						|
    return true; | 
						|
  } | 
						|
 | 
						|
  this.current_line.set_indent(); | 
						|
  return false; | 
						|
}; | 
						|
 | 
						|
Output.prototype.add_raw_token = function(token) { | 
						|
  for (var x = 0; x < token.newlines; x++) { | 
						|
    this.__add_outputline(); | 
						|
  } | 
						|
  this.current_line.set_indent(-1); | 
						|
  this.current_line.push(token.whitespace_before); | 
						|
  this.current_line.push(token.text); | 
						|
  this.space_before_token = false; | 
						|
  this.non_breaking_space = false; | 
						|
  this.previous_token_wrapped = false; | 
						|
}; | 
						|
 | 
						|
Output.prototype.add_token = function(printable_token) { | 
						|
  this.__add_space_before_token(); | 
						|
  this.current_line.push(printable_token); | 
						|
  this.space_before_token = false; | 
						|
  this.non_breaking_space = false; | 
						|
  this.previous_token_wrapped = this.current_line._allow_wrap(); | 
						|
}; | 
						|
 | 
						|
Output.prototype.__add_space_before_token = function() { | 
						|
  if (this.space_before_token && !this.just_added_newline()) { | 
						|
    if (!this.non_breaking_space) { | 
						|
      this.set_wrap_point(); | 
						|
    } | 
						|
    this.current_line.push(' '); | 
						|
  } | 
						|
}; | 
						|
 | 
						|
Output.prototype.remove_indent = function(index) { | 
						|
  var output_length = this.__lines.length; | 
						|
  while (index < output_length) { | 
						|
    this.__lines[index]._remove_indent(); | 
						|
    index++; | 
						|
  } | 
						|
  this.current_line._remove_wrap_indent(); | 
						|
}; | 
						|
 | 
						|
Output.prototype.trim = function(eat_newlines) { | 
						|
  eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; | 
						|
 | 
						|
  this.current_line.trim(); | 
						|
 | 
						|
  while (eat_newlines && this.__lines.length > 1 && | 
						|
    this.current_line.is_empty()) { | 
						|
    this.__lines.pop(); | 
						|
    this.current_line = this.__lines[this.__lines.length - 1]; | 
						|
    this.current_line.trim(); | 
						|
  } | 
						|
 | 
						|
  this.previous_line = this.__lines.length > 1 ? | 
						|
    this.__lines[this.__lines.length - 2] : null; | 
						|
}; | 
						|
 | 
						|
Output.prototype.just_added_newline = function() { | 
						|
  return this.current_line.is_empty(); | 
						|
}; | 
						|
 | 
						|
Output.prototype.just_added_blankline = function() { | 
						|
  return this.is_empty() || | 
						|
    (this.current_line.is_empty() && this.previous_line.is_empty()); | 
						|
}; | 
						|
 | 
						|
Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) { | 
						|
  var index = this.__lines.length - 2; | 
						|
  while (index >= 0) { | 
						|
    var potentialEmptyLine = this.__lines[index]; | 
						|
    if (potentialEmptyLine.is_empty()) { | 
						|
      break; | 
						|
    } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && | 
						|
      potentialEmptyLine.item(-1) !== ends_with) { | 
						|
      this.__lines.splice(index + 1, 0, new OutputLine(this)); | 
						|
      this.previous_line = this.__lines[this.__lines.length - 2]; | 
						|
      break; | 
						|
    } | 
						|
    index--; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
module.exports.Output = Output; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 3 */, | 
						|
/* 4 */, | 
						|
/* 5 */, | 
						|
/* 6 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
function Options(options, merge_child_field) { | 
						|
  this.raw_options = _mergeOpts(options, merge_child_field); | 
						|
 | 
						|
  // Support passing the source text back with no change | 
						|
  this.disabled = this._get_boolean('disabled'); | 
						|
 | 
						|
  this.eol = this._get_characters('eol', 'auto'); | 
						|
  this.end_with_newline = this._get_boolean('end_with_newline'); | 
						|
  this.indent_size = this._get_number('indent_size', 4); | 
						|
  this.indent_char = this._get_characters('indent_char', ' '); | 
						|
  this.indent_level = this._get_number('indent_level'); | 
						|
 | 
						|
  this.preserve_newlines = this._get_boolean('preserve_newlines', true); | 
						|
  this.max_preserve_newlines = this._get_number('max_preserve_newlines', 32786); | 
						|
  if (!this.preserve_newlines) { | 
						|
    this.max_preserve_newlines = 0; | 
						|
  } | 
						|
 | 
						|
  this.indent_with_tabs = this._get_boolean('indent_with_tabs', this.indent_char === '\t'); | 
						|
  if (this.indent_with_tabs) { | 
						|
    this.indent_char = '\t'; | 
						|
 | 
						|
    // indent_size behavior changed after 1.8.6 | 
						|
    // It used to be that indent_size would be | 
						|
    // set to 1 for indent_with_tabs. That is no longer needed and | 
						|
    // actually doesn't make sense - why not use spaces? Further, | 
						|
    // that might produce unexpected behavior - tabs being used | 
						|
    // for single-column alignment. So, when indent_with_tabs is true | 
						|
    // and indent_size is 1, reset indent_size to 4. | 
						|
    if (this.indent_size === 1) { | 
						|
      this.indent_size = 4; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  // Backwards compat with 1.3.x | 
						|
  this.wrap_line_length = this._get_number('wrap_line_length', this._get_number('max_char')); | 
						|
 | 
						|
  this.indent_empty_lines = this._get_boolean('indent_empty_lines'); | 
						|
 | 
						|
  // valid templating languages ['django', 'erb', 'handlebars', 'php'] | 
						|
  // For now, 'auto' = all off for javascript, all on for html (and inline javascript). | 
						|
  // other values ignored | 
						|
  this.templating = this._get_selection_list('templating', ['auto', 'none', 'django', 'erb', 'handlebars', 'php'], ['auto']); | 
						|
} | 
						|
 | 
						|
Options.prototype._get_array = function(name, default_value) { | 
						|
  var option_value = this.raw_options[name]; | 
						|
  var result = default_value || []; | 
						|
  if (typeof option_value === 'object') { | 
						|
    if (option_value !== null && typeof option_value.concat === 'function') { | 
						|
      result = option_value.concat(); | 
						|
    } | 
						|
  } else if (typeof option_value === 'string') { | 
						|
    result = option_value.split(/[^a-zA-Z0-9_\/\-]+/); | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
Options.prototype._get_boolean = function(name, default_value) { | 
						|
  var option_value = this.raw_options[name]; | 
						|
  var result = option_value === undefined ? !!default_value : !!option_value; | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
Options.prototype._get_characters = function(name, default_value) { | 
						|
  var option_value = this.raw_options[name]; | 
						|
  var result = default_value || ''; | 
						|
  if (typeof option_value === 'string') { | 
						|
    result = option_value.replace(/\\r/, '\r').replace(/\\n/, '\n').replace(/\\t/, '\t'); | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
Options.prototype._get_number = function(name, default_value) { | 
						|
  var option_value = this.raw_options[name]; | 
						|
  default_value = parseInt(default_value, 10); | 
						|
  if (isNaN(default_value)) { | 
						|
    default_value = 0; | 
						|
  } | 
						|
  var result = parseInt(option_value, 10); | 
						|
  if (isNaN(result)) { | 
						|
    result = default_value; | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
Options.prototype._get_selection = function(name, selection_list, default_value) { | 
						|
  var result = this._get_selection_list(name, selection_list, default_value); | 
						|
  if (result.length !== 1) { | 
						|
    throw new Error( | 
						|
      "Invalid Option Value: The option '" + name + "' can only be one of the following values:\n" + | 
						|
      selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); | 
						|
  } | 
						|
 | 
						|
  return result[0]; | 
						|
}; | 
						|
 | 
						|
 | 
						|
Options.prototype._get_selection_list = function(name, selection_list, default_value) { | 
						|
  if (!selection_list || selection_list.length === 0) { | 
						|
    throw new Error("Selection list cannot be empty."); | 
						|
  } | 
						|
 | 
						|
  default_value = default_value || [selection_list[0]]; | 
						|
  if (!this._is_valid_selection(default_value, selection_list)) { | 
						|
    throw new Error("Invalid Default Value!"); | 
						|
  } | 
						|
 | 
						|
  var result = this._get_array(name, default_value); | 
						|
  if (!this._is_valid_selection(result, selection_list)) { | 
						|
    throw new Error( | 
						|
      "Invalid Option Value: The option '" + name + "' can contain only the following values:\n" + | 
						|
      selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); | 
						|
  } | 
						|
 | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
Options.prototype._is_valid_selection = function(result, selection_list) { | 
						|
  return result.length && selection_list.length && | 
						|
    !result.some(function(item) { return selection_list.indexOf(item) === -1; }); | 
						|
}; | 
						|
 | 
						|
 | 
						|
// merges child options up with the parent options object | 
						|
// Example: obj = {a: 1, b: {a: 2}} | 
						|
//          mergeOpts(obj, 'b') | 
						|
// | 
						|
//          Returns: {a: 2} | 
						|
function _mergeOpts(allOptions, childFieldName) { | 
						|
  var finalOpts = {}; | 
						|
  allOptions = _normalizeOpts(allOptions); | 
						|
  var name; | 
						|
 | 
						|
  for (name in allOptions) { | 
						|
    if (name !== childFieldName) { | 
						|
      finalOpts[name] = allOptions[name]; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  //merge in the per type settings for the childFieldName | 
						|
  if (childFieldName && allOptions[childFieldName]) { | 
						|
    for (name in allOptions[childFieldName]) { | 
						|
      finalOpts[name] = allOptions[childFieldName][name]; | 
						|
    } | 
						|
  } | 
						|
  return finalOpts; | 
						|
} | 
						|
 | 
						|
function _normalizeOpts(options) { | 
						|
  var convertedOpts = {}; | 
						|
  var key; | 
						|
 | 
						|
  for (key in options) { | 
						|
    var newKey = key.replace(/-/g, "_"); | 
						|
    convertedOpts[newKey] = options[key]; | 
						|
  } | 
						|
  return convertedOpts; | 
						|
} | 
						|
 | 
						|
module.exports.Options = Options; | 
						|
module.exports.normalizeOpts = _normalizeOpts; | 
						|
module.exports.mergeOpts = _mergeOpts; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 7 */, | 
						|
/* 8 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
var regexp_has_sticky = RegExp.prototype.hasOwnProperty('sticky'); | 
						|
 | 
						|
function InputScanner(input_string) { | 
						|
  this.__input = input_string || ''; | 
						|
  this.__input_length = this.__input.length; | 
						|
  this.__position = 0; | 
						|
} | 
						|
 | 
						|
InputScanner.prototype.restart = function() { | 
						|
  this.__position = 0; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.back = function() { | 
						|
  if (this.__position > 0) { | 
						|
    this.__position -= 1; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.hasNext = function() { | 
						|
  return this.__position < this.__input_length; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.next = function() { | 
						|
  var val = null; | 
						|
  if (this.hasNext()) { | 
						|
    val = this.__input.charAt(this.__position); | 
						|
    this.__position += 1; | 
						|
  } | 
						|
  return val; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.peek = function(index) { | 
						|
  var val = null; | 
						|
  index = index || 0; | 
						|
  index += this.__position; | 
						|
  if (index >= 0 && index < this.__input_length) { | 
						|
    val = this.__input.charAt(index); | 
						|
  } | 
						|
  return val; | 
						|
}; | 
						|
 | 
						|
// This is a JavaScript only helper function (not in python) | 
						|
// Javascript doesn't have a match method | 
						|
// and not all implementation support "sticky" flag. | 
						|
// If they do not support sticky then both this.match() and this.test() method | 
						|
// must get the match and check the index of the match. | 
						|
// If sticky is supported and set, this method will use it. | 
						|
// Otherwise it will check that global is set, and fall back to the slower method. | 
						|
InputScanner.prototype.__match = function(pattern, index) { | 
						|
  pattern.lastIndex = index; | 
						|
  var pattern_match = pattern.exec(this.__input); | 
						|
 | 
						|
  if (pattern_match && !(regexp_has_sticky && pattern.sticky)) { | 
						|
    if (pattern_match.index !== index) { | 
						|
      pattern_match = null; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  return pattern_match; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.test = function(pattern, index) { | 
						|
  index = index || 0; | 
						|
  index += this.__position; | 
						|
 | 
						|
  if (index >= 0 && index < this.__input_length) { | 
						|
    return !!this.__match(pattern, index); | 
						|
  } else { | 
						|
    return false; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.testChar = function(pattern, index) { | 
						|
  // test one character regex match | 
						|
  var val = this.peek(index); | 
						|
  pattern.lastIndex = 0; | 
						|
  return val !== null && pattern.test(val); | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.match = function(pattern) { | 
						|
  var pattern_match = this.__match(pattern, this.__position); | 
						|
  if (pattern_match) { | 
						|
    this.__position += pattern_match[0].length; | 
						|
  } else { | 
						|
    pattern_match = null; | 
						|
  } | 
						|
  return pattern_match; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) { | 
						|
  var val = ''; | 
						|
  var match; | 
						|
  if (starting_pattern) { | 
						|
    match = this.match(starting_pattern); | 
						|
    if (match) { | 
						|
      val += match[0]; | 
						|
    } | 
						|
  } | 
						|
  if (until_pattern && (match || !starting_pattern)) { | 
						|
    val += this.readUntil(until_pattern, until_after); | 
						|
  } | 
						|
  return val; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.readUntil = function(pattern, until_after) { | 
						|
  var val = ''; | 
						|
  var match_index = this.__position; | 
						|
  pattern.lastIndex = this.__position; | 
						|
  var pattern_match = pattern.exec(this.__input); | 
						|
  if (pattern_match) { | 
						|
    match_index = pattern_match.index; | 
						|
    if (until_after) { | 
						|
      match_index += pattern_match[0].length; | 
						|
    } | 
						|
  } else { | 
						|
    match_index = this.__input_length; | 
						|
  } | 
						|
 | 
						|
  val = this.__input.substring(this.__position, match_index); | 
						|
  this.__position = match_index; | 
						|
  return val; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.readUntilAfter = function(pattern) { | 
						|
  return this.readUntil(pattern, true); | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.get_regexp = function(pattern, match_from) { | 
						|
  var result = null; | 
						|
  var flags = 'g'; | 
						|
  if (match_from && regexp_has_sticky) { | 
						|
    flags = 'y'; | 
						|
  } | 
						|
  // strings are converted to regexp | 
						|
  if (typeof pattern === "string" && pattern !== '') { | 
						|
    // result = new RegExp(pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), flags); | 
						|
    result = new RegExp(pattern, flags); | 
						|
  } else if (pattern) { | 
						|
    result = new RegExp(pattern.source, flags); | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.get_literal_regexp = function(literal_string) { | 
						|
  return RegExp(literal_string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); | 
						|
}; | 
						|
 | 
						|
/* css beautifier legacy helpers */ | 
						|
InputScanner.prototype.peekUntilAfter = function(pattern) { | 
						|
  var start = this.__position; | 
						|
  var val = this.readUntilAfter(pattern); | 
						|
  this.__position = start; | 
						|
  return val; | 
						|
}; | 
						|
 | 
						|
InputScanner.prototype.lookBack = function(testVal) { | 
						|
  var start = this.__position - 1; | 
						|
  return start >= testVal.length && this.__input.substring(start - testVal.length, start) | 
						|
    .toLowerCase() === testVal; | 
						|
}; | 
						|
 | 
						|
module.exports.InputScanner = InputScanner; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 9 */, | 
						|
/* 10 */, | 
						|
/* 11 */, | 
						|
/* 12 */, | 
						|
/* 13 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
function Directives(start_block_pattern, end_block_pattern) { | 
						|
  start_block_pattern = typeof start_block_pattern === 'string' ? start_block_pattern : start_block_pattern.source; | 
						|
  end_block_pattern = typeof end_block_pattern === 'string' ? end_block_pattern : end_block_pattern.source; | 
						|
  this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \w+[:]\w+)+ /.source + end_block_pattern, 'g'); | 
						|
  this.__directive_pattern = / (\w+)[:](\w+)/g; | 
						|
 | 
						|
  this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\sbeautify\signore:end\s/.source + end_block_pattern, 'g'); | 
						|
} | 
						|
 | 
						|
Directives.prototype.get_directives = function(text) { | 
						|
  if (!text.match(this.__directives_block_pattern)) { | 
						|
    return null; | 
						|
  } | 
						|
 | 
						|
  var directives = {}; | 
						|
  this.__directive_pattern.lastIndex = 0; | 
						|
  var directive_match = this.__directive_pattern.exec(text); | 
						|
 | 
						|
  while (directive_match) { | 
						|
    directives[directive_match[1]] = directive_match[2]; | 
						|
    directive_match = this.__directive_pattern.exec(text); | 
						|
  } | 
						|
 | 
						|
  return directives; | 
						|
}; | 
						|
 | 
						|
Directives.prototype.readIgnored = function(input) { | 
						|
  return input.readUntilAfter(this.__directives_end_ignore_pattern); | 
						|
}; | 
						|
 | 
						|
 | 
						|
module.exports.Directives = Directives; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 14 */, | 
						|
/* 15 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
var Beautifier = __webpack_require__(16).Beautifier, | 
						|
  Options = __webpack_require__(17).Options; | 
						|
 | 
						|
function css_beautify(source_text, options) { | 
						|
  var beautifier = new Beautifier(source_text, options); | 
						|
  return beautifier.beautify(); | 
						|
} | 
						|
 | 
						|
module.exports = css_beautify; | 
						|
module.exports.defaultOptions = function() { | 
						|
  return new Options(); | 
						|
}; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 16 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
var Options = __webpack_require__(17).Options; | 
						|
var Output = __webpack_require__(2).Output; | 
						|
var InputScanner = __webpack_require__(8).InputScanner; | 
						|
var Directives = __webpack_require__(13).Directives; | 
						|
 | 
						|
var directives_core = new Directives(/\/\*/, /\*\//); | 
						|
 | 
						|
var lineBreak = /\r\n|[\r\n]/; | 
						|
var allLineBreaks = /\r\n|[\r\n]/g; | 
						|
 | 
						|
// tokenizer | 
						|
var whitespaceChar = /\s/; | 
						|
var whitespacePattern = /(?:\s|\n)+/g; | 
						|
var block_comment_pattern = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g; | 
						|
var comment_pattern = /\/\/(?:[^\n\r\u2028\u2029]*)/g; | 
						|
 | 
						|
function Beautifier(source_text, options) { | 
						|
  this._source_text = source_text || ''; | 
						|
  // Allow the setting of language/file-type specific options | 
						|
  // with inheritance of overall settings | 
						|
  this._options = new Options(options); | 
						|
  this._ch = null; | 
						|
  this._input = null; | 
						|
 | 
						|
  // https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule | 
						|
  this.NESTED_AT_RULE = { | 
						|
    "@page": true, | 
						|
    "@font-face": true, | 
						|
    "@keyframes": true, | 
						|
    // also in CONDITIONAL_GROUP_RULE below | 
						|
    "@media": true, | 
						|
    "@supports": true, | 
						|
    "@document": true | 
						|
  }; | 
						|
  this.CONDITIONAL_GROUP_RULE = { | 
						|
    "@media": true, | 
						|
    "@supports": true, | 
						|
    "@document": true | 
						|
  }; | 
						|
 | 
						|
} | 
						|
 | 
						|
Beautifier.prototype.eatString = function(endChars) { | 
						|
  var result = ''; | 
						|
  this._ch = this._input.next(); | 
						|
  while (this._ch) { | 
						|
    result += this._ch; | 
						|
    if (this._ch === "\\") { | 
						|
      result += this._input.next(); | 
						|
    } else if (endChars.indexOf(this._ch) !== -1 || this._ch === "\n") { | 
						|
      break; | 
						|
    } | 
						|
    this._ch = this._input.next(); | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
// Skips any white space in the source text from the current position. | 
						|
// When allowAtLeastOneNewLine is true, will output new lines for each | 
						|
// newline character found; if the user has preserve_newlines off, only | 
						|
// the first newline will be output | 
						|
Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) { | 
						|
  var result = whitespaceChar.test(this._input.peek()); | 
						|
  var isFirstNewLine = true; | 
						|
 | 
						|
  while (whitespaceChar.test(this._input.peek())) { | 
						|
    this._ch = this._input.next(); | 
						|
    if (allowAtLeastOneNewLine && this._ch === '\n') { | 
						|
      if (this._options.preserve_newlines || isFirstNewLine) { | 
						|
        isFirstNewLine = false; | 
						|
        this._output.add_new_line(true); | 
						|
      } | 
						|
    } | 
						|
  } | 
						|
  return result; | 
						|
}; | 
						|
 | 
						|
// Nested pseudo-class if we are insideRule | 
						|
// and the next special character found opens | 
						|
// a new block | 
						|
Beautifier.prototype.foundNestedPseudoClass = function() { | 
						|
  var openParen = 0; | 
						|
  var i = 1; | 
						|
  var ch = this._input.peek(i); | 
						|
  while (ch) { | 
						|
    if (ch === "{") { | 
						|
      return true; | 
						|
    } else if (ch === '(') { | 
						|
      // pseudoclasses can contain () | 
						|
      openParen += 1; | 
						|
    } else if (ch === ')') { | 
						|
      if (openParen === 0) { | 
						|
        return false; | 
						|
      } | 
						|
      openParen -= 1; | 
						|
    } else if (ch === ";" || ch === "}") { | 
						|
      return false; | 
						|
    } | 
						|
    i++; | 
						|
    ch = this._input.peek(i); | 
						|
  } | 
						|
  return false; | 
						|
}; | 
						|
 | 
						|
Beautifier.prototype.print_string = function(output_string) { | 
						|
  this._output.set_indent(this._indentLevel); | 
						|
  this._output.non_breaking_space = true; | 
						|
  this._output.add_token(output_string); | 
						|
}; | 
						|
 | 
						|
Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) { | 
						|
  if (isAfterSpace) { | 
						|
    this._output.space_before_token = true; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
Beautifier.prototype.indent = function() { | 
						|
  this._indentLevel++; | 
						|
}; | 
						|
 | 
						|
Beautifier.prototype.outdent = function() { | 
						|
  if (this._indentLevel > 0) { | 
						|
    this._indentLevel--; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
/*_____________________--------------------_____________________*/ | 
						|
 | 
						|
Beautifier.prototype.beautify = function() { | 
						|
  if (this._options.disabled) { | 
						|
    return this._source_text; | 
						|
  } | 
						|
 | 
						|
  var source_text = this._source_text; | 
						|
  var eol = this._options.eol; | 
						|
  if (eol === 'auto') { | 
						|
    eol = '\n'; | 
						|
    if (source_text && lineBreak.test(source_text || '')) { | 
						|
      eol = source_text.match(lineBreak)[0]; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
 | 
						|
  // HACK: newline parsing inconsistent. This brute force normalizes the this._input. | 
						|
  source_text = source_text.replace(allLineBreaks, '\n'); | 
						|
 | 
						|
  // reset | 
						|
  var baseIndentString = source_text.match(/^[\t ]*/)[0]; | 
						|
 | 
						|
  this._output = new Output(this._options, baseIndentString); | 
						|
  this._input = new InputScanner(source_text); | 
						|
  this._indentLevel = 0; | 
						|
  this._nestedLevel = 0; | 
						|
 | 
						|
  this._ch = null; | 
						|
  var parenLevel = 0; | 
						|
 | 
						|
  var insideRule = false; | 
						|
  // This is the value side of a property value pair (blue in the following ex) | 
						|
  // label { content: blue } | 
						|
  var insidePropertyValue = false; | 
						|
  var enteringConditionalGroup = false; | 
						|
  var insideAtExtend = false; | 
						|
  var insideAtImport = false; | 
						|
  var topCharacter = this._ch; | 
						|
  var whitespace; | 
						|
  var isAfterSpace; | 
						|
  var previous_ch; | 
						|
 | 
						|
  while (true) { | 
						|
    whitespace = this._input.read(whitespacePattern); | 
						|
    isAfterSpace = whitespace !== ''; | 
						|
    previous_ch = topCharacter; | 
						|
    this._ch = this._input.next(); | 
						|
    if (this._ch === '\\' && this._input.hasNext()) { | 
						|
      this._ch += this._input.next(); | 
						|
    } | 
						|
    topCharacter = this._ch; | 
						|
 | 
						|
    if (!this._ch) { | 
						|
      break; | 
						|
    } else if (this._ch === '/' && this._input.peek() === '*') { | 
						|
      // /* css comment */ | 
						|
      // Always start block comments on a new line. | 
						|
      // This handles scenarios where a block comment immediately | 
						|
      // follows a property definition on the same line or where | 
						|
      // minified code is being beautified. | 
						|
      this._output.add_new_line(); | 
						|
      this._input.back(); | 
						|
 | 
						|
      var comment = this._input.read(block_comment_pattern); | 
						|
 | 
						|
      // Handle ignore directive | 
						|
      var directives = directives_core.get_directives(comment); | 
						|
      if (directives && directives.ignore === 'start') { | 
						|
        comment += directives_core.readIgnored(this._input); | 
						|
      } | 
						|
 | 
						|
      this.print_string(comment); | 
						|
 | 
						|
      // Ensures any new lines following the comment are preserved | 
						|
      this.eatWhitespace(true); | 
						|
 | 
						|
      // Block comments are followed by a new line so they don't | 
						|
      // share a line with other properties | 
						|
      this._output.add_new_line(); | 
						|
    } else if (this._ch === '/' && this._input.peek() === '/') { | 
						|
      // // single line comment | 
						|
      // Preserves the space before a comment | 
						|
      // on the same line as a rule | 
						|
      this._output.space_before_token = true; | 
						|
      this._input.back(); | 
						|
      this.print_string(this._input.read(comment_pattern)); | 
						|
 | 
						|
      // Ensures any new lines following the comment are preserved | 
						|
      this.eatWhitespace(true); | 
						|
    } else if (this._ch === '@') { | 
						|
      this.preserveSingleSpace(isAfterSpace); | 
						|
 | 
						|
      // deal with less propery mixins @{...} | 
						|
      if (this._input.peek() === '{') { | 
						|
        this.print_string(this._ch + this.eatString('}')); | 
						|
      } else { | 
						|
        this.print_string(this._ch); | 
						|
 | 
						|
        // strip trailing space, if present, for hash property checks | 
						|
        var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); | 
						|
 | 
						|
        if (variableOrRule.match(/[ :]$/)) { | 
						|
          // we have a variable or pseudo-class, add it and insert one space before continuing | 
						|
          variableOrRule = this.eatString(": ").replace(/\s$/, ''); | 
						|
          this.print_string(variableOrRule); | 
						|
          this._output.space_before_token = true; | 
						|
        } | 
						|
 | 
						|
        variableOrRule = variableOrRule.replace(/\s$/, ''); | 
						|
 | 
						|
        if (variableOrRule === 'extend') { | 
						|
          insideAtExtend = true; | 
						|
        } else if (variableOrRule === 'import') { | 
						|
          insideAtImport = true; | 
						|
        } | 
						|
 | 
						|
        // might be a nesting at-rule | 
						|
        if (variableOrRule in this.NESTED_AT_RULE) { | 
						|
          this._nestedLevel += 1; | 
						|
          if (variableOrRule in this.CONDITIONAL_GROUP_RULE) { | 
						|
            enteringConditionalGroup = true; | 
						|
          } | 
						|
          // might be less variable | 
						|
        } else if (!insideRule && parenLevel === 0 && variableOrRule.indexOf(':') !== -1) { | 
						|
          insidePropertyValue = true; | 
						|
          this.indent(); | 
						|
        } | 
						|
      } | 
						|
    } else if (this._ch === '#' && this._input.peek() === '{') { | 
						|
      this.preserveSingleSpace(isAfterSpace); | 
						|
      this.print_string(this._ch + this.eatString('}')); | 
						|
    } else if (this._ch === '{') { | 
						|
      if (insidePropertyValue) { | 
						|
        insidePropertyValue = false; | 
						|
        this.outdent(); | 
						|
      } | 
						|
      this.indent(); | 
						|
      this._output.space_before_token = true; | 
						|
      this.print_string(this._ch); | 
						|
 | 
						|
      // when entering conditional groups, only rulesets are allowed | 
						|
      if (enteringConditionalGroup) { | 
						|
        enteringConditionalGroup = false; | 
						|
        insideRule = (this._indentLevel > this._nestedLevel); | 
						|
      } else { | 
						|
        // otherwise, declarations are also allowed | 
						|
        insideRule = (this._indentLevel >= this._nestedLevel); | 
						|
      } | 
						|
      if (this._options.newline_between_rules && insideRule) { | 
						|
        if (this._output.previous_line && this._output.previous_line.item(-1) !== '{') { | 
						|
          this._output.ensure_empty_line_above('/', ','); | 
						|
        } | 
						|
      } | 
						|
      this.eatWhitespace(true); | 
						|
      this._output.add_new_line(); | 
						|
    } else if (this._ch === '}') { | 
						|
      this.outdent(); | 
						|
      this._output.add_new_line(); | 
						|
      if (previous_ch === '{') { | 
						|
        this._output.trim(true); | 
						|
      } | 
						|
      insideAtImport = false; | 
						|
      insideAtExtend = false; | 
						|
      if (insidePropertyValue) { | 
						|
        this.outdent(); | 
						|
        insidePropertyValue = false; | 
						|
      } | 
						|
      this.print_string(this._ch); | 
						|
      insideRule = false; | 
						|
      if (this._nestedLevel) { | 
						|
        this._nestedLevel--; | 
						|
      } | 
						|
 | 
						|
      this.eatWhitespace(true); | 
						|
      this._output.add_new_line(); | 
						|
 | 
						|
      if (this._options.newline_between_rules && !this._output.just_added_blankline()) { | 
						|
        if (this._input.peek() !== '}') { | 
						|
          this._output.add_new_line(true); | 
						|
        } | 
						|
      } | 
						|
    } else if (this._ch === ":") { | 
						|
      if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !insideAtExtend && parenLevel === 0) { | 
						|
        // 'property: value' delimiter | 
						|
        // which could be in a conditional group query | 
						|
        this.print_string(':'); | 
						|
        if (!insidePropertyValue) { | 
						|
          insidePropertyValue = true; | 
						|
          this._output.space_before_token = true; | 
						|
          this.eatWhitespace(true); | 
						|
          this.indent(); | 
						|
        } | 
						|
      } else { | 
						|
        // sass/less parent reference don't use a space | 
						|
        // sass nested pseudo-class don't use a space | 
						|
 | 
						|
        // preserve space before pseudoclasses/pseudoelements, as it means "in any child" | 
						|
        if (this._input.lookBack(" ")) { | 
						|
          this._output.space_before_token = true; | 
						|
        } | 
						|
        if (this._input.peek() === ":") { | 
						|
          // pseudo-element | 
						|
          this._ch = this._input.next(); | 
						|
          this.print_string("::"); | 
						|
        } else { | 
						|
          // pseudo-class | 
						|
          this.print_string(':'); | 
						|
        } | 
						|
      } | 
						|
    } else if (this._ch === '"' || this._ch === '\'') { | 
						|
      this.preserveSingleSpace(isAfterSpace); | 
						|
      this.print_string(this._ch + this.eatString(this._ch)); | 
						|
      this.eatWhitespace(true); | 
						|
    } else if (this._ch === ';') { | 
						|
      if (parenLevel === 0) { | 
						|
        if (insidePropertyValue) { | 
						|
          this.outdent(); | 
						|
          insidePropertyValue = false; | 
						|
        } | 
						|
        insideAtExtend = false; | 
						|
        insideAtImport = false; | 
						|
        this.print_string(this._ch); | 
						|
        this.eatWhitespace(true); | 
						|
 | 
						|
        // This maintains single line comments on the same | 
						|
        // line. Block comments are also affected, but | 
						|
        // a new line is always output before one inside | 
						|
        // that section | 
						|
        if (this._input.peek() !== '/') { | 
						|
          this._output.add_new_line(); | 
						|
        } | 
						|
      } else { | 
						|
        this.print_string(this._ch); | 
						|
        this.eatWhitespace(true); | 
						|
        this._output.space_before_token = true; | 
						|
      } | 
						|
    } else if (this._ch === '(') { // may be a url | 
						|
      if (this._input.lookBack("url")) { | 
						|
        this.print_string(this._ch); | 
						|
        this.eatWhitespace(); | 
						|
        parenLevel++; | 
						|
        this.indent(); | 
						|
        this._ch = this._input.next(); | 
						|
        if (this._ch === ')' || this._ch === '"' || this._ch === '\'') { | 
						|
          this._input.back(); | 
						|
        } else if (this._ch) { | 
						|
          this.print_string(this._ch + this.eatString(')')); | 
						|
          if (parenLevel) { | 
						|
            parenLevel--; | 
						|
            this.outdent(); | 
						|
          } | 
						|
        } | 
						|
      } else { | 
						|
        this.preserveSingleSpace(isAfterSpace); | 
						|
        this.print_string(this._ch); | 
						|
        this.eatWhitespace(); | 
						|
        parenLevel++; | 
						|
        this.indent(); | 
						|
      } | 
						|
    } else if (this._ch === ')') { | 
						|
      if (parenLevel) { | 
						|
        parenLevel--; | 
						|
        this.outdent(); | 
						|
      } | 
						|
      this.print_string(this._ch); | 
						|
    } else if (this._ch === ',') { | 
						|
      this.print_string(this._ch); | 
						|
      this.eatWhitespace(true); | 
						|
      if (this._options.selector_separator_newline && !insidePropertyValue && parenLevel === 0 && !insideAtImport) { | 
						|
        this._output.add_new_line(); | 
						|
      } else { | 
						|
        this._output.space_before_token = true; | 
						|
      } | 
						|
    } else if ((this._ch === '>' || this._ch === '+' || this._ch === '~') && !insidePropertyValue && parenLevel === 0) { | 
						|
      //handle combinator spacing | 
						|
      if (this._options.space_around_combinator) { | 
						|
        this._output.space_before_token = true; | 
						|
        this.print_string(this._ch); | 
						|
        this._output.space_before_token = true; | 
						|
      } else { | 
						|
        this.print_string(this._ch); | 
						|
        this.eatWhitespace(); | 
						|
        // squash extra whitespace | 
						|
        if (this._ch && whitespaceChar.test(this._ch)) { | 
						|
          this._ch = ''; | 
						|
        } | 
						|
      } | 
						|
    } else if (this._ch === ']') { | 
						|
      this.print_string(this._ch); | 
						|
    } else if (this._ch === '[') { | 
						|
      this.preserveSingleSpace(isAfterSpace); | 
						|
      this.print_string(this._ch); | 
						|
    } else if (this._ch === '=') { // no whitespace before or after | 
						|
      this.eatWhitespace(); | 
						|
      this.print_string('='); | 
						|
      if (whitespaceChar.test(this._ch)) { | 
						|
        this._ch = ''; | 
						|
      } | 
						|
    } else if (this._ch === '!' && !this._input.lookBack("\\")) { // !important | 
						|
      this.print_string(' '); | 
						|
      this.print_string(this._ch); | 
						|
    } else { | 
						|
      this.preserveSingleSpace(isAfterSpace); | 
						|
      this.print_string(this._ch); | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  var sweetCode = this._output.get_code(eol); | 
						|
 | 
						|
  return sweetCode; | 
						|
}; | 
						|
 | 
						|
module.exports.Beautifier = Beautifier; | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
/* 17 */ | 
						|
/***/ (function(module, exports, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/*jshint node:true */ | 
						|
/* | 
						|
 | 
						|
  The MIT License (MIT) | 
						|
 | 
						|
  Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. | 
						|
 | 
						|
  Permission is hereby granted, free of charge, to any person | 
						|
  obtaining a copy of this software and associated documentation files | 
						|
  (the "Software"), to deal in the Software without restriction, | 
						|
  including without limitation the rights to use, copy, modify, merge, | 
						|
  publish, distribute, sublicense, and/or sell copies of the Software, | 
						|
  and to permit persons to whom the Software is furnished to do so, | 
						|
  subject to the following conditions: | 
						|
 | 
						|
  The above copyright notice and this permission notice shall be | 
						|
  included in all copies or substantial portions of the Software. | 
						|
 | 
						|
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
						|
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
						|
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
						|
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
						|
  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
						|
  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
						|
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
						|
  SOFTWARE. | 
						|
*/ | 
						|
 | 
						|
 | 
						|
 | 
						|
var BaseOptions = __webpack_require__(6).Options; | 
						|
 | 
						|
function Options(options) { | 
						|
  BaseOptions.call(this, options, 'css'); | 
						|
 | 
						|
  this.selector_separator_newline = this._get_boolean('selector_separator_newline', true); | 
						|
  this.newline_between_rules = this._get_boolean('newline_between_rules', true); | 
						|
  var space_around_selector_separator = this._get_boolean('space_around_selector_separator'); | 
						|
  this.space_around_combinator = this._get_boolean('space_around_combinator') || space_around_selector_separator; | 
						|
 | 
						|
} | 
						|
Options.prototype = new BaseOptions(); | 
						|
 | 
						|
 | 
						|
 | 
						|
module.exports.Options = Options; | 
						|
 | 
						|
 | 
						|
/***/ }) | 
						|
/******/ ]); | 
						|
var css_beautify = legacy_beautify_css; | 
						|
/* Footer */ | 
						|
if (typeof define === "function" && define.amd) { | 
						|
    // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) | 
						|
    define([], function() { | 
						|
        return { | 
						|
            css_beautify: css_beautify | 
						|
        }; | 
						|
    }); | 
						|
} else if (typeof exports !== "undefined") { | 
						|
    // Add support for CommonJS. Just put this file somewhere on your require.paths | 
						|
    // and you will be able to `var html_beautify = require("beautify").html_beautify`. | 
						|
    exports.css_beautify = css_beautify; | 
						|
} else if (typeof window !== "undefined") { | 
						|
    // If we're running a web page and don't have either of the above, add our one global | 
						|
    window.css_beautify = css_beautify; | 
						|
} else if (typeof global !== "undefined") { | 
						|
    // If we don't even have window, try global. | 
						|
    global.css_beautify = css_beautify; | 
						|
} | 
						|
 | 
						|
}());
 | 
						|
 |