UNPKG

vui-design

Version:

A high quality UI Toolkit based on Vue.js

57 lines (45 loc) 1.38 kB
/** * (Internal) Applies css properties to an element, similar to the jQuery * While this helper does assist with vendor prefixed property names, it does not perform any manipulation of values prior to setting styles. */ const cssPrefixes = ["Webkit", "Moz", "O", "ms"]; let cssProperties = {}; export function getVendorProperty(key) { const style = document.body.style; if (key in style) { return key; } let i = cssPrefixes.length; let capName = key.charAt(0).toUpperCase() + key.slice(1); let vendorName; while(i--) { vendorName = cssPrefixes[i] + capName; if (vendorName in style) { return vendorName; } } return key; }; export function getStyleProperty(key) { key = key.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, (match, letter) => { return letter.toUpperCase(); }); return cssProperties[key] || (cssProperties[key] = getVendorProperty(key)); }; export function setStyle(element, key, value) { const property = getStyleProperty(key); element.style[property] = value; }; export default function setStyles(element, styles) { if (arguments.length === 2) { for (let key in styles) { const value = styles[key]; if (value !== undefined && styles.hasOwnProperty(key)) { setStyle(element, key, value); } } } else { setStyle(element, arguments[1], arguments[2]); } };