12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- // Copyright 2012 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- /**
- * @fileoverview Vendor prefix getters.
- */
- goog.provide('goog.dom.vendor');
- goog.require('goog.string');
- goog.require('goog.userAgent');
- /**
- * Returns the JS vendor prefix used in CSS properties. Different vendors
- * use different methods of changing the case of the property names.
- *
- * @return {?string} The JS vendor prefix or null if there is none.
- */
- goog.dom.vendor.getVendorJsPrefix = function() {
- if (goog.userAgent.WEBKIT) {
- return 'Webkit';
- } else if (goog.userAgent.GECKO) {
- return 'Moz';
- } else if (goog.userAgent.IE) {
- return 'ms';
- } else if (goog.userAgent.OPERA) {
- return 'O';
- }
- return null;
- };
- /**
- * Returns the vendor prefix used in CSS properties.
- *
- * @return {?string} The vendor prefix or null if there is none.
- */
- goog.dom.vendor.getVendorPrefix = function() {
- if (goog.userAgent.WEBKIT) {
- return '-webkit';
- } else if (goog.userAgent.GECKO) {
- return '-moz';
- } else if (goog.userAgent.IE) {
- return '-ms';
- } else if (goog.userAgent.OPERA) {
- return '-o';
- }
- return null;
- };
- /**
- * @param {string} propertyName A property name.
- * @param {!Object=} opt_object If provided, we verify if the property exists in
- * the object.
- * @return {?string} A vendor prefixed property name, or null if it does not
- * exist.
- */
- goog.dom.vendor.getPrefixedPropertyName = function(propertyName, opt_object) {
- // We first check for a non-prefixed property, if available.
- if (opt_object && propertyName in opt_object) {
- return propertyName;
- }
- var prefix = goog.dom.vendor.getVendorJsPrefix();
- if (prefix) {
- prefix = prefix.toLowerCase();
- var prefixedPropertyName = prefix + goog.string.toTitleCase(propertyName);
- return (!goog.isDef(opt_object) || prefixedPropertyName in opt_object) ?
- prefixedPropertyName :
- null;
- }
- return null;
- };
- /**
- * @param {string} eventType An event type.
- * @return {string} A lower-cased vendor prefixed event type.
- */
- goog.dom.vendor.getPrefixedEventType = function(eventType) {
- var prefix = goog.dom.vendor.getVendorJsPrefix() || '';
- return (prefix + eventType).toLowerCase();
- };
|