overscroll
Version:
52 lines (42 loc) • 1.65 kB
JavaScript
;
exports.__esModule = true;
exports.removeData = exports.hasData = exports.getData = exports.setData = undefined;
var _hyphenate = require('../hyphenate');
var _hyphenate2 = _interopRequireDefault(_hyphenate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function firstCharToLowerCase(str) {
var firstChar = str.charAt(0);
if (/^[A-Z]$/.test(str.charAt(0))) {
return firstChar.toLowerCase() + str.slice(1);
}
return str;
}
// import camelCase from '../camelCase';
var setData = exports.setData = function setData(dom, name) {
var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
if (dom.dataset) {
dom.dataset[firstCharToLowerCase(name)] = value;
} else {
dom.setAttribute('data-' + (0, _hyphenate2['default'])(name), value);
}
};
var getData = exports.getData = function getData(dom, name) {
if (dom.dataset) {
return dom.dataset[firstCharToLowerCase(name)];
}
return dom.getAttribute('data-' + (0, _hyphenate2['default'])(name));
};
var hasData = exports.hasData = function hasData(dom, name) {
if (dom.dataset) {
return Object.keys(dom.dataset).includes(firstCharToLowerCase(name));
}
return dom.hasAttribute('data-' + (0, _hyphenate2['default'])(name));
};
var removeData = exports.removeData = function removeData(dom, name) {
if (dom.dataset) {
delete dom.dataset[firstCharToLowerCase(name)];
} else {
dom.removeAttribute('data-' + (0, _hyphenate2['default'])(name));
}
};
exports['default'] = { setData: setData, getData: getData, hasData: hasData, removeData: removeData };