@aplus-frontend/ui
Version:
38 lines (37 loc) • 1 kB
JavaScript
import { computed as R, unref as b } from "vue";
const g = (z, m, n) => R(() => {
const o = [], l = b(z), i = b(m);
for (let e = 0; e < l.length - 1; e += 1) {
const u = l[e], x = l[e + 1], t = i[e], s = i[e + 1], {
resizable: d = !0,
min: C,
collapsible: r
} = u, {
resizable: v = !0,
min: f,
collapsible: a
} = x, I = (
// Both need to be resizable
d && v && // Prev is not collapsed and limit min size
(t !== 0 || !C) && // Next is not collapsed and limit min size
(s !== 0 || !f)
), p = (
// Self is collapsible
r.end && t > 0 || // Collapsed and can be collapsed
a.start && s === 0 && t > 0
), c = (
// Self is collapsible
a.start && s > 0 || // Collapsed and can be collapsed
r.end && t === 0 && s > 0
);
o[e] = {
resizable: I,
startCollapsible: !!(n ? c : p),
endCollapsible: !!(n ? p : c)
};
}
return o;
});
export {
g as useResizable
};