UNPKG

@scalar/api-client

Version:

the open source API testing client

37 lines (36 loc) 1.36 kB
import { defineComponent as f, ref as v, createElementBlock as h, openBlock as g, normalizeStyle as w, renderSlot as p, createElementVNode as E } from "vue"; const l = "scalar-dragging", D = /* @__PURE__ */ f({ __name: "Resize", props: { width: {} }, emits: ["update:width"], setup(t, { emit: m }) { const s = m, d = v(!1), r = (n) => { n.preventDefault(); const o = n.clientX, c = t.width, a = (u) => { d.value = !0, document.body.classList.add(l); let e = c + u.clientX - o; e > 420 && (e = 420 + (e - 420) * 0.2), e < 240 && (e = 240), s("update:width", e); }, i = () => { d.value = !1, document.body.classList.remove(l), document.documentElement.removeEventListener("mousemove", a, !1), document.documentElement.removeEventListener("mouseup", i, !1), t.width > 420 ? s("update:width", 360) : t.width < 240 && s("update:width", 240); }; document.documentElement.addEventListener("mousemove", a, !1), document.documentElement.addEventListener("mouseup", i, !1); }; return (n, o) => (g(), h("div", { class: "relative", style: w({ width: `${t.width}px` }) }, [ p(n.$slots, "default", {}, void 0, !0), E("div", { class: "resizer", onMousedown: r }, null, 32) ], 4)); } }); export { D as default };