UNPKG

ldx-widgets

Version:

widgets

67 lines (50 loc) 1.64 kB
{Flux} = require 'delorean' _ = require 'lodash' Global = Flux.createStore actions: 'user-logout': 'resetState' 'calculate-scollbar-width': 'calculateScrollBarWidth' scheme: activeRequests: default: {} requestActive: default: no ie: default: no ie9: default: no scrollBarWidth: default: 0 initialize: -> @detectBrowser() detectBrowser: -> ua = navigator.userAgent.toLowerCase() if navigator.appName is 'Microsoft Internet Explorer' @set 'ie', yes ieVersion = parseInt(ua.match(/msie.([0-9]+)/)[1]) if ieVersion is 9 then @set 'ie9', yes # IE11 reports to be 'Netscape' else if navigator.appName is 'Netscape' and new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null @set 'ie', yes calculateScrollBarWidth: -> 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 @set 'scrollBarWidth', scrollBarWidth module.exports = Global