UNPKG

vuikit

Version:

A responsive Vue UI library for web site interfaces based on UIkit

56 lines (51 loc) 1.6 kB
/** * Vuikit 0.8.10 * (c) 2018 Miljan Aleksic * @license MIT **/ /* Substantial part of the code is adapted from UIkit, Copyright (c) 2013-2018 YOOtheme GmbH, getuikit.com */ import { isFunction, isObject, isUndefined, toNode, toNodes } from './lang'; function attr (element, name, value) { if (isObject(name)) { for (var key in name) { attr(element, key, name[key]); } return } if (isUndefined(value)) { element = toNode(element); return element && element.getAttribute(name) } else { toNodes(element).forEach(function (element) { if (isFunction(value)) { value = value.call(element, attr(element, name)); } if (value === null) { removeAttr(element, name); } else { element.setAttribute(name, value); } }); } } function hasAttr (element, name) { return toNodes(element).some(function (element) { return element.hasAttribute(name); }) } function removeAttr (element, name) { element = toNodes(element); name.split(' ').forEach(function (name) { return element.forEach(function (element) { return element.removeAttribute(name); } ); } ); } function filterAttr (element, attribute, pattern, replacement) { attr(element, attribute, function (value) { return value ? value.replace(pattern, replacement) : value; }); } function data (element, attribute) { for (var i = 0, attrs = [attribute, ("data-" + attribute)]; i < attrs.length; i++) { if (hasAttr(element, attrs[i])) { return attr(element, attrs[i]) } } } export { attr, hasAttr, removeAttr, filterAttr, data };