@opentiny/tiny-robot 0.3.0-alpha.19 → 0.3.0-alpha.20

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.
@@ -1,49 +1,49 @@
1
- import { ref as M, watch as oe, reactive as ot, computed as B, defineComponent as Ce, createElementBlock as I, openBlock as m, createCommentVNode as N, normalizeStyle as Ve, createBlock as ee, unref as S, withCtx as ye, createElementVNode as U, createVNode as Q, normalizeClass as se, toDisplayString as ce, useAttrs as st, resolveComponent as at, mergeProps as we, Fragment as ve, renderList as Se, mergeModels as lt, useModel as rt, onMounted as it, onUnmounted as ut, nextTick as ne, Transition as We, withModifiers as ct, useSlots as dt, renderSlot as ue, isRef as ft, createTextVNode as je } from "vue";
2
- import { TinyTooltip as Fe, TinyInput as pt } from "@opentiny/vue";
3
- import { d as ht } from "../index2.js";
4
- import { IconUpload as yt, IconVoice as vt, IconLoadingSpeech as gt, IconClose as mt, IconSend as bt, IconStop as _t, IconAssociate as wt } from "@opentiny/tiny-robot-svgs";
5
- import { _ as Le } from "../_plugin-vue_export-helper.js";
6
- import { t as St } from "../utils.js";
7
- function Ct(l, c) {
8
- const s = M(l.modelValue || l.defaultValue || ""), i = M(null);
9
- oe(
1
+ import { ref as K, watch as te, reactive as nt, computed as D, defineComponent as we, createElementBlock as I, openBlock as b, createCommentVNode as W, normalizeStyle as je, createBlock as Q, unref as C, withCtx as pe, createElementVNode as U, createVNode as X, normalizeClass as ne, toDisplayString as ie, useAttrs as ot, resolveComponent as st, mergeProps as be, Fragment as he, renderList as _e, mergeModels as at, useModel as lt, onMounted as rt, onUnmounted as it, nextTick as ee, Transition as Pe, withModifiers as ut, useSlots as ct, renderSlot as re, isRef as dt, createTextVNode as ze } from "vue";
2
+ import { TinyTooltip as Me, TinyInput as ft } from "@opentiny/vue";
3
+ import { d as pt } from "../index2.js";
4
+ import { IconUpload as ht, IconVoice as vt, IconLoadingSpeech as yt, IconClose as gt, IconSend as mt, IconStop as bt, IconAssociate as _t } from "@opentiny/tiny-robot-svgs";
5
+ import { _ as Se } from "../_plugin-vue_export-helper.js";
6
+ import { t as wt } from "../utils.js";
7
+ function St(l, c) {
8
+ const s = K(l.modelValue || l.defaultValue || ""), u = K(null);
9
+ te(
10
10
  () => l.modelValue,
11
11
  (h) => {
12
12
  h !== void 0 && h !== s.value && (s.value = h);
13
13
  }
14
- ), oe(
14
+ ), te(
15
15
  () => s.value,
16
16
  (h) => {
17
17
  c("update:modelValue", h);
18
18
  }
19
19
  );
20
- const v = (h) => {
20
+ const y = (h) => {
21
21
  s.value = h, c("update:modelValue", h);
22
- }, w = (h) => {
22
+ }, S = (h) => {
23
23
  h == null || h.preventDefault();
24
- const b = s.value;
25
- !l.disabled && !l.loading && b.trim() && c("submit", b);
24
+ const _ = s.value;
25
+ !l.disabled && !l.loading && _.trim() && c("submit", _);
26
26
  }, a = () => {
27
27
  s.value = "", c("update:modelValue", ""), c("clear");
28
- }, d = M(!1);
28
+ }, d = K(!1);
29
29
  return {
30
30
  inputValue: s,
31
- inputWrapper: i,
31
+ inputWrapper: u,
32
32
  isComposing: d,
33
- handleChange: v,
34
- handleSubmit: w,
33
+ handleChange: y,
34
+ handleSubmit: S,
35
35
  handleClear: a,
36
36
  clearInput: () => {
37
37
  a();
38
38
  }
39
39
  };
40
40
  }
41
- function xt(l, c, s, i, v, w, a, d, C, h, b, y, K, W, F, P) {
41
+ function Ct(l, c, s, u, y, S, a, d, x, h, _, v, A, P, M, F) {
42
42
  const T = () => {
43
- y.value && (F != null && F.value && (P == null || P()), c("submit", s.value.trim()));
44
- }, g = (p, Y) => {
43
+ v.value && (M != null && M.value && (F == null || F()), c("submit", s.value.trim()));
44
+ }, g = (p, Z) => {
45
45
  if (!(p.key === "Enter")) return !1;
46
- switch (Y) {
46
+ switch (Z) {
47
47
  case "enter":
48
48
  return !p.shiftKey && !p.ctrlKey && !p.metaKey;
49
49
  case "ctrlEnter":
@@ -56,21 +56,21 @@ function xt(l, c, s, i, v, w, a, d, C, h, b, y, K, W, F, P) {
56
56
  };
57
57
  return {
58
58
  handleKeyPress: (p) => {
59
- if (i.value) return;
60
- if (p.key === "Enter" && p.shiftKey && (K == null ? void 0 : K.value) === "single" && W) {
61
- p.preventDefault(), W();
62
- const L = p.target, q = L.selectionStart, te = s.value;
63
- s.value = te.substring(0, q) + `
64
- ` + te.substring(q), setTimeout(() => {
65
- L.selectionStart = L.selectionEnd = q + 1;
59
+ if (u.value) return;
60
+ if (p.key === "Enter" && p.shiftKey && (A == null ? void 0 : A.value) === "single" && P) {
61
+ p.preventDefault(), P();
62
+ const B = p.target, q = B.selectionStart, Y = s.value;
63
+ s.value = Y.substring(0, q) + `
64
+ ` + Y.substring(q), setTimeout(() => {
65
+ B.selectionStart = B.selectionEnd = q + 1;
66
66
  }, 0);
67
67
  return;
68
68
  }
69
- if (p.key === "Tab" && w.value && a.value) {
69
+ if (p.key === "Tab" && S.value && a.value) {
70
70
  p.preventDefault(), d();
71
71
  return;
72
72
  }
73
- if (w.value) {
73
+ if (S.value) {
74
74
  if (p.key === "ArrowDown") {
75
75
  p.preventDefault(), h("down");
76
76
  return;
@@ -85,16 +85,16 @@ function xt(l, c, s, i, v, w, a, d, C, h, b, y, K, W, F, P) {
85
85
  }
86
86
  }
87
87
  if (p.key === "Escape") {
88
- w.value ? (C(), p.preventDefault()) : v.isRecording && (b(), p.preventDefault()), c("escape-press");
88
+ S.value ? (x(), p.preventDefault()) : y.isRecording && (_(), p.preventDefault()), c("escape-press");
89
89
  return;
90
90
  }
91
- g(p, l.submitType) && (p.preventDefault(), y.value && T());
91
+ g(p, l.submitType) && (p.preventDefault(), v.value && T());
92
92
  },
93
93
  triggerSubmit: T
94
94
  };
95
95
  }
96
- function kt(l) {
97
- const c = ot({
96
+ function xt(l) {
97
+ const c = nt({
98
98
  isRecording: !1,
99
99
  isSupported: typeof window < "u" && "webkitSpeechRecognition" in window || "SpeechRecognition" in window,
100
100
  error: void 0
@@ -106,14 +106,14 @@ function kt(l) {
106
106
  var a;
107
107
  c.isRecording = !1, (a = l.onEnd) == null || a.call(l);
108
108
  }, s.onresult = (a) => {
109
- var C, h;
110
- const d = Array.from(a.results).map((b) => b[0].transcript).join("");
111
- a.results[0].isFinal ? (C = l.onFinal) == null || C.call(l, d) : (h = l.onInterim) == null || h.call(l, d);
109
+ var x, h;
110
+ const d = Array.from(a.results).map((_) => _[0].transcript).join("");
111
+ a.results[0].isFinal ? (x = l.onFinal) == null || x.call(l, d) : (h = l.onInterim) == null || h.call(l, d);
112
112
  }, s.onerror = (a) => {
113
113
  var d;
114
114
  c.error = new Error(a.error), c.isRecording = !1, (d = l.onError) == null || d.call(l, c.error);
115
115
  });
116
- const i = () => {
116
+ const u = () => {
117
117
  var a;
118
118
  if (!s) {
119
119
  const d = new Error("浏览器不支持语音识别");
@@ -126,102 +126,102 @@ function kt(l) {
126
126
  try {
127
127
  s.start();
128
128
  } catch (d) {
129
- w(d);
129
+ S(d);
130
130
  }
131
131
  }, 100);
132
132
  } catch (d) {
133
- w(d);
133
+ S(d);
134
134
  }
135
135
  return;
136
136
  }
137
137
  try {
138
138
  s.start();
139
139
  } catch (d) {
140
- w(d);
140
+ S(d);
141
141
  }
142
- }, v = () => {
142
+ }, y = () => {
143
143
  if (s && c.isRecording)
144
144
  try {
145
145
  s.stop();
146
146
  } catch (a) {
147
- w(a);
147
+ S(a);
148
148
  }
149
- }, w = (a) => {
149
+ }, S = (a) => {
150
150
  var d;
151
151
  c.error = a instanceof Error ? a : new Error("语音识别操作失败"), c.isRecording = !1, (d = l.onError) == null || d.call(l, c.error);
152
152
  };
153
153
  return {
154
154
  speechState: c,
155
- start: i,
156
- stop: v
155
+ start: u,
156
+ stop: y
157
157
  };
158
158
  }
159
- function It(l, c, s, i, v, w) {
160
- const a = M(!1), d = M(-1), C = M(-1), h = M(null), b = M(""), y = M(!1), K = B(() => {
161
- var j, J;
162
- if (!((j = l.value) != null && j.length)) return "";
163
- const x = h.value === "mouse" ? C.value : d.value;
164
- return ((J = l.value[x]) == null ? void 0 : J.content) || "";
165
- }), W = (x) => {
166
- b.value = x, y.value = !0;
167
- }, F = () => {
168
- b.value = "", y.value = !1;
169
- }, P = (x) => {
170
- const j = x || K.value;
171
- if (!j || !c.value) {
172
- F();
159
+ function kt(l, c, s, u, y, S) {
160
+ const a = K(!1), d = K(-1), x = K(-1), h = K(null), _ = K(""), v = K(!1), A = D(() => {
161
+ var G, j;
162
+ if (!((G = l.value) != null && G.length)) return "";
163
+ const k = h.value === "mouse" ? x.value : d.value;
164
+ return ((j = l.value[k]) == null ? void 0 : j.content) || "";
165
+ }), P = (k) => {
166
+ _.value = k, v.value = !0;
167
+ }, M = () => {
168
+ _.value = "", v.value = !1;
169
+ }, F = (k) => {
170
+ const G = k || A.value;
171
+ if (!G || !c.value) {
172
+ M();
173
173
  return;
174
174
  }
175
- const J = j.substring(c.value.length);
176
- j.toLowerCase().startsWith(c.value.toLowerCase()) && J ? W(J) : F();
175
+ const j = G.substring(c.value.length);
176
+ G.toLowerCase().startsWith(c.value.toLowerCase()) && j ? P(j) : M();
177
177
  }, T = () => {
178
- d.value = -1, C.value = -1, h.value = null;
178
+ d.value = -1, x.value = -1, h.value = null;
179
179
  }, g = () => {
180
- a.value = !0, P();
181
- }, O = () => {
182
- a.value = !1, T(), F();
183
- }, p = B(() => {
184
- var x;
185
- return s.value ? !0 : !!(c.value && ((x = l.value) == null ? void 0 : x.length) > 0 && !i.value);
186
- }), Y = (x) => {
187
- O(), c.value = x, v(x), w(x);
188
- }, L = () => {
189
- K.value && Y(K.value);
190
- }, q = (x) => {
191
- !a.value || !l.value || (h.value = "keyboard", d.value === -1 ? d.value = x === "down" ? 0 : l.value.length - 1 : x === "down" ? d.value = (d.value + 1) % l.value.length : d.value = (d.value - 1 + l.value.length) % l.value.length, P());
192
- }, te = (x) => {
193
- l.value && (h.value = "mouse", C.value = x, P());
194
- }, H = () => {
195
- l.value && (C.value = -1, d.value !== -1 ? h.value = "keyboard" : h.value = null, P());
180
+ a.value = !0, F();
181
+ }, E = () => {
182
+ a.value = !1, T(), M();
183
+ }, p = D(() => {
184
+ var k;
185
+ return s.value ? !0 : !!(c.value && ((k = l.value) == null ? void 0 : k.length) > 0 && !u.value);
186
+ }), Z = (k) => {
187
+ E(), c.value = k, y(k), S(k);
188
+ }, B = () => {
189
+ A.value && Z(A.value);
190
+ }, q = (k) => {
191
+ !a.value || !l.value || (h.value = "keyboard", d.value === -1 ? d.value = k === "down" ? 0 : l.value.length - 1 : k === "down" ? d.value = (d.value + 1) % l.value.length : d.value = (d.value - 1 + l.value.length) % l.value.length, F());
192
+ }, Y = (k) => {
193
+ l.value && (h.value = "mouse", x.value = k, F());
194
+ }, N = () => {
195
+ l.value && (x.value = -1, d.value !== -1 ? h.value = "keyboard" : h.value = null, F());
196
196
  };
197
- return oe(p, (x) => {
198
- x ? a.value || g() : a.value && O();
197
+ return te(p, (k) => {
198
+ k ? a.value || g() : a.value && E();
199
199
  }), {
200
200
  // 弹窗控制
201
201
  isPopupVisible: a,
202
202
  openPopup: g,
203
- closePopup: O,
203
+ closePopup: E,
204
204
  // 自动完成占位符
205
- autoCompleteText: b,
206
- showTabIndicator: y,
207
- syncAutoComplete: P,
205
+ autoCompleteText: _,
206
+ showTabIndicator: v,
207
+ syncAutoComplete: F,
208
208
  // 选中控制层
209
- activeSuggestion: K,
209
+ activeSuggestion: A,
210
210
  activeKeyboardIndex: d,
211
- activeMouseIndex: C,
211
+ activeMouseIndex: x,
212
212
  // 交互处理
213
213
  navigateWithKeyboard: q,
214
- handleMouseEnter: te,
215
- handleMouseLeave: H,
214
+ handleMouseEnter: Y,
215
+ handleMouseLeave: N,
216
216
  // 业务操作
217
- applySuggestion: Y,
218
- confirmSelection: L
217
+ applySuggestion: Z,
218
+ confirmSelection: B
219
219
  };
220
220
  }
221
- const Tt = { class: "action-buttons" }, Rt = { class: "action-buttons__submit-content" }, Ot = {
221
+ const It = { class: "action-buttons" }, Tt = { class: "action-buttons__submit-content" }, Rt = {
222
222
  key: 0,
223
223
  class: "action-buttons__cancel-text"
224
- }, Et = /* @__PURE__ */ Ce({
224
+ }, Ot = /* @__PURE__ */ we({
225
225
  __name: "ActionButtons",
226
226
  props: {
227
227
  loading: { type: Boolean, default: !1 },
@@ -242,143 +242,143 @@ const Tt = { class: "action-buttons" }, Rt = { class: "action-buttons__submit-co
242
242
  },
243
243
  emits: ["clear", "toggle-speech", "submit", "cancel", "trigger-select"],
244
244
  setup(l, { emit: c }) {
245
- const s = l, i = c, v = B(() => {
246
- var O, p;
247
- const g = (p = (O = s.buttonGroup) == null ? void 0 : O.file) == null ? void 0 : p.tooltips;
245
+ const s = l, u = c, y = D(() => {
246
+ var E, p;
247
+ const g = (p = (E = s.buttonGroup) == null ? void 0 : E.file) == null ? void 0 : p.tooltips;
248
248
  if (typeof g == "string" && g)
249
249
  return () => g;
250
250
  if (typeof g == "function")
251
251
  return g;
252
- }), w = B(() => {
253
- var O, p;
254
- const g = (p = (O = s.buttonGroup) == null ? void 0 : O.submit) == null ? void 0 : p.tooltips;
252
+ }), S = D(() => {
253
+ var E, p;
254
+ const g = (p = (E = s.buttonGroup) == null ? void 0 : E.submit) == null ? void 0 : p.tooltips;
255
255
  if (typeof g == "string" && g)
256
256
  return () => g;
257
257
  if (typeof g == "function")
258
258
  return g;
259
- }), a = B(() => s.allowSpeech), d = B(() => s.speechStatus.isRecording), C = B(() => s.disabled), h = B(() => {
260
- var g, O;
261
- return C.value || s.isOverLimit || ((O = (g = s.buttonGroup) == null ? void 0 : g.submit) == null ? void 0 : O.disabled);
262
- }), b = B(() => s.allowFiles || s.allowSpeech || s.showClear), y = () => {
263
- C.value || i("clear");
264
- }, K = () => {
265
- if (!C.value) {
259
+ }), a = D(() => s.allowSpeech), d = D(() => s.speechStatus.isRecording), x = D(() => s.disabled), h = D(() => {
260
+ var g, E;
261
+ return x.value || s.isOverLimit || ((E = (g = s.buttonGroup) == null ? void 0 : g.submit) == null ? void 0 : E.disabled);
262
+ }), _ = D(() => s.allowFiles || s.allowSpeech || s.showClear), v = () => {
263
+ x.value || u("clear");
264
+ }, A = () => {
265
+ if (!x.value) {
266
266
  const g = !s.speechStatus.isRecording;
267
- i("toggle-speech", g);
267
+ u("toggle-speech", g);
268
268
  }
269
- }, W = () => {
270
- h.value || i("submit");
271
- }, F = () => {
272
- C.value || i("cancel");
273
- }, P = B(() => {
274
- var g, O;
275
- return C.value || ((O = (g = s.buttonGroup) == null ? void 0 : g.file) == null ? void 0 : O.disabled);
269
+ }, P = () => {
270
+ h.value || u("submit");
271
+ }, M = () => {
272
+ x.value || u("cancel");
273
+ }, F = D(() => {
274
+ var g, E;
275
+ return x.value || ((E = (g = s.buttonGroup) == null ? void 0 : g.file) == null ? void 0 : E.disabled);
276
276
  }), T = () => {
277
- P.value || i("trigger-select");
277
+ F.value || u("trigger-select");
278
278
  };
279
- return (g, O) => (m(), I("div", Tt, [
280
- b.value ? (m(), I("div", {
279
+ return (g, E) => (b(), I("div", It, [
280
+ _.value ? (b(), I("div", {
281
281
  key: 0,
282
282
  class: "action-buttons__utility",
283
- style: Ve({ "padding-right": g.hasContent || g.loading ? "0" : "6px" })
283
+ style: je({ "padding-right": g.hasContent || g.loading ? "0" : "6px" })
284
284
  }, [
285
- g.allowFiles && !g.loading ? (m(), ee(S(Fe), {
285
+ g.allowFiles && !g.loading ? (b(), Q(C(Me), {
286
286
  key: 0,
287
287
  effect: "light",
288
288
  placement: "top",
289
- "render-content": v.value,
289
+ "render-content": y.value,
290
290
  "visible-arrow": !1
291
291
  }, {
292
- default: ye(() => [
292
+ default: pe(() => [
293
293
  U("div", {
294
294
  class: "action-buttons__button",
295
295
  onClick: T
296
296
  }, [
297
- Q(S(yt), {
298
- class: se(["action-buttons__icon", "action-buttons__icon--upload", { "is-disabled": P.value }]),
297
+ X(C(ht), {
298
+ class: ne(["action-buttons__icon", "action-buttons__icon--upload", { "is-disabled": F.value }]),
299
299
  alt: "上传文件"
300
300
  }, null, 8, ["class"])
301
301
  ])
302
302
  ]),
303
303
  _: 1
304
- }, 8, ["render-content"])) : N("", !0),
305
- a.value && !g.loading ? (m(), I("div", {
304
+ }, 8, ["render-content"])) : W("", !0),
305
+ a.value && !g.loading ? (b(), I("div", {
306
306
  key: 1,
307
- class: se(["action-buttons__button", { "is-recording": d.value }]),
308
- onClick: K
307
+ class: ne(["action-buttons__button", { "is-recording": d.value }]),
308
+ onClick: A
309
309
  }, [
310
- d.value ? (m(), ee(S(gt), {
310
+ d.value ? (b(), Q(C(yt), {
311
311
  key: 1,
312
312
  class: "action-buttons__icon action-buttons__icon--recording",
313
313
  alt: "语音中"
314
- })) : (m(), ee(S(vt), {
314
+ })) : (b(), Q(C(vt), {
315
315
  key: 0,
316
316
  class: "action-buttons__icon",
317
317
  alt: "录音"
318
318
  }))
319
- ], 2)) : N("", !0),
320
- g.showClear ? (m(), ee(S(Fe), {
319
+ ], 2)) : W("", !0),
320
+ g.showClear ? (b(), Q(C(Me), {
321
321
  key: 2,
322
322
  content: "清空内容",
323
323
  placement: "top"
324
324
  }, {
325
- default: ye(() => [
325
+ default: pe(() => [
326
326
  U("div", {
327
327
  class: "action-buttons__button",
328
- onClick: y
328
+ onClick: v
329
329
  }, [
330
- Q(S(mt), { class: "action-buttons__icon action-buttons__icon--clear" })
330
+ X(C(gt), { class: "action-buttons__icon action-buttons__icon--clear" })
331
331
  ])
332
332
  ]),
333
333
  _: 1
334
- })) : N("", !0)
335
- ], 4)) : N("", !0),
336
- g.hasContent || g.loading ? (m(), I("div", {
334
+ })) : W("", !0)
335
+ ], 4)) : W("", !0),
336
+ g.hasContent || g.loading ? (b(), I("div", {
337
337
  key: 1,
338
338
  class: "action-buttons__button action-buttons__submit",
339
- onClick: O[0] || (O[0] = (p) => g.loading ? F() : W())
339
+ onClick: E[0] || (E[0] = (p) => g.loading ? M() : P())
340
340
  }, [
341
- U("div", Rt, [
342
- g.loading ? (m(), I("div", {
341
+ U("div", Tt, [
342
+ g.loading ? (b(), I("div", {
343
343
  key: 1,
344
- class: se(["action-buttons__cancel", { "action-buttons__cancel--icon-only": !g.stopText }])
344
+ class: ne(["action-buttons__cancel", { "action-buttons__cancel--icon-only": !g.stopText }])
345
345
  }, [
346
- Q(S(_t), {
346
+ X(C(bt), {
347
347
  class: "action-buttons__icon action-buttons__icon--cancel",
348
348
  alt: "停止"
349
349
  }),
350
- g.stopText ? (m(), I("span", Ot, ce(g.stopText), 1)) : N("", !0)
351
- ], 2)) : (m(), ee(S(Fe), {
350
+ g.stopText ? (b(), I("span", Rt, ie(g.stopText), 1)) : W("", !0)
351
+ ], 2)) : (b(), Q(C(Me), {
352
352
  key: 0,
353
353
  effect: "light",
354
354
  placement: "top",
355
- "render-content": w.value,
355
+ "render-content": S.value,
356
356
  "visible-arrow": !1
357
357
  }, {
358
- default: ye(() => [
359
- Q(S(bt), {
360
- class: se(["action-buttons__icon", "action-buttons__icon--send", { "is-disabled": h.value }]),
358
+ default: pe(() => [
359
+ X(C(mt), {
360
+ class: ne(["action-buttons__icon", "action-buttons__icon--send", { "is-disabled": h.value }]),
361
361
  alt: "发送"
362
362
  }, null, 8, ["class"])
363
363
  ]),
364
364
  _: 1
365
365
  }, 8, ["render-content"]))
366
366
  ])
367
- ])) : N("", !0)
367
+ ])) : W("", !0)
368
368
  ]));
369
369
  }
370
- }), Je = /* @__PURE__ */ Le(Et, [["__scopeId", "data-v-ee42294d"]]);
371
- function $t(l, c = {}) {
372
- let s = [], i = [], v = l;
373
- return { commit: (b) => {
374
- var y;
375
- s.push(v), v = b, i.length && ((y = c.onRemoveHistory) == null || y.call(c, i)), i = [];
376
- }, undo: () => s.length ? (i.push(v), v = s.pop(), v) : null, redo: () => i.length ? (s.push(v), v = i.pop(), v) : null, clear: () => {
377
- var b, y;
378
- s.length && ((b = c.onRemoveHistory) == null || b.call(c, s)), i.length && ((y = c.onRemoveHistory) == null || y.call(c, i)), s = [], i = [];
379
- }, get: () => v };
370
+ }), Ge = /* @__PURE__ */ Se(Ot, [["__scopeId", "data-v-dce543a0"]]);
371
+ function Et(l, c = {}) {
372
+ let s = [], u = [], y = l;
373
+ return { commit: (_) => {
374
+ var v;
375
+ s.push(y), y = _, u.length && ((v = c.onRemoveHistory) == null || v.call(c, u)), u = [];
376
+ }, undo: () => s.length ? (u.push(y), y = s.pop(), y) : null, redo: () => u.length ? (s.push(y), y = u.pop(), y) : null, clear: () => {
377
+ var _, v;
378
+ s.length && ((_ = c.onRemoveHistory) == null || _.call(c, s)), u.length && ((v = c.onRemoveHistory) == null || v.call(c, u)), s = [], u = [];
379
+ }, get: () => y };
380
380
  }
381
- const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__PURE__ */ Ce({
381
+ const $t = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Lt = /* @__PURE__ */ we({
382
382
  inheritAttrs: !1,
383
383
  __name: "Block",
384
384
  props: {
@@ -389,62 +389,62 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
389
389
  asChild: { type: Boolean }
390
390
  },
391
391
  setup(l) {
392
- const c = l, s = st();
393
- return (i, v) => {
394
- const w = at("Block", !0);
395
- return c.type !== "block" ? (m(), I("span", we({
392
+ const c = l, s = ot();
393
+ return (u, y) => {
394
+ const S = st("Block", !0);
395
+ return c.type !== "block" ? (b(), I("span", be({
396
396
  key: 0,
397
397
  "data-id": c.id,
398
398
  "data-type": c.type
399
- }, S(s)), ce(c.content), 17, Lt)) : (m(), I(ve, { key: 1 }, [
400
- c.asChild ? (m(!0), I(ve, { key: 0 }, Se(c.content, (a) => (m(), ee(w, we({
399
+ }, C(s)), ie(c.content), 17, $t)) : (b(), I(he, { key: 1 }, [
400
+ c.asChild ? (b(!0), I(he, { key: 0 }, _e(c.content, (a) => (b(), Q(S, be({
401
401
  key: `${a.id}-${a.type}`
402
- }, { ref_for: !0 }, a), null, 16))), 128)) : (m(), I("span", we({
402
+ }, { ref_for: !0 }, a), null, 16))), 128)) : (b(), I("span", be({
403
403
  key: 1,
404
404
  "data-id": c.id,
405
405
  "data-type": c.type
406
- }, S(s)), [
407
- (m(!0), I(ve, null, Se(c.content, (a) => (m(), ee(w, we({
406
+ }, C(s)), [
407
+ (b(!0), I(he, null, _e(c.content, (a) => (b(), Q(S, be({
408
408
  key: `${a.id}-${a.type}`
409
409
  }, { ref_for: !0 }, a), null, 16))), 128))
410
410
  ], 16, Bt))
411
411
  ], 64));
412
412
  };
413
413
  }
414
- }), At = /* @__PURE__ */ Le(Dt, [["__scopeId", "data-v-13862606"]]), Kt = { class: "editor-container" }, Pe = "​", Mt = /* @__PURE__ */ Ce({
414
+ }), Dt = /* @__PURE__ */ Se(Lt, [["__scopeId", "data-v-13862606"]]), At = { class: "editor-container" }, Fe = "​", Kt = /* @__PURE__ */ we({
415
415
  __name: "TemplateEditor",
416
416
  props: {
417
417
  modelValue: { default: () => [] },
418
418
  modelModifiers: {}
419
419
  },
420
- emits: /* @__PURE__ */ lt(["submit"], ["update:modelValue"]),
420
+ emits: /* @__PURE__ */ at(["submit"], ["update:modelValue"]),
421
421
  setup(l, { expose: c, emit: s }) {
422
- const i = typeof window.ShadowRoot.prototype.getSelection == "function", v = typeof window.Selection.prototype.getComposedRanges == "function";
423
- function w() {
422
+ const u = typeof window.ShadowRoot.prototype.getSelection == "function", y = typeof window.Selection.prototype.getComposedRanges == "function";
423
+ function S() {
424
424
  const e = navigator.userAgent;
425
425
  return e.includes("Safari") && !e.includes("Chrome") && !e.includes("Chromium") && !e.includes("CriOS");
426
426
  }
427
- const a = w(), d = () => Math.random().toString(36).substring(2, 15), C = Pe, h = Pe, b = Pe, y = rt(l, "modelValue"), K = s, W = M(0), F = (e) => e.map((t) => ({
428
- id: t.id || d(),
429
- ...t.type === "template" ? { ...t, prefix: h, suffix: b } : t
430
- })), P = (e) => e.map((t) => ({ id: t.id, type: t.type, content: t.content })), T = M(F(y.value || [])), g = (e) => {
427
+ const a = S(), d = () => Math.random().toString(36).substring(2, 15), x = Fe, h = Fe, _ = Fe, v = lt(l, "modelValue"), A = s, P = K(0), M = (e) => e.map((n) => ({
428
+ id: n.id || d(),
429
+ ...n.type === "template" ? { ...n, prefix: h, suffix: _ } : n
430
+ })), F = (e) => e.map((n) => ({ id: n.id, type: n.type, content: n.content })), T = K(M(v.value || [])), g = (e) => {
431
431
  T.value = e;
432
- }, O = B(() => {
433
- const e = [], t = [], n = T.value;
434
- if (n.length >= 2) {
435
- const r = n[0], f = n[1];
436
- r.type === "text" && r.content.length === 0 && f.type === "template" && e.push({ ...r, content: C });
437
- const _ = n[n.length - 1], E = n[n.length - 2];
438
- _.type === "text" && _.content.length === 0 && E.type === "template" && t.push({ ..._, content: C });
432
+ }, E = D(() => {
433
+ const e = [], n = [], o = T.value;
434
+ if (o.length >= 2) {
435
+ const r = o[0], f = o[1];
436
+ r.type === "text" && r.content.length === 0 && f.type === "template" && e.push({ ...r, content: x });
437
+ const w = o[o.length - 1], L = o[o.length - 2];
438
+ w.type === "text" && w.content.length === 0 && L.type === "template" && n.push({ ...w, content: x });
439
439
  }
440
- n.length > 0 && n[0].type === "template" && e.push({ type: "text", content: C, id: d() }), n.length > 0 && n[n.length - 1].type === "template" && t.push({ type: "text", content: C, id: d() });
441
- const u = new RegExp(C, "g");
442
- return n.length > 0 && (n[0].content !== C && (n[0].content = n[0].content.replace(u, "")), n[n.length - 1].content !== C && (n[n.length - 1].content = n[n.length - 1].content.replace(u, ""))), e.concat(n).concat(t);
443
- }), p = B(() => T.value.map((e) => e.type === "template" ? [
440
+ o.length > 0 && o[0].type === "template" && e.push({ type: "text", content: x, id: d() }), o.length > 0 && o[o.length - 1].type === "template" && n.push({ type: "text", content: x, id: d() });
441
+ const i = new RegExp(x, "g");
442
+ return o.length > 0 && (o[0].content !== x && (o[0].content = o[0].content.replace(i, "")), o[o.length - 1].content !== x && (o[o.length - 1].content = o[o.length - 1].content.replace(i, ""))), e.concat(o).concat(n);
443
+ }), p = D(() => T.value.map((e) => e.type === "template" ? [
444
444
  { id: e.id, type: "prefix", content: e.prefix },
445
445
  { id: e.id, type: "template", content: e.content },
446
446
  { id: e.id, type: "suffix", content: e.suffix }
447
- ] : [e]).flat()), Y = B(() => O.value.map((e) => e.type === "text" ? e : a ? {
447
+ ] : [e]).flat()), Z = D(() => E.value.map((e) => e.type === "text" ? e : a ? {
448
448
  id: e.id,
449
449
  type: "block",
450
450
  asChild: !0,
@@ -474,90 +474,90 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
474
474
  },
475
475
  { id: e.id, type: "suffix", content: e.suffix }
476
476
  ]
477
- })), L = M(null), q = (e) => {
478
- const t = Date.now(), n = JSON.stringify(e);
479
- return `${t}:${n}`;
480
- }, te = (e) => {
481
- const t = parseInt(e.slice(0, 13)), n = JSON.parse(e.slice(14));
477
+ })), B = K(null), q = (e) => {
478
+ const n = Date.now(), o = JSON.stringify(e);
479
+ return `${n}:${o}`;
480
+ }, Y = (e) => {
481
+ const n = parseInt(e.slice(0, 13)), o = JSON.parse(e.slice(14));
482
482
  return {
483
- timestamp: t,
484
- data: n
483
+ timestamp: n,
484
+ data: o
485
485
  };
486
- }, H = /* @__PURE__ */ new Map(), x = $t(q(T.value), {
486
+ }, N = /* @__PURE__ */ new Map(), k = Et(q(T.value), {
487
487
  onRemoveHistory: (e) => {
488
- for (const t of e)
489
- H.delete(t);
488
+ for (const n of e)
489
+ N.delete(n);
490
490
  }
491
491
  });
492
- oe(
493
- () => y.value,
492
+ te(
493
+ () => v.value,
494
494
  (e) => {
495
- const t = F(e || []);
496
- if (JSON.stringify(t) !== JSON.stringify(T.value)) {
497
- if (L.value) {
498
- const u = re(L.value);
499
- u && H.set(x.get(), X(u));
495
+ const n = M(e || []);
496
+ if (JSON.stringify(n) !== JSON.stringify(T.value)) {
497
+ if (B.value) {
498
+ const i = ae(B.value);
499
+ i && N.set(k.get(), J(i));
500
500
  }
501
- g(t), x.commit(q(T.value));
501
+ g(n), k.commit(q(T.value));
502
502
  }
503
503
  },
504
504
  { deep: !0 }
505
505
  );
506
- const j = (e, t = document.body) => t.contains(e) ? e instanceof HTMLElement && e.dataset.id ? e : e.parentElement ? j(e.parentElement, t) : null : null, J = (e) => e === L.value, re = (e) => {
507
- const t = window.getSelection();
508
- if (!t)
506
+ const G = (e, n = document.body) => n.contains(e) ? e instanceof HTMLElement && e.dataset.id ? e : e.parentElement ? G(e.parentElement, n) : null : null, j = (e) => e === B.value, ae = (e) => {
507
+ const n = window.getSelection();
508
+ if (!n)
509
509
  return null;
510
- const n = t.rangeCount > 0 ? t.getRangeAt(0) : null, u = e.getRootNode();
511
- if (!(u instanceof ShadowRoot))
512
- return n;
513
- if (v) {
514
- const r = t.getComposedRanges(a ? u : { shadowRoots: [u] });
510
+ const o = n.rangeCount > 0 ? n.getRangeAt(0) : null, i = e.getRootNode();
511
+ if (!(i instanceof ShadowRoot))
512
+ return o;
513
+ if (y) {
514
+ const r = n.getComposedRanges(a ? i : { shadowRoots: [i] });
515
515
  return (r == null ? void 0 : r[0]) ?? null;
516
516
  }
517
- if (i) {
518
- const r = u.getSelection();
517
+ if (u) {
518
+ const r = i.getSelection();
519
519
  return r.rangeCount > 0 ? r.getRangeAt(0) : null;
520
520
  }
521
- return n;
522
- }, V = (e, t) => {
523
- var u;
521
+ return o;
522
+ }, V = (e, n) => {
523
+ var i;
524
524
  if (!e.firstChild || e.firstChild.nodeType !== Node.TEXT_NODE)
525
525
  return { node: e, offset: 0 };
526
- const n = ((u = e.firstChild.textContent) == null ? void 0 : u.length) ?? 0;
527
- return { node: e.firstChild, offset: Math.min(t, n) };
528
- }, z = (e, t, n, u) => {
526
+ const o = ((i = e.firstChild.textContent) == null ? void 0 : i.length) ?? 0;
527
+ return { node: e.firstChild, offset: Math.min(n, o) };
528
+ }, z = (e, n, o, i) => {
529
529
  const r = window.getSelection();
530
530
  if (!r)
531
531
  return;
532
- const { node: f, offset: _ } = V(e, t);
533
- if (!n) {
534
- r.setBaseAndExtent(f, _, f, _);
532
+ const { node: f, offset: w } = V(e, n);
533
+ if (!o) {
534
+ r.setBaseAndExtent(f, w, f, w);
535
535
  return;
536
536
  }
537
- const { node: E, offset: G } = V(n, u ?? 0);
538
- r.setBaseAndExtent(f, _, E, G);
539
- }, ge = (e, t) => {
540
- const n = d(), u = { id: n, type: "text", content: e };
541
- if (t) {
542
- const r = T.value.findIndex((f) => f.id === t);
537
+ const { node: L, offset: H } = V(o, i ?? 0);
538
+ r.setBaseAndExtent(f, w, L, H);
539
+ }, ve = (e, n) => {
540
+ const o = d(), i = { id: o, type: "text", content: e };
541
+ if (n) {
542
+ const r = T.value.findIndex((f) => f.id === n);
543
543
  r !== -1 ? (g(
544
- T.value.slice(0, r + 1).concat(u).concat(T.value.slice(r + 1))
545
- ), x.commit(q(T.value))) : console.warn(`can not find item with id: ${t}`);
544
+ T.value.slice(0, r + 1).concat(i).concat(T.value.slice(r + 1))
545
+ ), k.commit(q(T.value))) : console.warn(`can not find item with id: ${n}`);
546
546
  } else
547
- g([u].concat(T.value)), x.commit(q(T.value));
548
- ne(() => {
547
+ g([i].concat(T.value)), k.commit(q(T.value));
548
+ ee(() => {
549
549
  var f;
550
- const r = (f = L.value) == null ? void 0 : f.querySelector(`[data-id="${n}"][data-type="text"]`);
550
+ const r = (f = B.value) == null ? void 0 : f.querySelector(`[data-id="${o}"][data-type="text"]`);
551
551
  r && z(r, e.length);
552
- }), y.value = P(T.value);
553
- }, ae = M({
552
+ }), v.value = F(T.value);
553
+ }, oe = K({
554
554
  hasStarted: !1,
555
555
  range: null
556
- }), xe = (e) => {
557
- var E;
558
- const t = e;
556
+ }), Ce = (e) => {
557
+ var L;
558
+ const n = e;
559
559
  e.preventDefault();
560
- const { inputType: n } = t, u = (t.data || ((E = t.dataTransfer) == null ? void 0 : E.getData("text/plain")) || "").replace(h, "").replace(b, ""), r = t.getTargetRanges()[0];
560
+ const { inputType: o } = n, i = (n.data || ((L = n.dataTransfer) == null ? void 0 : L.getData("text/plain")) || "").replace(h, "").replace(_, ""), r = n.getTargetRanges()[0];
561
561
  if (!r) {
562
562
  console.warn("range is null", r);
563
563
  return;
@@ -573,113 +573,113 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
573
573
  "deleteSoftLineBackward",
574
574
  "deleteSoftLineForward",
575
575
  "deleteByCut"
576
- ], _ = re(L.value);
577
- if (f.includes(n)) {
578
- if (u && J(r.startContainer) && J(r.endContainer)) {
579
- _ && H.set(x.get(), X(_)), ge(u);
576
+ ], w = ae(B.value);
577
+ if (f.includes(o)) {
578
+ if (i && j(r.startContainer) && j(r.endContainer)) {
579
+ w && N.set(k.get(), J(w)), ve(i);
580
580
  return;
581
581
  }
582
- const G = X(r);
583
- G.startId && G.endId ? (_ && H.set(x.get(), X(_)), de(G, n, u)) : console.warn("range is not valid, range:", G);
584
- } else n === "insertCompositionText" && ae.value.hasStarted && (ae.value = { hasStarted: !1, range: X(r) });
585
- }, X = (e) => {
586
- const t = j(e.startContainer, L.value), n = j(e.endContainer, L.value);
582
+ const H = J(r);
583
+ H.startId && H.endId ? (w && N.set(k.get(), J(w)), ue(H, o, i)) : console.warn("range is not valid, range:", H);
584
+ } else o === "insertCompositionText" && oe.value.hasStarted && (oe.value = { hasStarted: !1, range: J(r) });
585
+ }, J = (e) => {
586
+ const n = G(e.startContainer, B.value), o = G(e.endContainer, B.value);
587
587
  return {
588
588
  collapsed: e.collapsed,
589
589
  endContainer: e.endContainer,
590
- endId: n == null ? void 0 : n.dataset.id,
591
- endEl: n,
590
+ endId: o == null ? void 0 : o.dataset.id,
591
+ endEl: o,
592
592
  endOffset: e.endOffset,
593
- endType: n == null ? void 0 : n.dataset.type,
593
+ endType: o == null ? void 0 : o.dataset.type,
594
594
  startContainer: e.startContainer,
595
- startId: t == null ? void 0 : t.dataset.id,
596
- startEl: t,
595
+ startId: n == null ? void 0 : n.dataset.id,
596
+ startEl: n,
597
597
  startOffset: e.startOffset,
598
- startType: t == null ? void 0 : t.dataset.type
598
+ startType: n == null ? void 0 : n.dataset.type
599
599
  };
600
- }, ke = (e, t, n, u) => e.slice(0, n) + t + e.slice(u), de = (e, t, n) => {
601
- const u = Be(e);
602
- if (!Array.isArray(u) || u.length === 0)
600
+ }, xe = (e, n, o, i) => e.slice(0, o) + n + e.slice(i), ue = (e, n, o) => {
601
+ const i = Be(e);
602
+ if (!Array.isArray(i) || i.length === 0)
603
603
  return;
604
- const r = De(u, e, t, n);
605
- if (r.some((R) => R.tag === "new")) {
606
- const { afterId: R, content: $ } = r[0];
607
- ge($, R);
604
+ const r = Le(i, e, n, o);
605
+ if (r.some((O) => O.tag === "new")) {
606
+ const { afterId: O, content: $ } = r[0];
607
+ ve($, O);
608
608
  return;
609
609
  }
610
- const f = r, _ = [];
611
- for (const [R, $] of f.entries()) {
612
- const A = T.value.find((o) => o.id === $.id), Z = R === 0 ? n : "";
613
- A ? A.type === "text" ? A.content = ke(A.content, Z, $.startOffset, $.endOffset) : A.type === "template" ? $.type === "prefix" || $.type === "suffix" ? $.startOffset === 0 && $.endOffset === 1 && Z.length === 0 ? A[$.type] = "" : console.warn(`${$.type} can not be inserted text. it only can be deleted`, $) : $.startOffset < 0 || $.endOffset > A.content.length ? _.push(A.id) : A.content = ke(A.content, Z, $.startOffset, $.endOffset) : console.warn("dataItem.type is not text or template", A) : console.warn("can not find dataItem", $);
610
+ const f = r, w = [];
611
+ for (const [O, $] of f.entries()) {
612
+ const t = T.value.find((R) => R.id === $.id), m = O === 0 ? o : "";
613
+ t ? t.type === "text" ? t.content = xe(t.content, m, $.startOffset, $.endOffset) : t.type === "template" ? $.type === "prefix" || $.type === "suffix" ? $.startOffset === 0 && $.endOffset === 1 && m.length === 0 ? t[$.type] = "" : console.warn(`${$.type} can not be inserted text. it only can be deleted`, $) : $.startOffset < 0 || $.endOffset > t.content.length ? w.push(t.id) : t.content = xe(t.content, m, $.startOffset, $.endOffset) : console.warn("dataItem.type is not text or template", t) : console.warn("can not find dataItem", $);
614
614
  }
615
- let E = T.value.filter((R) => !_.includes(R.id));
616
- E = E.filter((R) => !(R.type === "template" && [R.prefix, R.suffix, R.content].join("").length === 0));
617
- const G = /* @__PURE__ */ new Set();
618
- E.forEach((R, $, A) => {
619
- if (A.length >= 2) {
615
+ let L = T.value.filter((O) => !w.includes(O.id));
616
+ L = L.filter((O) => !(O.type === "template" && [O.prefix, O.suffix, O.content].join("").length === 0));
617
+ const H = /* @__PURE__ */ new Set();
618
+ L.forEach((O, $, t) => {
619
+ if (t.length >= 2) {
620
620
  if ($ === 0 || $ === 1) {
621
- const Z = A[0], o = A[1];
622
- if (Z.type === "text" && Z.content.length === 0 && o.type === "template")
621
+ const m = t[0], R = t[1];
622
+ if (m.type === "text" && m.content.length === 0 && R.type === "template")
623
623
  return;
624
624
  }
625
- if ($ === A.length - 2 || $ === A.length - 1) {
626
- const Z = A[A.length - 1], o = A[A.length - 2];
627
- if (Z.type === "text" && Z.content.length === 0 && o.type === "template")
625
+ if ($ === t.length - 2 || $ === t.length - 1) {
626
+ const m = t[t.length - 1], R = t[t.length - 2];
627
+ if (m.type === "text" && m.content.length === 0 && R.type === "template")
628
628
  return;
629
629
  }
630
630
  }
631
- R.type === "text" && R.content.length === 0 && G.add(R.id);
632
- }), E = E.filter((R) => !G.has(R.id));
633
- for (const R of E.filter(($) => $.type === "template"))
634
- R.prefix.length === 0 && (R.prefix = h), R.suffix.length === 0 && (R.suffix = b);
635
- g(E), x.commit(q(T.value)), f.length > 0 && me(f, n), y.value = P(T.value);
636
- }, me = (e, t) => {
637
- const n = e[0], u = `[data-id="${n.id}"][data-type="${n.type}"]`, r = e.slice(1).map((f) => `[data-id="${f.id}"][data-type="${f.type}"]`);
638
- ne(() => {
639
- var _, E;
640
- const f = (_ = L.value) == null ? void 0 : _.querySelector(u);
631
+ O.type === "text" && O.content.length === 0 && H.add(O.id);
632
+ }), L = L.filter((O) => !H.has(O.id));
633
+ for (const O of L.filter(($) => $.type === "template"))
634
+ O.prefix.length === 0 && (O.prefix = h), O.suffix.length === 0 && (O.suffix = _);
635
+ g(L), k.commit(q(T.value)), f.length > 0 && ye(f, o), v.value = F(T.value);
636
+ }, ye = (e, n) => {
637
+ const o = e[0], i = `[data-id="${o.id}"][data-type="${o.type}"]`, r = e.slice(1).map((f) => `[data-id="${f.id}"][data-type="${f.type}"]`);
638
+ ee(() => {
639
+ var w, L;
640
+ const f = (w = B.value) == null ? void 0 : w.querySelector(i);
641
641
  if (f)
642
- z(f, n.startOffset + t.length);
643
- else if (t.length === 0)
644
- for (const G of r) {
645
- const R = (E = L.value) == null ? void 0 : E.querySelector(G);
646
- if (R) {
647
- z(R, 0);
642
+ z(f, o.startOffset + n.length);
643
+ else if (n.length === 0)
644
+ for (const H of r) {
645
+ const O = (L = B.value) == null ? void 0 : L.querySelector(H);
646
+ if (O) {
647
+ z(O, 0);
648
648
  break;
649
649
  }
650
650
  }
651
651
  else
652
- console.warn(`can not find el with selector: ${u}`);
652
+ console.warn(`can not find el with selector: ${i}`);
653
653
  });
654
654
  }, Be = (e) => {
655
- const t = p.value.findIndex((_) => _.id === e.startId && _.type === e.startType), n = p.value.findIndex((_) => _.id === e.endId && _.type === e.endType);
656
- if (t === -1 || n === -1 || t > n)
655
+ const n = p.value.findIndex((w) => w.id === e.startId && w.type === e.startType), o = p.value.findIndex((w) => w.id === e.endId && w.type === e.endType);
656
+ if (n === -1 || o === -1 || n > o)
657
657
  return console.warn("startIndex or endIndex is -1, or startIndex > endIndex. ", { range: e }), null;
658
- const u = p.value[t], r = p.value[n];
659
- if (t === n)
658
+ const i = p.value[n], r = p.value[o];
659
+ if (n === o)
660
660
  return [
661
661
  {
662
- id: u.id,
663
- type: u.type,
662
+ id: i.id,
663
+ type: i.type,
664
664
  startOffset: e.startOffset,
665
665
  endOffset: e.endOffset
666
666
  }
667
667
  ];
668
668
  const f = [
669
669
  {
670
- id: u.id,
671
- type: u.type,
670
+ id: i.id,
671
+ type: i.type,
672
672
  startOffset: e.startOffset,
673
- endOffset: u.content.length
673
+ endOffset: i.content.length
674
674
  }
675
675
  ];
676
- for (let _ = t + 1; _ < n; _++) {
677
- const E = p.value[_];
676
+ for (let w = n + 1; w < o; w++) {
677
+ const L = p.value[w];
678
678
  f.push({
679
- id: E.id,
680
- type: E.type,
679
+ id: L.id,
680
+ type: L.type,
681
681
  startOffset: 0,
682
- endOffset: E.content.length
682
+ endOffset: L.content.length
683
683
  });
684
684
  }
685
685
  return f.push({
@@ -688,209 +688,208 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
688
688
  startOffset: 0,
689
689
  endOffset: e.endOffset
690
690
  }), f;
691
- }, De = (e, t, n, u) => {
691
+ }, Le = (e, n, o, i) => {
692
692
  const r = e[0];
693
693
  if (r.type !== "prefix" && r.type !== "suffix")
694
694
  return e;
695
695
  if (e.length === 1) {
696
- if (t.collapsed)
697
- if (t.startOffset === 0) {
698
- const f = le(r, u);
696
+ if (n.collapsed)
697
+ if (n.startOffset === 0) {
698
+ const f = se(r, i);
699
699
  return f ? [f] : [];
700
700
  } else {
701
- const f = fe(r, u);
701
+ const f = ce(r, i);
702
702
  return f ? [f] : [];
703
703
  }
704
- if (n.startsWith("insert"))
704
+ if (o.startsWith("insert"))
705
705
  if (a) {
706
- const f = le(r, u);
706
+ const f = se(r, i);
707
707
  return f ? [f] : [];
708
708
  } else {
709
- const f = fe(r, u);
709
+ const f = ce(r, i);
710
710
  return f ? [f] : [];
711
711
  }
712
- if (n.startsWith("delete")) {
713
- if (n.includes("Backward")) {
714
- const f = le(r, u, 1);
712
+ if (o.startsWith("delete")) {
713
+ if (o.includes("Backward")) {
714
+ const f = se(r, i, 1);
715
715
  return f ? [f] : [];
716
- } else if (n.includes("Forward")) {
717
- const f = fe(r, u, 1);
716
+ } else if (o.includes("Forward")) {
717
+ const f = ce(r, i, 1);
718
718
  return f ? [f] : [];
719
719
  }
720
720
  }
721
721
  }
722
- return u.length > 0 ? e.slice(1) : e;
723
- }, le = (e, t, n = 0) => {
724
- const u = p.value.findIndex((r) => r.id === e.id && r.type === e.type);
725
- if (u > 0) {
726
- const r = p.value[u - 1], { id: f, type: _, content: E } = r;
727
- if (_ === "text" || _ === "template")
722
+ return i.length > 0 ? e.slice(1) : e;
723
+ }, se = (e, n, o = 0) => {
724
+ const i = p.value.findIndex((r) => r.id === e.id && r.type === e.type);
725
+ if (i > 0) {
726
+ const r = p.value[i - 1], { id: f, type: w, content: L } = r;
727
+ if (w === "text" || w === "template")
728
728
  return {
729
729
  id: f,
730
- type: _,
731
- startOffset: E.length - n,
732
- endOffset: E.length
730
+ type: w,
731
+ startOffset: L.length - o,
732
+ endOffset: L.length
733
733
  };
734
- if (t.length > 0)
735
- return { tag: "new", afterId: f, type: "text", content: t };
736
- if (console.warn("the previous item is not text or template", { current: e, previous: r }), n === 1)
734
+ if (n.length > 0)
735
+ return { tag: "new", afterId: f, type: "text", content: n };
736
+ if (console.warn("the previous item is not text or template", { current: e, previous: r }), o === 1)
737
737
  return { ...e, endOffset: e.startOffset };
738
- } else return t.length > 0 ? { tag: "new", type: "text", content: t } : (console.warn("the previous item of current is not found", { current: e }), null);
738
+ } else return n.length > 0 ? { tag: "new", type: "text", content: n } : (console.warn("the previous item of current is not found", { current: e }), null);
739
739
  return e;
740
- }, fe = (e, t, n = 0) => {
741
- const u = p.value.findIndex((r) => r.id === e.id && r.type === e.type);
742
- if (u < p.value.length - 1) {
743
- const r = p.value[u + 1], { id: f, type: _ } = r;
744
- if (_ === "text" || _ === "template")
740
+ }, ce = (e, n, o = 0) => {
741
+ const i = p.value.findIndex((r) => r.id === e.id && r.type === e.type);
742
+ if (i < p.value.length - 1) {
743
+ const r = p.value[i + 1], { id: f, type: w } = r;
744
+ if (w === "text" || w === "template")
745
745
  return {
746
746
  id: f,
747
- type: _,
747
+ type: w,
748
748
  startOffset: 0,
749
- endOffset: 0 + n
749
+ endOffset: 0 + o
750
750
  };
751
- if (t.length > 0)
752
- return { tag: "new", afterId: e.id, type: "text", content: t };
753
- if (console.warn("the next item is not text or template", { current: e, next: r }), n === 1)
751
+ if (n.length > 0)
752
+ return { tag: "new", afterId: e.id, type: "text", content: n };
753
+ if (console.warn("the next item is not text or template", { current: e, next: r }), o === 1)
754
754
  return { ...e, startOffset: e.endOffset };
755
- } else return t.length > 0 ? { tag: "new", afterId: e.id, type: "text", content: t } : (console.warn("the next item of current is not found", { current: e }), null);
755
+ } else return n.length > 0 ? { tag: "new", afterId: e.id, type: "text", content: n } : (console.warn("the next item of current is not found", { current: e }), null);
756
756
  return e;
757
- }, Ie = () => {
758
- ae.value = { hasStarted: !0, range: null };
759
- }, be = (e) => {
760
- const t = ae.value.range;
761
- t ? (e.data && J(t.startContainer) && J(t.endContainer) ? (H.set(x.get(), X(t)), ge(e.data)) : t.startId && t.endId ? (H.set(x.get(), X(t)), de(t, "insertCompositionText", e.data)) : console.warn("range is not valid, range:", t), W.value++) : console.warn("range is null, compositionEnd:", e), ae.value = { hasStarted: !1, range: null };
762
- }, pe = (() => {
757
+ }, ke = () => {
758
+ oe.value = { hasStarted: !0, range: null };
759
+ }, ge = (e) => {
760
+ const n = oe.value.range;
761
+ n ? (e.data && j(n.startContainer) && j(n.endContainer) ? (N.set(k.get(), J(n)), ve(e.data)) : n.startId && n.endId ? (N.set(k.get(), J(n)), ue(n, "insertCompositionText", e.data)) : console.warn("range is not valid, range:", n), P.value++) : console.warn("range is null, compositionEnd:", e), oe.value = { hasStarted: !1, range: null };
762
+ }, de = (() => {
763
763
  const e = navigator.userAgent.toLowerCase();
764
764
  return /macintosh|mac os x|iphone|ipad|ipod/.test(e);
765
- })(), he = (e) => {
766
- const t = pe && e.metaKey && !e.shiftKey && e.key.toLowerCase() === "z" || // Cmd+Z
767
- !pe && e.ctrlKey && !e.shiftKey && e.key.toLowerCase() === "z", n = pe && e.metaKey && e.shiftKey && e.key.toLowerCase() === "z" || // Cmd+Shift+z
768
- !pe && e.ctrlKey && (e.key.toLowerCase() === "y" || e.shiftKey && e.key.toLowerCase() === "z"), u = e.key.toLowerCase() === "enter";
769
- if (t) {
765
+ })(), fe = (e) => {
766
+ const n = de && e.metaKey && !e.shiftKey && e.key.toLowerCase() === "z" || // Cmd+Z
767
+ !de && e.ctrlKey && !e.shiftKey && e.key.toLowerCase() === "z", o = de && e.metaKey && e.shiftKey && e.key.toLowerCase() === "z" || // Cmd+Shift+z
768
+ !de && e.ctrlKey && (e.key.toLowerCase() === "y" || e.shiftKey && e.key.toLowerCase() === "z"), i = e.key.toLowerCase() === "enter";
769
+ if (n) {
770
770
  e.preventDefault();
771
- const r = re(L.value);
772
- r && H.set(x.get(), X(r));
773
- const f = x.undo();
774
- f && Te(f);
771
+ const r = ae(B.value);
772
+ r && N.set(k.get(), J(r));
773
+ const f = k.undo();
774
+ f && Ie(f);
775
775
  }
776
- if (n) {
776
+ if (o) {
777
777
  e.preventDefault();
778
- const r = x.redo();
779
- r && Te(r);
778
+ const r = k.redo();
779
+ r && Ie(r);
780
780
  }
781
- u && (e.preventDefault(), K("submit"));
782
- }, Te = (e) => {
783
- const { data: t } = te(e);
784
- if (g(t), H.has(e)) {
785
- const n = H.get(e);
786
- ne(() => {
787
- const u = L.value.querySelector(`[data-id="${n.startId}"][data-type="${n.startType}"]`), r = L.value.querySelector(`[data-id="${n.endId}"][data-type="${n.endType}"]`);
788
- u && z(u, n.startOffset, r, n.endOffset);
781
+ i && (e.preventDefault(), A("submit"));
782
+ }, Ie = (e) => {
783
+ const { data: n } = Y(e);
784
+ if (g(n), N.has(e)) {
785
+ const o = N.get(e);
786
+ ee(() => {
787
+ const i = B.value.querySelector(`[data-id="${o.startId}"][data-type="${o.startType}"]`), r = B.value.querySelector(`[data-id="${o.endId}"][data-type="${o.endType}"]`);
788
+ i && z(i, o.startOffset, r, o.endOffset);
789
789
  });
790
790
  }
791
- y.value = P(T.value);
792
- }, Ae = () => {
793
- L.value && ne(() => {
794
- var t, n;
795
- const e = T.value.find((u) => u.type === "template");
796
- if (e) {
797
- const u = (t = L.value) == null ? void 0 : t.querySelector(`[data-id="${e.id}"][data-type="template"]`);
798
- if (u) {
799
- const r = ((n = u.textContent) == null ? void 0 : n.length) || 0;
800
- z(u, r);
801
- }
802
- }
791
+ v.value = F(T.value);
792
+ }, Te = (e, n) => {
793
+ var r, f;
794
+ const o = (r = B.value) == null ? void 0 : r.querySelector(`[data-id="${e}"][data-type="${n}"]`);
795
+ if (!o) return;
796
+ const i = ((f = o.textContent) == null ? void 0 : f.length) || 0;
797
+ z(o, i);
798
+ }, De = () => {
799
+ B.value && ee(() => {
800
+ const e = T.value, n = e.find((i) => i.type === "template");
801
+ n && Te(n.id, "template"), e.every((i) => i.type === "text") && e.length === 1 && Te(e[0].id, "text");
803
802
  });
804
- }, Ke = () => {
805
- x.clear(), H.clear();
803
+ }, Ae = () => {
804
+ k.clear(), N.clear();
806
805
  }, Re = () => {
807
- if (!L.value || ae.value.range)
806
+ if (!B.value || oe.value.range)
808
807
  return;
809
- const e = re(L.value);
810
- if (e != null && e.collapsed && O.value.length > 0) {
811
- const t = X(e), n = O.value[0];
812
- if (t.startEl && t.startId === n.id && t.startOffset === 0 && n.content === C && n.type === "text") {
813
- z(t.startEl, 1);
808
+ const e = ae(B.value);
809
+ if (e != null && e.collapsed && E.value.length > 0) {
810
+ const n = J(e), o = E.value[0];
811
+ if (n.startEl && n.startId === o.id && n.startOffset === 0 && o.content === x && o.type === "text") {
812
+ z(n.startEl, 1);
814
813
  return;
815
814
  }
816
- const u = O.value[O.value.length - 1];
817
- if (t.endEl && t.endId === u.id && t.endOffset === 1 && u.content === C && u.type === "text") {
818
- z(t.endEl, 0);
815
+ const i = E.value[E.value.length - 1];
816
+ if (n.endEl && n.endId === i.id && n.endOffset === 1 && i.content === x && i.type === "text") {
817
+ z(n.endEl, 0);
819
818
  return;
820
819
  }
821
820
  }
822
821
  };
823
- return it(() => {
822
+ return rt(() => {
824
823
  document.addEventListener("selectionchange", Re);
825
- }), ut(() => {
824
+ }), it(() => {
826
825
  document.removeEventListener("selectionchange", Re);
827
826
  }), c({
828
- clearHistory: Ke,
829
- activateFirstField: Ae
830
- }), (e, t) => (m(), I("div", Kt, [
831
- (m(), I("div", {
827
+ clearHistory: Ae,
828
+ activateFirstField: De
829
+ }), (e, n) => (b(), I("div", At, [
830
+ (b(), I("div", {
832
831
  contenteditable: "true",
833
832
  ref_key: "editorRef",
834
- ref: L,
835
- key: W.value,
833
+ ref: B,
834
+ key: P.value,
836
835
  class: "editor",
837
- onBeforeinput: xe,
838
- onCompositionstart: Ie,
839
- onCompositionend: be,
840
- onKeydown: he
836
+ onBeforeinput: Ce,
837
+ onCompositionstart: ke,
838
+ onCompositionend: ge,
839
+ onKeydown: fe
841
840
  }, [
842
- (m(!0), I(ve, null, Se(Y.value, (n) => (m(), ee(At, we({
843
- key: `${n.id}-${n.type}`
844
- }, { ref_for: !0 }, n), null, 16))), 128))
841
+ (b(!0), I(he, null, _e(Z.value, (o) => (b(), Q(Dt, be({
842
+ key: `${o.id}-${o.type}`
843
+ }, { ref_for: !0 }, o), null, 16))), 128))
845
844
  ], 32))
846
845
  ]));
847
846
  }
848
- }), Ft = /* @__PURE__ */ Le(Mt, [["__scopeId", "data-v-e84f9c21"]]), Xe = (l, c) => {
847
+ }), Mt = /* @__PURE__ */ Se(Kt, [["__scopeId", "data-v-5fda773e"]]), Je = (l, c) => {
849
848
  if (!c.length)
850
849
  return [{ text: l, isMatch: !1 }];
851
850
  const s = [];
852
851
  for (const a of c) {
853
852
  if (!a) continue;
854
853
  let d = 0;
855
- const C = l.toLowerCase(), h = a.toLowerCase();
854
+ const x = l.toLowerCase(), h = a.toLowerCase();
856
855
  for (; ; ) {
857
- const b = C.indexOf(h, d);
858
- if (b === -1) break;
856
+ const _ = x.indexOf(h, d);
857
+ if (_ === -1) break;
859
858
  s.push({
860
- start: b,
861
- end: b + a.length
862
- }), d = b + 1;
859
+ start: _,
860
+ end: _ + a.length
861
+ }), d = _ + 1;
863
862
  }
864
863
  }
865
864
  if (s.length === 0)
866
865
  return [{ text: l, isMatch: !1 }];
867
866
  s.sort((a, d) => a.start - d.start);
868
- const i = [];
867
+ const u = [];
869
868
  for (const a of s)
870
- if (i.length === 0)
871
- i.push(a);
869
+ if (u.length === 0)
870
+ u.push(a);
872
871
  else {
873
- const d = i[i.length - 1];
874
- a.start <= d.end ? d.end = Math.max(d.end, a.end) : i.push(a);
872
+ const d = u[u.length - 1];
873
+ a.start <= d.end ? d.end = Math.max(d.end, a.end) : u.push(a);
875
874
  }
876
- const v = [];
877
- let w = 0;
878
- for (const a of i)
879
- w < a.start && v.push({
880
- text: l.substring(w, a.start),
875
+ const y = [];
876
+ let S = 0;
877
+ for (const a of u)
878
+ S < a.start && y.push({
879
+ text: l.substring(S, a.start),
881
880
  isMatch: !1
882
- }), v.push({
881
+ }), y.push({
883
882
  text: l.substring(a.start, a.end),
884
883
  isMatch: !0
885
- }), w = a.end;
886
- return w < l.length && v.push({
887
- text: l.substring(w),
884
+ }), S = a.end;
885
+ return S < l.length && y.push({
886
+ text: l.substring(S),
888
887
  isMatch: !1
889
- }), v;
890
- }, Pt = (l, c) => !c || !l ? [{ text: l, isMatch: !1 }] : Xe(l, [c]), Wt = (l, c) => {
891
- const { content: s, highlights: i } = l;
892
- return typeof i == "function" ? i(s, c) : Array.isArray(i) ? Xe(s, i) : Pt(s, c);
893
- }, Vt = ["onMouseenter", "onMousedown"], Nt = { class: "suggestion-list__text" }, Ht = /* @__PURE__ */ Ce({
888
+ }), y;
889
+ }, Ft = (l, c) => !c || !l ? [{ text: l, isMatch: !1 }] : Je(l, [c]), Pt = (l, c) => {
890
+ const { content: s, highlights: u } = l;
891
+ return typeof u == "function" ? u(s, c) : Array.isArray(u) ? Je(s, u) : Ft(s, c);
892
+ }, Vt = ["onMouseenter", "onMousedown"], Wt = { class: "suggestion-list__text" }, Nt = /* @__PURE__ */ we({
894
893
  __name: "SuggestionList",
895
894
  props: {
896
895
  show: { type: Boolean },
@@ -902,81 +901,84 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
902
901
  },
903
902
  emits: ["select", "mouse-enter", "mouse-leave"],
904
903
  setup(l, { emit: c }) {
905
- const s = l, i = c, v = M(null), w = (h) => h === s.activeKeyboardIndex || h === s.activeMouseIndex, a = (h) => {
906
- i("mouse-enter", h);
904
+ const s = l, u = c, y = K(null), S = (h) => h === s.activeKeyboardIndex || h === s.activeMouseIndex, a = (h) => {
905
+ u("mouse-enter", h);
907
906
  }, d = () => {
908
- i("mouse-leave");
909
- }, C = (h) => {
910
- i("select", h);
907
+ u("mouse-leave");
908
+ }, x = (h) => {
909
+ u("select", h);
911
910
  };
912
- return oe(
911
+ return te(
913
912
  () => s.activeKeyboardIndex,
914
913
  (h) => {
915
- if (h !== -1 && v.value) {
916
- const b = v.value.children[h];
917
- b && b.scrollIntoView({ block: "nearest" });
914
+ if (h !== -1 && y.value) {
915
+ const _ = y.value.children[h];
916
+ _ && _.scrollIntoView({ block: "nearest" });
918
917
  }
919
918
  }
920
- ), (h, b) => (m(), ee(We, { name: "tiny-sender-slide-up" }, {
921
- default: ye(() => [
922
- s.show && s.suggestions.length ? (m(), I("div", {
919
+ ), (h, _) => (b(), Q(Pe, { name: "tiny-sender-slide-up" }, {
920
+ default: pe(() => [
921
+ s.show && s.suggestions.length ? (b(), I("div", {
923
922
  key: 0,
924
923
  ref_key: "suggestionsListRef",
925
- ref: v,
924
+ ref: y,
926
925
  class: "suggestion-list",
927
- style: Ve(s.popupStyle)
926
+ style: je(s.popupStyle)
928
927
  }, [
929
- (m(!0), I(ve, null, Se(s.suggestions, (y, K) => (m(), I("div", {
930
- key: K,
931
- class: se(["suggestion-list__item", { highlighted: w(K) }]),
932
- onMouseenter: (W) => a(K),
928
+ (b(!0), I(he, null, _e(s.suggestions, (v, A) => (b(), I("div", {
929
+ key: A,
930
+ class: ne(["suggestion-list__item", { highlighted: S(A) }]),
931
+ onMouseenter: (P) => a(A),
933
932
  onMouseleave: d,
934
- onMousedown: ct((W) => C(y.content), ["prevent"])
933
+ onMousedown: ut((P) => x(v.content), ["prevent"])
935
934
  }, [
936
- Q(S(wt), { class: "suggestion-list__icon" }),
937
- U("span", Nt, [
938
- (m(!0), I(ve, null, Se(S(Wt)(y, s.inputValue), (W, F) => (m(), I("span", {
939
- key: F,
940
- class: se({
941
- "suggestion-list__text--match": W.isMatch,
942
- "suggestion-list__text--normal": !W.isMatch
935
+ X(C(_t), { class: "suggestion-list__icon" }),
936
+ U("span", Wt, [
937
+ (b(!0), I(he, null, _e(C(Pt)(v, s.inputValue), (P, M) => (b(), I("span", {
938
+ key: M,
939
+ class: ne({
940
+ "suggestion-list__text--match": P.isMatch,
941
+ "suggestion-list__text--normal": !P.isMatch
943
942
  })
944
- }, ce(W.text), 3))), 128))
943
+ }, ie(P.text), 3))), 128))
945
944
  ])
946
945
  ], 42, Vt))), 128))
947
- ], 4)) : N("", !0)
946
+ ], 4)) : W("", !0)
948
947
  ]),
949
948
  _: 1
950
949
  }));
951
950
  }
952
- }), Ut = /* @__PURE__ */ Le(Ht, [["__scopeId", "data-v-e0ec9fe3"]]), qt = ["data-theme"], zt = { class: "tiny-sender__container" }, Gt = {
951
+ }), Ht = /* @__PURE__ */ Se(Nt, [["__scopeId", "data-v-e0ec9fe3"]]), Ut = ["data-theme"], qt = { class: "tiny-sender__container" }, zt = {
953
952
  key: 0,
954
953
  class: "tiny-sender__header-slot"
955
- }, jt = {
954
+ }, Gt = {
956
955
  key: 0,
957
956
  class: "tiny-sender__prefix-slot"
958
- }, Jt = { class: "tiny-sender__content-area" }, Xt = {
957
+ }, jt = { class: "tiny-sender__content-area" }, Jt = {
959
958
  key: 0,
960
959
  class: "tiny-sender__decorative-content"
961
- }, Zt = {
960
+ }, Xt = {
962
961
  key: 2,
963
962
  class: "tiny-sender__input-field-wrapper"
964
- }, Qt = {
963
+ }, Zt = {
965
964
  key: 0,
966
965
  class: "tiny-sender__completion-placeholder"
967
- }, Yt = { class: "user-input-mirror" }, en = {
966
+ }, Qt = { class: "user-input-mirror" }, Yt = {
968
967
  key: 0,
969
968
  class: "tiny-sender__tab-hint"
970
- }, tn = {
969
+ }, en = {
971
970
  key: 1,
972
971
  class: "tiny-sender__actions-slot"
972
+ }, tn = {
973
+ key: 0,
974
+ class: "tiny-sender__footer-slot tiny-sender__bottom-row"
973
975
  }, nn = { class: "tiny-sender__footer-left" }, on = { class: "tiny-sender__footer-right" }, sn = { class: "real-word-length" }, an = {
974
976
  key: 1,
975
977
  class: "tiny-sender__toolbar"
976
978
  }, ln = { class: "tiny-sender__buttons-container" }, rn = {
977
979
  key: 1,
978
980
  class: "tiny-sender__footer-slot"
979
- }, $e = /* @__PURE__ */ Ce({
981
+ }, un = /* @__PURE__ */ we({
980
982
  __name: "index",
981
983
  props: {
982
984
  autofocus: { type: Boolean, default: !1 },
@@ -1003,358 +1005,348 @@ const Lt = ["data-id", "data-type"], Bt = ["data-id", "data-type"], Dt = /* @__P
1003
1005
  },
1004
1006
  emits: ["update:modelValue", "update:templateData", "submit", "clear", "speech-start", "speech-end", "speech-interim", "speech-error", "suggestion-select", "focus", "blur", "escape-press", "cancel", "reset-template", "files-selected"],
1005
1007
  setup(l, { expose: c, emit: s }) {
1006
- var Z;
1007
- const i = l, v = s, w = M(null), a = M(null), d = M(null), C = M(null), h = M(null), b = B(() => i.templateData && i.templateData.length > 0), { inputValue: y, isComposing: K, clearInput: W } = Ct(i, v), F = B(() => !!y.value.trim()), P = B(() => {
1008
- var o, k;
1009
- return !(i.disabled || i.loading || !F.value || _e.value || (k = (o = i.buttonGroup) == null ? void 0 : o.submit) != null && k.disabled);
1008
+ var $;
1009
+ const u = l, y = s, S = K(null), a = K(null), d = K(null), x = K(null), h = K(null), _ = D(() => u.templateData && u.templateData.length > 0), { inputValue: v, isComposing: A, clearInput: P } = St(u, y), M = D(() => !!v.value.trim()), F = D(() => {
1010
+ var t, m;
1011
+ return !(u.disabled || u.loading || !M.value || me.value || (m = (t = u.buttonGroup) == null ? void 0 : t.submit) != null && m.disabled);
1010
1012
  }), {
1011
1013
  isPopupVisible: T,
1012
1014
  activeSuggestion: g,
1013
- activeKeyboardIndex: O,
1015
+ activeKeyboardIndex: E,
1014
1016
  activeMouseIndex: p,
1015
- autoCompleteText: Y,
1016
- showTabIndicator: L,
1017
+ autoCompleteText: Z,
1018
+ showTabIndicator: B,
1017
1019
  syncAutoComplete: q,
1018
- closePopup: te,
1019
- applySuggestion: H,
1020
- confirmSelection: x,
1021
- navigateWithKeyboard: j,
1022
- handleMouseEnter: J,
1023
- handleMouseLeave: re
1024
- } = It(
1025
- B(() => i.suggestions),
1026
- y,
1027
- K,
1028
- b,
1029
- (o) => v("update:modelValue", o),
1030
- (o) => v("suggestion-select", o)
1031
- ), V = M(i.mode), z = M(!1), ge = () => {
1032
- V.value === "single" && (V.value = "multiple", ne(() => {
1020
+ closePopup: Y,
1021
+ applySuggestion: N,
1022
+ confirmSelection: k,
1023
+ navigateWithKeyboard: G,
1024
+ handleMouseEnter: j,
1025
+ handleMouseLeave: ae
1026
+ } = kt(
1027
+ D(() => u.suggestions),
1028
+ v,
1029
+ A,
1030
+ _,
1031
+ (t) => y("update:modelValue", t),
1032
+ (t) => y("suggestion-select", t)
1033
+ ), V = K(u.mode), z = K(!1), ve = () => {
1034
+ V.value === "single" && (V.value = "multiple", ee(() => {
1033
1035
  setTimeout(() => {
1034
- const o = document.querySelector(".tiny-textarea__inner");
1035
- if (o) {
1036
- o.style.whiteSpace = "pre-wrap";
1037
- const k = y.value.length;
1038
- o.focus(), o.setSelectionRange(k, k);
1036
+ const t = document.querySelector(".tiny-textarea__inner");
1037
+ if (t) {
1038
+ t.style.whiteSpace = "pre-wrap";
1039
+ const m = v.value.length;
1040
+ t.focus(), t.setSelectionRange(m, m);
1039
1041
  }
1040
1042
  }, 50);
1041
1043
  }));
1042
- }, ae = (o, k) => {
1043
- const D = document.createElement("span");
1044
- D.style.visibility = "hidden", D.style.position = "absolute", D.style.whiteSpace = "nowrap", D.style.font = k, D.textContent = o, document.body.appendChild(D);
1045
- const ie = D.offsetWidth;
1046
- return document.body.removeChild(D), ie;
1047
- }, xe = () => {
1048
- var Oe, Ue, qe;
1049
- if (i.mode !== "single" || !w.value || z.value || !a.value || !C.value) return;
1050
- const o = a.value.querySelector(".tiny-sender__content-area");
1051
- if (!o) return;
1052
- const k = ((Ue = (Oe = w.value) == null ? void 0 : Oe.querySelector) == null ? void 0 : Ue.call(Oe, ".tiny-input__inner")) || o.querySelector(".tiny-input__inner"), D = h.value || a.value.querySelector(".tiny-sender__buttons-container");
1053
- if (!k) {
1044
+ }, oe = (t, m) => {
1045
+ const R = document.createElement("span");
1046
+ R.style.visibility = "hidden", R.style.position = "absolute", R.style.whiteSpace = "nowrap", R.style.font = m, R.textContent = t, document.body.appendChild(R);
1047
+ const le = R.offsetWidth;
1048
+ return document.body.removeChild(R), le;
1049
+ }, Ce = () => {
1050
+ var Oe, Ne, He;
1051
+ if (u.mode !== "single" || !S.value || z.value || !a.value || !x.value) return;
1052
+ const t = a.value.querySelector(".tiny-sender__content-area");
1053
+ if (!t) return;
1054
+ const m = ((Ne = (Oe = S.value) == null ? void 0 : Oe.querySelector) == null ? void 0 : Ne.call(Oe, ".tiny-input__inner")) || t.querySelector(".tiny-input__inner"), R = h.value || a.value.querySelector(".tiny-sender__buttons-container");
1055
+ if (!m) {
1054
1056
  console.warn("Cannot find input element for overflow check");
1055
1057
  return;
1056
1058
  }
1057
- const ie = k.getBoundingClientRect(), Me = D == null ? void 0 : D.getBoundingClientRect();
1058
- if (ie.width === 0) {
1059
- setTimeout(() => xe(), 50);
1059
+ const le = m.getBoundingClientRect(), Ke = R == null ? void 0 : R.getBoundingClientRect();
1060
+ if (le.width === 0) {
1061
+ setTimeout(() => Ce(), 50);
1060
1062
  return;
1061
1063
  }
1062
- const Ze = window.getComputedStyle(k).font, Qe = ae(y.value, Ze), Ne = (qe = a.value) == null ? void 0 : qe.classList.contains("tr-sender-compact"), Ye = Ne ? 12 : 20, et = ie.width, tt = (Me == null ? void 0 : Me.width) || 0, He = et - tt - Ye, nt = Ne ? 50 : 80;
1063
- Qe > He && He > nt && V.value === "single" && (z.value = !0, V.value = "multiple", ne(() => {
1064
- w.value ? setTimeout(() => {
1065
- var ze;
1066
- const Ee = (ze = a.value) == null ? void 0 : ze.querySelector(".tiny-textarea__inner");
1064
+ const Xe = window.getComputedStyle(m).font, Ze = oe(v.value, Xe), Ve = (He = a.value) == null ? void 0 : He.classList.contains("tr-sender-compact"), Qe = Ve ? 12 : 20, Ye = le.width, et = (Ke == null ? void 0 : Ke.width) || 0, We = Ye - et - Qe, tt = Ve ? 50 : 80;
1065
+ Ze > We && We > tt && V.value === "single" && (z.value = !0, V.value = "multiple", ee(() => {
1066
+ S.value ? setTimeout(() => {
1067
+ var Ue;
1068
+ const Ee = (Ue = a.value) == null ? void 0 : Ue.querySelector(".tiny-textarea__inner");
1067
1069
  if (Ee) {
1068
1070
  Ee.style.whiteSpace = "pre-wrap";
1069
- const Ge = y.value.length;
1070
- Ee.focus(), Ee.setSelectionRange(Ge, Ge);
1071
+ const qe = v.value.length;
1072
+ Ee.focus(), Ee.setSelectionRange(qe, qe);
1071
1073
  }
1072
1074
  z.value = !1;
1073
1075
  }, 300) : z.value = !1;
1074
1076
  }));
1075
- }, X = () => {
1076
- if (b.value && d.value)
1077
- E();
1078
- else if (w.value)
1079
- w.value.focus();
1077
+ }, J = () => {
1078
+ if (_.value && d.value)
1079
+ f();
1080
+ else if (S.value)
1081
+ S.value.focus();
1080
1082
  else {
1081
- const o = document.querySelector(".tiny-input__inner");
1082
- o == null || o.focus();
1083
+ const t = document.querySelector(".tiny-input__inner");
1084
+ t == null || t.focus();
1083
1085
  }
1084
- }, ke = () => {
1085
- if (w.value)
1086
- w.value.blur();
1086
+ }, xe = () => {
1087
+ if (S.value)
1088
+ S.value.blur();
1087
1089
  else {
1088
- const o = document.querySelector(".tiny-input__inner");
1089
- o == null || o.blur();
1090
+ const t = document.querySelector(".tiny-input__inner");
1091
+ t == null || t.blur();
1090
1092
  }
1091
- }, de = () => {
1092
- var o;
1093
- v("update:templateData", []), (o = d.value) == null || o.clearHistory(), ne(() => {
1094
- y.value === "" && (V.value = i.mode || "single"), setTimeout(() => {
1095
- X();
1093
+ }, ue = () => {
1094
+ var t;
1095
+ y("update:templateData", []), (t = d.value) == null || t.clearHistory(), ee(() => {
1096
+ v.value === "" && (V.value = u.mode || "single"), setTimeout(() => {
1097
+ J();
1096
1098
  }, 50);
1097
1099
  });
1098
- }, me = () => {
1099
- var o;
1100
- W(), b.value ? de() : (o = a.value) == null || o.focus(), ne(() => {
1101
- y.value === "" && (V.value = i.mode || "single");
1100
+ }, ye = () => {
1101
+ var t;
1102
+ P(), _.value ? ue() : (t = a.value) == null || t.focus(), ee(() => {
1103
+ v.value === "" && (V.value = u.mode || "single");
1102
1104
  });
1103
- }, Be = (o) => {
1104
- const k = (ie) => ie.type === "text" && ie.content === "​";
1105
- if (o.length === 0 || o.every(k)) {
1106
- de();
1105
+ }, Be = (t) => {
1106
+ const m = (le) => le.type === "text" && le.content === "​";
1107
+ if (t.length === 0 || t.every(m)) {
1108
+ ue();
1107
1109
  return;
1108
1110
  }
1109
- v("update:templateData", o);
1111
+ y("update:templateData", t);
1110
1112
  };
1111
- oe(
1112
- () => i.templateData,
1113
+ te(
1114
+ () => u.templateData,
1113
1115
  () => {
1114
- y.value = i.templateData.map((o) => o.content).join("");
1116
+ v.value = u.templateData.map((t) => t.content).join("");
1115
1117
  },
1116
1118
  { deep: !0 }
1117
1119
  );
1118
- const De = B(() => {
1119
- const o = typeof i.speech == "object" ? i.speech : {};
1120
+ const Le = D(() => {
1121
+ const t = typeof u.speech == "object" ? u.speech : {};
1120
1122
  return {
1121
- ...o,
1122
- onStart: () => v("speech-start"),
1123
- onEnd: (k) => v("speech-end", k),
1124
- onInterim: (k) => v("speech-interim", k),
1125
- onFinal: (k) => {
1126
- if (o.autoReplace)
1127
- y.value = k;
1123
+ ...t,
1124
+ onStart: () => y("speech-start"),
1125
+ onEnd: (m) => y("speech-end", m),
1126
+ onInterim: (m) => y("speech-interim", m),
1127
+ onFinal: (m) => {
1128
+ if (t.autoReplace)
1129
+ v.value = m;
1128
1130
  else {
1129
- const D = y.value;
1130
- D && k && !D.endsWith(" ") && !k.startsWith(" ") && D.length > 0 ? y.value = D + " " + k : y.value = D + k;
1131
+ const R = v.value;
1132
+ R && m && !R.endsWith(" ") && !m.startsWith(" ") && R.length > 0 ? v.value = R + " " + m : v.value = R + m;
1131
1133
  }
1132
- v("speech-end", k);
1134
+ y("speech-end", m);
1133
1135
  },
1134
- onError: (k) => {
1135
- v("speech-error", k);
1136
+ onError: (m) => {
1137
+ y("speech-error", m);
1136
1138
  }
1137
1139
  };
1138
- }), { speechState: le, start: fe, stop: Ie } = kt(De.value), be = () => {
1139
- le.isRecording ? Ie() : fe();
1140
- }, _e = B(() => i.maxLength !== 1 / 0 && y.value.length > i.maxLength), { handleKeyPress: pe, triggerSubmit: he } = xt(
1141
- i,
1142
- v,
1140
+ }), { speechState: se, start: ce, stop: ke } = xt(Le.value), ge = () => {
1141
+ se.isRecording ? ke() : ce();
1142
+ }, me = D(() => u.maxLength !== 1 / 0 && v.value.length > u.maxLength), { handleKeyPress: de, triggerSubmit: fe } = Ct(
1143
+ u,
1143
1144
  y,
1144
- K,
1145
- le,
1145
+ v,
1146
+ A,
1147
+ se,
1146
1148
  T,
1147
1149
  g,
1148
- x,
1149
- te,
1150
- j,
1151
- be,
1152
- P,
1153
- V,
1150
+ k,
1151
+ Y,
1152
+ G,
1154
1153
  ge,
1155
- b,
1156
- de
1157
- ), Te = (o) => {
1158
- v("focus", o), y.value && !b.value && (T.value = !0);
1159
- }, Ae = (o) => {
1160
- v("blur", o), te();
1161
- }, Ke = B(() => V.value === "multiple" ? "textarea" : "text"), Re = B(
1162
- () => ({
1163
- display: "flex",
1164
- justifyContent: i.showWordLimit && i.maxLength !== 1 / 0 ? "space-between" : "flex-end",
1165
- alignItems: "center"
1166
- })
1167
- ), e = dt(), t = B(() => !!e.decorativeContent), n = B(() => i.disabled || t.value), u = B(() => i.loading), r = B(() => ({
1168
- "is-disabled": n.value,
1169
- "is-loading": u.value,
1154
+ F,
1155
+ V,
1156
+ ve,
1157
+ _,
1158
+ ue
1159
+ ), Ie = (t) => {
1160
+ y("focus", t), v.value && !_.value && (T.value = !0);
1161
+ }, Te = (t) => {
1162
+ y("blur", t), Y();
1163
+ }, De = D(() => V.value === "multiple" ? "textarea" : "text"), Ae = ct(), Re = D(() => !!Ae.decorativeContent), e = D(() => u.disabled || Re.value), n = D(() => u.loading), o = D(() => ({
1164
+ "is-disabled": e.value,
1165
+ "is-loading": n.value,
1170
1166
  "is-auto-switching": z.value
1171
- })), f = B(() => ({
1172
- width: St(i.suggestionPopupWidth),
1167
+ })), i = D(() => ({
1168
+ width: wt(u.suggestionPopupWidth),
1173
1169
  maxWidth: "100%"
1174
1170
  // 确保不超出父容器宽度
1175
- })), _ = () => {
1176
- K.value = !1;
1171
+ })), r = () => {
1172
+ A.value = !1;
1177
1173
  };
1178
- oe(y, () => {
1179
- ne(xe), y.value === "" && i.mode === "single" && (V.value = "single"), q();
1180
- }), oe(
1181
- () => b.value,
1182
- (o) => {
1183
- o && (V.value = "multiple");
1174
+ te(v, () => {
1175
+ ee(Ce), v.value === "" && u.mode === "single" && (V.value = "single"), q();
1176
+ }), te(
1177
+ () => _.value,
1178
+ (t) => {
1179
+ t && (V.value = "multiple");
1184
1180
  }
1185
1181
  );
1186
- const E = () => {
1182
+ const f = () => {
1187
1183
  d.value && d.value.activateFirstField();
1188
- }, { accept: G = "*", multiple: R = !0 } = ((Z = i.buttonGroup) == null ? void 0 : Z.file) || {}, { open: $, files: A } = ht({ accept: G, multiple: R });
1189
- return oe(A, (o) => {
1190
- o && o.length > 0 && v("files-selected", Array.from(o));
1184
+ }, { accept: w = "*", multiple: L = !0 } = (($ = u.buttonGroup) == null ? void 0 : $.file) || {}, { open: H, files: O } = pt({ accept: w, multiple: L });
1185
+ return te(O, (t) => {
1186
+ t && t.length > 0 && y("files-selected", Array.from(t));
1191
1187
  }), c({
1192
- focus: X,
1193
- blur: ke,
1194
- clear: me,
1195
- submit: he,
1196
- startSpeech: fe,
1197
- stopSpeech: Ie,
1198
- activateTemplateFirstField: E
1199
- }), (o, k) => (m(), I("div", {
1188
+ focus: J,
1189
+ blur: xe,
1190
+ clear: ye,
1191
+ submit: fe,
1192
+ startSpeech: ce,
1193
+ stopSpeech: ke,
1194
+ activateTemplateFirstField: f
1195
+ }), (t, m) => (b(), I("div", {
1200
1196
  ref_key: "senderRef",
1201
1197
  ref: a,
1202
- class: se(["tiny-sender", [r.value, `theme-${o.theme}`, `mode-${V.value}`]]),
1203
- "data-theme": o.theme
1198
+ class: ne(["tiny-sender", [o.value, `theme-${t.theme}`, `mode-${V.value}`]]),
1199
+ "data-theme": t.theme
1204
1200
  }, [
1205
- U("div", zt, [
1201
+ U("div", qt, [
1206
1202
  U("div", {
1207
1203
  class: "tiny-sender__input-wrapper",
1208
1204
  ref_key: "inputWrapperRef",
1209
- ref: C
1205
+ ref: x
1210
1206
  }, [
1211
- Q(We, { name: "tiny-sender-slide-down" }, {
1212
- default: ye(() => [
1213
- o.$slots.header ? (m(), I("div", Gt, [
1214
- ue(o.$slots, "header")
1215
- ])) : N("", !0)
1207
+ X(Pe, { name: "tiny-sender-slide-down" }, {
1208
+ default: pe(() => [
1209
+ t.$slots.header ? (b(), I("div", zt, [
1210
+ re(t.$slots, "header", {}, void 0, !0)
1211
+ ])) : W("", !0)
1216
1212
  ]),
1217
1213
  _: 3
1218
1214
  }),
1219
1215
  U("div", {
1220
- class: se(["tiny-sender__input-row", { "has-prefix": o.$slots.prefix, "has-header": o.$slots.header }])
1216
+ class: ne(["tiny-sender__input-row", { "has-prefix": t.$slots.prefix, "has-header": t.$slots.header }])
1221
1217
  }, [
1222
- o.$slots.prefix ? (m(), I("div", jt, [
1223
- ue(o.$slots, "prefix")
1224
- ])) : N("", !0),
1225
- U("div", Jt, [
1226
- o.$slots.decorativeContent ? (m(), I("div", Xt, [
1227
- ue(o.$slots, "decorativeContent")
1228
- ])) : N("", !0),
1229
- b.value ? (m(), ee(Ft, {
1218
+ t.$slots.prefix ? (b(), I("div", Gt, [
1219
+ re(t.$slots, "prefix", {}, void 0, !0)
1220
+ ])) : W("", !0),
1221
+ U("div", jt, [
1222
+ t.$slots.decorativeContent ? (b(), I("div", Jt, [
1223
+ re(t.$slots, "decorativeContent", {}, void 0, !0)
1224
+ ])) : W("", !0),
1225
+ _.value ? (b(), Q(Mt, {
1230
1226
  key: 1,
1231
1227
  ref_key: "templateEditorRef",
1232
1228
  ref: d,
1233
- "model-value": i.templateData,
1229
+ "model-value": u.templateData,
1234
1230
  "onUpdate:modelValue": Be,
1235
- onSubmit: S(he)
1236
- }, null, 8, ["model-value", "onSubmit"])) : (m(), I("div", Zt, [
1237
- Q(S(pt), {
1231
+ onSubmit: C(fe)
1232
+ }, null, 8, ["model-value", "onSubmit"])) : (b(), I("div", Xt, [
1233
+ X(C(ft), {
1238
1234
  ref_key: "inputRef",
1239
- ref: w,
1240
- autosize: o.autoSize,
1241
- type: Ke.value,
1235
+ ref: S,
1236
+ autosize: t.autoSize,
1237
+ type: De.value,
1242
1238
  resize: "none",
1243
- modelValue: S(y),
1244
- "onUpdate:modelValue": k[0] || (k[0] = (D) => ft(y) ? y.value = D : null),
1245
- disabled: n.value,
1246
- placeholder: o.placeholder,
1247
- autofocus: o.autofocus,
1248
- onKeydown: S(pe),
1249
- onCompositionstart: k[1] || (k[1] = (D) => K.value = !0),
1250
- onCompositionend: _,
1251
- onFocus: Te,
1252
- onBlur: Ae
1239
+ modelValue: C(v),
1240
+ "onUpdate:modelValue": m[0] || (m[0] = (R) => dt(v) ? v.value = R : null),
1241
+ disabled: e.value,
1242
+ placeholder: t.placeholder,
1243
+ autofocus: t.autofocus,
1244
+ onKeydown: C(de),
1245
+ onCompositionstart: m[1] || (m[1] = (R) => A.value = !0),
1246
+ onCompositionend: r,
1247
+ onFocus: Ie,
1248
+ onBlur: Te
1253
1249
  }, null, 8, ["autosize", "type", "modelValue", "disabled", "placeholder", "autofocus", "onKeydown"]),
1254
- S(Y) && !S(K) ? (m(), I("div", Qt, [
1255
- U("span", Yt, ce(S(y)), 1),
1256
- je(ce(S(Y)) + " ", 1),
1257
- S(L) ? (m(), I("div", en, "TAB")) : N("", !0)
1258
- ])) : N("", !0)
1250
+ C(Z) && !C(A) ? (b(), I("div", Zt, [
1251
+ U("span", Qt, ie(C(v)), 1),
1252
+ ze(ie(C(Z)) + " ", 1),
1253
+ C(B) ? (b(), I("div", Yt, "TAB")) : W("", !0)
1254
+ ])) : W("", !0)
1259
1255
  ]))
1260
1256
  ]),
1261
- V.value === "single" ? (m(), I("div", tn, [
1257
+ V.value === "single" ? (b(), I("div", en, [
1262
1258
  U("div", {
1263
1259
  class: "tiny-sender__buttons-container",
1264
1260
  ref_key: "buttonsContainerRef",
1265
1261
  ref: h
1266
1262
  }, [
1267
- ue(o.$slots, "actions"),
1268
- Q(Je, {
1269
- "allow-speech": o.allowSpeech,
1270
- "allow-files": o.allowFiles,
1271
- loading: o.loading,
1272
- disabled: n.value,
1273
- "show-clear": o.clearable,
1274
- "has-content": F.value,
1275
- "speech-status": S(le),
1276
- "button-group": o.buttonGroup,
1277
- "submit-type": o.submitType,
1278
- "is-over-limit": _e.value,
1279
- "stop-text": o.stopText,
1280
- onClear: me,
1281
- onToggleSpeech: be,
1282
- onSubmit: S(he),
1283
- onCancel: k[2] || (k[2] = (D) => o.$emit("cancel")),
1284
- onTriggerSelect: S($)
1263
+ re(t.$slots, "actions", {}, void 0, !0),
1264
+ X(Ge, {
1265
+ "allow-speech": t.allowSpeech,
1266
+ "allow-files": t.allowFiles,
1267
+ loading: t.loading,
1268
+ disabled: e.value,
1269
+ "show-clear": t.clearable,
1270
+ "has-content": M.value,
1271
+ "speech-status": C(se),
1272
+ "button-group": t.buttonGroup,
1273
+ "submit-type": t.submitType,
1274
+ "is-over-limit": me.value,
1275
+ "stop-text": t.stopText,
1276
+ onClear: ye,
1277
+ onToggleSpeech: ge,
1278
+ onSubmit: C(fe),
1279
+ onCancel: m[2] || (m[2] = (R) => t.$emit("cancel")),
1280
+ onTriggerSelect: C(H)
1285
1281
  }, null, 8, ["allow-speech", "allow-files", "loading", "disabled", "show-clear", "has-content", "speech-status", "button-group", "submit-type", "is-over-limit", "stop-text", "onSubmit", "onTriggerSelect"])
1286
1282
  ], 512)
1287
- ])) : N("", !0)
1283
+ ])) : W("", !0)
1288
1284
  ], 2),
1289
- Q(We, { name: "tiny-sender-slide-up" }, {
1290
- default: ye(() => [
1291
- V.value === "multiple" ? (m(), I("div", {
1292
- key: 0,
1293
- style: Ve(Re.value),
1294
- class: "tiny-sender__footer-slot tiny-sender__bottom-row"
1295
- }, [
1285
+ X(Pe, { name: "tiny-sender-slide-up" }, {
1286
+ default: pe(() => [
1287
+ V.value === "multiple" ? (b(), I("div", tn, [
1296
1288
  U("div", nn, [
1297
- ue(o.$slots, "footer-left")
1289
+ re(t.$slots, "footer-left", {}, void 0, !0)
1298
1290
  ]),
1299
1291
  U("div", on, [
1300
- ue(o.$slots, "footer-right"),
1301
- o.showWordLimit && o.maxLength !== 1 / 0 ? (m(), I("div", {
1292
+ re(t.$slots, "footer-right", {}, void 0, !0),
1293
+ t.showWordLimit && t.maxLength !== 1 / 0 ? (b(), I("div", {
1302
1294
  key: 0,
1303
- class: se(["tiny-sender__word-limit", { "is-over-limit": _e.value }])
1295
+ class: ne(["tiny-sender__word-limit", { "is-over-limit": me.value }])
1304
1296
  }, [
1305
- U("span", sn, ce(S(y).length), 1),
1306
- je("/" + ce(o.maxLength), 1)
1307
- ], 2)) : N("", !0),
1308
- V.value === "multiple" ? (m(), I("div", an, [
1297
+ U("span", sn, ie(C(v).length), 1),
1298
+ ze("/" + ie(t.maxLength), 1)
1299
+ ], 2)) : W("", !0),
1300
+ V.value === "multiple" ? (b(), I("div", an, [
1309
1301
  U("div", ln, [
1310
- Q(Je, {
1311
- "allow-speech": o.allowSpeech,
1312
- "allow-files": o.allowFiles,
1313
- loading: o.loading,
1314
- disabled: n.value,
1315
- "show-clear": o.clearable,
1316
- "has-content": F.value,
1317
- "speech-status": S(le),
1318
- "button-group": o.buttonGroup,
1319
- "submit-type": o.submitType,
1320
- "is-over-limit": _e.value,
1321
- "stop-text": o.stopText,
1322
- onClear: me,
1323
- onToggleSpeech: be,
1324
- onSubmit: S(he),
1325
- onCancel: k[3] || (k[3] = (D) => o.$emit("cancel")),
1326
- onTriggerSelect: S($)
1302
+ X(Ge, {
1303
+ "allow-speech": t.allowSpeech,
1304
+ "allow-files": t.allowFiles,
1305
+ loading: t.loading,
1306
+ disabled: e.value,
1307
+ "show-clear": t.clearable,
1308
+ "has-content": M.value,
1309
+ "speech-status": C(se),
1310
+ "button-group": t.buttonGroup,
1311
+ "submit-type": t.submitType,
1312
+ "is-over-limit": me.value,
1313
+ "stop-text": t.stopText,
1314
+ onClear: ye,
1315
+ onToggleSpeech: ge,
1316
+ onSubmit: C(fe),
1317
+ onCancel: m[3] || (m[3] = (R) => t.$emit("cancel")),
1318
+ onTriggerSelect: C(H)
1327
1319
  }, null, 8, ["allow-speech", "allow-files", "loading", "disabled", "show-clear", "has-content", "speech-status", "button-group", "submit-type", "is-over-limit", "stop-text", "onSubmit", "onTriggerSelect"])
1328
1320
  ])
1329
- ])) : N("", !0)
1321
+ ])) : W("", !0)
1330
1322
  ])
1331
- ], 4)) : o.$slots.footer ? (m(), I("div", rn, [
1332
- ue(o.$slots, "footer")
1333
- ])) : N("", !0)
1323
+ ])) : t.$slots.footer ? (b(), I("div", rn, [
1324
+ re(t.$slots, "footer", {}, void 0, !0)
1325
+ ])) : W("", !0)
1334
1326
  ]),
1335
1327
  _: 3
1336
1328
  })
1337
1329
  ], 512)
1338
1330
  ]),
1339
- Q(Ut, {
1340
- show: S(T),
1341
- suggestions: o.suggestions,
1342
- "popup-style": f.value,
1343
- "active-keyboard-index": S(O),
1344
- "active-mouse-index": S(p),
1345
- "input-value": S(y),
1346
- onSelect: S(H),
1347
- onMouseEnter: S(J),
1348
- onMouseLeave: S(re)
1331
+ X(Ht, {
1332
+ show: C(T),
1333
+ suggestions: t.suggestions,
1334
+ "popup-style": i.value,
1335
+ "active-keyboard-index": C(E),
1336
+ "active-mouse-index": C(p),
1337
+ "input-value": C(v),
1338
+ onSelect: C(N),
1339
+ onMouseEnter: C(j),
1340
+ onMouseLeave: C(ae)
1349
1341
  }, null, 8, ["show", "suggestions", "popup-style", "active-keyboard-index", "active-mouse-index", "input-value", "onSelect", "onMouseEnter", "onMouseLeave"])
1350
- ], 10, qt));
1342
+ ], 10, Ut));
1351
1343
  }
1352
- });
1344
+ }), $e = /* @__PURE__ */ Se(un, [["__scopeId", "data-v-6b3efd0e"]]);
1353
1345
  $e.name = "TrSender";
1354
- const un = function(l) {
1346
+ const cn = function(l) {
1355
1347
  l.component($e.name, $e);
1356
1348
  };
1357
- $e.install = un;
1349
+ $e.install = cn;
1358
1350
  export {
1359
1351
  $e as default
1360
1352
  };