@hufe921/canvas-editor-plugin-find-replace 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/find-replace.js +194 -0
- package/dist/find-replace.js.map +1 -0
- package/dist/find-replace.umd.cjs +4 -0
- package/dist/find-replace.umd.cjs.map +1 -0
- package/dist/src/findReplace/constant/index.d.ts +4 -0
- package/dist/src/findReplace/index.d.ts +10 -0
- package/dist/src/findReplace/interface/index.d.ts +20 -0
- package/dist/src/findReplace/style/index.d.ts +1 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<h1 align="center">canvas-editor-plugin-find-replace</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">find and replace plugin for canvas-editor</p>
|
|
4
|
+
|
|
5
|
+
## usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i @hufe921/canvas-editor-plugin-find-replace --save
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
import Editor from '@hufe921/canvas-editor'
|
|
13
|
+
import findReplacePlugin from '@hufe921/canvas-editor-plugin-find-replace'
|
|
14
|
+
|
|
15
|
+
const instance = new Editor()
|
|
16
|
+
instance.use(findReplacePlugin)
|
|
17
|
+
|
|
18
|
+
// 打开查找替换浮动面板
|
|
19
|
+
instance.command.executeFindReplace()
|
|
20
|
+
|
|
21
|
+
// 快捷键 Ctrl/Cmd + F 唤起面板(面板已打开时聚焦查找输入框)
|
|
22
|
+
|
|
23
|
+
// 使用自定义配置
|
|
24
|
+
instance.command.executeFindReplace({
|
|
25
|
+
// 面板语言(内置 zhCN、en),默认取编辑器 locale 配置
|
|
26
|
+
locale: 'en',
|
|
27
|
+
// 覆盖对应语言的面板文案
|
|
28
|
+
lang: {
|
|
29
|
+
replaceAllText: 'Replace All'
|
|
30
|
+
},
|
|
31
|
+
onClose: () => {
|
|
32
|
+
console.log('close')
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
// 也可以在注册插件时提供默认配置
|
|
37
|
+
instance.use(findReplacePlugin, {
|
|
38
|
+
locale: 'en',
|
|
39
|
+
// 是否启用全局快捷键 Ctrl/Cmd + F,默认启用
|
|
40
|
+
shortcut: false
|
|
41
|
+
})
|
|
42
|
+
```
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.id="findReplace-style",e.appendChild(document.createTextNode(".ce-find-replace-container{position:fixed;top:60px;z-index:999}.ce-find-replace{width:320px;padding:0 16px 16px;background:#ffffff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-find-replace-title{position:relative;border-bottom:1px solid #e2e6ed;margin-bottom:12px;height:44px;display:flex;align-items:center;justify-content:space-between;cursor:move;-webkit-user-select:none;user-select:none}.ce-find-replace-title i{width:16px;height:16px;cursor:pointer;display:inline-block}.ce-find-replace-title i svg{width:16px;height:16px;display:block}.ce-find-replace-row{display:flex;align-items:center;margin-bottom:10px}.ce-find-replace-row input:not([type=checkbox]){flex:1;height:28px;padding:0 8px;border:1px solid #e2e6ed;border-radius:2px;outline:none}.ce-find-replace-row input:not([type=checkbox]):focus{border-color:#4991f2}.ce-find-replace-match-info{margin-left:8px;font-size:12px;color:#6e7175;white-space:nowrap}.ce-find-replace-match-case{display:flex;align-items:center;gap:4px;font-size:12px;color:#3d4757;cursor:pointer;-webkit-user-select:none;user-select:none}.ce-find-replace-menu{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ce-find-replace-menu button{position:relative;display:inline-block;border:1px solid #e2e6ed;border-radius:2px;background:#ffffff;line-height:22px;padding:0 12px;white-space:nowrap;cursor:pointer}.ce-find-replace-menu button:hover{background:rgba(25,55,88,.04)}.ce-find-replace-menu button[type=submit]{color:#fff;background:#4991f2;border-color:#4991f2}.ce-find-replace-menu button[type=submit]:hover{background:#5b9cf3;border-color:#5b9cf3}")),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
|
|
2
|
+
var N = Object.defineProperty;
|
|
3
|
+
var M = (s, e, t) => e in s ? N(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
4
|
+
var a = (s, e, t) => (M(s, typeof e != "symbol" ? e + "" : e, t), t);
|
|
5
|
+
import { KeyMap as D, EDITOR_COMPONENT as k, EditorComponent as y } from "@hufe921/canvas-editor";
|
|
6
|
+
const o = "ce-find-replace", w = "zhCN", b = {
|
|
7
|
+
zhCN: {
|
|
8
|
+
titleText: "查找替换",
|
|
9
|
+
findPlaceholder: "查找",
|
|
10
|
+
replacePlaceholder: "替换为",
|
|
11
|
+
prevText: "上一个",
|
|
12
|
+
nextText: "下一个",
|
|
13
|
+
replaceText: "替换",
|
|
14
|
+
replaceAllText: "全部替换",
|
|
15
|
+
matchCaseText: "区分大小写"
|
|
16
|
+
},
|
|
17
|
+
en: {
|
|
18
|
+
titleText: "Find and Replace",
|
|
19
|
+
findPlaceholder: "Find",
|
|
20
|
+
replacePlaceholder: "Replace with",
|
|
21
|
+
prevText: "Previous",
|
|
22
|
+
nextText: "Next",
|
|
23
|
+
replaceText: "Replace",
|
|
24
|
+
replaceAllText: "Replace All",
|
|
25
|
+
matchCaseText: "Match case"
|
|
26
|
+
}
|
|
27
|
+
}, P = `<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M8.9 8.192l4.242 4.243-.707.707L8.192 8.9 3.95 13.142l-.707-.707 4.242-4.243L3.243 3.95l.707-.707 4.242 4.242 4.243-4.242.707.707L8.9 8.192z" fill="#6A6A6A" fill-rule="evenodd"/></svg>
|
|
28
|
+
`, R = P;
|
|
29
|
+
class A {
|
|
30
|
+
constructor(e, t, n) {
|
|
31
|
+
a(this, "DEBOUNCE_TIME", 300);
|
|
32
|
+
a(this, "command");
|
|
33
|
+
a(this, "options");
|
|
34
|
+
a(this, "lang");
|
|
35
|
+
a(this, "container");
|
|
36
|
+
a(this, "findInput");
|
|
37
|
+
a(this, "replaceInput");
|
|
38
|
+
a(this, "matchCaseCheckbox");
|
|
39
|
+
a(this, "matchInfo");
|
|
40
|
+
a(this, "searchDebounceTimer");
|
|
41
|
+
a(this, "dragOffset", null);
|
|
42
|
+
a(this, "_onDragMove", (e) => {
|
|
43
|
+
if (!this.dragOffset)
|
|
44
|
+
return;
|
|
45
|
+
const t = Math.min(Math.max(e.clientX - this.dragOffset.x, 0), window.innerWidth - this.container.offsetWidth), n = Math.min(Math.max(e.clientY - this.dragOffset.y, 0), window.innerHeight - this.container.offsetHeight);
|
|
46
|
+
this.container.style.left = `${t}px`, this.container.style.top = `${n}px`;
|
|
47
|
+
});
|
|
48
|
+
a(this, "_onDragEnd", () => {
|
|
49
|
+
this.dragOffset = null, document.removeEventListener("mousemove", this._onDragMove), document.removeEventListener("mouseup", this._onDragEnd);
|
|
50
|
+
});
|
|
51
|
+
this.command = e, this.options = t, this.lang = n, this.container = this._render(), this._setDefaultPosition(), this._bindEvent(), this.findInput.focus();
|
|
52
|
+
}
|
|
53
|
+
// 默认位置:以编辑器区域水平居中(顶部 header 区域)
|
|
54
|
+
_setDefaultPosition() {
|
|
55
|
+
const e = this.command.getContainer().getBoundingClientRect(), t = this.container.offsetWidth, n = Math.max(Math.min(e.left + (e.width - t) / 2, window.innerWidth - t), 0);
|
|
56
|
+
this.container.style.left = `${n}px`;
|
|
57
|
+
}
|
|
58
|
+
_render() {
|
|
59
|
+
const { titleText: e, findPlaceholder: t, replacePlaceholder: n, prevText: c, nextText: v, replaceText: l, replaceAllText: E, matchCaseText: T } = this.lang, r = document.createElement("div");
|
|
60
|
+
r.classList.add(`${o}-container`), r.setAttribute(k, y.COMPONENT);
|
|
61
|
+
const i = document.createElement("div");
|
|
62
|
+
i.classList.add(o), r.append(i);
|
|
63
|
+
const d = document.createElement("div");
|
|
64
|
+
d.classList.add(`${o}-title`);
|
|
65
|
+
const I = document.createElement("span");
|
|
66
|
+
I.append(document.createTextNode(e));
|
|
67
|
+
const _ = document.createElement("i");
|
|
68
|
+
_.innerHTML = R, _.onclick = () => {
|
|
69
|
+
this.dispose();
|
|
70
|
+
}, d.append(I), d.append(_), i.append(d), this._bindDrag(d);
|
|
71
|
+
const m = document.createElement("div");
|
|
72
|
+
m.classList.add(`${o}-row`), this.findInput = document.createElement("input"), this.findInput.placeholder = t, this.matchInfo = document.createElement("span"), this.matchInfo.classList.add(`${o}-match-info`), m.append(this.findInput), m.append(this.matchInfo), i.append(m);
|
|
73
|
+
const C = document.createElement("div");
|
|
74
|
+
C.classList.add(`${o}-row`), this.replaceInput = document.createElement("input"), this.replaceInput.placeholder = n, C.append(this.replaceInput), i.append(C);
|
|
75
|
+
const L = document.createElement("div");
|
|
76
|
+
L.classList.add(`${o}-row`);
|
|
77
|
+
const p = document.createElement("label");
|
|
78
|
+
p.classList.add(`${o}-match-case`), this.matchCaseCheckbox = document.createElement("input"), this.matchCaseCheckbox.type = "checkbox", p.append(this.matchCaseCheckbox), p.append(document.createTextNode(T)), L.append(p), i.append(L);
|
|
79
|
+
const h = document.createElement("div");
|
|
80
|
+
h.classList.add(`${o}-menu`);
|
|
81
|
+
const u = document.createElement("button");
|
|
82
|
+
u.type = "button", u.append(document.createTextNode(c)), u.onclick = () => {
|
|
83
|
+
this._navigatePre();
|
|
84
|
+
}, h.append(u);
|
|
85
|
+
const f = document.createElement("button");
|
|
86
|
+
f.type = "button", f.append(document.createTextNode(v)), f.onclick = () => {
|
|
87
|
+
this._navigateNext();
|
|
88
|
+
}, h.append(f);
|
|
89
|
+
const x = document.createElement("button");
|
|
90
|
+
x.type = "button", x.append(document.createTextNode(l)), x.onclick = () => {
|
|
91
|
+
this._replace();
|
|
92
|
+
}, h.append(x);
|
|
93
|
+
const g = document.createElement("button");
|
|
94
|
+
return g.type = "submit", g.append(document.createTextNode(E)), g.onclick = () => {
|
|
95
|
+
this._replaceAll();
|
|
96
|
+
}, h.append(g), i.append(h), document.body.append(r), r;
|
|
97
|
+
}
|
|
98
|
+
_bindEvent() {
|
|
99
|
+
this.findInput.addEventListener("input", () => {
|
|
100
|
+
window.clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = window.setTimeout(() => {
|
|
101
|
+
this._search();
|
|
102
|
+
}, this.DEBOUNCE_TIME);
|
|
103
|
+
}), this.findInput.addEventListener("keydown", (e) => {
|
|
104
|
+
e.key === "Enter" && (window.clearTimeout(this.searchDebounceTimer), this._search(), this._navigateNext());
|
|
105
|
+
}), this.matchCaseCheckbox.addEventListener("change", () => {
|
|
106
|
+
this._search();
|
|
107
|
+
}), this.container.addEventListener("keydown", (e) => {
|
|
108
|
+
e.key === "Escape" && this.dispose();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
_bindDrag(e) {
|
|
112
|
+
e.addEventListener("mousedown", (t) => {
|
|
113
|
+
if (t.target.closest("i"))
|
|
114
|
+
return;
|
|
115
|
+
t.preventDefault();
|
|
116
|
+
const n = this.container.getBoundingClientRect();
|
|
117
|
+
this.container.style.left = `${n.left}px`, this.container.style.top = `${n.top}px`, this.dragOffset = {
|
|
118
|
+
x: t.clientX - n.left,
|
|
119
|
+
y: t.clientY - n.top
|
|
120
|
+
}, document.addEventListener("mousemove", this._onDragMove), document.addEventListener("mouseup", this._onDragEnd);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
_search() {
|
|
124
|
+
const e = this.findInput.value;
|
|
125
|
+
e ? this.command.executeSearch(e, {
|
|
126
|
+
isIgnoreCase: !this.matchCaseCheckbox.checked
|
|
127
|
+
}) : this.command.executeSearch(null), this._refreshMatchInfo();
|
|
128
|
+
}
|
|
129
|
+
_refreshMatchInfo() {
|
|
130
|
+
const e = this.command.getSearchNavigateInfo();
|
|
131
|
+
this.matchInfo.textContent = e ? `${e.index}/${e.count}` : "";
|
|
132
|
+
}
|
|
133
|
+
_navigatePre() {
|
|
134
|
+
this.command.executeSearchNavigatePre(), this._refreshMatchInfo();
|
|
135
|
+
}
|
|
136
|
+
_navigateNext() {
|
|
137
|
+
this.command.executeSearchNavigateNext(), this._refreshMatchInfo();
|
|
138
|
+
}
|
|
139
|
+
_replace() {
|
|
140
|
+
const e = this.command.getSearchNavigateInfo();
|
|
141
|
+
e && (this.command.executeReplace(this.replaceInput.value, {
|
|
142
|
+
index: e.index - 1
|
|
143
|
+
}), this._search());
|
|
144
|
+
}
|
|
145
|
+
_replaceAll() {
|
|
146
|
+
this.command.executeReplace(this.replaceInput.value), this._search();
|
|
147
|
+
}
|
|
148
|
+
focus() {
|
|
149
|
+
this.findInput.focus(), this.findInput.select();
|
|
150
|
+
}
|
|
151
|
+
dispose() {
|
|
152
|
+
var e, t;
|
|
153
|
+
window.clearTimeout(this.searchDebounceTimer), document.removeEventListener("mousemove", this._onDragMove), document.removeEventListener("mouseup", this._onDragEnd), this.command.executeSearch(null), this.container.remove(), (t = (e = this.options).onClose) == null || t.call(e);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function B(s, e) {
|
|
157
|
+
const t = s.command;
|
|
158
|
+
let n = null;
|
|
159
|
+
t.executeFindReplace = (c) => {
|
|
160
|
+
const v = () => {
|
|
161
|
+
var r, i;
|
|
162
|
+
const l = (r = t.getOptions) == null ? void 0 : r.call(t).locale, E = ((c == null ? void 0 : c.locale) || (e == null ? void 0 : e.locale) || l || w).toLowerCase().replace(/[-_]/g, "");
|
|
163
|
+
return {
|
|
164
|
+
...((i = Object.entries(b).find(([d]) => d.toLowerCase() === E)) == null ? void 0 : i[1]) || b[w],
|
|
165
|
+
...e == null ? void 0 : e.lang,
|
|
166
|
+
...c == null ? void 0 : c.lang
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
if (n) {
|
|
170
|
+
n.focus();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
n = new A(t, {
|
|
174
|
+
...c || {},
|
|
175
|
+
onClose: () => {
|
|
176
|
+
var l;
|
|
177
|
+
n = null, (l = c == null ? void 0 : c.onClose) == null || l.call(c);
|
|
178
|
+
}
|
|
179
|
+
}, v());
|
|
180
|
+
}, (e == null ? void 0 : e.shortcut) !== !1 && s.register.shortcutList([
|
|
181
|
+
{
|
|
182
|
+
key: D.F,
|
|
183
|
+
mod: !0,
|
|
184
|
+
isGlobal: !0,
|
|
185
|
+
callback: () => {
|
|
186
|
+
t.executeFindReplace();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
export {
|
|
192
|
+
B as default
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=find-replace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-replace.js","sources":["../../src/findReplace/constant/index.ts","../src/findReplace/assets/close.svg?raw","../../src/findReplace/style/index.ts","../../src/findReplace/index.ts"],"sourcesContent":[null,"export default \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M8.9 8.192l4.242 4.243-.707.707L8.192 8.9 3.95 13.142l-.707-.707 4.242-4.243L3.243 3.95l.707-.707 4.242 4.242 4.243-4.242.707.707L8.9 8.192z\\\" fill=\\\"#6A6A6A\\\" fill-rule=\\\"evenodd\\\"/></svg>\\n\"",null,null],"names":["PLUGIN_PREFIX","DEFAULT_LOCALE","PLUGIN_LANG_MAP","closeIcon","CLOSE_SVG","FindReplace","command","options","lang","__publicField","evt","left","top","editorRect","panelWidth","titleText","findPlaceholder","replacePlaceholder","prevText","nextText","replaceText","replaceAllText","matchCaseText","container","EDITOR_COMPONENT","EditorComponent","panel","titleContainer","titleSpan","titleClose","findContainer","replaceContainer","optionContainer","matchCaseLabel","menuContainer","prevBtn","nextBtn","replaceBtn","replaceAllBtn","rect","keyword","info","_b","_a","findReplacePlugin","editor","defaultOptions","findReplace","getLang","editorLocale","currentLocale","key","KeyMap"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.id="findReplace-style",e.appendChild(document.createTextNode(".ce-find-replace-container{position:fixed;top:60px;z-index:999}.ce-find-replace{width:320px;padding:0 16px 16px;background:#ffffff;box-shadow:0 2px 12px #38383833;border:1px solid #e2e6ed;border-radius:2px}.ce-find-replace-title{position:relative;border-bottom:1px solid #e2e6ed;margin-bottom:12px;height:44px;display:flex;align-items:center;justify-content:space-between;cursor:move;-webkit-user-select:none;user-select:none}.ce-find-replace-title i{width:16px;height:16px;cursor:pointer;display:inline-block}.ce-find-replace-title i svg{width:16px;height:16px;display:block}.ce-find-replace-row{display:flex;align-items:center;margin-bottom:10px}.ce-find-replace-row input:not([type=checkbox]){flex:1;height:28px;padding:0 8px;border:1px solid #e2e6ed;border-radius:2px;outline:none}.ce-find-replace-row input:not([type=checkbox]):focus{border-color:#4991f2}.ce-find-replace-match-info{margin-left:8px;font-size:12px;color:#6e7175;white-space:nowrap}.ce-find-replace-match-case{display:flex;align-items:center;gap:4px;font-size:12px;color:#3d4757;cursor:pointer;-webkit-user-select:none;user-select:none}.ce-find-replace-menu{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ce-find-replace-menu button{position:relative;display:inline-block;border:1px solid #e2e6ed;border-radius:2px;background:#ffffff;line-height:22px;padding:0 12px;white-space:nowrap;cursor:pointer}.ce-find-replace-menu button:hover{background:rgba(25,55,88,.04)}.ce-find-replace-menu button[type=submit]{color:#fff;background:#4991f2;border-color:#4991f2}.ce-find-replace-menu button[type=submit]:hover{background:#5b9cf3;border-color:#5b9cf3}")),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
|
|
2
|
+
(function(a,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("@hufe921/canvas-editor")):typeof define=="function"&&define.amd?define(["@hufe921/canvas-editor"],n):(a=typeof globalThis<"u"?globalThis:a||self,a.findReplace=n(a.canvasEditor))})(this,function(a){"use strict";var k=Object.defineProperty;var P=(a,n,r)=>n in a?k(a,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[n]=r;var s=(a,n,r)=>(P(a,typeof n!="symbol"?n+"":n,r),r);const n="ce-find-replace",r="zhCN",w={zhCN:{titleText:"查找替换",findPlaceholder:"查找",replacePlaceholder:"替换为",prevText:"上一个",nextText:"下一个",replaceText:"替换",replaceAllText:"全部替换",matchCaseText:"区分大小写"},en:{titleText:"Find and Replace",findPlaceholder:"Find",replacePlaceholder:"Replace with",prevText:"Previous",nextText:"Next",replaceText:"Replace",replaceAllText:"Replace All",matchCaseText:"Match case"}},M=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M8.9 8.192l4.242 4.243-.707.707L8.192 8.9 3.95 13.142l-.707-.707 4.242-4.243L3.243 3.95l.707-.707 4.242 4.242 4.243-4.242.707.707L8.9 8.192z" fill="#6A6A6A" fill-rule="evenodd"/></svg>
|
|
3
|
+
`,A="";class y{constructor(e,t,c){s(this,"DEBOUNCE_TIME",300);s(this,"command");s(this,"options");s(this,"lang");s(this,"container");s(this,"findInput");s(this,"replaceInput");s(this,"matchCaseCheckbox");s(this,"matchInfo");s(this,"searchDebounceTimer");s(this,"dragOffset",null);s(this,"_onDragMove",e=>{if(!this.dragOffset)return;const t=Math.min(Math.max(e.clientX-this.dragOffset.x,0),window.innerWidth-this.container.offsetWidth),c=Math.min(Math.max(e.clientY-this.dragOffset.y,0),window.innerHeight-this.container.offsetHeight);this.container.style.left=`${t}px`,this.container.style.top=`${c}px`});s(this,"_onDragEnd",()=>{this.dragOffset=null,document.removeEventListener("mousemove",this._onDragMove),document.removeEventListener("mouseup",this._onDragEnd)});this.command=e,this.options=t,this.lang=c,this.container=this._render(),this._setDefaultPosition(),this._bindEvent(),this.findInput.focus()}_setDefaultPosition(){const e=this.command.getContainer().getBoundingClientRect(),t=this.container.offsetWidth,c=Math.max(Math.min(e.left+(e.width-t)/2,window.innerWidth-t),0);this.container.style.left=`${c}px`}_render(){const{titleText:e,findPlaceholder:t,replacePlaceholder:c,prevText:i,nextText:_,replaceText:h,replaceAllText:T,matchCaseText:b}=this.lang,d=document.createElement("div");d.classList.add(`${n}-container`),d.setAttribute(a.EDITOR_COMPONENT,a.EditorComponent.COMPONENT);const o=document.createElement("div");o.classList.add(n),d.append(o);const l=document.createElement("div");l.classList.add(`${n}-title`);const N=document.createElement("span");N.append(document.createTextNode(e));const C=document.createElement("i");C.innerHTML=M,C.onclick=()=>{this.dispose()},l.append(N),l.append(C),o.append(l),this._bindDrag(l);const u=document.createElement("div");u.classList.add(`${n}-row`),this.findInput=document.createElement("input"),this.findInput.placeholder=t,this.matchInfo=document.createElement("span"),this.matchInfo.classList.add(`${n}-match-info`),u.append(this.findInput),u.append(this.matchInfo),o.append(u);const L=document.createElement("div");L.classList.add(`${n}-row`),this.replaceInput=document.createElement("input"),this.replaceInput.placeholder=c,L.append(this.replaceInput),o.append(L);const I=document.createElement("div");I.classList.add(`${n}-row`);const p=document.createElement("label");p.classList.add(`${n}-match-case`),this.matchCaseCheckbox=document.createElement("input"),this.matchCaseCheckbox.type="checkbox",p.append(this.matchCaseCheckbox),p.append(document.createTextNode(b)),I.append(p),o.append(I);const m=document.createElement("div");m.classList.add(`${n}-menu`);const f=document.createElement("button");f.type="button",f.append(document.createTextNode(i)),f.onclick=()=>{this._navigatePre()},m.append(f);const x=document.createElement("button");x.type="button",x.append(document.createTextNode(_)),x.onclick=()=>{this._navigateNext()},m.append(x);const g=document.createElement("button");g.type="button",g.append(document.createTextNode(h)),g.onclick=()=>{this._replace()},m.append(g);const v=document.createElement("button");return v.type="submit",v.append(document.createTextNode(T)),v.onclick=()=>{this._replaceAll()},m.append(v),o.append(m),document.body.append(d),d}_bindEvent(){this.findInput.addEventListener("input",()=>{window.clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=window.setTimeout(()=>{this._search()},this.DEBOUNCE_TIME)}),this.findInput.addEventListener("keydown",e=>{e.key==="Enter"&&(window.clearTimeout(this.searchDebounceTimer),this._search(),this._navigateNext())}),this.matchCaseCheckbox.addEventListener("change",()=>{this._search()}),this.container.addEventListener("keydown",e=>{e.key==="Escape"&&this.dispose()})}_bindDrag(e){e.addEventListener("mousedown",t=>{if(t.target.closest("i"))return;t.preventDefault();const c=this.container.getBoundingClientRect();this.container.style.left=`${c.left}px`,this.container.style.top=`${c.top}px`,this.dragOffset={x:t.clientX-c.left,y:t.clientY-c.top},document.addEventListener("mousemove",this._onDragMove),document.addEventListener("mouseup",this._onDragEnd)})}_search(){const e=this.findInput.value;e?this.command.executeSearch(e,{isIgnoreCase:!this.matchCaseCheckbox.checked}):this.command.executeSearch(null),this._refreshMatchInfo()}_refreshMatchInfo(){const e=this.command.getSearchNavigateInfo();this.matchInfo.textContent=e?`${e.index}/${e.count}`:""}_navigatePre(){this.command.executeSearchNavigatePre(),this._refreshMatchInfo()}_navigateNext(){this.command.executeSearchNavigateNext(),this._refreshMatchInfo()}_replace(){const e=this.command.getSearchNavigateInfo();e&&(this.command.executeReplace(this.replaceInput.value,{index:e.index-1}),this._search())}_replaceAll(){this.command.executeReplace(this.replaceInput.value),this._search()}focus(){this.findInput.focus(),this.findInput.select()}dispose(){var e,t;window.clearTimeout(this.searchDebounceTimer),document.removeEventListener("mousemove",this._onDragMove),document.removeEventListener("mouseup",this._onDragEnd),this.command.executeSearch(null),this.container.remove(),(t=(e=this.options).onClose)==null||t.call(e)}}function D(E,e){const t=E.command;let c=null;t.executeFindReplace=i=>{const _=()=>{var d,o;const h=(d=t.getOptions)==null?void 0:d.call(t).locale,T=((i==null?void 0:i.locale)||(e==null?void 0:e.locale)||h||r).toLowerCase().replace(/[-_]/g,"");return{...((o=Object.entries(w).find(([l])=>l.toLowerCase()===T))==null?void 0:o[1])||w[r],...e==null?void 0:e.lang,...i==null?void 0:i.lang}};if(c){c.focus();return}c=new y(t,{...i||{},onClose:()=>{var h;c=null,(h=i==null?void 0:i.onClose)==null||h.call(i)}},_())},(e==null?void 0:e.shortcut)!==!1&&E.register.shortcutList([{key:a.KeyMap.F,mod:!0,isGlobal:!0,callback:()=>{t.executeFindReplace()}}])}return D});
|
|
4
|
+
//# sourceMappingURL=find-replace.umd.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-replace.umd.cjs","sources":["../../src/findReplace/constant/index.ts","../../src/findReplace/style/index.ts","../src/findReplace/assets/close.svg?raw","../../src/findReplace/index.ts"],"sourcesContent":[null,null,"export default \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M8.9 8.192l4.242 4.243-.707.707L8.192 8.9 3.95 13.142l-.707-.707 4.242-4.243L3.243 3.95l.707-.707 4.242 4.242 4.243-4.242.707.707L8.9 8.192z\\\" fill=\\\"#6A6A6A\\\" fill-rule=\\\"evenodd\\\"/></svg>\\n\"",null],"names":["PLUGIN_PREFIX","DEFAULT_LOCALE","PLUGIN_LANG_MAP","CLOSE_SVG","FindReplace","command","options","lang","__publicField","evt","left","top","editorRect","panelWidth","titleText","findPlaceholder","replacePlaceholder","prevText","nextText","replaceText","replaceAllText","matchCaseText","container","EDITOR_COMPONENT","EditorComponent","panel","titleContainer","titleSpan","titleClose","findContainer","replaceContainer","optionContainer","matchCaseLabel","menuContainer","prevBtn","nextBtn","replaceBtn","replaceAllBtn","rect","keyword","info","_b","_a","findReplacePlugin","editor","defaultOptions","findReplace","getLang","editorLocale","currentLocale","key","KeyMap"],"mappings":"+cAEO,MAAMA,EAAgB,kBAEhBC,EAAiB,OAEjBC,EAAoD,CAC/D,KAAM,CACJ,UAAW,OACX,gBAAiB,KACjB,mBAAoB,MACpB,SAAU,MACV,SAAU,MACV,YAAa,KACb,eAAgB,OAChB,cAAe,OAChB,EACD,GAAI,CACF,UAAW,mBACX,gBAAiB,OACjB,mBAAoB,eACpB,SAAU,WACV,SAAU,OACV,YAAa,UACb,eAAgB,cAChB,cAAe,YAChB,GCxBUC,ECFE;AAAA,OCuBf,MAAMC,CAAW,CAaf,YACEC,EACAC,EACAC,EAAsB,CAfPC,EAAA,qBAAgB,KACzBA,EAAA,gBACAA,EAAA,gBACAA,EAAA,aACAA,EAAA,kBACAA,EAAA,kBACAA,EAAA,qBACAA,EAAA,0BACAA,EAAA,kBACAA,EAAA,4BACAA,EAAA,kBAA8C,MAoL9CA,EAAA,mBAAeC,GAAmB,CACxC,GAAI,CAAC,KAAK,WAAY,OAEtB,MAAMC,EAAO,KAAK,IAChB,KAAK,IAAID,EAAI,QAAU,KAAK,WAAW,EAAG,CAAC,EAC3C,OAAO,WAAa,KAAK,UAAU,WAAW,EAE1CE,EAAM,KAAK,IACf,KAAK,IAAIF,EAAI,QAAU,KAAK,WAAW,EAAG,CAAC,EAC3C,OAAO,YAAc,KAAK,UAAU,YAAY,EAElD,KAAK,UAAU,MAAM,KAAO,GAAGC,CAAI,KACnC,KAAK,UAAU,MAAM,IAAM,GAAGC,CAAG,IAAA,GAG3BH,EAAA,kBAAa,IAAK,CACxB,KAAK,WAAa,KACT,SAAA,oBAAoB,YAAa,KAAK,WAAW,EACjD,SAAA,oBAAoB,UAAW,KAAK,UAAU,CAAA,GA/LvD,KAAK,QAAUH,EACf,KAAK,QAAUC,EACf,KAAK,KAAOC,EACP,KAAA,UAAY,KAAK,UACtB,KAAK,oBAAmB,EACxB,KAAK,WAAU,EACf,KAAK,UAAU,OACjB,CAGQ,qBAAmB,CACzB,MAAMK,EAAa,KAAK,QAAQ,eAAe,sBAAqB,EAC9DC,EAAa,KAAK,UAAU,YAC5BH,EAAO,KAAK,IAChB,KAAK,IACHE,EAAW,MAAQA,EAAW,MAAQC,GAAc,EACpD,OAAO,WAAaA,CAAU,EAEhC,CAAC,EAEH,KAAK,UAAU,MAAM,KAAO,GAAGH,CAAI,IACrC,CAEQ,SAAO,CACP,KAAA,CACJ,UAAAI,EACA,gBAAAC,EACA,mBAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,eAAAC,EACA,cAAAC,GACE,KAAK,KAEHC,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,UAAU,IAAI,GAAGtB,CAAa,YAAY,EAC1CsB,EAAA,aAAaC,EAAAA,iBAAkBC,EAAA,gBAAgB,SAAS,EAE5D,MAAAC,EAAQ,SAAS,cAAc,KAAK,EACpCA,EAAA,UAAU,IAAIzB,CAAa,EACjCsB,EAAU,OAAOG,CAAK,EAEhB,MAAAC,EAAiB,SAAS,cAAc,KAAK,EACnDA,EAAe,UAAU,IAAI,GAAG1B,CAAa,QAAQ,EAE/C,MAAA2B,EAAY,SAAS,cAAc,MAAM,EAC/CA,EAAU,OAAO,SAAS,eAAeb,CAAS,CAAC,EAC7C,MAAAc,EAAa,SAAS,cAAc,GAAG,EAC7CA,EAAW,UAAYzB,EACvByB,EAAW,QAAU,IAAK,CACxB,KAAK,QAAO,CAAA,EAEdF,EAAe,OAAOC,CAAS,EAC/BD,EAAe,OAAOE,CAAU,EAChCH,EAAM,OAAOC,CAAc,EAE3B,KAAK,UAAUA,CAAc,EAEvB,MAAAG,EAAgB,SAAS,cAAc,KAAK,EAClDA,EAAc,UAAU,IAAI,GAAG7B,CAAa,MAAM,EAC7C,KAAA,UAAY,SAAS,cAAc,OAAO,EAC/C,KAAK,UAAU,YAAce,EACxB,KAAA,UAAY,SAAS,cAAc,MAAM,EAC9C,KAAK,UAAU,UAAU,IAAI,GAAGf,CAAa,aAAa,EAC5C6B,EAAA,OAAO,KAAK,SAAS,EACrBA,EAAA,OAAO,KAAK,SAAS,EACnCJ,EAAM,OAAOI,CAAa,EAEpB,MAAAC,EAAmB,SAAS,cAAc,KAAK,EACrDA,EAAiB,UAAU,IAAI,GAAG9B,CAAa,MAAM,EAChD,KAAA,aAAe,SAAS,cAAc,OAAO,EAClD,KAAK,aAAa,YAAcgB,EACfc,EAAA,OAAO,KAAK,YAAY,EACzCL,EAAM,OAAOK,CAAgB,EAEvB,MAAAC,EAAkB,SAAS,cAAc,KAAK,EACpDA,EAAgB,UAAU,IAAI,GAAG/B,CAAa,MAAM,EAC9C,MAAAgC,EAAiB,SAAS,cAAc,OAAO,EACrDA,EAAe,UAAU,IAAI,GAAGhC,CAAa,aAAa,EACrD,KAAA,kBAAoB,SAAS,cAAc,OAAO,EACvD,KAAK,kBAAkB,KAAO,WACfgC,EAAA,OAAO,KAAK,iBAAiB,EAC5CA,EAAe,OAAO,SAAS,eAAeX,CAAa,CAAC,EAC5DU,EAAgB,OAAOC,CAAc,EACrCP,EAAM,OAAOM,CAAe,EAEtB,MAAAE,EAAgB,SAAS,cAAc,KAAK,EAClDA,EAAc,UAAU,IAAI,GAAGjC,CAAa,OAAO,EAE7C,MAAAkC,EAAU,SAAS,cAAc,QAAQ,EAC/CA,EAAQ,KAAO,SACfA,EAAQ,OAAO,SAAS,eAAejB,CAAQ,CAAC,EAChDiB,EAAQ,QAAU,IAAK,CACrB,KAAK,aAAY,CAAA,EAEnBD,EAAc,OAAOC,CAAO,EAEtB,MAAAC,EAAU,SAAS,cAAc,QAAQ,EAC/CA,EAAQ,KAAO,SACfA,EAAQ,OAAO,SAAS,eAAejB,CAAQ,CAAC,EAChDiB,EAAQ,QAAU,IAAK,CACrB,KAAK,cAAa,CAAA,EAEpBF,EAAc,OAAOE,CAAO,EAEtB,MAAAC,EAAa,SAAS,cAAc,QAAQ,EAClDA,EAAW,KAAO,SAClBA,EAAW,OAAO,SAAS,eAAejB,CAAW,CAAC,EACtDiB,EAAW,QAAU,IAAK,CACxB,KAAK,SAAQ,CAAA,EAEfH,EAAc,OAAOG,CAAU,EAEzB,MAAAC,EAAgB,SAAS,cAAc,QAAQ,EACrD,OAAAA,EAAc,KAAO,SACrBA,EAAc,OAAO,SAAS,eAAejB,CAAc,CAAC,EAC5DiB,EAAc,QAAU,IAAK,CAC3B,KAAK,YAAW,CAAA,EAElBJ,EAAc,OAAOI,CAAa,EAClCZ,EAAM,OAAOQ,CAAa,EAEjB,SAAA,KAAK,OAAOX,CAAS,EACvBA,CACT,CAEQ,YAAU,CAEX,KAAA,UAAU,iBAAiB,QAAS,IAAK,CACrC,OAAA,aAAa,KAAK,mBAAmB,EACvC,KAAA,oBAAsB,OAAO,WAAW,IAAK,CAChD,KAAK,QAAO,CAAA,EACX,KAAK,aAAa,CAAA,CACtB,EAEI,KAAA,UAAU,iBAAiB,UAAiBb,GAAA,CAC3CA,EAAI,MAAQ,UACP,OAAA,aAAa,KAAK,mBAAmB,EAC5C,KAAK,QAAO,EACZ,KAAK,cAAa,EACpB,CACD,EAEI,KAAA,kBAAkB,iBAAiB,SAAU,IAAK,CACrD,KAAK,QAAO,CAAA,CACb,EAEI,KAAA,UAAU,iBAAiB,UAAiBA,GAAA,CAC3CA,EAAI,MAAQ,UACd,KAAK,QAAO,CACd,CACD,CACH,CAEQ,UAAUiB,EAA8B,CAC/BA,EAAA,iBAAiB,YAAmBjB,GAAA,CAE5C,GAAAA,EAAI,OAAuB,QAAQ,GAAG,EAAG,OAC9CA,EAAI,eAAc,EACZ,MAAA6B,EAAO,KAAK,UAAU,wBAE5B,KAAK,UAAU,MAAM,KAAO,GAAGA,EAAK,IAAI,KACxC,KAAK,UAAU,MAAM,IAAM,GAAGA,EAAK,GAAG,KACtC,KAAK,WAAa,CAChB,EAAG7B,EAAI,QAAU6B,EAAK,KACtB,EAAG7B,EAAI,QAAU6B,EAAK,GAAA,EAEf,SAAA,iBAAiB,YAAa,KAAK,WAAW,EAC9C,SAAA,iBAAiB,UAAW,KAAK,UAAU,CAAA,CACrD,CACH,CAuBQ,SAAO,CACP,MAAAC,EAAU,KAAK,UAAU,MAC3BA,EAGG,KAAA,QAAQ,cAAcA,EAAS,CAClC,aAAc,CAAC,KAAK,kBAAkB,OAAA,CACvC,EAEI,KAAA,QAAQ,cAAc,IAAI,EAEjC,KAAK,kBAAiB,CACxB,CAEQ,mBAAiB,CACjB,MAAAC,EAAO,KAAK,QAAQ,wBACrB,KAAA,UAAU,YAAcA,EAAO,GAAGA,EAAK,KAAK,IAAIA,EAAK,KAAK,GAAK,EACtE,CAEQ,cAAY,CAClB,KAAK,QAAQ,2BACb,KAAK,kBAAiB,CACxB,CAEQ,eAAa,CACnB,KAAK,QAAQ,4BACb,KAAK,kBAAiB,CACxB,CAEQ,UAAQ,CACR,MAAAA,EAAO,KAAK,QAAQ,wBACrBA,IAGL,KAAK,QAAQ,eAAe,KAAK,aAAa,MAAO,CACnD,MAAOA,EAAK,MAAQ,CAAA,CACrB,EAED,KAAK,QAAO,EACd,CAEQ,aAAW,CAEjB,KAAK,QAAQ,eAAe,KAAK,aAAa,KAAK,EACnD,KAAK,QAAO,CACd,CAEO,OAAK,CACV,KAAK,UAAU,QACf,KAAK,UAAU,QACjB,CAEO,SAAO,SACL,OAAA,aAAa,KAAK,mBAAmB,EAEnC,SAAA,oBAAoB,YAAa,KAAK,WAAW,EACjD,SAAA,oBAAoB,UAAW,KAAK,UAAU,EAElD,KAAA,QAAQ,cAAc,IAAI,EAC/B,KAAK,UAAU,UACfC,GAAAC,EAAA,KAAK,SAAQ,UAAb,MAAAD,EAAA,KAAAC,EACF,CACD,CAEuB,SAAAC,EACtBC,EACAC,EAAyC,CAEzC,MAAMxC,EAAUuC,EAAO,QACvB,IAAIE,EAAkC,KAE9BzC,EAAA,mBAAsBC,GAAgC,CAG5D,MAAMyC,EAAU,IAAuB,SAE/B,MAAAC,GAAgBN,EAAArC,EAAgB,aAAhB,YAAAqC,EAAA,KAAArC,GAA+B,OAG/C4C,IACJ3C,GAAA,YAAAA,EAAS,UACTuC,GAAA,YAAAA,EAAgB,SAChBG,GACA/C,GAEC,YAAa,EACb,QAAQ,QAAS,EAAE,EAKf,MAAA,CACL,KAJAwC,EAAA,OAAO,QAAQvC,CAAe,EAAE,KAC9B,CAAC,CAACgD,CAAG,IAAMA,EAAI,YAAkB,IAAAD,CAAa,IADhD,YAAAR,EAEI,KAAMvC,EAAgBD,CAAc,EAGxC,GAAG4C,GAAA,YAAAA,EAAgB,KACnB,GAAGvC,GAAA,YAAAA,EAAS,IAAA,GAIhB,GAAIwC,EAAa,CACfA,EAAY,MAAK,EACjB,MACF,CACcA,EAAA,IAAI1C,EAChBC,EACA,CACE,GAAIC,GAAW,CAAA,EACf,QAAS,IAAK,OACEwC,EAAA,MACdJ,EAAApC,GAAA,YAAAA,EAAS,UAAT,MAAAoC,EAAA,KAAApC,EACF,CAAA,EAEFyC,EAAS,CAAA,CAAA,GAKTF,GAAA,YAAAA,EAAgB,YAAa,IAC/BD,EAAO,SAAS,aAAa,CAC3B,CACE,IAAKO,EAAO,OAAA,EACZ,IAAK,GACL,SAAU,GACV,SAAU,IAAK,CACb9C,EAAQ,mBAAkB,CAC5B,CACD,CAAA,CACF,CAEL"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Editor } from '@hufe921/canvas-editor';
|
|
2
|
+
import { IFindReplaceLang, IFindReplaceOption, IFindReplacePluginOption } from './interface';
|
|
3
|
+
import './style/index.scss';
|
|
4
|
+
declare module '@hufe921/canvas-editor' {
|
|
5
|
+
interface Command {
|
|
6
|
+
executeFindReplace(options?: IFindReplaceOption): void;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default function findReplacePlugin(editor: Editor, defaultOptions?: IFindReplacePluginOption): void;
|
|
10
|
+
export type { IFindReplaceLang, IFindReplaceOption, IFindReplacePluginOption };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface IFindReplaceLang {
|
|
2
|
+
titleText: string;
|
|
3
|
+
findPlaceholder: string;
|
|
4
|
+
replacePlaceholder: string;
|
|
5
|
+
prevText: string;
|
|
6
|
+
nextText: string;
|
|
7
|
+
replaceText: string;
|
|
8
|
+
replaceAllText: string;
|
|
9
|
+
matchCaseText: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IFindReplaceOption {
|
|
12
|
+
locale?: string;
|
|
13
|
+
lang?: Partial<IFindReplaceLang>;
|
|
14
|
+
onClose?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export interface IFindReplacePluginOption {
|
|
17
|
+
locale?: string;
|
|
18
|
+
lang?: Partial<IFindReplaceLang>;
|
|
19
|
+
shortcut?: boolean;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CLOSE_SVG: any;
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hufe921/canvas-editor-plugin-find-replace",
|
|
3
|
+
"author": "Hufe",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"version": "0.0.1",
|
|
6
|
+
"description": "find and replace plugin for canvas-editor",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"registry": "https://registry.npmjs.org/",
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"README.md",
|
|
15
|
+
"LICENSE",
|
|
16
|
+
"package.json"
|
|
17
|
+
],
|
|
18
|
+
"typings": "./dist/src/findReplace/index.d.ts",
|
|
19
|
+
"main": "./dist/find-replace.umd.cjs",
|
|
20
|
+
"module": "./dist/find-replace.js",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/Hufe921/canvas-editor-plugin.git"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"canvas-editor",
|
|
27
|
+
"find",
|
|
28
|
+
"replace",
|
|
29
|
+
"find-replace"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "vite",
|
|
33
|
+
"build": "vite build --mode lib",
|
|
34
|
+
"type:check": "tsc --noEmit"
|
|
35
|
+
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"@hufe921/canvas-editor": ">=1.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@hufe921/canvas-editor": "1.0.2",
|
|
41
|
+
"@rollup/plugin-typescript": "^10.0.1",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "4.33.0",
|
|
43
|
+
"@typescript-eslint/parser": "4.33.0",
|
|
44
|
+
"eslint": "7.32.0",
|
|
45
|
+
"sass": "^1.97.3",
|
|
46
|
+
"simple-git-hooks": "^2.8.1",
|
|
47
|
+
"typescript": "^5.0.2",
|
|
48
|
+
"vite": "^4.3.9",
|
|
49
|
+
"vite-plugin-css-injected-by-js": "^3.3.0"
|
|
50
|
+
}
|
|
51
|
+
}
|