@yncoder/element-react
Version:
Element UI for React
108 lines (92 loc) • 3.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.scrollIntoView = scrollIntoView;
(function () {
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
enterModule && enterModule(module);
})();
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
return a;
};
var loadStyleString = exports.loadStyleString = function loadStyleString(css) {
var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
if (document.getElementById(id)) return;
var style = document.createElement('style');
style.type = 'text/css';
style.id = id;
try {
style.appendChild(document.createTextNode(css));
} catch (ex) {
style.styleSheet.cssText = css;
}
var head = document.getElementsByTagName('head')[0];
head.appendChild(style);
};
var isServer = false;
/* istanbul ignore next */
var on = exports.on = function () {
if (!isServer && document.addEventListener) {
return function (element, event, handler) {
if (element && event && handler) {
element.addEventListener(event, handler, false);
}
};
} else {
return function (element, event, handler) {
if (element && event && handler) {
element.attachEvent('on' + event, handler);
}
};
}
}();
/* istanbul ignore next */
var off = exports.off = function () {
if (!isServer && document.removeEventListener) {
return function (element, event, handler) {
if (element && event) {
element.removeEventListener(event, handler, false);
}
};
} else {
return function (element, event, handler) {
if (element && event) {
element.detachEvent('on' + event, handler);
}
};
}
}();
function scrollIntoView(container, selected) {
if (isServer) return;
if (!selected) {
container.scrollTop = 0;
return;
}
var top = selected.offsetTop;
var bottom = selected.offsetTop + selected.offsetHeight;
var viewRectTop = container.scrollTop;
var viewRectBottom = viewRectTop + container.clientHeight;
if (top < viewRectTop) {
container.scrollTop = top;
} else if (bottom > viewRectBottom) {
container.scrollTop = bottom - container.clientHeight;
}
}
;
(function () {
var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(loadStyleString, 'loadStyleString', 'libs/utils/dom.js');
reactHotLoader.register(isServer, 'isServer', 'libs/utils/dom.js');
reactHotLoader.register(on, 'on', 'libs/utils/dom.js');
reactHotLoader.register(off, 'off', 'libs/utils/dom.js');
reactHotLoader.register(scrollIntoView, 'scrollIntoView', 'libs/utils/dom.js');
})();
;
(function () {
var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
leaveModule && leaveModule(module);
})();