'use strict';

var _commonjsHelpers = require('../../../_virtual/_commonjsHelpers.js');
var XMLDeclaration = require('../../../_virtual/XMLDeclaration.js');
var Utility = require('./Utility.js');
var XMLNode = require('./XMLNode.js');
var NodeType = require('./NodeType.js');

var hasRequiredXMLDeclaration;

function requireXMLDeclaration () {
	if (hasRequiredXMLDeclaration) return XMLDeclaration.__module.exports;
	hasRequiredXMLDeclaration = 1;
	// Generated by CoffeeScript 1.12.7
	(function() {
	  var NodeType$1, XMLNode$1, isObject,
	    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
	    hasProp = {}.hasOwnProperty;

	  isObject = Utility.__require().isObject;

	  XMLNode$1 = XMLNode.__require();

	  NodeType$1 = NodeType.__require();

	  XMLDeclaration.__module.exports = (function(superClass) {
	    extend(XMLDeclaration, superClass);

	    function XMLDeclaration(parent, version, encoding, standalone) {
	      var ref;
	      XMLDeclaration.__super__.constructor.call(this, parent);
	      if (isObject(version)) {
	        ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
	      }
	      if (!version) {
	        version = '1.0';
	      }
	      this.type = NodeType$1.Declaration;
	      this.version = this.stringify.xmlVersion(version);
	      if (encoding != null) {
	        this.encoding = this.stringify.xmlEncoding(encoding);
	      }
	      if (standalone != null) {
	        this.standalone = this.stringify.xmlStandalone(standalone);
	      }
	    }

	    XMLDeclaration.prototype.toString = function(options) {
	      return this.options.writer.declaration(this, this.options.writer.filterOptions(options));
	    };

	    return XMLDeclaration;

	  })(XMLNode$1);

	}).call(_commonjsHelpers.commonjsGlobal);
	return XMLDeclaration.__module.exports;
}

exports.__require = requireXMLDeclaration;
