import { __require as requireCamelize } from './camelize.js';
import { __require as requireHyphenate } from './hyphenate.js';

var getStyleProperty_1;
var hasRequiredGetStyleProperty;

function requireGetStyleProperty () {
	if (hasRequiredGetStyleProperty) return getStyleProperty_1;
	hasRequiredGetStyleProperty = 1;

	/**
	 * Copyright (c) 2013-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 *
	 * @typechecks
	 */
	var camelize = requireCamelize();

	var hyphenate = requireHyphenate();

	function asString(value)
	/*?string*/
	{
	  return value == null ? value : String(value);
	}

	function getStyleProperty(
	/*DOMNode*/
	node,
	/*string*/
	name)
	/*?string*/
	{
	  var computedStyle; // W3C Standard

	  if (window.getComputedStyle) {
	    // In certain cases such as within an iframe in FF3, this returns null.
	    computedStyle = window.getComputedStyle(node, null);

	    if (computedStyle) {
	      return asString(computedStyle.getPropertyValue(hyphenate(name)));
	    }
	  } // Safari


	  if (document.defaultView && document.defaultView.getComputedStyle) {
	    computedStyle = document.defaultView.getComputedStyle(node, null); // A Safari bug causes this to return null for `display: none` elements.

	    if (computedStyle) {
	      return asString(computedStyle.getPropertyValue(hyphenate(name)));
	    }

	    if (name === 'display') {
	      return 'none';
	    }
	  } // Internet Explorer


	  if (node.currentStyle) {
	    if (name === 'float') {
	      return asString(node.currentStyle.cssFloat || node.currentStyle.styleFloat);
	    }

	    return asString(node.currentStyle[camelize(name)]);
	  }

	  return asString(node.style && node.style[camelize(name)]);
	}

	getStyleProperty_1 = getStyleProperty;
	return getStyleProperty_1;
}

export { requireGetStyleProperty as __require };
//# sourceMappingURL=getStyleProperty.js.map
