on fb21e21 help sign in
elk/core-js/Signal/Window.js
19 lines 746 B history raw
1Elm.Window = function() {
2 var dimensions = Elm.Signal.constant(Value.Tuple(window.innerWidth,
3 window.innerHeight));
4 dimensions.defaultNumberOfKids = 2;
6 var width = Elm.Signal.lift(function(p){return p[1];})(dimensions);
7 width.defaultNumberOfKids = 0;
8 var height = Elm.Signal.lift(function(p){return p[2];})(dimensions);
9 height.defaultNumberOfKids = 0;
11 Value.addListener(window, 'resize', function(e) {
12 var w = document.getElementById('widthChecker').offsetWidth;
13 var hasListener = Dispatcher.notify(dimensions.id,
14 Value.Tuple(w, window.innerHeight));
15 if (!hasListener)
16 this.removeEventListener('resize',arguments.callee,false);
17 });
18 return {dimensions:dimensions,width:width,height:height};
19}();