ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
50 lines (49 loc) • 1.35 kB
JavaScript
import { defineComponent as T, createVNode as e, createTextVNode as $ } from "vue";
const t = 1e3, n = 4, r = 140, s = 250, l = 500, c = 0.8, w = /* @__PURE__ */ T({
name: "AXSenderRecordingIcon",
__name: "RecordingIcon",
props: {
className: null
},
setup(u) {
const i = r / 2;
return () => e("svg", {
color: "currentColor",
viewBox: `0 0 ${t} ${t}`,
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
class: u.className
}, [e("title", null, [$("Speech Recording")]), Array.from({
length: n
}).map((d, o) => {
const m = (t - r * n) / (n - 1), g = o * (m + r), a = t / 2 - s / 2, p = t / 2 - l / 2;
return e("rect", {
fill: "currentColor",
rx: i,
ry: i,
height: s,
width: r,
x: g,
y: a,
key: o
}, [e("animate", {
attributeName: "height",
values: `${s}; ${l}; ${s}`,
keyTimes: "0; 0.5; 1",
dur: `${c}s`,
begin: `${c / n * o}s`,
repeatCount: "indefinite"
}, null), e("animate", {
attributeName: "y",
values: `${a}; ${p}; ${a}`,
keyTimes: "0; 0.5; 1",
dur: `${c}s`,
begin: `${c / n * o}s`,
repeatCount: "indefinite"
}, null)]);
})]);
}
});
export {
w as default
};