ldx-widgets
Version:
widgets
74 lines (68 loc) • 2.08 kB
JavaScript
(function() {
var Flux, Global, _;
Flux = require('delorean').Flux;
_ = require('lodash');
Global = Flux.createStore({
actions: {
'user-logout': 'resetState',
'calculate-scollbar-width': 'calculateScrollBarWidth'
},
scheme: {
activeRequests: {
"default": {}
},
requestActive: {
"default": false
},
ie: {
"default": false
},
ie9: {
"default": false
},
scrollBarWidth: {
"default": 0
}
},
initialize: function() {
return this.detectBrowser();
},
detectBrowser: function() {
var ieVersion, ua;
ua = navigator.userAgent.toLowerCase();
if (navigator.appName === 'Microsoft Internet Explorer') {
this.set('ie', true);
ieVersion = parseInt(ua.match(/msie.([0-9]+)/)[1]);
if (ieVersion === 9) {
return this.set('ie9', true);
}
} else if (navigator.appName === 'Netscape' && new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) !== null) {
return this.set('ie', true);
}
},
calculateScrollBarWidth: function() {
var inner1, inner2, outer, scrollBarWidth;
outer = document.createElement('div');
outer.style.overflow = 'scroll';
outer.style.height = '500px';
outer.style.width = '500px';
outer.style.position = 'absolute';
outer.style.top = '100px';
outer.style.left = '100px';
inner1 = document.createElement('div');
inner1.style.position = 'absolute';
inner1.style.height = '100%';
inner1.style.width = '100%';
inner2 = document.createElement('div');
inner2.style.height = '600px';
inner2.style.width = '600px';
outer.appendChild(inner1);
outer.appendChild(inner2);
document.body.appendChild(outer);
scrollBarWidth = outer.offsetHeight - inner1.offsetHeight;
document.body.removeChild(outer);
return this.set('scrollBarWidth', scrollBarWidth);
}
});
module.exports = Global;
}).call(this);