UNPKG

@aurouscia/au-table-editor

Version:

vue表格编辑器组件

641 lines 79 kB
var T2 = Object.defineProperty; var D2 = (M, t, o) => t in M ? T2(M, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : M[t] = o; var T = (M, t, o) => D2(M, typeof t != "symbol" ? t + "" : t, o); import { defineComponent as Ee, createElementBlock as y, openBlock as k, createElementVNode as h, unref as x, ref as m, nextTick as z2, computed as P, watch as L2, onMounted as A2, onUnmounted as P2, createCommentVNode as de, normalizeClass as C, withDirectives as G, vModelText as H, Fragment as Ie, renderList as be, toDisplayString as ve, normalizeStyle as ee, createTextVNode as G2, vShow as H2, createVNode as Ye } from "vue"; import { AurStateStore as $2 } from "@aurouscia/au-undo-redo"; import { ShortcutListener as Be } from "@aurouscia/keyboard-shortcut"; const xe = "#eeeeee", me = "#000000"; class qe { constructor(t) { T(this, "id"); T(this, "name"); T(this, "cells"); T(this, "cellsShown"); T(this, "merges"); T(this, "merged"); T(this, "colors"); T(this, "sticky"); T(this, "rowCount"); T(this, "colCount"); this.id = t.id, this.name = t.name, this.cells = t.cells || [], this.merges = t.merges || [], this.merged = [], this.colors = t.colors || [], this.sticky = t.sticky || {}, this.rowCount = this.cells.length, this.colCount = Math.max(...this.cells.map((o) => o.length)), this.cellsShown = [], this.totalRefresh(); } //输出 output() { const t = []; var o = []; return this.enumerateCells((e, r) => { var l = !1, a = 1, u = 1; if (this.isMergedCell(e, r)) { const i = this.isMergeInfoHead(e, r); i ? (a = i.right + 1, u = i.down + 1) : l = !0; } if (!l) { const i = this.colors.find((s) => s.pos[0] == e && s.pos[1] == r); o.push({ content: this.cells[e][r], colspan: a > 1 ? a : void 0, rowspan: u > 1 ? u : void 0, position: { row: e, col: r }, bgColor: i == null ? void 0 : i.bg, textColor: i == null ? void 0 : i.text }); } return r == this.colCount - 1 && (t.push(o), o = []), !0; }), t; } getData() { return { id: this.id, name: this.name, cells: this.cells, merges: this.merges, colors: this.colors, sticky: this.sticky }; } replaceData(t) { this.id = t.id, this.name = t.name, this.cells = t.cells, this.merges = t.merges || [], this.colors = t.colors || [], this.sticky = t.sticky || {}, this.totalRefresh(); } refreshCellShown() { this.cellsShown = this.output(); } refreshSize() { this.rowCount = this.cells.length, this.colCount = Math.max(...this.cells.map((t) => t.length)); } totalRefresh() { this.merges = this.merges.filter((t) => t.down > 0 || t.right > 0), this.rmColorRedundant(), this.refreshSize(), this.cells.forEach((t) => { const o = this.colCount - t.length; o != 0 && t.push(...this.newStringArr(o)); }), this.refreshMergedPositions(), this.refreshCellShown(); } rmColorRedundant() { this.colors = this.colors.filter((t) => (t.bg || t.text) && (t.bg !== xe || t.text !== me)); } //选区和合并单元格 isMergeDangerous(o) { var o = this.rectanglifySelection(o, []), e = o[0]; o.forEach((l) => { (l.row < e.row || l.col < e.col) && (e = l); }); var r = !1; return o.forEach((l) => { e != l && this.cells[l.row][l.col] && (r = !0); }), r; } addMerge(t) { if (t.length <= 1) return t; const o = []; t = this.rectanglifySelection(t, o), this.rmColorRedundant(), t.sort(this.posCmp); var e = t[0], r = this.cells[e.row][e.col], l = this.colors.find((i) => i.pos[0] === e.row && i.pos[1] === e.col); const a = !!l; t.forEach((i) => { if (e != i) { if (!r) { const d = this.cells[i.row][i.col]; d && (r = d); } this.cells[i.row][i.col] = ""; const s = this.colors.findIndex((d) => d.pos[0] === i.row && d.pos[1] === i.col); s >= 0 && (l || (l = this.colors[s]), this.colors.splice(s, 1)); } }), this.cells[e.row][e.col] = r, !a && l && (l.pos = [e.row, e.col], this.colors.push(l)), this.merges = this.merges.filter((i) => o.indexOf(i) == -1); const u = this.selectionToMergeInfo(t); return this.merges.push(u), this.refreshMergedPositions(), this.refreshCellShown(), [ { row: u.row, col: u.col } ]; } removeMerge(t) { var e; const o = (e = this.merged.find((r) => r.row == t.row && r.col == t.col)) == null ? void 0 : e.fromMerge; o && (this.merges = this.merges.filter((r) => r.row != o.row || r.col != o.col), this.refreshMergedPositions(), this.refreshCellShown()); } isMergedCell(t, o) { return this.merged.find((e) => e.row == t && e.col == o); } isMergeInfoHead(t, o) { return this.merges.find((e) => e.row == t && e.col == o); } isValidMergeInfo(t) { return t.col > 0 && t.right > 0 && t.col + t.right < this.colCount && t.row > 0 && t.down > 0 && t.row + t.down < this.rowCount; } rectanglifySelection(t, o) { const e = []; t.forEach(({ row: a, col: u }) => { e.push({ row: a, col: u }); const i = this.isMergedCell(a, u); i && o.indexOf(i.fromMerge) == -1 && o.push(i.fromMerge); }), o.forEach((a) => { this.enumerateMergeInfo(a, (u, i) => (e.push({ row: u, col: i }), !0)); }); const r = this.selectionToMergeInfo(e), l = []; return this.enumerateMergeInfo(r, (a, u) => (l.push({ row: a, col: u }), !0)), this.isSameSelection(t, l) ? t : this.rectanglifySelection(l, o); } selectionToMergeInfo(t) { const o = t.map((i) => i.col), e = t.map((i) => i.row), r = Math.min(...o), l = Math.max(...o), a = Math.min(...e), u = Math.max(...e); return { row: a, down: u - a, col: r, right: l - r }; } isSameSelection(t, o) { if (t.length != o.length) return !1; t.sort(this.posCmp), o.sort(this.posCmp); for (var e = 0; e < t.length; e++) if (t[e].row != o[e].row || t[e].col != o[e].col) return !1; return !0; } posCmp(t, o) { return t.row == o.row ? t.col - o.col : t.row - o.row; } rangeIncludeWholeMerge(t, o) { if (t.type == "horizontal") { if (t.min <= o.col && t.max >= o.col + o.right) return !0; } else if (t.type == "vertical" && t.min <= o.row && t.max >= o.row + o.down) return !0; return !1; } rangeIncludeCell(t, o, e) { if (t.type == "horizontal") { if (t.min <= e && t.max >= e) return !0; } else if (t.type == "vertical" && t.min <= o && t.max >= o) return !0; return !1; } refreshMergedPositions() { this.merged = [], this.merges.forEach((t) => { this.enumerateMergeInfo(t, (o, e) => (this.merged.push({ row: o, col: e, fromMerge: t }), !0)); }), this.merged.sort(this.posCmp); } enumerateCells(t) { for (var o = 0; o < this.rowCount; o++) for (var e = 0; e < this.colCount; e++) if (!t(o, e)) return; } enumerateMergeInfo(t, o) { for (var e = t.row; e <= t.row + t.down; e++) for (var r = t.col; r <= t.col + t.right; r++) if (!o(e, r)) return; } enumerateRange(t, o) { if (t.type == "vertical") { for (var e = t.min; e <= t.max; e++) for (var r = 0; r < this.colCount; r++) if (!o(e, r)) return; } else if (t.type == "horizontal") { for (var e = 0; e < this.rowCount; e++) for (var r = t.min; r <= t.max; r++) if (!o(e, r)) return; } } enumerateRow(t, o) { const e = this.cells.at(t); if (e) { for (let r = 0; r < e.length; r++) if (!o(t, r)) return; } } enumerateCol(t, o) { for (let e = 0; e < this.cells.length; e++) if (!o(e, t)) return; } getSelectionRange(t, o) { var e = 0, r = 0; if (t.length == 1) { const l = this.isMergeInfoHead(t[0].row, t[0].col); l && t.push({ row: l.row + l.down, col: l.col + l.right }); } return o == "horizontal" ? (e = Math.min(...t.map((l) => l.col)), r = Math.max(...t.map((l) => l.col))) : o == "vertical" && (e = Math.min(...t.map((l) => l.row)), r = Math.max(...t.map((l) => l.row))), { min: e, max: r, type: o }; } isRectSelection(t) { const o = [...t], e = []; t.forEach((a) => { var i; const u = (i = this.isMergedCell(a.row, a.col)) == null ? void 0 : i.fromMerge; if (u) { if (e.includes(u)) return; e.push(u), this.enumerateMergeInfo(u, (s, d) => (o.push({ row: s, col: d }), !0)); } }); const r = this.selectionToMergeInfo(o); var l = !0; return this.enumerateMergeInfo(r, (a, u) => o.find((i) => i.row == a && i.col == u) ? !0 : (l = !1, !1)), l; } isInsideSingleMergeSelection(t) { var r; for (var o, e = 0; e < t.length; e++) { const l = (r = this.isMergedCell(t[e].row, t[e].col)) == null ? void 0 : r.fromMerge; if (l) { if (!o) o = l; else if (o != l) return !1; } else return !1; } return !0; } expandSelection(t, o, e) { if (e == "strict") { if (o == "horizontal") { const i = this.getSelectionRange(t, "vertical"), s = { row: i.min, col: 0 }, d = { row: i.max, col: this.colCount - 1 }; return this.rectanglifySelection([...t, s, d], []); } else if (o == "vertical") { const i = this.getSelectionRange(t, "horizontal"), s = { row: 0, col: i.min }, d = { row: this.rowCount - 1, col: i.max }; return this.rectanglifySelection([...t, s, d], []); } } else if (e == "loose") { var r = [], l = [], a = o == "horizontal" ? "vertical" : "horizontal"; const i = []; i.push(...t), t.forEach((s) => { const d = this.isMergeInfoHead(s.row, s.col); d && this.enumerateMergeInfo(d, (S, B) => (i.push({ row: S, col: B }), !0)); }); var u = this.getSelectionRange(i, a); return this.enumerateRange(u, (s, d) => { const S = this.isMergedCell(s, d); return S ? r.push(S.fromMerge) : l.push({ row: s, col: d }), !0; }), r = r.filter((s) => this.rangeIncludeWholeMerge(u, s)), r.forEach((s) => { l.find((d) => d.col == s.col && d.row == s.row) || l.push({ row: s.row, col: s.col }); }), l || t; } return t; } selectSpecificIdx(t, o) { const e = []; if (t == "horizontal") { const l = o; for (var r = 0; r < this.colCount; r++) { const a = this.isMergedCell(l, r); a ? a.fromMerge.down == 0 && e.push({ row: a.row, col: a.col }) : e.push({ row: l, col: r }); } } else if (t == "vertical") { const l = o; for (var r = 0; r < this.rowCount; r++) { const u = this.isMergedCell(r, l); u ? u.fromMerge.right == 0 && e.push({ row: u.row, col: u.col }) : e.push({ row: r, col: l }); } } return e; } cellPosMapToShownPos(t, o = 0) { var u, i; if (o > 1) return { row: 0, col: 0 }; const e = (u = this.isMergedCell(t.row, t.col)) == null ? void 0 : u.fromMerge; if (e && (e.row != t.row || e.col != t.col)) return this.cellPosMapToShownPos({ row: e.row, col: e.col }, o + 1); if (t.col == 0) return { row: t.row, col: 0 }; const r = []; for (var l = 0; l < t.col; l++) { const s = (i = this.isMergedCell(t.row, l)) == null ? void 0 : i.fromMerge; s && !r.includes(s) && r.push(s); } var a = 0; return r.forEach((s) => { a += s.right + 1, t.row == s.row && (a -= 1); }), { row: t.row, col: t.col - a }; } shownPosMapToCellPos(t) { var u, i; const o = this.cells[t.row], e = [], r = []; let l = 0; for (let s = 0; s < o.length; s++) { const d = (u = this.isMergedCell(t.row, s)) == null ? void 0 : u.fromMerge; d && r.indexOf(d) == -1 && (d.row == t.row ? (e.push([s, s - l]), l += d.right) : l += d.right + 1, r.push(d)), d || e.push([s, s - l]); } let a = (i = e.find((s) => s[1] == t.col)) == null ? void 0 : i.at(0); return a === void 0 && (a = -1), { row: t.row, col: a }; } nextCellShown(t) { const o = this.cellsShown[0][0].position; for (let e = 0; e < this.cellsShown.length; e++) { const r = this.cellsShown[e]; for (let l = 0; l < r.length; l++) { const a = r[l]; if (t.row == a.position.row && t.col == a.position.col) { if (l != r.length - 1) return r[l + 1].position; { let u = e + 1; for (; u < this.cellsShown.length; ) { const i = this.cellsShown[u]; if (i.length > 0) return i[0].position; u++; } return o; } } } } } //插入一行/一列 insert(t, o) { const e = this.locateGap(t, o); var r = t || []; if (!e) return t || []; if (o == "top") { this.cells.splice(e.idx, 0, this.newStringArr(this.colCount)); const l = this.merges.filter((i) => i.row == e.idx && i.down >= 1), a = this.merges.filter((i) => i.row < e.idx && i.row + i.down >= e.idx), u = this.merges.filter((i) => i.row > e.idx || i.down == 0 && i.row == e.idx); l.forEach((i) => { this.cells[i.row][i.col] = this.cells[i.row + 1][i.col], this.cells[i.row + 1][i.col] = "", i.down += 1; }), a.forEach((i) => { i.down += 1; }), u.forEach((i) => { i.row += 1; }), r = this.selectSpecificIdx("horizontal", e.idx); } else if (o == "bottom") e.idx < this.rowCount ? this.cells.splice(e.idx, 0, this.newStringArr(this.colCount)) : this.cells.push(this.newStringArr(this.colCount)), this.merges.filter((u) => u.row + u.down + 1 == e.idx && u.down >= 1 || u.row < e.idx && u.row + u.down >= e.idx).forEach((u) => { u.down += 1; }), this.merges.filter((u) => u.row >= e.idx).forEach((u) => { u.row += 1; }), r = this.selectSpecificIdx("horizontal", e.idx); else if (o == "left") { this.cells.forEach((i) => i.splice(e.idx, 0, "")); const l = this.merges.filter((i) => i.col == e.idx && i.right >= 1), a = this.merges.filter((i) => i.col < e.idx && i.col + i.right >= e.idx), u = this.merges.filter((i) => i.col > e.idx || i.col == e.idx && i.right == 0); l.forEach((i) => { this.cells[i.row][i.col] = this.cells[i.row][i.col + 1], this.cells[i.row][i.col + 1] = "", i.right += 1; }), a.forEach((i) => { i.right += 1; }), u.forEach((i) => { i.col += 1; }), r = this.selectSpecificIdx("vertical", e.idx); } else o == "right" && (e.idx < this.colCount ? this.cells.forEach((u) => u.splice(e.idx, 0, "")) : this.cells.forEach((u) => u.push("")), this.merges.filter((u) => u.col + u.right + 1 == e.idx && u.right >= 1 || u.col < e.idx && u.col + u.right >= e.idx).forEach((u) => { u.right += 1; }), this.merges.filter((u) => u.col >= e.idx).forEach((u) => { u.col += 1; }), r = this.selectSpecificIdx("vertical", e.idx)); return o == "top" || o == "bottom" ? this.colors.filter((a) => a.pos[0] >= e.idx).forEach((a) => a.pos[0] += 1) : (o == "left" || o == "right") && this.colors.filter((a) => a.pos[1] >= e.idx).forEach((a) => a.pos[1] += 1), this.totalRefresh(), r; } locateGap(t, o) { if (!t) return o == "top" ? { idx: 0, dir: "horizontal" } : o == "bottom" ? { idx: this.rowCount, dir: "horizontal" } : o == "left" ? { idx: 0, dir: "vertical" } : o == "right" ? { idx: this.colCount, dir: "vertical" } : void 0; if (o == "top") { const e = t.map((l) => l.row); return { idx: Math.min(...e), dir: "horizontal" }; } if (o == "bottom") { const e = t.map((l) => { const a = this.isMergeInfoHead(l.row, l.col); return a ? a.row + a.down : l.row; }); return { idx: Math.max(...e) + 1, dir: "horizontal" }; } if (o == "left") { const e = t.map((l) => l.col); return { idx: Math.min(...e), dir: "vertical" }; } if (o == "right") { const e = t.map((l) => { const a = this.isMergeInfoHead(l.row, l.col); return a ? a.col + a.right : l.col; }); return { idx: Math.max(...e) + 1, dir: "vertical" }; } } newStringArr(t) { return new Array(t).fill(""); } exchange(t) { if (t.idx == 0) return !1; if (t.dir == "horizontal") { const o = t.idx - 1, e = t.idx; if (e >= this.cells.length) return !1; let r = !0; if (this.enumerateRow(o, (l, a) => { const u = this.isMergedCell(l, a), i = this.isMergedCell(l + 1, a); return u && i && u.fromMerge != i.fromMerge && (u.fromMerge.down > 0 || i.fromMerge.down > 0) ? (r = !1, !1) : !0; }), r) this.enumerateRow(o, (l, a) => { const u = this.isMergedCell(l, a), i = this.isMergedCell(l + 1, a); if ((!u || u.fromMerge.down == 0) && (!i || i.fromMerge.down == 0)) { const s = this.cells[l][a]; this.cells[l][a] = this.cells[l + 1][a], this.cells[l + 1][a] = s; } return !0; }), this.merges.forEach((l) => { l.down == 0 && (l.row == o ? l.row = e : l.row == e && (l.row = o)); }), this.colors.forEach((l) => { l.pos[0] == o ? l.pos[0] = e : l.pos[0] == e && (l.pos[0] = o); }); else return !1; } else if (t.dir == "vertical") { const o = t.idx - 1, e = t.idx; if (e >= this.colCount) return !1; let r = !0; if (this.enumerateCol(o, (l, a) => { const u = this.isMergedCell(l, a), i = this.isMergedCell(l, a + 1); return u && i && u.fromMerge != i.fromMerge && (u.fromMerge.right > 0 || i.fromMerge.right > 0) ? (r = !1, !1) : !0; }), r) this.enumerateCol(o, (l, a) => { const u = this.isMergedCell(l, a), i = this.isMergedCell(l, a + 1); if ((!u || u.fromMerge.right == 0) && (!i || i.fromMerge.right == 0)) { const s = this.cells[l][a]; this.cells[l][a] = this.cells[l][a + 1], this.cells[l][a + 1] = s; } return !0; }), this.merges.forEach((l) => { l.right == 0 && (l.col == o ? l.col = e : l.col == e && (l.col = o)); }), this.colors.forEach((l) => { l.pos[1] == o ? l.pos[1] = e : l.pos[1] == e && (l.pos[1] = o); }); else return !1; } return this.totalRefresh(), !0; } //删除几行/几列 delete(t, o) { if (o == "horizontal") { const e = this.getSelectionRange(t, "vertical"), r = e.max - e.min + 1; this.merges = this.merges.filter((s) => !this.rangeIncludeWholeMerge(e, s)), this.colors = this.colors.filter((s) => !this.rangeIncludeCell(e, s.pos[0], s.pos[1])); const l = this.merges.filter((s) => s.row > e.max), a = this.merges.filter((s) => s.row < e.min && s.row + s.down >= e.min), u = this.merges.filter((s) => s.row >= e.min && s.row <= e.max); l.forEach((s) => { s.row -= r; }), a.forEach((s) => { const d = Math.min(r, s.row + s.down - e.min + 1); s.down -= d; }), u.forEach((s) => { const d = e.max - s.row + 1; s.down -= d; const S = s.row - e.min; this.cells[s.row + d][s.col] = this.cells[s.row][s.col], s.row -= S; }), this.colors.filter((s) => s.pos[0] > e.max).forEach((s) => { s.pos[0] -= r; }), this.cells.splice(e.min, r); } else if (o == "vertical") { const e = this.getSelectionRange(t, "horizontal"), r = e.max - e.min + 1; this.merges = this.merges.filter((s) => !this.rangeIncludeWholeMerge(e, s)), this.colors = this.colors.filter((s) => !this.rangeIncludeCell(e, s.pos[0], s.pos[1])); const l = this.merges.filter((s) => s.col > e.max), a = this.merges.filter((s) => s.col < e.min && s.col + s.right >= e.min), u = this.merges.filter((s) => s.col >= e.min && s.col <= e.max); l.forEach((s) => { s.col -= r; }), a.forEach((s) => { const d = Math.min(r, s.col + s.right - e.min + 1); s.right -= d; }), u.forEach((s) => { const d = e.max - s.col + 1; s.right -= d; const S = s.col - e.min; this.cells[s.row][s.col + d] = this.cells[s.row][s.col], s.col -= S; }), this.colors.filter((s) => s.pos[1] > e.max).forEach((s) => { s.pos[1] -= r; }), this.cells.forEach((s) => { s.splice(e.min, r); }); } return this.totalRefresh(), []; } //仅用于辅助测试,暂无实际功能 rotateTableClockwise(t = 1, o) { if (t == 0) return o || []; for (var e = 1; e <= t; e++) { const a = []; for (var r = 0; r < this.colCount; r++) a.push([]); this.cells.forEach((i, s) => { i.forEach((d, S) => { a[S][this.rowCount - 1 - s] = d; }); }), this.cells = a; const u = []; if (this.merges.forEach((i) => { const s = { row: i.row + i.down, col: i.col }; u.push({ row: s.col, col: this.rowCount - 1 - s.row, down: i.right, right: i.down }); }), this.merges = u, o) { var l = []; o.forEach((i) => { l.push({ row: i.col, col: this.rowCount - 1 - i.row }); }), o = l; } this.refreshSize(); } return this.refreshMergedPositions(), this.refreshCellShown(), o || []; } } const R2 = { id: 0, name: "testTable", cells: [ ["数据加载异常,请检查网络连接或联系管理员", "", "", "", ""], ["1A", "1B", "1C", "1D", "1E"], ["2A", "2B", "2C", "2D", "2E"], ["3A", "3B", "3C", "3D", "3E"] ], merges: [{ row: 0, col: 0, right: 4, down: 0 }] }, e2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%238787E4;}%20.st1{fill:%238CC63F;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st3{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='17.67'%20y='17.67'%20class='st0'%20width='14.66'%20height='14.66'/%3e%3crect%20x='3'%20y='3'%20class='st1'%20width='14.67'%20height='44'/%3e%3cpolygon%20class='st2'%20points='32.33,17.67%2032.33,32.33%2017.67,32.33%2017.67,47%2047,47%2047,3%2017.67,3%2017.67,17.67%20'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='32.33'%20x2='47'%20y2='32.33'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='17.67'%20x2='47'%20y2='17.67'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='47'%20x2='32.33'%20y2='32.33'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='17.67'%20x2='32.33'%20y2='3'/%3e%3cg%3e%3cline%20class='st3'%20x1='13.69'%20y1='25.24'%20x2='6.69'%20y2='25.24'/%3e%3cline%20class='st3'%20x1='10.19'%20y1='28.74'%20x2='10.19'%20y2='21.74'/%3e%3c/g%3e%3c/svg%3e", t2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%238787E4;}%20.st1{fill:%238CC63F;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st3{fill:%238CC63F;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='17.67'%20y='17.67'%20class='st0'%20width='14.66'%20height='14.66'/%3e%3crect%20x='32.33'%20y='3'%20class='st1'%20width='14.67'%20height='44'/%3e%3cpolygon%20class='st2'%20points='17.67,17.67%2017.67,32.33%2032.33,32.33%2032.33,47%203,47%203,3%2032.33,3%2032.33,17.67%20'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='32.33'%20x2='3'%20y2='32.33'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='17.67'%20x2='3'%20y2='17.67'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='47'%20x2='17.67'%20y2='32.33'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='17.67'%20x2='17.67'%20y2='3'/%3e%3cg%3e%3cline%20class='st3'%20x1='36.31'%20y1='25.24'%20x2='43.31'%20y2='25.24'/%3e%3cline%20class='st3'%20x1='39.81'%20y1='28.74'%20x2='39.81'%20y2='21.74'/%3e%3c/g%3e%3c/svg%3e", l2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%238787E4;}%20.st1{fill:%238CC63F;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st3{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='17.67'%20y='17.67'%20class='st0'%20width='14.66'%20height='14.66'/%3e%3crect%20x='3'%20y='3'%20class='st1'%20width='44'%20height='14.67'/%3e%3cpolygon%20class='st2'%20points='17.67,32.33%2032.33,32.33%2032.33,17.67%2047,17.67%2047,47%203,47%203,17.67%2017.67,17.67%20'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='32.33'%20x2='32.33'%20y2='47'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='32.33'%20x2='17.67'%20y2='47'/%3e%3cline%20class='st2'%20x1='47'%20y1='32.33'%20x2='32.33'%20y2='32.33'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='32.33'%20x2='3'%20y2='32.33'/%3e%3cg%3e%3cline%20class='st3'%20x1='25.24'%20y1='13.69'%20x2='25.24'%20y2='6.69'/%3e%3cline%20class='st3'%20x1='28.74'%20y1='10.19'%20x2='21.74'%20y2='10.19'/%3e%3c/g%3e%3c/svg%3e", s2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%238787E4;}%20.st1{fill:%238CC63F;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st3{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='17.67'%20y='17.67'%20class='st0'%20width='14.66'%20height='14.66'/%3e%3crect%20x='3'%20y='32.33'%20class='st1'%20width='44'%20height='14.67'/%3e%3cpolygon%20class='st2'%20points='32.33,17.67%2017.67,17.67%2017.67,32.33%203,32.33%203,3%2047,3%2047,32.33%2032.33,32.33%20'/%3e%3cline%20class='st2'%20x1='17.67'%20y1='17.67'%20x2='17.67'%20y2='3'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='17.67'%20x2='32.33'%20y2='3'/%3e%3cline%20class='st2'%20x1='3'%20y1='17.67'%20x2='17.67'%20y2='17.67'/%3e%3cline%20class='st2'%20x1='32.33'%20y1='17.67'%20x2='47'%20y2='17.67'/%3e%3cg%3e%3cline%20class='st3'%20x1='24.76'%20y1='36.31'%20x2='24.76'%20y2='43.31'/%3e%3cline%20class='st3'%20x1='21.26'%20y1='39.81'%20x2='28.26'%20y2='39.81'/%3e%3c/g%3e%3c/svg%3e", o2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23DDA0DD;stroke:%23000000;stroke-miterlimit:10;}%20.st1{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='3'%20y='17.67'%20class='st0'%20width='44'%20height='14.66'/%3e%3crect%20x='3'%20y='32.33'%20class='st1'%20width='44'%20height='14.67'/%3e%3crect%20x='3'%20y='3'%20class='st1'%20width='44'%20height='14.67'/%3e%3cline%20class='st1'%20x1='32.33'%20y1='47'%20x2='32.33'%20y2='32.33'/%3e%3cline%20class='st1'%20x1='32.33'%20y1='17.67'%20x2='32.33'%20y2='3'/%3e%3cline%20class='st1'%20x1='17.67'%20y1='47'%20x2='17.67'%20y2='32.33'/%3e%3cline%20class='st1'%20x1='17.67'%20y1='17.67'%20x2='17.67'%20y2='3'/%3e%3cg%3e%3cline%20class='st2'%20x1='22.53'%20y1='22.53'%20x2='27.47'%20y2='27.47'/%3e%3cline%20class='st2'%20x1='22.53'%20y1='27.47'%20x2='27.47'%20y2='22.53'/%3e%3c/g%3e%3c/svg%3e", i2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23DDA0DD;stroke:%23000000;stroke-miterlimit:10;}%20.st1{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='17.67'%20y='3'%20class='st0'%20width='14.66'%20height='44'/%3e%3crect%20x='32.33'%20y='3'%20class='st1'%20width='14.67'%20height='44'/%3e%3crect%20x='3'%20y='3'%20class='st1'%20width='14.67'%20height='44'/%3e%3cline%20class='st1'%20x1='47'%20y1='17.67'%20x2='32.33'%20y2='17.67'/%3e%3cline%20class='st1'%20x1='17.67'%20y1='17.67'%20x2='3'%20y2='17.67'/%3e%3cline%20class='st1'%20x1='47'%20y1='32.33'%20x2='32.33'%20y2='32.33'/%3e%3cline%20class='st1'%20x1='17.67'%20y1='32.33'%20x2='3'%20y2='32.33'/%3e%3cg%3e%3cline%20class='st2'%20x1='22.53'%20y1='27.47'%20x2='27.47'%20y2='22.53'/%3e%3cline%20class='st2'%20x1='27.47'%20y1='27.47'%20x2='22.53'%20y2='22.53'/%3e%3c/g%3e%3c/svg%3e", O2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st1{fill:%238CC63F;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:%238CC63F;}%20.st3{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='5'%20y='5'%20class='st0'%20width='40'%20height='40'/%3e%3crect%20x='10.3'%20y='10.3'%20class='st1'%20width='29.3'%20height='29.3'/%3e%3cline%20class='st0'%20x1='10.3'%20y1='25'%20x2='39.6'%20y2='25'/%3e%3cline%20class='st0'%20x1='25'%20y1='10.3'%20x2='25'%20y2='39.7'/%3e%3crect%20x='13.9'%20y='13.9'%20class='st2'%20width='22.1'%20height='22.1'/%3e%3cpolyline%20class='st3'%20points='20,31.5%2020,18.5%2025,31.5%2030,18.5%2030,31.5%20'/%3e%3c/svg%3e", U2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2024.2.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%2050%2050'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:none;stroke:%23000000;stroke-miterlimit:10;}%20.st1{fill:%23DDA0DD;stroke:%23000000;stroke-miterlimit:10;}%20.st2{fill:%23DDA0DD;}%20.st3{fill:none;stroke:%23000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20.st4{fill:none;stroke:%23DDA0DD;stroke-width:2;stroke-linecap:round;stroke-miterlimit:10;}%20.st5{fill:none;stroke:%23000000;stroke-linecap:round;stroke-miterlimit:10;}%20%3c/style%3e%3crect%20x='5'%20y='5'%20class='st0'%20width='40'%20height='40'/%3e%3crect%20x='10.3'%20y='10.3'%20class='st1'%20width='29.3'%20height='29.3'/%3e%3cline%20class='st0'%20x1='10.3'%20y1='25'%20x2='39.6'%20y2='25'/%3e%3cline%20class='st0'%20x1='25'%20y1='10.3'%20x2='25'%20y2='39.7'/%3e%3crect%20x='13.9'%20y='13.9'%20class='st2'%20width='22.1'%20height='22.1'/%3e%3cpolyline%20class='st3'%20points='20,31.5%2020,18.5%2025,31.5%2030,18.5%2030,31.5%20'/%3e%3cg%3e%3cline%20class='st4'%20x1='15.1'%20y1='15.1'%20x2='34.9'%20y2='34.9'/%3e%3cline%20class='st5'%20x1='15.1'%20y1='15.1'%20x2='34.9'%20y2='34.9'/%3e%3c/g%3e%3c/svg%3e", N2 = { class: "floatToolsVue" }, W2 = ["src"], j2 = ["src"], J2 = ["src"], Z2 = ["src"], K2 = ["src"], X2 = { key: 2, class: "empty" }, Y2 = ["src"], q2 = ["src"], Q2 = ["src"], e0 = /* @__PURE__ */ Ee({ __name: "FloatTools", props: { mergeBtn: {} }, emits: ["clickBtn"], setup(M, { emit: t }) { const o = M, e = t; return (r, l) => (k(), y("div", N2, [ h("div", null, [ l[8] || (l[8] = h("div", { class: "empty" }, " ", -1)), h("img", { onClick: l[0] || (l[0] = (a) => e("clickBtn", "insert_top")), src: x(l2), title: "顶部插入一行" }, null, 8, W2), h("img", { onClick: l[1] || (l[1] = (a) => e("clickBtn", "delete_horizontal")), src: x(o2), title: "删除整行" }, null, 8, j2) ]), h("div", null, [ h("img", { onClick: l[2] || (l[2] = (a) => e("clickBtn", "insert_left")), src: x(e2), title: "左侧插入一列" }, null, 8, J2), o.mergeBtn == "merge" ? (k(), y("img", { key: 0, onClick: l[3] || (l[3] = (a) => e("clickBtn", "merge")), src: x(O2), title: "合并单元格" }, null, 8, Z2)) : o.mergeBtn == "del" ? (k(), y("img", { key: 1, onClick: l[4] || (l[4] = (a) => e("clickBtn", "mergeDel")), src: x(U2), title: "取消合并" }, null, 8, K2)) : (k(), y("div", X2, " ")), h("img", { onClick: l[5] || (l[5] = (a) => e("clickBtn", "insert_right")), src: x(t2), title: "右侧插入一列" }, null, 8, Y2) ]), h("div", null, [ h("img", { onClick: l[6] || (l[6] = (a) => e("clickBtn", "delete_vertical")), src: x(i2), title: "删除整列" }, null, 8, q2), h("img", { onClick: l[7] || (l[7] = (a) => e("clickBtn", "insert_bottom")), src: x(s2), title: "底部插入一行" }, null, 8, Q2), l[9] || (l[9] = h("div", { class: "empty" }, " ", -1)) ]) ])); } }), Fe = (M, t) => { const o = M.__vccOpts || M; for (const [e, r] of t) o[e] = r; return o; }, t0 = /* @__PURE__ */ Fe(e0, [["__scopeId", "data-v-0d2c598e"]]), l0 = "data:image/svg+xml,%3csvg%20t='1704811329079'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3505'%20width='200'%20height='200'%3e%3cpath%20d='M864.223176%20468.850802%20325.662779%20468.850802%20572.896379%20221.682693%20511.071351%20159.795243%20157.8438%20513.008467%20511.071351%20866.16541%20572.896379%20804.345497%20325.662779%20557.11906%20864.223176%20557.11906Z'%20fill='%23ffffff'%20p-id='3506'%3e%3c/path%3e%3c/svg%3e", s0 = "data:image/svg+xml,%3csvg%20t='1704811350503'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3699'%20width='200'%20height='200'%3e%3cpath%20d='M510.564814%20161.618773%20449.347629%20222.835958%20694.342238%20467.902198%20160.5003%20467.902198%20160.5003%20555.463352%20694.342238%20555.463352%20449.347629%20800.453868%20510.564814%20861.731428%20860.618072%20511.616772Z'%20fill='%23ffffff'%20p-id='3700'%3e%3c/path%3e%3c/svg%3e", o0 = "data:image/svg+xml,%3csvg%20t='1705039432939'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='7202'%20width='200'%20height='200'%3e%3cpath%20d='M257.024%2079.2576c-28.16%200-53.76%205.12-79.4624%2017.92-15.36%207.68-20.48%2028.0576-7.68%2040.8576l87.1424%2086.8352-30.72%2030.6176-87.1424-86.8352c-4.608-5.0176-11.1616-7.8848-17.92-7.68-10.24%200-17.92%205.12-23.04%2015.36-33.28%2066.3552-23.04%20150.6304%2033.28%20206.848C167.3216%20418.816%20210.944%20434.176%20257.024%20434.176c20.48%200%2040.96-2.56%2058.9824-10.24l284.4672%20283.4432c-23.04%2063.7952-7.68%20135.3728%2040.96%20186.368%2035.84%2035.7376%2079.4624%2051.0976%20125.5424%2051.0976%2028.16%200%2053.76-5.12%2079.4624-17.92%2015.36-7.68%2020.48-28.0576%207.68-40.8576L766.976%20799.232l30.72-30.6176%2087.1424%2086.8352c4.608%205.0176%2011.1616%207.8848%2017.92%207.68%2010.24%200%2017.92-5.12%2023.04-15.36%2033.28-66.3552%2023.04-150.6304-33.28-206.848C856.6784%20605.184%20813.056%20589.824%20766.976%20589.824c-20.48%200-40.96%202.56-61.44%2010.24L420.9664%20316.7232c23.04-63.7952%207.68-135.3728-40.96-186.368-32.5632-32.8704-76.8-51.2-122.9824-51.0976z%20m-33.28%20229.7856c12.8%200%2025.6-5.12%2035.9424-15.36l30.72-30.6176c19.7632-18.7392%2020.5824-49.8688%201.8432-69.632l-1.8432-1.8432-58.9824-58.7776c7.68%200%2015.36-2.56%2023.04-2.56%2033.28%200%2066.6624%2012.8%2089.7024%2038.2976%2035.84%2035.7376%2046.1824%2086.8352%2030.72%20132.8128-7.68%2017.92-2.56%2038.2976%2012.8%2053.6576l284.4672%20283.4432c10.24%2010.24%2023.04%2015.36%2035.9424%2015.36%205.12%200%2012.8%200%2017.92-2.56%2013.9264-5.2224%2028.672-7.7824%2043.52-7.68%2033.28%200%2066.6624%2012.8%2089.7024%2038.2976%2030.72%2030.6176%2043.6224%2071.4752%2035.9424%20112.3328l-58.9824-58.7776c-9.4208-9.728-22.4256-15.2576-35.9424-15.36-12.8%200-25.6%205.12-35.84%2015.36l-30.72%2030.6176c-9.728%209.3184-15.2576%2022.2208-15.36%2035.7376%200%2012.8%205.12%2025.4976%2015.36%2035.7376l58.9824%2058.7776c-7.68%200-15.36%202.56-23.04%202.56-33.28%200-66.6624-12.8-89.7024-38.2976-35.84-35.7376-46.1824-86.8352-30.72-132.8128%207.68-17.92%202.56-38.2976-12.8-53.6576L351.8464%20390.7584c-9.4208-9.728-22.4256-15.2576-35.9424-15.36-5.12%200-10.24%200-17.92%202.56-13.9264%205.2224-28.672%207.7824-43.52%207.68-33.28%200-66.6624-12.8-89.7024-38.2976-30.72-30.6176-43.6224-71.4752-35.9424-112.3328l58.9824%2058.7776c10.3424%2010.1376%2023.1424%2015.2576%2035.9424%2015.2576zM320.512%20577.536c15.6672%200%2028.7744%205.2224%2036.6592%2015.7696l73.4208%2073.4208c20.2752%2019.3536%2021.0944%2051.4048%201.7408%2071.68l-1.7408%201.7408-188.7232%20188.928c-9.6256%209.9328-22.8352%2015.6672-36.7616%2015.7696-13.1072%200-26.2144-5.2224-36.6592-15.7696l-73.4208-73.4208c-20.2752-19.3536-21.0944-51.4048-1.7408-71.68l1.7408-1.7408%20188.8256-188.8256c10.4448-10.5472%2023.552-15.7696%2036.6592-15.872zM207.7696%20892.3136L396.5952%20703.488l-73.4208-73.4208-188.8256%20188.8256%2073.4208%2073.4208z%20m637.3376-813.056c7.8848%200%2015.7696%202.56%2018.3296%207.8848l73.4208%2073.4208c10.1376%209.6256%2010.5472%2025.7024%200.8192%2035.84-0.3072%200.3072-0.512%200.6144-0.8192%200.8192L808.3456%20325.7344c-4.9152%204.8128-11.4688%207.5776-18.3296%207.8848-6.8608-0.3072-13.4144-3.072-18.3296-7.8848l-18.3296-18.3296-128.6144%20128.512c-4.9152%204.7104-11.4688%207.5776-18.3296%207.7824-6.8608-0.3072-13.4144-3.072-18.3296-7.8848-10.1376-9.6256-10.5472-25.7024-0.8192-35.84%200.3072-0.3072%200.512-0.6144%200.8192-0.8192l128.512-128.512-18.432-18.3296c-10.1376-9.6256-10.5472-25.7024-0.8192-35.84%200.3072-0.3072%200.512-0.6144%200.8192-0.8192L826.7776%2087.04c4.608-5.12%2011.3664-7.9872%2018.3296-7.7824z%20m0%2062.8736l-91.7504%2091.7504%2018.3296%2018.432%2018.3296%2018.3296%2091.7504-91.7504-36.6592-36.7616z'%20fill='%23ffffff'%20p-id='7203'%3e%3c/path%3e%3c/svg%3e", i0 = "data:image/svg+xml,%3csvg%20t='1710241509904'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2631'%20width='200'%20height='200'%3e%3cpath%20d='M430.8992%20492.1344a32.2048%2032.2048%200%200%201-23.8592-10.5472L261.12%20321.5872a32.256%2032.256%200%200%201%2047.6672-43.4688l125.4912%20137.5744%20341.504-275.1488a32.256%2032.256%200%200%201%2040.448%2050.2272L451.1232%20484.9664a32.1536%2032.1536%200%200%201-20.224%207.168zM802.5088%20912.7424H378.0096a33.536%2033.536%200%201%201%200-67.072h424.4992a43.9296%2043.9296%200%200%200%2043.8784-43.8784V475.3408a33.536%2033.536%200%201%201%2067.072%200v326.4512a111.104%20111.104%200%200%201-110.9504%20110.9504z'%20p-id='2632'%20fill='%232c2c2c'%3e%3c/path%3e%3cpath%20d='M615.424%20725.6576H232.192a111.104%20111.104%200%200%201-110.9504-110.9504V231.4752a111.104%20111.104%200%200%201%20110.9504-110.9504H501.76a33.536%2033.536%200%200%201%200%2067.1232H232.192a43.9296%2043.9296%200%200%200-43.8784%2043.8784v383.232a43.9296%2043.9296%200%200%200%2043.8784%2043.8784h383.232a43.9296%2043.9296%200%200%200%2043.8784-43.8784V475.3408a33.536%2033.536%200%200%201%2067.1232%200v139.3664a111.104%20111.104%200%200%201-111.0016%20110.9504z'%20p-id='2633'%20fill='%232c2c2c'%3e%3c/path%3e%3c/svg%3e", r0 = "data:image/svg+xml,%3csvg%20t='1710241965160'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3790'%20width='200'%20height='200'%3e%3cpath%20d='M338.1%20341.4h229.1c20.7%200%2037.7-17%2037.7-37.7V129.5c0-20.7-17-37.7-37.7-37.7H338.1c-20.7%200-37.7%2017-37.7%2037.7v174.1c0%2020.8%2017%2037.8%2037.7%2037.8z'%20fill='%23ffffff'%20p-id='3791'%3e%3c/path%3e%3cpath%20d='M772%2068.2h-82.5v292.1c0%2012.3-10%2022.3-22.3%2022.3H232.4c-12.3%200-22.3-10-22.3-22.4l1.8-292h-69.2c-33.4%200-60.5%2027.1-60.5%2060.5V892c0%2033.4%2027.1%2060.5%2060.5%2060.5h737.7c33.4%200%2060.5-27.1%2060.5-60.5V258.8L772%2068.2z%20m57%20765.5c0%2017.7-14.5%2032.3-32.3%2032.3H240.3c-17.7%200-32.3-14.5-32.3-32.3V501.4c0-17.7%2014.5-32.3%2032.3-32.3h556.4c17.7%200%2032.3%2014.5%2032.3%2032.3v332.3z'%20fill='%23ffffff'%20p-id='3792'%3e%3c/path%3e%3cpath%20d='M723.7%20585.7H302.5c-16%200-29.1%2013.1-29.1%2029.1s13.1%2029.1%2029.1%2029.1h421.2c16%200%2029.1-13.1%2029.1-29.1s-13.1-29.1-29.1-29.1zM723.7%20737H302.5c-16%200-29.1%2013.1-29.1%2029.1s13.1%2029.1%2029.1%2029.1h421.2c16%200%2029.1-13.1%2029.1-29.1S739.7%20737%20723.7%20737z'%20fill='%23ffffff'%20p-id='3793'%3e%3c/path%3e%3c/svg%3e", n0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2028.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20255%20255'%20style='enable-background:new%200%200%20255%20255;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%238CC63F;}%20.st1{fill:%23999999;}%20.st2{fill:%23FFFFFF;}%20%3c/style%3e%3cg%3e%3cg%3e%3crect%20x='13.86'%20y='21.93'%20class='st0'%20width='77.91'%20height='168.72'/%3e%3c/g%3e%3cg%3e%3crect%20x='105.15'%20y='113.88'%20class='st1'%20width='77.91'%20height='76.69'/%3e%3c/g%3e%3cg%3e%3crect%20x='105.15'%20y='21.93'%20class='st1'%20width='77.91'%20height='76.69'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cpath%20d='M117.19,243.95c-2.9,0-5.8-0.35-8.61-1.04c-1.05-0.26-1.88-1.06-2.17-2.11c-0.29-1.04,0-2.16,0.77-2.93l20.32-20.33%20l-4.19-15.66l-15.66-4.19l-20.33,20.33c-0.57,0.57-1.34,0.88-2.12,0.88c-0.27,0-0.54-0.04-0.81-0.11%20c-1.04-0.29-1.85-1.12-2.11-2.17c-3.04-12.36,0.5-25.1,9.48-34.09c6.79-6.79,15.82-10.53,25.42-10.53c3.85,0,7.62,0.6,11.24,1.8%20l48.83-48.82c-4.12-12.78-0.77-26.9,8.8-36.46c6.79-6.79,15.83-10.53,25.44-10.53c2.9,0,5.8,0.35,8.61,1.04%20c1.05,0.26,1.88,1.06,2.17,2.11c0.29,1.04,0,2.16-0.77,2.93l-21.26,21.26l4.19,15.66l15.66,4.19l21.27-21.27%20c0.57-0.57,1.34-0.88,2.12-0.88c0.27,0,0.54,0.04,0.81,0.11c1.04,0.29,1.85,1.12,2.11,2.17c3.04,12.36-0.5,25.1-9.48,34.09%20c-6.79,6.79-15.82,10.53-25.43,10.53c-3.77,0-7.47-0.58-11.03-1.73l-48.97,48.97c4.01,12.71,0.63,26.75-8.86,36.25%20C135.84,240.21,126.8,243.95,117.19,243.95z'/%3e%3cpath%20class='st2'%20d='M211.49,80.99c2.65,0,5.31,0.32,7.9,0.95l-22.49,22.49l5.08,19.01l19.01,5.08l22.5-22.5%20c2.67,10.85-0.23,22.78-8.69,31.25c-6.43,6.43-14.87,9.66-23.31,9.66c-4.01,0-8.02-0.73-11.81-2.18l-51.63,51.63%20c4.42,11.73,1.91,25.48-7.54,34.92c-6.44,6.44-14.88,9.66-23.32,9.66c-2.65,0-5.31-0.32-7.9-0.95l21.55-21.55l-5.08-19.01%20l-19.01-5.08l-21.56,21.56c-2.67-10.85,0.23-22.78,8.69-31.25c6.43-6.43,14.87-9.65,23.3-9.65c4.08,0,8.16,0.76,12.02,2.27%20l51.51-51.51c-4.52-11.78-2.04-25.63,7.46-35.13C194.6,84.21,203.04,80.99,211.49,80.99%20M211.49,74.99%20c-10.42,0-20.21,4.05-27.57,11.41c-9.92,9.92-13.67,24.36-10.06,37.73l-46.29,46.29c-3.37-0.93-6.85-1.41-10.39-1.41%20c-10.4,0-20.18,4.05-27.54,11.41c-9.73,9.73-13.57,23.53-10.28,36.92c0.52,2.1,2.13,3.76,4.21,4.35c0.53,0.15,1.07,0.22,1.61,0.22%20c1.57,0,3.1-0.62,4.24-1.76l19.11-19.11l12.32,3.29l3.29,12.32l-19.1,19.1c-1.53,1.53-2.12,3.77-1.54,5.86%20c0.58,2.09,2.24,3.7,4.35,4.21c3.05,0.75,6.18,1.13,9.33,1.13c10.42,0,20.21-4.05,27.57-11.41c9.85-9.85,13.62-24.21,10.12-37.5%20l46.45-46.45c3.3,0.89,6.71,1.34,10.17,1.34c10.41,0,20.19-4.05,27.55-11.41c9.73-9.73,13.57-23.53,10.28-36.92%20c-0.52-2.1-2.13-3.76-4.21-4.35c-0.53-0.15-1.07-0.22-1.61-0.22c-1.57,0-3.1,0.62-4.24,1.76l-20.05,20.05l-12.32-3.29l-3.29-12.32%20l20.04-20.04c1.53-1.53,2.12-3.77,1.54-5.86c-0.58-2.09-2.24-3.7-4.35-4.21C217.77,75.37,214.63,74.99,211.49,74.99L211.49,74.99z'%20/%3e%3c/g%3e%3c/svg%3e", c0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2028.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20255%20255'%20style='enable-background:new%200%200%20255%20255;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23F2F2F2;}%20.st1{fill:%23999999;}%20.st2{fill:%23FFFFFF;}%20%3c/style%3e%3cg%3e%3cg%3e%3crect%20x='16.55'%20y='25.41'%20class='st0'%20width='71.91'%20height='162.72'/%3e%3cpath%20class='st1'%20d='M85.46,28.41v156.72H19.55V28.41H85.46%20M91.46,22.41H13.55v168.72h77.91V22.41L91.46,22.41z'/%3e%3c/g%3e%3cg%3e%3crect%20x='107.85'%20y='117.36'%20class='st0'%20width='71.91'%20height='70.69'/%3e%3cpath%20class='st1'%20d='M176.76,120.36v64.69h-65.91v-64.69H176.76%20M182.76,114.36h-77.91v76.69h77.91V114.36L182.76,114.36z'/%3e%3c/g%3e%3cg%3e%3crect%20x='107.85'%20y='25.41'%20class='st0'%20width='71.91'%20height='70.69'/%3e%3cpath%20class='st1'%20d='M176.76,28.41V93.1h-65.91V28.41H176.76%20M182.76,22.41h-77.91V99.1h77.91V22.41L182.76,22.41z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpolygon%20points='113.92,194.6%20218.65,89.87%20250.41,121.63%20145.68,226.37%20102.35,237.93%20'/%3e%3cpath%20class='st2'%20d='M218.65,93.41l28.23,28.23L144.38,224.12l-38.5,10.28l10.28-38.5L218.65,93.41%20M218.65,86.34l-3.54,3.54%20L112.62,192.36l-0.95,0.95l-0.35,1.3l-10.28,38.5l-2.23,8.35l8.35-2.23l38.5-10.28l1.3-0.35l0.95-0.95l102.49-102.49l3.54-3.54%20l-3.54-3.54l-28.23-28.23L218.65,86.34L218.65,86.34z'/%3e%3c/g%3e%3crect%20x='114.87'%20y='207.76'%20transform='matrix(0.7071%20-0.7071%200.7071%200.7071%20-122.2861%20148.7723)'%20class='st2'%20width='7.14'%20height='28.48'/%3e%3crect%20x='213.99'%20y='101.59'%20transform='matrix(0.7071%20-0.7071%200.7071%200.7071%20-23.0711%20189.8685)'%20class='st2'%20width='7.34'%20height='42.38'/%3e%3c/g%3e%3c/svg%3e", a0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2028.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20255%20255'%20style='enable-background:new%200%200%20255%20255;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23F2F2F2;}%20.st1{fill:%23999999;}%20.st2{fill:none;stroke:%23333333;stroke-width:18.8283;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%20.st3{fill:%23FF8D7F;}%20.st4{fill:%2398FF7F;}%20.st5{fill:%234A91FF;}%20%3c/style%3e%3cg%3e%3crect%20x='43.9'%20y='48'%20class='st0'%20width='71.9'%20height='162.7'/%3e%3cpath%20class='st1'%20d='M112.8,51v156.7H46.9V51H112.8%20M118.8,45H40.9v168.7h77.9L118.8,45L118.8,45z'/%3e%3c/g%3e%3cg%3e%3cpolyline%20class='st2'%20points='124.9,99.6%2097.1,127.5%20124.9,155.4%20'/%3e%3cline%20class='st2'%20x1='97.1'%20y1='127.5'%20x2='147.3'%20y2='127.5'/%3e%3c/g%3e%3ccircle%20class='st3'%20cx='187.7'%20cy='86.7'%20r='26'/%3e%3ccircle%20class='st4'%20cx='187.7'%20cy='127.5'%20r='26'/%3e%3ccircle%20class='st5'%20cx='187.7'%20cy='168.4'%20r='26'/%3e%3c/svg%3e", u0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Generator:%20Adobe%20Illustrator%2028.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20--%3e%3csvg%20version='1.1'%20id='图层_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20255%20255'%20style='enable-background:new%200%200%20255%20255;'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e%20.st0{fill:%23F2F2F2;}%20.st1{fill:%239