@@ -1,29 +1,35 @@
1−/*
2−import Signal
3−import Native.Misc
4−*/
51
6−(function() {
2+Elm.Native.Window = function(elm) {
73 'use strict';
84
9− var Misc = Elm.Native.Misc;
5+ elm.Native = elm.Native || {};
6+ if (elm.Native.Window) return elm.Native.Window;
107
11− var dimensions = Elm.Signal.constant(Misc.Tuple(window.innerWidth,
12− window.innerHeight));
8+ var Signal = Elm.Signal(elm);
9+ var Misc = Elm.Native.Misc(elm);
10+
11+ var dimensions = Signal.constant(Misc.Tuple2(window.innerWidth,window.innerHeight));
1312 dimensions.defaultNumberOfKids = 2;
1413
15− var width = Elm.Signal.lift(function(p){return p._0;})(dimensions);
14+ var width = A2(Signal.lift, function(p){return p._0}, dimensions);
1615 width.defaultNumberOfKids = 0;
1716
18− var height = Elm.Signal.lift(function(p){return p._1;})(dimensions);
17+ var height = A2(Signal.lift, function(p){return p._1}, dimensions);
1918 height.defaultNumberOfKids = 0;
2019
21− Misc.addListener(window, 'resize', function(e) {
22− var w = document.getElementById('widthChecker').offsetWidth;
23− var hasListener = Dispatcher.notify(dimensions.id,
24− Misc.Tuple(w, window.innerHeight));
25− if (!hasListener)
26− this.removeEventListener('resize',arguments.callee,false);
27− });
28− Elm.Native.Window = {dimensions:dimensions,width:width,height:height};
29−}());
20+ function resize(e) {
21+ var w = elm.node.getElementById('widthChecker').offsetWidth;
22+ var hasListener = elm.notify(dimensions.id,
23+ Misc.Tuple2(w, window.innerHeight));
24+ if (!hasListener)
25+ this.removeEventListener('resize',arguments.callee,false);
26+ }
27+ Misc.addListener(window, 'resize', resize);
28+
29+ return elm.Native.Window = {
30+ dimensions:dimensions,
31+ width:width,
32+ height:height
33+ };
34+
35+};