@drauu/core
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -0,36 +1,25 @@ | ||
"use strict"; | ||
(() => { | ||
var __defProp = Object.defineProperty; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a2, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a2, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a2, prop, b[prop]); | ||
} | ||
return a2; | ||
}; | ||
// ../../node_modules/.pnpm/nanoevents@6.0.1/node_modules/nanoevents/index.js | ||
// ../../node_modules/.pnpm/nanoevents@7.0.1/node_modules/nanoevents/index.js | ||
var createNanoEvents = () => ({ | ||
events: {}, | ||
emit(event, ...args) { | ||
; | ||
(this.events[event] || []).forEach((i) => i(...args)); | ||
let callbacks = this.events[event] || []; | ||
for (let i = 0, length = callbacks.length; i < length; i++) { | ||
callbacks[i](...args); | ||
} | ||
}, | ||
on(event, cb) { | ||
; | ||
(this.events[event] = this.events[event] || []).push(cb); | ||
return () => this.events[event] = (this.events[event] || []).filter((i) => i !== cb); | ||
var _a; | ||
((_a = this.events[event]) == null ? void 0 : _a.push(cb)) || (this.events[event] = [cb]); | ||
return () => { | ||
var _a2; | ||
this.events[event] = (_a2 = this.events[event]) == null ? void 0 : _a2.filter((i) => cb !== i); | ||
}; | ||
} | ||
}); | ||
// ../../node_modules/.pnpm/perfect-freehand@1.0.16/node_modules/perfect-freehand/dist/esm/index.js | ||
function W(e, t, s, h = (b) => b) { | ||
return e * h(0.5 - t * (0.5 - s)); | ||
// ../../node_modules/.pnpm/perfect-freehand@1.1.0/node_modules/perfect-freehand/dist/esm/index.js | ||
function W(e, t, u, x = (g) => g) { | ||
return e * x(0.5 - t * (0.5 - u)); | ||
} | ||
@@ -46,3 +35,3 @@ function re(e) { | ||
} | ||
function f(e, t) { | ||
function b(e, t) { | ||
return [e[0] * t, e[1] * t]; | ||
@@ -53,3 +42,3 @@ } | ||
} | ||
function L(e) { | ||
function R(e) { | ||
return [e[1], -e[0]]; | ||
@@ -72,3 +61,3 @@ } | ||
} | ||
function G(e) { | ||
function H(e) { | ||
return le(e, fe(e)); | ||
@@ -79,124 +68,123 @@ } | ||
} | ||
function T(e, t, s) { | ||
let h = Math.sin(s), b = Math.cos(s), v = e[0] - t[0], n = e[1] - t[1], g = v * b - n * h, E = v * h + n * b; | ||
return [g + t[0], E + t[1]]; | ||
function L(e, t, u) { | ||
let x = Math.sin(u), g = Math.cos(u), y = e[0] - t[0], n = e[1] - t[1], f = y * g - n * x, d = y * x + n * g; | ||
return [f + t[0], d + t[1]]; | ||
} | ||
function V(e, t, s) { | ||
return l(e, f(a(t, e), s)); | ||
function V(e, t, u) { | ||
return l(e, b(a(t, e), u)); | ||
} | ||
function Z(e, t, s) { | ||
return l(e, f(t, s)); | ||
function Z(e, t, u) { | ||
return l(e, b(t, u)); | ||
} | ||
var { min: _, PI: ge } = Math; | ||
var { min: T, PI: ge } = Math; | ||
var se = 0.275; | ||
var j = ge + 1e-4; | ||
function ie(e, t = {}) { | ||
let { size: s = 16, smoothing: h = 0.5, thinning: b = 0.5, simulatePressure: v = true, easing: n = (r) => r, start: g = {}, end: E = {}, last: z = false } = t, { cap: d = true, taper: x = 0, easing: q = (r) => r * (2 - r) } = g, { cap: m = true, taper: c = 0, easing: M = (r) => --r * r * r + 1 } = E; | ||
if (e.length === 0 || s <= 0) | ||
let { size: u = 16, smoothing: x = 0.5, thinning: g = 0.5, simulatePressure: y = true, easing: n = (r) => r, start: f = {}, end: d = {}, last: _ = false } = t, { cap: S = true, easing: q = (r) => r * (2 - r) } = f, { cap: C = true, easing: p = (r) => --r * r * r + 1 } = d; | ||
if (e.length === 0 || u <= 0) | ||
return []; | ||
let H = e[e.length - 1].runningLength, $ = Math.pow(s * h, 2), D2 = [], R = [], N = e.slice(0, 10).reduce((r, i) => { | ||
let m = e[e.length - 1].runningLength, h = f.taper === false ? 0 : f.taper === true ? Math.max(u, m) : f.taper, z = d.taper === false ? 0 : d.taper === true ? Math.max(u, m) : d.taper, $ = Math.pow(u * x, 2), D2 = [], M = [], N = e.slice(0, 10).reduce((r, i) => { | ||
let o = i.pressure; | ||
if (v) { | ||
let u = _(1, i.distance / s), J = _(1, 1 - u); | ||
o = _(1, r + (J - r) * (u * se)); | ||
if (y) { | ||
let s = T(1, i.distance / u), J = T(1, 1 - s); | ||
o = T(1, r + (J - r) * (s * se)); | ||
} | ||
return (r + o) / 2; | ||
}, e[0].pressure), p = W(s, b, e[e.length - 1].pressure, n), U, B = e[0].vector, I = e[0].point, C = I, y = I, O = C; | ||
}, e[0].pressure), c = W(u, g, e[e.length - 1].pressure, n), U, B = e[0].vector, I = e[0].point, F = I, O = I, E = F; | ||
for (let r = 0; r < e.length; r++) { | ||
let { pressure: i } = e[r], { point: o, vector: u, distance: J, runningLength: K } = e[r]; | ||
if (r < e.length - 1 && H - K < 3) | ||
let { pressure: i } = e[r], { point: o, vector: s, distance: J, runningLength: K } = e[r]; | ||
if (r < e.length - 1 && m - K < 3) | ||
continue; | ||
if (b) { | ||
if (v) { | ||
let P = _(1, J / s), Q = _(1, 1 - P); | ||
i = _(1, N + (Q - N) * (P * se)); | ||
if (g) { | ||
if (y) { | ||
let v = T(1, J / u), Q = T(1, 1 - v); | ||
i = T(1, N + (Q - N) * (v * se)); | ||
} | ||
p = W(s, b, i, n); | ||
c = W(u, g, i, n); | ||
} else | ||
p = s / 2; | ||
U === void 0 && (U = p); | ||
let pe = K < x ? q(K / x) : 1, ae = H - K < c ? M((H - K) / c) : 1; | ||
if (p = Math.max(0.01, p * Math.min(pe, ae)), r === e.length - 1) { | ||
let P = f(L(u), p); | ||
D2.push(a(o, P)), R.push(l(o, P)); | ||
c = u / 2; | ||
U === void 0 && (U = c); | ||
let ce = K < h ? q(K / h) : 1, ae = m - K < z ? p((m - K) / z) : 1; | ||
if (c = Math.max(0.01, c * Math.min(ce, ae)), r === e.length - 1) { | ||
let v = b(R(s), c); | ||
D2.push(a(o, v)), M.push(l(o, v)); | ||
continue; | ||
} | ||
let A = e[r + 1].vector, ee = ne(u, A); | ||
let A = e[r + 1].vector, ee = ne(s, A); | ||
if (ee < 0) { | ||
let P = f(L(B), p); | ||
for (let Q = 1 / 13, w = 0; w <= 1; w += Q) | ||
y = T(a(o, P), o, j * w), D2.push(y), O = T(l(o, P), o, j * -w), R.push(O); | ||
I = y, C = O; | ||
let v = b(R(B), c); | ||
for (let Q = 1 / 13, G = 0; G <= 1; G += Q) | ||
O = L(a(o, v), o, j * G), D2.push(O), E = L(l(o, v), o, j * -G), M.push(E); | ||
I = O, F = E; | ||
continue; | ||
} | ||
let te = f(L(V(A, u, ee)), p); | ||
y = a(o, te), (r <= 1 || Y(I, y) > $) && (D2.push(y), I = y), O = l(o, te), (r <= 1 || Y(C, O) > $) && (R.push(O), C = O), N = i, B = u; | ||
let te = b(R(V(A, s, ee)), c); | ||
O = a(o, te), (r <= 1 || Y(I, O) > $) && (D2.push(O), I = O), E = l(o, te), (r <= 1 || Y(F, E) > $) && (M.push(E), F = E), N = i, B = s; | ||
} | ||
let S = e[0].point.slice(0, 2), k = e.length > 1 ? e[e.length - 1].point.slice(0, 2) : l(e[0].point, [1, 1]), X = [], F = []; | ||
let k = e[0].point.slice(0, 2), P = e.length > 1 ? e[e.length - 1].point.slice(0, 2) : l(e[0].point, [1, 1]), X = [], w = []; | ||
if (e.length === 1) { | ||
if (!(x || c) || z) { | ||
let r = Z(S, G(L(a(S, k))), -(U || p)), i = []; | ||
for (let o = 1 / 13, u = o; u <= 1; u += o) | ||
i.push(T(r, S, j * 2 * u)); | ||
if (!(h || z) || _) { | ||
let r = Z(k, H(R(a(k, P))), -(U || c)), i = []; | ||
for (let o = 1 / 13, s = o; s <= 1; s += o) | ||
i.push(L(r, k, j * 2 * s)); | ||
return i; | ||
} | ||
} else { | ||
if (!(x || c && e.length === 1)) | ||
if (d) | ||
if (!(h || z && e.length === 1)) | ||
if (S) | ||
for (let i = 1 / 13, o = i; o <= 1; o += i) { | ||
let u = T(R[0], S, j * o); | ||
X.push(u); | ||
let s = L(M[0], k, j * o); | ||
X.push(s); | ||
} | ||
else { | ||
let i = a(D2[0], R[0]), o = f(i, 0.5), u = f(i, 0.51); | ||
X.push(a(S, o), a(S, u), l(S, u), l(S, o)); | ||
let i = a(D2[0], M[0]), o = b(i, 0.5), s = b(i, 0.51); | ||
X.push(a(k, o), a(k, s), l(k, s), l(k, o)); | ||
} | ||
let r = L(re(e[e.length - 1].vector)); | ||
if (c || x && e.length === 1) | ||
F.push(k); | ||
else if (m) { | ||
let i = Z(k, r, p); | ||
for (let o = 1 / 29, u = o; u < 1; u += o) | ||
F.push(T(i, k, j * 3 * u)); | ||
let r = R(re(e[e.length - 1].vector)); | ||
if (z || h && e.length === 1) | ||
w.push(P); | ||
else if (C) { | ||
let i = Z(P, r, c); | ||
for (let o = 1 / 29, s = o; s < 1; s += o) | ||
w.push(L(i, P, j * 3 * s)); | ||
} else | ||
F.push(l(k, f(r, p)), l(k, f(r, p * 0.99)), a(k, f(r, p * 0.99)), a(k, f(r, p))); | ||
w.push(l(P, b(r, c)), l(P, b(r, c * 0.99)), a(P, b(r, c * 0.99)), a(P, b(r, c))); | ||
} | ||
return D2.concat(F, R.reverse(), X); | ||
return D2.concat(w, M.reverse(), X); | ||
} | ||
function ce(e, t = {}) { | ||
var q; | ||
let { streamline: s = 0.5, size: h = 16, last: b = false } = t; | ||
function me(e, t = {}) { | ||
var C; | ||
let { streamline: u = 0.5, size: x = 16, last: g = false } = t; | ||
if (e.length === 0) | ||
return []; | ||
let v = 0.15 + (1 - s) * 0.85, n = Array.isArray(e[0]) ? e : e.map(({ x: m, y: c, pressure: M = 0.5 }) => [m, c, M]); | ||
let y = 0.15 + (1 - u) * 0.85, n = Array.isArray(e[0]) ? e : e.map(({ x: p, y: m, pressure: h = 0.5 }) => [p, m, h]); | ||
if (n.length === 2) { | ||
let m = n[1]; | ||
let p = n[1]; | ||
n = n.slice(0, -1); | ||
for (let c = 1; c < 5; c++) | ||
n.push(V(n[0], m, c / 4)); | ||
for (let m = 1; m < 5; m++) | ||
n.push(V(n[0], p, m / 4)); | ||
} | ||
n.length === 1 && (n = [...n, [...l(n[0], [1, 1]), ...n[0].slice(2)]]); | ||
let g = [{ point: [n[0][0], n[0][1]], pressure: n[0][2] >= 0 ? n[0][2] : 0.25, vector: [1, 1], distance: 0, runningLength: 0 }], E = false, z = 0, d = g[0], x = n.length - 1; | ||
for (let m = 1; m < n.length; m++) { | ||
let c = b && m === x ? n[m].slice(0, 2) : V(d.point, n[m], v); | ||
if (oe(d.point, c)) | ||
let f = [{ point: [n[0][0], n[0][1]], pressure: n[0][2] >= 0 ? n[0][2] : 0.25, vector: [1, 1], distance: 0, runningLength: 0 }], d = false, _ = 0, S = f[0], q = n.length - 1; | ||
for (let p = 1; p < n.length; p++) { | ||
let m = g && p === q ? n[p].slice(0, 2) : V(S.point, n[p], y); | ||
if (oe(S.point, m)) | ||
continue; | ||
let M = ue(c, d.point); | ||
if (z += M, m < x && !E) { | ||
if (z < h) | ||
let h = ue(m, S.point); | ||
if (_ += h, p < q && !d) { | ||
if (_ < x) | ||
continue; | ||
E = true; | ||
d = true; | ||
} | ||
d = { point: c, pressure: n[m][2] >= 0 ? n[m][2] : 0.5, vector: G(a(d.point, c)), distance: M, runningLength: z }, g.push(d); | ||
S = { point: m, pressure: n[p][2] >= 0 ? n[p][2] : 0.5, vector: H(a(S.point, m)), distance: h, runningLength: _ }, f.push(S); | ||
} | ||
return g[0].vector = ((q = g[1]) == null ? void 0 : q.vector) || [0, 0], g; | ||
return f[0].vector = ((C = f[1]) == null ? void 0 : C.vector) || [0, 0], f; | ||
} | ||
function me(e, t = {}) { | ||
return ie(ce(e, t), t); | ||
function pe(e, t = {}) { | ||
return ie(me(e, t), t); | ||
} | ||
var Te = me; | ||
// src/utils/index.ts | ||
function numSort(a2, b) { | ||
return a2 - b; | ||
function numSort(a2, b2) { | ||
return a2 - b2; | ||
} | ||
@@ -253,5 +241,5 @@ function getSymbol(a2) { | ||
getMousePosition(event) { | ||
var _a, _b; | ||
var _a; | ||
const el = this.drauu.el; | ||
const scale = (_a = this.drauu.options.coordinateScale) != null ? _a : 1; | ||
const scale = this.drauu.options.coordinateScale ?? 1; | ||
if (this.drauu.options.coordinateTransform === false) { | ||
@@ -268,3 +256,3 @@ const rect = this.drauu.el.getBoundingClientRect(); | ||
point.y = event.clientY; | ||
const loc = point.matrixTransform((_b = el.getScreenCTM()) == null ? void 0 : _b.inverse()); | ||
const loc = point.matrixTransform((_a = el.getScreenCTM()) == null ? void 0 : _a.inverse()); | ||
return { | ||
@@ -278,6 +266,8 @@ x: loc.x * scale, | ||
createElement(name, overrides) { | ||
var _a; | ||
const el = document.createElementNS("http://www.w3.org/2000/svg", name); | ||
const brush = overrides ? __spreadValues(__spreadValues({}, this.brush), overrides) : this.brush; | ||
el.setAttribute("fill", (_a = brush.fill) != null ? _a : "transparent"); | ||
const brush = overrides ? { | ||
...this.brush, | ||
...overrides | ||
} : this.brush; | ||
el.setAttribute("fill", brush.fill ?? "transparent"); | ||
el.setAttribute("stroke", brush.color); | ||
@@ -341,3 +331,3 @@ el.setAttribute("stroke-width", brush.size.toString()); | ||
getSvgData(points) { | ||
const stroke = Te(points, __spreadValues({ | ||
const stroke = pe(points, { | ||
size: this.brush.size * 2, | ||
@@ -351,11 +341,15 @@ thinning: 0.9, | ||
taper: 5 | ||
} | ||
}, this.brush.stylusOptions)); | ||
}, | ||
...this.brush.stylusOptions | ||
}); | ||
if (!stroke.length) | ||
return ""; | ||
const d = stroke.reduce((acc, [x0, y0], i, arr) => { | ||
const [x1, y1] = arr[(i + 1) % arr.length]; | ||
acc.push(x0, y0, (x0 + x1) / 2, (y0 + y1) / 2); | ||
return acc; | ||
}, ["M", ...stroke[0], "Q"]); | ||
const d = stroke.reduce( | ||
(acc, [x0, y0], i, arr) => { | ||
const [x1, y1] = arr[(i + 1) % arr.length]; | ||
acc.push(x0, y0, (x0 + x1) / 2, (y0 + y1) / 2); | ||
return acc; | ||
}, | ||
["M", ...stroke[0], "Q"] | ||
); | ||
d.push("Z"); | ||
@@ -654,5 +648,5 @@ return d.map((i) => typeof i === "number" ? i.toFixed(2) : i).join(" "); | ||
}; | ||
function line(a2, b) { | ||
const lengthX = b.x - a2.x; | ||
const lengthY = b.y - a2.y; | ||
function line(a2, b2) { | ||
const lengthX = b2.x - a2.x; | ||
const lengthY = b2.y - a2.y; | ||
return { | ||
@@ -680,3 +674,6 @@ length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)), | ||
function toSvgData(points) { | ||
return points.reduce((acc, point, i, a2) => i === 0 ? `M ${point.x.toFixed(D)},${point.y.toFixed(D)}` : `${acc} ${bezierCommand(point, i, a2)}`, ""); | ||
return points.reduce( | ||
(acc, point, i, a2) => i === 0 ? `M ${point.x.toFixed(D)},${point.y.toFixed(D)}` : `${acc} ${bezierCommand(point, i, a2)}`, | ||
"" | ||
); | ||
} | ||
@@ -683,0 +680,0 @@ |
@@ -1,22 +0,6 @@ | ||
var __create = Object.create; | ||
"use strict"; | ||
var __defProp = Object.defineProperty; | ||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
var __getOwnPropNames = Object.getOwnPropertyNames; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __getProtoOf = Object.getPrototypeOf; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
} | ||
return a; | ||
}; | ||
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); | ||
var __export = (target, all) => { | ||
@@ -26,18 +10,11 @@ for (var name in all) | ||
}; | ||
var __reExport = (target, module2, copyDefault, desc) => { | ||
if (module2 && typeof module2 === "object" || typeof module2 === "function") { | ||
for (let key of __getOwnPropNames(module2)) | ||
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) | ||
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); | ||
var __copyProps = (to, from, except, desc) => { | ||
if (from && typeof from === "object" || typeof from === "function") { | ||
for (let key of __getOwnPropNames(from)) | ||
if (!__hasOwnProp.call(to, key) && key !== except) | ||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
} | ||
return target; | ||
return to; | ||
}; | ||
var __toESM = (module2, isNodeMode) => { | ||
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); | ||
}; | ||
var __toCommonJS = /* @__PURE__ */ ((cache) => { | ||
return (module2, temp) => { | ||
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); | ||
}; | ||
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); | ||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
@@ -50,14 +27,20 @@ // src/index.ts | ||
}); | ||
module.exports = __toCommonJS(src_exports); | ||
// ../../node_modules/.pnpm/nanoevents@6.0.1/node_modules/nanoevents/index.js | ||
// ../../node_modules/.pnpm/nanoevents@7.0.1/node_modules/nanoevents/index.js | ||
var createNanoEvents = () => ({ | ||
events: {}, | ||
emit(event, ...args) { | ||
; | ||
(this.events[event] || []).forEach((i) => i(...args)); | ||
let callbacks = this.events[event] || []; | ||
for (let i = 0, length = callbacks.length; i < length; i++) { | ||
callbacks[i](...args); | ||
} | ||
}, | ||
on(event, cb) { | ||
; | ||
(this.events[event] = this.events[event] || []).push(cb); | ||
return () => this.events[event] = (this.events[event] || []).filter((i) => i !== cb); | ||
var _a; | ||
((_a = this.events[event]) == null ? void 0 : _a.push(cb)) || (this.events[event] = [cb]); | ||
return () => { | ||
var _a2; | ||
this.events[event] = (_a2 = this.events[event]) == null ? void 0 : _a2.filter((i) => cb !== i); | ||
}; | ||
} | ||
@@ -67,3 +50,3 @@ }); | ||
// src/models/stylus.ts | ||
var import_perfect_freehand = __toESM(require("perfect-freehand")); | ||
var import_perfect_freehand = require("perfect-freehand"); | ||
@@ -124,5 +107,5 @@ // src/utils/index.ts | ||
getMousePosition(event) { | ||
var _a, _b; | ||
var _a; | ||
const el = this.drauu.el; | ||
const scale = (_a = this.drauu.options.coordinateScale) != null ? _a : 1; | ||
const scale = this.drauu.options.coordinateScale ?? 1; | ||
if (this.drauu.options.coordinateTransform === false) { | ||
@@ -139,3 +122,3 @@ const rect = this.drauu.el.getBoundingClientRect(); | ||
point.y = event.clientY; | ||
const loc = point.matrixTransform((_b = el.getScreenCTM()) == null ? void 0 : _b.inverse()); | ||
const loc = point.matrixTransform((_a = el.getScreenCTM()) == null ? void 0 : _a.inverse()); | ||
return { | ||
@@ -149,6 +132,8 @@ x: loc.x * scale, | ||
createElement(name, overrides) { | ||
var _a; | ||
const el = document.createElementNS("http://www.w3.org/2000/svg", name); | ||
const brush = overrides ? __spreadValues(__spreadValues({}, this.brush), overrides) : this.brush; | ||
el.setAttribute("fill", (_a = brush.fill) != null ? _a : "transparent"); | ||
const brush = overrides ? { | ||
...this.brush, | ||
...overrides | ||
} : this.brush; | ||
el.setAttribute("fill", brush.fill ?? "transparent"); | ||
el.setAttribute("stroke", brush.color); | ||
@@ -212,3 +197,3 @@ el.setAttribute("stroke-width", brush.size.toString()); | ||
getSvgData(points) { | ||
const stroke = (0, import_perfect_freehand.default)(points, __spreadValues({ | ||
const stroke = (0, import_perfect_freehand.getStroke)(points, { | ||
size: this.brush.size * 2, | ||
@@ -222,11 +207,15 @@ thinning: 0.9, | ||
taper: 5 | ||
} | ||
}, this.brush.stylusOptions)); | ||
}, | ||
...this.brush.stylusOptions | ||
}); | ||
if (!stroke.length) | ||
return ""; | ||
const d = stroke.reduce((acc, [x0, y0], i, arr) => { | ||
const [x1, y1] = arr[(i + 1) % arr.length]; | ||
acc.push(x0, y0, (x0 + x1) / 2, (y0 + y1) / 2); | ||
return acc; | ||
}, ["M", ...stroke[0], "Q"]); | ||
const d = stroke.reduce( | ||
(acc, [x0, y0], i, arr) => { | ||
const [x1, y1] = arr[(i + 1) % arr.length]; | ||
acc.push(x0, y0, (x0 + x1) / 2, (y0 + y1) / 2); | ||
return acc; | ||
}, | ||
["M", ...stroke[0], "Q"] | ||
); | ||
d.push("Z"); | ||
@@ -550,3 +539,6 @@ return d.map((i) => typeof i === "number" ? i.toFixed(2) : i).join(" "); | ||
function toSvgData(points) { | ||
return points.reduce((acc, point, i, a) => i === 0 ? `M ${point.x.toFixed(D)},${point.y.toFixed(D)}` : `${acc} ${bezierCommand(point, i, a)}`, ""); | ||
return points.reduce( | ||
(acc, point, i, a) => i === 0 ? `M ${point.x.toFixed(D)},${point.y.toFixed(D)}` : `${acc} ${bezierCommand(point, i, a)}`, | ||
"" | ||
); | ||
} | ||
@@ -865,3 +857,2 @@ | ||
} | ||
module.exports = __toCommonJS(src_exports); | ||
// Annotate the CommonJS export names for ESM import in node: | ||
@@ -868,0 +859,0 @@ 0 && (module.exports = { |
{ | ||
"name": "@drauu/core", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"keywords": [], | ||
"license": "MIT", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/antfu/drauu.git" | ||
}, | ||
"funding": "https://github.com/sponsors/antfu", | ||
"author": "Anthony Fu <anthonyfu117@hotmail.com>", | ||
"files": [ | ||
"dist" | ||
], | ||
"exports": { | ||
".": { | ||
"types": "./dist/index.d.ts", | ||
"require": "./dist/index.js", | ||
"import": "./dist/index.mjs" | ||
} | ||
}, | ||
"main": "dist/index.js", | ||
@@ -9,5 +27,2 @@ "module": "dist/index.mjs", | ||
"jsdelivr": "dist/index.global.js", | ||
"funding": "https://github.com/sponsors/antfu", | ||
"author": "Anthony Fu <anthonyfu117@hotmail.com>", | ||
"license": "MIT", | ||
"bugs": { | ||
@@ -17,12 +32,4 @@ "url": "https://github.com/antfu/drauu/issues" | ||
"homepage": "https://github.com/antfu/drauu#readme", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/antfu/drauu.git" | ||
}, | ||
"keywords": [], | ||
"files": [ | ||
"dist" | ||
], | ||
"dependencies": { | ||
"perfect-freehand": "^1.0.16" | ||
"perfect-freehand": "^1.1.0" | ||
}, | ||
@@ -29,0 +36,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
84093
2780
Updatedperfect-freehand@^1.1.0