ep-react-ui
Version:
EP react UI elements.
60 lines (45 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _map2 = require('lodash/map');
var _map3 = _interopRequireDefault(_map2);
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.isWindow = isWindow;
exports.getWindow = getWindow;
exports.offset = offset;
exports.convertStyle = convertStyle;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Find exact position of element
/**
* Ripple wave animation helpers
* @refs -> https://github.com/Dogfalo/materialize/blob/master/js/waves.js
*/
function isWindow(obj) {
return obj !== null && obj === obj.window;
}
function getWindow(el) {
return isWindow(el) ? el : el.nodeType === 9 && el.defaultView;
}
function offset(el) {
var docElem = void 0,
win = void 0,
box = { top: 0, left: 0 },
doc = el && el.ownerDocument;
docElem = doc.documentElement;
if (_typeof(el.getBoundingClientRect) !== (typeof undefined === 'undefined' ? 'undefined' : _typeof(undefined))) {
box = el.getBoundingClientRect();
}
win = getWindow(doc);
return {
top: box.top + win.pageYOffset - docElem.clientTop,
left: box.left + win.pageXOffset - docElem.clientLeft
};
}
function convertStyle(obj) {
var style = '';
(0, _map3.default)(obj, function (val, key) {
style += key + ':' + val + ';';
});
return style;
}