baseframe-js
Version:
A suite of useful Javascript plugins and functions to help with Front-end Development on websites
58 lines (57 loc) • 2.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.camelCase = void 0;
exports["default"] = getType;
exports.reflow = exports.noop = exports.lowercaseFirstLetter = exports.kebabCase = exports.isVisible = exports.isMobileOS = exports.isHidden = exports.getDataOptions = exports.docTop = void 0;
var _cashDom = _interopRequireDefault(require("cash-dom"));
var _parseObjectFromString = _interopRequireDefault(require("./parseObjectFromString"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } //
// General purposed helpers
//
function getType(val) {
if (typeof val === 'undefined') return 'undefined';
if (_typeof(val) === 'object' && !val) return 'null';
return {}.toString.call(val).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
// visibilty
var isVisible = exports.isVisible = function isVisible(el) {
var visibility = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var vis = el.offsetParent !== null || !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
if (visibility) {
return (0, _cashDom["default"])(el).css('visibility') !== 'hidden' && vis;
} else {
return vis;
}
};
var reflow = exports.reflow = function reflow(elem) {
return elem.offsetHeight;
}; //triggers reflow with reading the height
var getDataOptions = exports.getDataOptions = function getDataOptions(el, evtName) {
return (0, _parseObjectFromString["default"])(el.dataset[evtName + 'Options']);
};
var docTop = exports.docTop = function docTop() {
return document.documentElement.scrollTop || document.body.scrollTop || 0;
};
var noop = exports.noop = function noop() {};
var isHidden = exports.isHidden = function isHidden(el) {
return !isVisible(el);
};
// string manipulation
var kebabCase = exports.kebabCase = function kebabCase(str) {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
};
var camelCase = exports.camelCase = function camelCase(str) {
return str.replace(/-./g, function (x) {
return x.toUpperCase()[1];
});
};
var lowercaseFirstLetter = exports.lowercaseFirstLetter = function lowercaseFirstLetter(str) {
return str.charAt(0).toLowerCase() + str.substring(1);
};
// device
var isMobileOS = exports.isMobileOS = function isMobileOS() {
return /Android|webOS|iPhone|iPad|iPod|Opera Mini/i.test(navigator.userAgent);
};