|
1 | 1 | (function(){ |
2 | 2 | var flexize, ref$; |
3 | 3 | flexize = function(opt){ |
4 | | - var moveHandler, this$ = this; |
5 | 4 | opt == null && (opt = {}); |
6 | 5 | this._ = { |
| 6 | + gutterInited: new WeakMap(), |
7 | 7 | opt: opt, |
8 | 8 | root: typeof opt.root === 'string' |
9 | 9 | ? document.body.querySelector(opt.root) |
|
15 | 15 | }; |
16 | 16 | this.build(); |
17 | 17 | this.estimate(); |
18 | | - this._.gutters.forEach(function(g){ |
19 | | - return g.addEventListener('mousedown', function(evt){ |
20 | | - var attr, pn, nn; |
21 | | - this$.estimate(); |
22 | | - attr = this$.attr(); |
23 | | - pn = this$._visibleSibling(g, -1); |
24 | | - nn = this$._visibleSibling(g, 1); |
25 | | - if (!(pn && nn)) { |
26 | | - return; |
27 | | - } |
28 | | - this$._.drag = { |
29 | | - ptr: { |
30 | | - x: evt.clientX, |
31 | | - y: evt.clientY |
32 | | - }, |
33 | | - g: g, |
34 | | - p: pn, |
35 | | - n: nn, |
36 | | - s: { |
37 | | - p: pn.getBoundingClientRect()[attr], |
38 | | - n: nn.getBoundingClientRect()[attr] |
39 | | - }, |
40 | | - f: { |
41 | | - p: +getComputedStyle(pn).flexGrow, |
42 | | - n: +getComputedStyle(nn).flexGrow |
43 | | - } |
44 | | - }; |
45 | | - return window.addEventListener('mousemove', moveHandler); |
46 | | - }); |
47 | | - }); |
48 | | - moveHandler = function(evt){ |
49 | | - var drag, attr, reverse, delta, ref$, n1, n2, s1, s2, g1, g2, percent, ng1, ng2; |
50 | | - if (!((drag = this$._.drag) && evt.buttons & 1)) { |
51 | | - this$._.drag = null; |
52 | | - window.removeEventListener('mousemove', moveHandler); |
53 | | - return; |
54 | | - } |
55 | | - attr = this$.attr(); |
56 | | - reverse = this$.reverse(); |
57 | | - delta = this$.dir() === 'row' |
58 | | - ? evt.clientX - drag.ptr.x |
59 | | - : evt.clientY - drag.ptr.y; |
60 | | - ref$ = delta < 0 |
61 | | - ? [drag.p, drag.n] |
62 | | - : [drag.n, drag.p], n1 = ref$[0], n2 = ref$[1]; |
63 | | - ref$ = delta < 0 |
64 | | - ? [drag.s.p, drag.s.n] |
65 | | - : [drag.s.n, drag.s.p], s1 = ref$[0], s2 = ref$[1]; |
66 | | - ref$ = delta < 0 |
67 | | - ? [drag.f.p, drag.f.n] |
68 | | - : [drag.f.n, drag.f.p], g1 = ref$[0], g2 = ref$[1]; |
69 | | - if (reverse) { |
70 | | - ref$ = [n2, n1, s2, s1, g2, g1], n1 = ref$[0], n2 = ref$[1], s1 = ref$[2], s2 = ref$[3], g1 = ref$[4], g2 = ref$[5]; |
71 | | - } |
72 | | - percent = -Math.abs(delta / this$._.freeSpace) * this$._.totalGrow; |
73 | | - ng1 = (ref$ = g1 + percent) > 0 ? ref$ : 0; |
74 | | - ng2 = g2 + (g1 - ng1); |
75 | | - n1.style.flexGrow = ng1; |
76 | | - return n2.style.flexGrow = ng2; |
77 | | - }; |
78 | 18 | return this; |
79 | 19 | }; |
80 | 20 | flexize.prototype = (ref$ = Object.create(Object.prototype), ref$.dir = function(){ |
|
134 | 74 | } |
135 | 75 | }); |
136 | 76 | }); |
137 | | - return this._.panes = Array.from(set); |
| 77 | + this._.panes = Array.from(set); |
| 78 | + return this._.gutters.forEach(function(g){ |
| 79 | + if (this$._.gutterInited.get(g)) { |
| 80 | + return; |
| 81 | + } |
| 82 | + this$._.gutterInited.set(g, true); |
| 83 | + return g.addEventListener('mousedown', function(evt){ |
| 84 | + var attr, pn, nn; |
| 85 | + this$.estimate(); |
| 86 | + attr = this$.attr(); |
| 87 | + pn = this$._visibleSibling(g, -1); |
| 88 | + nn = this$._visibleSibling(g, 1); |
| 89 | + if (!(pn && nn)) { |
| 90 | + return; |
| 91 | + } |
| 92 | + this$._.drag = { |
| 93 | + ptr: { |
| 94 | + x: evt.clientX, |
| 95 | + y: evt.clientY |
| 96 | + }, |
| 97 | + g: g, |
| 98 | + p: pn, |
| 99 | + n: nn, |
| 100 | + s: { |
| 101 | + p: pn.getBoundingClientRect()[attr], |
| 102 | + n: nn.getBoundingClientRect()[attr] |
| 103 | + }, |
| 104 | + f: { |
| 105 | + p: +getComputedStyle(pn).flexGrow, |
| 106 | + n: +getComputedStyle(nn).flexGrow |
| 107 | + } |
| 108 | + }; |
| 109 | + return window.addEventListener('mousemove', this$._.moveHandler = function(evt){ |
| 110 | + return this$._moveHandler(evt); |
| 111 | + }); |
| 112 | + }); |
| 113 | + }); |
| 114 | + }, ref$._moveHandler = function(evt){ |
| 115 | + var drag, attr, reverse, delta, ref$, n1, n2, s1, s2, g1, g2, percent, ng1, ng2; |
| 116 | + if (!((drag = this._.drag) && evt.buttons & 1)) { |
| 117 | + this._.drag = null; |
| 118 | + window.removeEventListener('mousemove', this._.moveHandler); |
| 119 | + return; |
| 120 | + } |
| 121 | + attr = this.attr(); |
| 122 | + reverse = this.reverse(); |
| 123 | + delta = this.dir() === 'row' |
| 124 | + ? evt.clientX - drag.ptr.x |
| 125 | + : evt.clientY - drag.ptr.y; |
| 126 | + ref$ = delta < 0 |
| 127 | + ? [drag.p, drag.n] |
| 128 | + : [drag.n, drag.p], n1 = ref$[0], n2 = ref$[1]; |
| 129 | + ref$ = delta < 0 |
| 130 | + ? [drag.s.p, drag.s.n] |
| 131 | + : [drag.s.n, drag.s.p], s1 = ref$[0], s2 = ref$[1]; |
| 132 | + ref$ = delta < 0 |
| 133 | + ? [drag.f.p, drag.f.n] |
| 134 | + : [drag.f.n, drag.f.p], g1 = ref$[0], g2 = ref$[1]; |
| 135 | + if (reverse) { |
| 136 | + ref$ = [n2, n1, s2, s1, g2, g1], n1 = ref$[0], n2 = ref$[1], s1 = ref$[2], s2 = ref$[3], g1 = ref$[4], g2 = ref$[5]; |
| 137 | + } |
| 138 | + percent = -Math.abs(delta / this._.freeSpace) * this._.totalGrow; |
| 139 | + ng1 = (ref$ = g1 + percent) > 0 ? ref$ : 0; |
| 140 | + ng2 = g2 + (g1 - ng1); |
| 141 | + n1.style.flexGrow = ng1; |
| 142 | + return n2.style.flexGrow = ng2; |
138 | 143 | }, ref$.set = function(v){ |
139 | 144 | v == null && (v = []); |
140 | 145 | this._.panes.map(function(n, i){ |
|
164 | 169 | n = Object.fromEntries(this._getSibling(n).map(function(d, i){ |
165 | 170 | return [['previousSibling', 'nextSibling'][i], d]; |
166 | 171 | })); |
167 | | - while ((n = n[d]) && (getComputedStyle(n).display === 'none' || this._.gutterSet.has(n) || n.matches(this._.selector.fixed) || !(n instanceof Element))) {} |
| 172 | + while ((n = n[d]) && (!(n instanceof Element) || getComputedStyle(n).display === 'none' || this._.gutterSet.has(n) || n.matches(this._.selector.fixed))) {} |
168 | 173 | return n; |
169 | 174 | }, ref$); |
170 | 175 | if (typeof window != 'undefined' && window !== null) { |
|
0 commit comments