Skip to content

Commit e42c4b2

Browse files
committed
regen
1 parent a0d0c66 commit e42c4b2

4 files changed

Lines changed: 76 additions & 65 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Change Logs
22

3+
## v0.0.6
4+
5+
- fix bug: `_visible-sibling` tried to get style of non-Element node.
6+
- fix bug: resizing doesn't work when new elements are added.
7+
8+
39
## v0.0.5
410

511
- fix bug: reset fails due to typo in `initial-grow` name

index.js

Lines changed: 68 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
(function(){
22
var flexize, ref$;
33
flexize = function(opt){
4-
var moveHandler, this$ = this;
54
opt == null && (opt = {});
65
this._ = {
6+
gutterInited: new WeakMap(),
77
opt: opt,
88
root: typeof opt.root === 'string'
99
? document.body.querySelector(opt.root)
@@ -15,66 +15,6 @@
1515
};
1616
this.build();
1717
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-
};
7818
return this;
7919
};
8020
flexize.prototype = (ref$ = Object.create(Object.prototype), ref$.dir = function(){
@@ -134,7 +74,72 @@
13474
}
13575
});
13676
});
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;
138143
}, ref$.set = function(v){
139144
v == null && (v = []);
140145
this._.panes.map(function(n, i){
@@ -164,7 +169,7 @@
164169
n = Object.fromEntries(this._getSibling(n).map(function(d, i){
165170
return [['previousSibling', 'nextSibling'][i], d];
166171
}));
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))) {}
168173
return n;
169174
}, ref$);
170175
if (typeof window != 'undefined' && window !== null) {

index.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"name":"flexize","version":"0.0.5","description":"flex-grow-based panel resizing tool for flexbox","main":"index.min.js","scripts":{"start":"npx server -r web -o true"},"keywords":[],"author":"zbryikt","license":"MIT","dependencies":{"@loadingio/bootstrap.ext":"^0.0.12","@loadingio/debounce.js":"^1.0.1","@loadingio/ldquery":"^3.0.6","@zbryikt/template":"^2.4.1","bootstrap":"^4.6.1","fedep":"^1.5.0","ldview":"^1.5.1","proxise":"^1.0.1"},"frontendDependencies":{"root":"web/static/assets/lib","modules":["@loadingio/bootstrap.ext","@loadingio/debounce.js","@loadingio/ldquery","bootstrap","ldview","proxise"]}}
1+
{"name":"flexize","version":"0.0.6","description":"flex-grow-based panel resizing tool for flexbox","main":"index.min.js","scripts":{"start":"npx server -r web -o true"},"keywords":[],"author":"zbryikt","license":"MIT","dependencies":{"@loadingio/bootstrap.ext":"^0.0.12","@loadingio/debounce.js":"^1.0.1","@loadingio/ldquery":"^3.0.6","@zbryikt/template":"^2.4.1","bootstrap":"^4.6.1","fedep":"^1.5.0","ldview":"^1.5.1","proxise":"^1.0.1"},"frontendDependencies":{"root":"web/static/assets/lib","modules":["@loadingio/bootstrap.ext","@loadingio/debounce.js","@loadingio/ldquery","bootstrap","ldview","proxise"]}}

0 commit comments

Comments
 (0)