Path: blob/trunk/third_party/closure/goog/dom/vendor.js
4562 views
/**1* @license2* Copyright The Closure Library Authors.3* SPDX-License-Identifier: Apache-2.04*/56/**7* @fileoverview Vendor prefix getters.8*/910goog.provide('goog.dom.vendor');1112goog.require('goog.string');13goog.require('goog.userAgent');141516/**17* Returns the JS vendor prefix used in CSS properties. Different vendors18* use different methods of changing the case of the property names.19*20* @return {?string} The JS vendor prefix or null if there is none.21*/22goog.dom.vendor.getVendorJsPrefix = function() {23'use strict';24if (goog.userAgent.WEBKIT) {25return 'Webkit';26} else if (goog.userAgent.GECKO) {27return 'Moz';28} else if (goog.userAgent.IE) {29return 'ms';30}3132return null;33};343536/**37* Returns the vendor prefix used in CSS properties.38*39* @return {?string} The vendor prefix or null if there is none.40*/41goog.dom.vendor.getVendorPrefix = function() {42'use strict';43if (goog.userAgent.WEBKIT) {44return '-webkit';45} else if (goog.userAgent.GECKO) {46return '-moz';47} else if (goog.userAgent.IE) {48return '-ms';49}5051return null;52};535455/**56* @param {string} propertyName A property name.57* @param {!Object=} opt_object If provided, we verify if the property exists in58* the object.59* @return {?string} A vendor prefixed property name, or null if it does not60* exist.61*/62goog.dom.vendor.getPrefixedPropertyName = function(propertyName, opt_object) {63'use strict';64// We first check for a non-prefixed property, if available.65if (opt_object && propertyName in opt_object) {66return propertyName;67}68var prefix = goog.dom.vendor.getVendorJsPrefix();69if (prefix) {70prefix = prefix.toLowerCase();71var prefixedPropertyName = prefix + goog.string.toTitleCase(propertyName);72return (opt_object === undefined || prefixedPropertyName in opt_object) ?73prefixedPropertyName :74null;75}76return null;77};787980/**81* @param {string} eventType An event type.82* @return {string} A lower-cased vendor prefixed event type.83*/84goog.dom.vendor.getPrefixedEventType = function(eventType) {85'use strict';86var prefix = goog.dom.vendor.getVendorJsPrefix() || '';87return (prefix + eventType).toLowerCase();88};899091