@univerjs/docs-quick-insert-ui 0.6.7 → 0.6.9

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/lib/index.css CHANGED
@@ -1 +1 @@
1
- .univer-mb-2{margin-bottom:.5rem}.univer-mr-2{margin-right:.5rem}.univer-flex{display:flex}.univer-inline-flex{display:inline-flex}.univer-h-full{height:100%}.univer-max-h-\[360px\]{max-height:360px}.univer-w-\[220px\]{width:220px}.univer-translate-y-1\.5{--tw-translate-y: .375rem;transform:translate(var(--tw-translate-x),.375rem) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-overflow-y-auto{overflow-y:auto}.univer-rounded-lg{border-radius:.5rem}.univer-border{border-width:1px}.univer-border-solid{border-style:solid}.univer-border-gray-100{--tw-border-opacity: 1;border-color:#eeeff1;border-color:rgba(238,239,241,var(--tw-border-opacity, 1))}.univer-bg-gray-100{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.univer-bg-transparent{background-color:transparent}.univer-bg-white{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.univer-px-1{padding-left:.25rem;padding-right:.25rem}.univer-px-12{padding-left:3rem;padding-right:3rem}.univer-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.univer-text-base{font-size:1rem;line-height:1.5rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-xs{font-size:.75rem;line-height:1rem}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-500{--tw-text-opacity: 1;color:#5f6574;color:rgba(95,101,116,var(--tw-text-opacity, 1))}.univer-shadow-\[0_0_10px_0_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0 0 10px 0 rgba(0,0,0,.1);--tw-shadow-colored: 0 0 10px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 0 10px #0000001a;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)),var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)),var(--tw-shadow)}.hover\:univer-bg-transparent:hover{background-color:transparent}
1
+ .univer-mb-2{margin-bottom:.5rem}.univer-mr-2{margin-right:.5rem}.univer-flex{display:flex}.univer-inline-flex{display:inline-flex}.univer-h-full{height:100%}.univer-max-h-\[360px\]{max-height:360px}.univer-w-\[220px\]{width:220px}.univer-w-\[calc\(220px-var\(--padding-base\)\*2\)\]{width:calc(220px - var(--padding-base) * 2)}.univer-w-full{width:100%}.univer-translate-y-1\.5{--tw-translate-y: .375rem;transform:translate(var(--tw-translate-x),.375rem) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-overflow-y-auto{overflow-y:auto}.univer-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.univer-rounded-lg{border-radius:.5rem}.univer-border{border-width:1px}.univer-border-solid{border-style:solid}.univer-border-gray-100{--tw-border-opacity: 1;border-color:#eeeff1;border-color:rgba(238,239,241,var(--tw-border-opacity, 1))}.univer-bg-gray-100{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.univer-bg-transparent{background-color:transparent}.univer-bg-white{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.univer-px-1{padding-left:.25rem;padding-right:.25rem}.univer-px-12{padding-left:3rem;padding-right:3rem}.univer-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.univer-text-base{font-size:1rem;line-height:1.5rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-xs{font-size:.75rem;line-height:1rem}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-500{--tw-text-opacity: 1;color:#5f6574;color:rgba(95,101,116,var(--tw-text-opacity, 1))}.univer-shadow-\[0_0_10px_0_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0 0 10px 0 rgba(0,0,0,.1);--tw-shadow-colored: 0 0 10px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 0 10px #0000001a;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)),var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)),var(--tw-shadow)}.hover\:univer-bg-transparent:hover{background-color:transparent}
package/lib/index.js ADDED
@@ -0,0 +1,646 @@
1
+ var be = Object.defineProperty;
2
+ var Me = (t, e, i) => e in t ? be(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i;
3
+ var _ = (t, e, i) => Me(t, typeof e != "symbol" ? e + "" : e, i);
4
+ import { CommandType as x, ICommandService as D, RANGE_DIRECTION as we, LocaleService as J, generateRandomId as Re, DisposableCollection as ke, toDisposable as De, Direction as E, Inject as v, IUniverInstanceService as le, Disposable as X, UniverInstanceType as Y, DeleteDirection as Ne, DependentOn as Ee, Injector as $e, Plugin as Te } from "@univerjs/core";
5
+ import { UniverDocsDrawingPlugin as He } from "@univerjs/docs-drawing";
6
+ import { UniverDrawingPlugin as Ue } from "@univerjs/drawing";
7
+ import { UniverDrawingUIPlugin as Ke } from "@univerjs/drawing-ui";
8
+ import { useDependency as O, KeyCode as y, ComponentManager as pe, IShortcutService as fe, useObservable as W, UniverUIPlugin as Qe } from "@univerjs/ui";
9
+ import { DocSelectionManagerService as he, DocSkeletonManagerService as je, RichTextEditingMutation as Ae } from "@univerjs/docs";
10
+ import { CutContentCommand as Le, DocCanvasPopManagerService as We, OrderListCommand as qe, BulletListCommand as ze, HorizontalLineCommand as Be, InsertCommand as Ve, IMEInputCommand as Fe, DeleteCommand as Ge, MoveCursorOperation as Ze, DeleteLeftCommand as Je } from "@univerjs/docs-ui";
11
+ import { IRenderManagerService as Xe } from "@univerjs/engine-render";
12
+ import { map as Ye, distinctUntilChanged as et, tap as N, combineLatest as tt, BehaviorSubject as q, of as nt } from "rxjs";
13
+ import { jsx as p, jsxs as oe } from "react/jsx-runtime";
14
+ import { clsx as ce, Menu as it, MenuItemGroup as rt, MenuItem as st, Tooltip as ot } from "@univerjs/design";
15
+ import { useMemo as ae, useState as de, useRef as V, useEffect as z, forwardRef as ee, createElement as te } from "react";
16
+ const me = {
17
+ id: "doc.command.delete-search-key",
18
+ type: x.COMMAND,
19
+ handler: (t, e) => {
20
+ const i = t.get(D), { start: n, end: r } = e;
21
+ return i.syncExecuteCommand(Le.id, {
22
+ segmentId: "",
23
+ textRanges: [{
24
+ startOffset: n,
25
+ endOffset: n,
26
+ collapsed: !0
27
+ }],
28
+ selections: [{
29
+ startOffset: n,
30
+ endOffset: r,
31
+ collapsed: !1,
32
+ direction: we.FORWARD
33
+ }]
34
+ });
35
+ }
36
+ }, ct = "docs.quick.insert.keyword-input-placeholder", $ = () => {
37
+ const t = O(J);
38
+ return /* @__PURE__ */ p("div", { className: "univer-translate-y-1.5 univer-text-sm univer-text-gray-500", children: t.t("docQuickInsert.keywordInputPlaceholder") });
39
+ };
40
+ $.componentKey = ct;
41
+ const at = "docs.quick.insert.placeholder", T = () => {
42
+ const t = O(J);
43
+ return /* @__PURE__ */ p(
44
+ "div",
45
+ {
46
+ className: `
47
+ univer-flex univer-h-full univer-items-center univer-justify-center univer-rounded-lg univer-bg-white
48
+ univer-px-12 univer-py-6 univer-text-gray-400
49
+ `,
50
+ children: /* @__PURE__ */ p("span", { children: t.t("docQuickInsert.placeholder") })
51
+ }
52
+ );
53
+ };
54
+ T.componentKey = at;
55
+ function F(t, e) {
56
+ return t.map((i) => ({ ...i })).filter((i) => {
57
+ if ("children" in i)
58
+ return i.children = F(i.children, e), i.children.length > 0;
59
+ const n = i.keywords;
60
+ return n ? n.some((r) => r.includes(e)) : i.title.toLowerCase().includes(e);
61
+ });
62
+ }
63
+ function ve(t, e) {
64
+ return t.map((i) => {
65
+ const n = { ...i };
66
+ return "children" in n && (n.children = ve(n.children, e)), n.title = e.t(n.title), "keywords" in n && (n.keywords = n.keywords.concat(n.title).map((r) => r.toLowerCase())), n;
67
+ });
68
+ }
69
+ const dt = [y.ARROW_UP, y.ARROW_DOWN, y.ENTER], H = () => {
70
+ const t = O(J), e = O(C), i = O(pe), n = O(fe), r = O(D), o = ae(() => Re(), []), [a, d] = de(0), s = V(null), c = V(0);
71
+ c.current = 0;
72
+ const u = W(e.filterKeyword$, ""), l = W(e.editPopup$), b = W(l == null ? void 0 : l.popup.menus$, []), j = ae(() => ve(b, t), [b]), [A, Pe] = de(() => F(j, u.toLowerCase()));
73
+ z(() => {
74
+ const f = requestIdleCallback(() => {
75
+ Pe(F(j, u.toLowerCase()));
76
+ });
77
+ return () => {
78
+ cancelIdleCallback(f);
79
+ };
80
+ }, [j, u]);
81
+ const ie = (f) => {
82
+ e.emitMenuSelected(f), r.executeCommand(k.id);
83
+ };
84
+ z(() => {
85
+ const f = new ke();
86
+ n.getAllShortcuts().filter((h) => h.binding && dt.includes(h.binding)).forEach((h) => {
87
+ const I = h.preconditions;
88
+ h.preconditions = () => !1, f.add(De(() => {
89
+ h.preconditions = I;
90
+ }));
91
+ });
92
+ const S = {
93
+ id: `quick.insert.popup.enter.${o}`,
94
+ type: x.OPERATION,
95
+ handler: () => {
96
+ const h = s.current;
97
+ h && ie(h);
98
+ }
99
+ }, M = {
100
+ id: `quick.insert.popup.move.cursor.up.${o}`,
101
+ type: x.OPERATION,
102
+ handler: () => {
103
+ d((h) => {
104
+ const I = h - 1;
105
+ return I >= 0 ? I : c.current - 1;
106
+ });
107
+ }
108
+ }, P = {
109
+ id: `quick.insert.popup.move.cursor.down.${o}`,
110
+ type: x.OPERATION,
111
+ handler: () => {
112
+ d((h) => {
113
+ const I = h + 1;
114
+ return I <= c.current - 1 ? I : 0;
115
+ });
116
+ }
117
+ };
118
+ return f.add(r.registerCommand(M)), f.add(r.registerCommand(P)), f.add(r.registerCommand(S)), f.add(n.registerShortcut({
119
+ priority: 1e3,
120
+ id: M.id,
121
+ binding: y.ARROW_UP,
122
+ preconditions: () => !0,
123
+ staticParameters: {
124
+ direction: E.UP
125
+ }
126
+ })), f.add(n.registerShortcut({
127
+ priority: 1e3,
128
+ id: P.id,
129
+ binding: y.ARROW_DOWN,
130
+ preconditions: () => !0,
131
+ staticParameters: {
132
+ direction: E.DOWN
133
+ }
134
+ })), f.add(n.registerShortcut({
135
+ priority: 1e3,
136
+ id: S.id,
137
+ binding: y.ENTER,
138
+ preconditions: () => !0
139
+ })), () => {
140
+ f.dispose();
141
+ };
142
+ }, []), z(() => {
143
+ d(0);
144
+ }, [A]);
145
+ function re(f) {
146
+ return f.map((g) => {
147
+ const L = g.icon, S = L ? i.get(L) : null;
148
+ if ("children" in g)
149
+ return /* @__PURE__ */ p(
150
+ rt,
151
+ {
152
+ title: /* @__PURE__ */ oe(
153
+ "div",
154
+ {
155
+ className: `
156
+ univer-mb-2 univer-flex univer-items-center univer-text-xs univer-text-gray-400
157
+ `,
158
+ children: [
159
+ S && /* @__PURE__ */ p("span", { className: "univer-mr-2 univer-inline-flex univer-text-base", children: /* @__PURE__ */ p(S, {}) }),
160
+ /* @__PURE__ */ p("span", { children: g.title })
161
+ ]
162
+ }
163
+ ),
164
+ children: re(g.children)
165
+ },
166
+ g.id
167
+ );
168
+ const M = c.current, P = a === M;
169
+ return P && (s.current = g), c.current++, /* @__PURE__ */ p(
170
+ st,
171
+ {
172
+ onMouseEnter: () => d(M),
173
+ onMouseLeave: () => d(Number.NaN),
174
+ className: ce("univer-w-[calc(220px-var(--padding-base)*2)] univer-text-sm", {
175
+ "hover:univer-bg-transparent": !P,
176
+ "univer-bg-gray-100": P
177
+ }),
178
+ onClick: () => {
179
+ ie(g);
180
+ },
181
+ children: /* @__PURE__ */ oe(
182
+ "div",
183
+ {
184
+ className: "univer-flex univer-w-full univer-items-center univer-px-1",
185
+ children: [
186
+ S && /* @__PURE__ */ p("span", { className: "univer-mr-2 univer-inline-flex univer-text-base", children: /* @__PURE__ */ p(S, {}) }),
187
+ /* @__PURE__ */ p(ot, { showIfEllipsis: !0, title: g.title, placement: "right", children: /* @__PURE__ */ p("span", { className: "univer-truncate", children: g.title }) })
188
+ ]
189
+ }
190
+ )
191
+ },
192
+ g.id
193
+ );
194
+ });
195
+ }
196
+ const xe = A.length > 0, se = (l == null ? void 0 : l.popup.Placeholder) || i.get(T.componentKey);
197
+ return /* @__PURE__ */ p(
198
+ "div",
199
+ {
200
+ className: ce(`
201
+ univer-rounded-lg univer-border univer-border-solid univer-border-gray-100 univer-bg-white
202
+ univer-shadow-[0_0_10px_0_rgba(0,0,0,0.1)]
203
+ `),
204
+ children: xe ? /* @__PURE__ */ p("div", { className: "univer-max-h-[360px] univer-w-[220px] univer-overflow-y-auto", children: /* @__PURE__ */ p(it, { children: re(A) }) }) : se && /* @__PURE__ */ p(se, {})
205
+ }
206
+ );
207
+ };
208
+ H.componentKey = "docs.quick.insert.popup";
209
+ var ut = Object.getOwnPropertyDescriptor, lt = (t, e, i, n) => {
210
+ for (var r = n > 1 ? void 0 : n ? ut(e, i) : e, o = t.length - 1, a; o >= 0; o--)
211
+ (a = t[o]) && (r = a(r) || r);
212
+ return r;
213
+ }, w = (t, e) => (i, n) => e(i, n, t);
214
+ const ue = {
215
+ dispose: () => {
216
+ }
217
+ };
218
+ let C = class extends X {
219
+ constructor(e, i, n, r, o) {
220
+ super();
221
+ _(this, "_popups", /* @__PURE__ */ new Set());
222
+ _(this, "_editPopup$", new q(void 0));
223
+ _(this, "editPopup$", this._editPopup$.asObservable());
224
+ _(this, "_isComposing$", new q(!1));
225
+ _(this, "isComposing$", this._isComposing$.asObservable());
226
+ _(this, "_inputOffset$", new q({ start: 0, end: 0 }));
227
+ _(this, "inputOffset$", this._inputOffset$.asObservable());
228
+ _(this, "filterKeyword$");
229
+ _(this, "_menuSelectedCallbacks", /* @__PURE__ */ new Set());
230
+ _(this, "_inputPlaceholderRenderRoot", null);
231
+ this._docCanvasPopupManagerService = e, this._univerInstanceService = i, this._commandService = n, this._renderManagerService = r, this._docSelectionManagerService = o, this.disposeWithMe(this._editPopup$);
232
+ const a = (s, c) => {
233
+ var u, l;
234
+ return (l = (u = this._univerInstanceService.getCurrentUnitOfType(Y.UNIVER_DOC)) == null ? void 0 : u.getBody()) == null ? void 0 : l.dataStream.slice(s, c);
235
+ };
236
+ let d = "";
237
+ this.filterKeyword$ = this._inputOffset$.pipe(
238
+ Ye((s) => {
239
+ var u;
240
+ const c = a(s.start, s.end);
241
+ return (u = c == null ? void 0 : c.slice(1)) != null ? u : "";
242
+ }),
243
+ et(),
244
+ N((s) => {
245
+ d = s;
246
+ })
247
+ ), this.disposeWithMe(tt([
248
+ this.filterKeyword$.pipe(N((s) => {
249
+ var c, u, l;
250
+ s.length > 0 ? (u = (c = this._inputPlaceholderRenderRoot) == null ? void 0 : c.unmount) == null || u.dispose() : (l = this._inputPlaceholderRenderRoot) == null || l.mount();
251
+ })),
252
+ this.isComposing$.pipe(N((s) => {
253
+ var c, u, l;
254
+ s ? (u = (c = this._inputPlaceholderRenderRoot) == null ? void 0 : c.unmount) == null || u.dispose() : d.length <= 0 && ((l = this._inputPlaceholderRenderRoot) == null || l.mount());
255
+ })),
256
+ this.editPopup$.pipe(N((s) => {
257
+ var c, u;
258
+ s || ((u = (c = this._inputPlaceholderRenderRoot) == null ? void 0 : c.unmount) == null || u.dispose(), this._inputPlaceholderRenderRoot = null);
259
+ }))
260
+ ]).subscribe());
261
+ }
262
+ get editPopup() {
263
+ return this._editPopup$.value;
264
+ }
265
+ get isComposing() {
266
+ return this._isComposing$.value;
267
+ }
268
+ setIsComposing(e) {
269
+ this._isComposing$.next(e);
270
+ }
271
+ get inputOffset() {
272
+ return this._inputOffset$.value;
273
+ }
274
+ setInputOffset(e) {
275
+ this._inputOffset$.next(e);
276
+ }
277
+ resolvePopup(e) {
278
+ return Array.from(this._popups).find((i) => i.keyword === e);
279
+ }
280
+ registerPopup(e) {
281
+ return this._popups.add(e), () => {
282
+ this._popups.delete(e);
283
+ };
284
+ }
285
+ _createInputPlaceholderRenderRoot(e) {
286
+ return {
287
+ isMounted: !1,
288
+ mount() {
289
+ if (this.isMounted)
290
+ return;
291
+ this.isMounted = !0;
292
+ const n = e();
293
+ this.unmount = {
294
+ dispose: () => {
295
+ n.dispose(), this.isMounted = !1;
296
+ }
297
+ };
298
+ }
299
+ };
300
+ }
301
+ showPopup(e) {
302
+ const { popup: i, index: n, unitId: r } = e;
303
+ this.closePopup(), this._inputPlaceholderRenderRoot = this._createInputPlaceholderRenderRoot(() => {
304
+ var b;
305
+ const a = (b = this._renderManagerService.getRenderById(r)) == null ? void 0 : b.with(je), d = this._docSelectionManagerService.getActiveTextRange();
306
+ if (!a || !d)
307
+ return ue;
308
+ const c = a.getSkeleton().findNodeByCharIndex(d.startOffset, d.segmentId, d.segmentPage);
309
+ if (!((c == null ? void 0 : c.content) === "\r"))
310
+ return ue;
311
+ const l = this._docCanvasPopupManagerService.attachPopupToRange(
312
+ { startOffset: n + 1, endOffset: n + 1, collapsed: !1 },
313
+ {
314
+ componentKey: $.componentKey,
315
+ onClickOutside: () => {
316
+ l.dispose();
317
+ },
318
+ direction: "horizontal"
319
+ },
320
+ r
321
+ );
322
+ return l;
323
+ }), this._inputPlaceholderRenderRoot.mount();
324
+ const o = this._docCanvasPopupManagerService.attachPopupToRange(
325
+ { startOffset: n, endOffset: n, collapsed: !0 },
326
+ {
327
+ componentKey: H.componentKey,
328
+ onClickOutside: () => {
329
+ this.closePopup();
330
+ },
331
+ direction: "bottom"
332
+ },
333
+ r
334
+ );
335
+ this._editPopup$.next({ disposable: o, popup: i, anchor: n, unitId: r });
336
+ }
337
+ closePopup() {
338
+ this.editPopup && (this.editPopup.disposable.dispose(), this._editPopup$.next(null));
339
+ }
340
+ onMenuSelected(e) {
341
+ return this._menuSelectedCallbacks.add(e), () => {
342
+ this._menuSelectedCallbacks.delete(e);
343
+ };
344
+ }
345
+ emitMenuSelected(e) {
346
+ const { start: i, end: n } = this.inputOffset;
347
+ this._commandService.syncExecuteCommand(me.id, {
348
+ start: i,
349
+ end: n
350
+ }), setTimeout(() => {
351
+ this._menuSelectedCallbacks.forEach((r) => r(e));
352
+ }, 0);
353
+ }
354
+ };
355
+ C = lt([
356
+ w(0, v(We)),
357
+ w(1, v(le)),
358
+ w(2, v(D)),
359
+ w(3, v(Xe)),
360
+ w(4, v(he))
361
+ ], C);
362
+ const ge = {
363
+ type: x.OPERATION,
364
+ id: "doc.operation.show-quick-insert-popup",
365
+ handler(t, e) {
366
+ const i = t.get(C);
367
+ return e ? (i.showPopup(e), !0) : !1;
368
+ }
369
+ }, k = {
370
+ type: x.OPERATION,
371
+ id: "doc.operation.close-quick-insert-popup",
372
+ handler(t) {
373
+ return t.get(C).closePopup(), !0;
374
+ }
375
+ }, _e = {
376
+ id: "quick-insert.text.menu",
377
+ title: "docQuickInsert.menu.text",
378
+ icon: "TextSingle",
379
+ keywords: ["text"]
380
+ }, Ce = {
381
+ id: qe.id,
382
+ title: "docQuickInsert.menu.numberedList",
383
+ icon: "OrderSingle",
384
+ keywords: ["numbered", "list", "ordered"]
385
+ }, Se = {
386
+ id: ze.id,
387
+ title: "docQuickInsert.menu.bulletedList",
388
+ icon: "UnorderSingle",
389
+ keywords: ["bulleted", "list", "unordered"]
390
+ }, Ie = {
391
+ id: Be.id,
392
+ title: "docQuickInsert.menu.divider",
393
+ icon: "DividerSingle",
394
+ keywords: ["divider", "line", "separate"]
395
+ }, pt = [
396
+ {
397
+ title: "docQuickInsert.group.basics",
398
+ id: "quick.insert.group.basic",
399
+ children: [
400
+ _e,
401
+ Ce,
402
+ Se,
403
+ Ie
404
+ ]
405
+ }
406
+ ], ft = /* @__PURE__ */ new Set([
407
+ Ce.id,
408
+ Se.id,
409
+ Ie.id
410
+ ]);
411
+ var ht = Object.getOwnPropertyDescriptor, mt = (t, e, i, n) => {
412
+ for (var r = n > 1 ? void 0 : n ? ht(e, i) : e, o = t.length - 1, a; o >= 0; o--)
413
+ (a = t[o]) && (r = a(r) || r);
414
+ return r;
415
+ }, R = (t, e) => (i, n) => e(i, n, t);
416
+ let U = class extends X {
417
+ constructor(t, e, i, n, r) {
418
+ super(), this._commandService = t, this._textSelectionManagerService = e, this._docQuickInsertPopupService = i, this._shortcutService = n, this._univerInstanceService = r, this.disposeWithMe(this._shortcutService.registerShortcut({
419
+ id: k.id,
420
+ binding: y.ESC,
421
+ preconditions: () => !!this._docQuickInsertPopupService.editPopup,
422
+ priority: 1e3
423
+ })), this._initTrigger(), this._initMenuHandler();
424
+ }
425
+ // eslint-disable-next-line max-lines-per-function
426
+ _initTrigger() {
427
+ this.disposeWithMe(
428
+ // eslint-disable-next-line complexity, max-lines-per-function
429
+ this._commandService.onCommandExecuted((t) => {
430
+ var o, a, d;
431
+ const { _docQuickInsertPopupService: e, _textSelectionManagerService: i, _commandService: n } = this, r = this._univerInstanceService.getCurrentUnitOfType(Y.UNIVER_DOC);
432
+ if (!(r != null && r.getDisabled())) {
433
+ if (t.id === Ve.id) {
434
+ const s = t.params;
435
+ if (e.editPopup) {
436
+ e.setInputOffset({
437
+ start: e.inputOffset.start,
438
+ end: s.range.endOffset + 1
439
+ });
440
+ return;
441
+ }
442
+ const c = i.getActiveTextRange();
443
+ if (!c)
444
+ return;
445
+ const u = e.resolvePopup(s.body.dataStream);
446
+ if (!u || !(u.preconditions ? u.preconditions(s) : !0))
447
+ return;
448
+ e.setInputOffset({ start: c.startOffset - 1, end: c.startOffset }), setTimeout(() => {
449
+ n.executeCommand(ge.id, {
450
+ index: c.startOffset - 1,
451
+ unitId: s.unitId,
452
+ popup: u
453
+ });
454
+ }, 100);
455
+ }
456
+ if (t.id === Fe.id) {
457
+ const s = t.params;
458
+ !e.isComposing && s.isCompositionStart && e.setIsComposing(!0), e.isComposing && s.isCompositionEnd && e.setIsComposing(!1);
459
+ }
460
+ if (t.id === Ae.id) {
461
+ const s = t.params;
462
+ if (s.isCompositionEnd) {
463
+ const c = (a = (o = s.textRanges) == null ? void 0 : o[0]) == null ? void 0 : a.endOffset;
464
+ c && e.setInputOffset({ start: e.inputOffset.start, end: c });
465
+ }
466
+ }
467
+ if (t.id === Ge.id) {
468
+ const s = t.params;
469
+ if (e.editPopup && s.direction === Ne.LEFT) {
470
+ const c = (d = s.len) != null ? d : 0;
471
+ e.setInputOffset({ start: e.inputOffset.start, end: s.range.endOffset - c });
472
+ }
473
+ }
474
+ if (t.id === Ze.id) {
475
+ const s = t.params;
476
+ (s.direction === E.LEFT || s.direction === E.RIGHT) && e.editPopup && n.executeCommand(k.id);
477
+ }
478
+ if (t.id === Je.id) {
479
+ const s = i.getActiveTextRange();
480
+ if (!e.editPopup || !s)
481
+ return;
482
+ s.endOffset <= e.editPopup.anchor && n.executeCommand(k.id);
483
+ }
484
+ }
485
+ })
486
+ );
487
+ }
488
+ _initMenuHandler() {
489
+ this.disposeWithMe(this._docQuickInsertPopupService.onMenuSelected((t) => {
490
+ t.id !== _e.id && ft.has(t.id) && this._commandService.executeCommand(t.id);
491
+ }));
492
+ }
493
+ };
494
+ U = mt([
495
+ R(0, D),
496
+ R(1, v(he)),
497
+ R(2, v(C)),
498
+ R(3, v(fe)),
499
+ R(4, v(le))
500
+ ], U);
501
+ var m = function() {
502
+ return m = Object.assign || function(t) {
503
+ for (var e, i = 1, n = arguments.length; i < n; i++) {
504
+ e = arguments[i];
505
+ for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
506
+ }
507
+ return t;
508
+ }, m.apply(this, arguments);
509
+ }, vt = function(t, e) {
510
+ var i = {};
511
+ for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.indexOf(n) < 0 && (i[n] = t[n]);
512
+ if (t != null && typeof Object.getOwnPropertySymbols == "function")
513
+ for (var r = 0, n = Object.getOwnPropertySymbols(t); r < n.length; r++)
514
+ e.indexOf(n[r]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[r]) && (i[n[r]] = t[n[r]]);
515
+ return i;
516
+ }, ne = ee(function(t, e) {
517
+ var i = t.icon, n = t.id, r = t.className, o = t.extend, a = vt(t, ["icon", "id", "className", "extend"]), d = "univerjs-icon univerjs-icon-".concat(n, " ").concat(r || "").trim(), s = V("_".concat(Ct()));
518
+ return Oe(i, "".concat(n), { defIds: i.defIds, idSuffix: s.current }, m({ ref: e, className: d }, a), o);
519
+ });
520
+ function Oe(t, e, i, n, r) {
521
+ return te(t.tag, m(m({ key: e }, gt(t, i, r)), n), (_t(t, i).children || []).map(function(o, a) {
522
+ return Oe(o, "".concat(e, "-").concat(t.tag, "-").concat(a), i, void 0, r);
523
+ }));
524
+ }
525
+ function gt(t, e, i) {
526
+ var n = m({}, t.attrs);
527
+ i != null && i.colorChannel1 && n.fill === "colorChannel1" && (n.fill = i.colorChannel1), t.tag === "mask" && n.id && (n.id = n.id + e.idSuffix), Object.entries(n).forEach(function(o) {
528
+ var a = o[0], d = o[1];
529
+ a === "mask" && typeof d == "string" && (n[a] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(e.idSuffix, ")")));
530
+ });
531
+ var r = e.defIds;
532
+ return !r || r.length === 0 || (t.tag === "use" && n["xlink:href"] && (n["xlink:href"] = n["xlink:href"] + e.idSuffix), Object.entries(n).forEach(function(o) {
533
+ var a = o[0], d = o[1];
534
+ typeof d == "string" && (n[a] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(e.idSuffix, ")")));
535
+ })), n;
536
+ }
537
+ function _t(t, e) {
538
+ var i, n = e.defIds;
539
+ return !n || n.length === 0 ? t : t.tag === "defs" && (!((i = t.children) === null || i === void 0) && i.length) ? m(m({}, t), { children: t.children.map(function(r) {
540
+ return typeof r.attrs.id == "string" && n && n.indexOf(r.attrs.id) > -1 ? m(m({}, r), { attrs: m(m({}, r.attrs), { id: r.attrs.id + e.idSuffix }) }) : r;
541
+ }) }) : t;
542
+ }
543
+ function Ct() {
544
+ return Math.random().toString(36).substring(2, 8);
545
+ }
546
+ ne.displayName = "UniverIcon";
547
+ var St = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.01953 3.13985C1.01953 2.77258 1.31726 2.47485 1.68453 2.47485H2.73713C3.1044 2.47485 3.40213 2.77258 3.40213 3.13985 3.40213 3.50712 3.1044 3.80485 2.73713 3.80485H1.68453C1.31726 3.80485 1.01953 3.50712 1.01953 3.13985zM4.17734 3.13985C4.17734 2.77258 4.47507 2.47485 4.84234 2.47485H6.94754C7.31481 2.47485 7.61254 2.77258 7.61254 3.13985 7.61254 3.50712 7.31481 3.80485 6.94754 3.80485H4.84234C4.47507 3.80485 4.17734 3.50712 4.17734 3.13985zM8.38775 3.13985C8.38775 2.77258 8.68548 2.47485 9.05275 2.47485H11.158C11.5252 2.47485 11.823 2.77258 11.823 3.13985 11.823 3.50712 11.5252 3.80485 11.158 3.80485H9.05275C8.68548 3.80485 8.38775 3.50712 8.38775 3.13985zM12.5982 3.13985C12.5982 2.77258 12.8959 2.47485 13.2632 2.47485H14.3158C14.683 2.47485 14.9808 2.77258 14.9808 3.13985 14.9808 3.50712 14.683 3.80485 14.3158 3.80485H13.2632C12.8959 3.80485 12.5982 3.50712 12.5982 3.13985zM1.01953 7.99972C1.01953 7.63245 1.31726 7.33472 1.68453 7.33472H14.3158C14.683 7.33472 14.9808 7.63245 14.9808 7.99972 14.9808 8.36699 14.683 8.66472 14.3158 8.66472H1.68453C1.31726 8.66472 1.01953 8.36699 1.01953 7.99972zM1.68453 12.1951C1.31726 12.1951 1.01953 12.4928 1.01953 12.8601 1.01953 13.2273 1.31726 13.5251 1.68453 13.5251H2.73713C3.1044 13.5251 3.40213 13.2273 3.40213 12.8601 3.40213 12.4928 3.1044 12.1951 2.73713 12.1951H1.68453zM4.84234 12.1951C4.47507 12.1951 4.17734 12.4928 4.17734 12.8601 4.17734 13.2273 4.47507 13.5251 4.84234 13.5251H6.94754C7.31481 13.5251 7.61254 13.2273 7.61254 12.8601 7.61254 12.4928 7.31481 12.1951 6.94754 12.1951H4.84234zM9.05275 12.1951C8.68548 12.1951 8.38775 12.4928 8.38775 12.8601 8.38775 13.2273 8.68548 13.5251 9.05275 13.5251H11.158C11.5252 13.5251 11.823 13.2273 11.823 12.8601 11.823 12.4928 11.5252 12.1951 11.158 12.1951H9.05275zM13.2632 12.1951C12.8959 12.1951 12.5982 12.4928 12.5982 12.8601 12.5982 13.2273 12.8959 13.5251 13.2632 13.5251H14.3158C14.683 13.5251 14.9808 13.2273 14.9808 12.8601 14.9808 12.4928 14.683 12.1951 14.3158 12.1951H13.2632z" } }] }, G = ee(function(t, e) {
548
+ return te(ne, Object.assign({}, t, {
549
+ id: "divider-single",
550
+ ref: e,
551
+ icon: St
552
+ }));
553
+ });
554
+ G.displayName = "DividerSingle";
555
+ var It = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M2.66695 1.33496C2.29968 1.33496 2.00195 1.63269 2.00195 1.99996V3.64439C2.00195 4.01166 2.29968 4.30939 2.66695 4.30939C3.03422 4.30939 3.33195 4.01166 3.33195 3.64439V2.66496H7.33521V13.335H5.3337C4.96643 13.335 4.6687 13.6327 4.6687 14C4.6687 14.3672 4.96643 14.665 5.3337 14.665H10.667C11.0343 14.665 11.332 14.3672 11.332 14C11.332 13.6327 11.0343 13.335 10.667 13.335H8.66521V2.66496H12.6686V3.64439C12.6686 4.01166 12.9664 4.30939 13.3336 4.30939C13.7009 4.30939 13.9986 4.01166 13.9986 3.64439V1.99996C13.9986 1.63269 13.7009 1.33496 13.3336 1.33496H2.66695Z" } }] }, Z = ee(function(t, e) {
556
+ return te(ne, Object.assign({}, t, {
557
+ id: "text-single",
558
+ ref: e,
559
+ icon: It
560
+ }));
561
+ });
562
+ Z.displayName = "TextSingle";
563
+ var Ot = Object.getOwnPropertyDescriptor, yt = (t, e, i, n) => {
564
+ for (var r = n > 1 ? void 0 : n ? Ot(e, i) : e, o = t.length - 1, a; o >= 0; o--)
565
+ (a = t[o]) && (r = a(r) || r);
566
+ return r;
567
+ }, B = (t, e) => (i, n) => e(i, n, t);
568
+ let K = class extends X {
569
+ constructor(t, e, i) {
570
+ super(), this._commandService = t, this._docQuickInsertPopupService = e, this._componentManager = i, this._initCommands(), this._initComponents(), this._initMenus();
571
+ }
572
+ _initCommands() {
573
+ [
574
+ me,
575
+ ge,
576
+ k
577
+ ].forEach((t) => {
578
+ this.disposeWithMe(this._commandService.registerCommand(t));
579
+ });
580
+ }
581
+ _initComponents() {
582
+ [
583
+ [H.componentKey, H],
584
+ [$.componentKey, $],
585
+ [T.componentKey, T],
586
+ [G.displayName, G],
587
+ [Z.displayName, Z]
588
+ ].forEach(([e, i]) => {
589
+ e && this.disposeWithMe(this._componentManager.register(e, i));
590
+ }), [
591
+ {
592
+ keyword: "/",
593
+ menus$: nt(pt),
594
+ // only show when the cursor is at the beginning of a line
595
+ preconditions: (e) => {
596
+ var i;
597
+ return ((i = e.range.startNodePosition) == null ? void 0 : i.glyph) === 0;
598
+ }
599
+ }
600
+ ].forEach((e) => {
601
+ this.disposeWithMe(this._docQuickInsertPopupService.registerPopup(e));
602
+ });
603
+ }
604
+ _initMenus() {
605
+ }
606
+ };
607
+ K = yt([
608
+ B(0, D),
609
+ B(1, v(C)),
610
+ B(2, v(pe))
611
+ ], K);
612
+ var Pt = Object.defineProperty, xt = Object.getOwnPropertyDescriptor, bt = (t, e, i) => e in t ? Pt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, Mt = (t, e, i, n) => {
613
+ for (var r = n > 1 ? void 0 : n ? xt(e, i) : e, o = t.length - 1, a; o >= 0; o--)
614
+ (a = t[o]) && (r = a(r) || r);
615
+ return r;
616
+ }, wt = (t, e) => (i, n) => e(i, n, t), ye = (t, e, i) => bt(t, typeof e != "symbol" ? e + "" : e, i);
617
+ const Rt = "DOC_QUICK_INSERT_UI_PLUGIN";
618
+ let Q = class extends Te {
619
+ constructor(t) {
620
+ super(), this._injector = t;
621
+ }
622
+ onStarting() {
623
+ [
624
+ [K],
625
+ [U],
626
+ [C]
627
+ ].forEach((e) => this._injector.add(e)), this._injector.get(K);
628
+ }
629
+ onRendered() {
630
+ this._injector.get(U), this._injector.get(C);
631
+ }
632
+ };
633
+ ye(Q, "type", Y.UNIVER_DOC);
634
+ ye(Q, "pluginName", Rt);
635
+ Q = Mt([
636
+ Ee(Ke, Ue, He, Qe),
637
+ wt(0, v($e))
638
+ ], Q);
639
+ export {
640
+ C as DocQuickInsertPopupService,
641
+ U as DocQuickInsertTriggerController,
642
+ K as DocQuickInsertUIController,
643
+ ct as KeywordInputPlaceholderComponentKey,
644
+ at as QuickInsertPlaceholderComponentKey,
645
+ Q as UniverDocsQuickInsertUIPlugin
646
+ };
@@ -0,0 +1,18 @@
1
+ const e = {
2
+ docQuickInsert: {
3
+ menu: {
4
+ numberedList: "Numbered List",
5
+ bulletedList: "Bulleted List",
6
+ divider: "Divider",
7
+ text: "Text"
8
+ },
9
+ group: {
10
+ basics: "Basics"
11
+ },
12
+ placeholder: "No results found",
13
+ keywordInputPlaceholder: "Enter keywords"
14
+ }
15
+ };
16
+ export {
17
+ e as default
18
+ };
@@ -0,0 +1,18 @@
1
+ const e = {
2
+ docQuickInsert: {
3
+ menu: {
4
+ numberedList: "لیست شمارهدار",
5
+ bulletedList: "لیست نقطهدار",
6
+ divider: "خط تقسیم",
7
+ text: "متن"
8
+ },
9
+ group: {
10
+ basics: "بنیادی"
11
+ },
12
+ placeholder: "هیچ نتیجهای یافت نشد",
13
+ keywordInputPlaceholder: "وارد کلمات کلیدی"
14
+ }
15
+ };
16
+ export {
17
+ e as default
18
+ };