@baishuyun/ui-base 6.16.0 → 6.17.0

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.
Files changed (140) hide show
  1. package/dist/Amap/Amap-CNsoge6e.js +826 -0
  2. package/dist/Amap/index.js +3 -10
  3. package/dist/Calendar/Calendar-BlsUX2vX.js +1608 -0
  4. package/dist/Calendar/index.js +10 -20
  5. package/dist/Card/index.js +2 -2
  6. package/dist/CheckBox/{CheckBox-B92dxWNo.js → CheckBox-CM24-quL.js} +1 -1
  7. package/dist/CheckBox/index.js +3 -3
  8. package/dist/ColorPicker/{ColorPicker-CPr5j6ZN.js → ColorPicker-B_wLqurt.js} +5 -5
  9. package/dist/ColorPicker/index.js +5 -5
  10. package/dist/ConfigProvider/index.js +1 -1
  11. package/dist/DatePicker/DatePicker-BRwPZeui.js +111 -0
  12. package/dist/DatePicker/{DatePickerPanel-CRnLvIwc.js → DatePickerPanel-UwjSXS-U.js} +3 -4
  13. package/dist/DatePicker/index.js +6 -8
  14. package/dist/DatePicker/pickerLocale-Brf7_Tnd.js +30 -0
  15. package/dist/DropDown/{DropDown-CvG9IFVk.js → DropDown-B_szM67V.js} +86 -82
  16. package/dist/DropDown/index.js +8 -9
  17. package/dist/Editor/index.js +2839 -880
  18. package/dist/Gantt/index.js +3055 -197
  19. package/dist/Icon/index.js +1 -1
  20. package/dist/InputTag/{InputTag-BfZycXw4.js → InputTag-C_5nm0eo.js} +2 -2
  21. package/dist/InputTag/index.js +4 -4
  22. package/dist/Loading/{Loading-DpbJSRYf.js → Loading-Cherk9Ax.js} +1 -1
  23. package/dist/Loading/index.js +3 -3
  24. package/dist/Modal/index.js +2 -2
  25. package/dist/NotFoundContent/index.js +2 -2
  26. package/dist/Overlay/index.js +1 -1
  27. package/dist/Radio/index.js +2 -2
  28. package/dist/ScrollBar/{ScrollBar-N2pOLv-8.js → ScrollBar-IMTuAOF5.js} +1 -1
  29. package/dist/ScrollBar/index.js +2 -2
  30. package/dist/Segmented/{Segmented-BCQRrc65.js → Segmented-DpmwFerw.js} +1 -1
  31. package/dist/Segmented/index.js +2 -2
  32. package/dist/Select/{Select-Bla1mQ8v.js → Select-VIy6OKEj.js} +262 -259
  33. package/dist/Select/{SelectInputSearch-CRgBcsq2.js → SelectInputSearch-MApQHnU9.js} +21 -10
  34. package/dist/Select/index.js +12 -13
  35. package/dist/Table/Table-8ac6xLZv.js +808 -0
  36. package/dist/Table/index.js +4 -8
  37. package/dist/Tabs/{Tabs-B9uCGlxM.js → Tabs-DnoZ8BO0.js} +3 -3
  38. package/dist/Tabs/index.js +4 -4
  39. package/dist/Tooltip/{Tooltip-nJU13gX4.js → Tooltip-DBrt3t2r.js} +3 -3
  40. package/dist/Tooltip/index.js +3 -3
  41. package/dist/Tree/index.js +4 -4
  42. package/dist/components/Editor/EditorHtmlPreview.d.ts +3 -0
  43. package/dist/components/Editor/Preview/HtmlPreview.d.ts +2 -3
  44. package/dist/components/Editor/__tests__/createTestEditor.d.ts +1 -0
  45. package/dist/components/Editor/constants/portableEditorStyles.d.ts +2 -0
  46. package/dist/components/Editor/hooks/useEditorFocus.d.ts +1 -0
  47. package/dist/components/Editor/hooks/useTextFormatsState.d.ts +1 -2
  48. package/dist/components/Editor/index.d.ts +1 -0
  49. package/dist/components/Editor/nodes/ExtendedLinkNode.d.ts +9 -0
  50. package/dist/components/Editor/utils/getToolbarItems.d.ts +14 -0
  51. package/dist/components/Editor/utils/placeProgrammaticCaret.d.ts +5 -0
  52. package/dist/components/Editor/utils/readTextFormats.d.ts +6 -0
  53. package/dist/components/Editor/utils/retainCodeSelection.d.ts +3 -0
  54. package/dist/components/Select/SelectInputSearch/SelectInputSearch.d.ts +2 -0
  55. package/dist/index.js +28 -50
  56. package/dist/style.css +1 -1
  57. package/dist/vendors/Tree-D0Q1IZ2D.js +267 -0
  58. package/dist/vendors/{version-CFii9VTt.js → version-CfjNx5v2.js} +1 -1
  59. package/package.json +1 -1
  60. package/dist/Amap/Amap-BLSziesG.js +0 -77
  61. package/dist/Amap/AmapCircle/index.js +0 -5
  62. package/dist/Amap/AmapCircle-2qupysHe.js +0 -55
  63. package/dist/Amap/AmapContext-CJBe6lld.js +0 -11
  64. package/dist/Amap/AmapMarker/index.js +0 -6
  65. package/dist/Amap/AmapMarker-xEqoVnFR.js +0 -153
  66. package/dist/Amap/AmapMarkerCluster/index.js +0 -6
  67. package/dist/Amap/AmapMarkerCluster-CvEQa3o9.js +0 -240
  68. package/dist/Amap/AmapProvider/index.js +0 -7
  69. package/dist/Amap/AmapProvider-B-R2DrkJ.js +0 -107
  70. package/dist/Amap/hooks/index.js +0 -4
  71. package/dist/Amap/hooks-BTcFpdd0.js +0 -121
  72. package/dist/Amap/useMarkerInfoWindowController-Cjx0xQXw.js +0 -94
  73. package/dist/Calendar/AllDaySection-pO7suGJM.js +0 -53
  74. package/dist/Calendar/Calendar-DUD4iffO.js +0 -795
  75. package/dist/Calendar/CurrentTimeIndicator-BF3_INSL.js +0 -65
  76. package/dist/Calendar/EventCard-DKEZQRTp.js +0 -155
  77. package/dist/Calendar/TimeAxis-DUc6EL-j.js +0 -13
  78. package/dist/Calendar/TimeGrid-BV8x9VnF.js +0 -47
  79. package/dist/Calendar/colorUtils-BbeSMnOs.js +0 -55
  80. package/dist/Calendar/context/index.js +0 -3
  81. package/dist/Calendar/context-CamSpkj3.js +0 -21
  82. package/dist/Calendar/layout-CpOabFQ2.js +0 -300
  83. package/dist/Calendar/subcomponents/AllDaySection/index.js +0 -11
  84. package/dist/Calendar/subcomponents/CurrentTimeIndicator/index.js +0 -8
  85. package/dist/Calendar/subcomponents/EventCard/index.js +0 -9
  86. package/dist/Calendar/subcomponents/TimeAxis/index.js +0 -5
  87. package/dist/Calendar/subcomponents/TimeGrid/index.js +0 -7
  88. package/dist/Calendar/theme-Dc8hjcdo.js +0 -71
  89. package/dist/Calendar/utils/index.js +0 -111
  90. package/dist/Calendar/utils/layout/index.js +0 -4
  91. package/dist/Calendar/utils/theme/index.js +0 -3
  92. package/dist/DatePicker/DatePicker-BWMmI6rl.js +0 -101
  93. package/dist/DatePicker/ensureDayjsPlugins-CSqhjLS7.js +0 -15
  94. package/dist/DatePicker/pickerLocale-CcPLUbZO.js +0 -15
  95. package/dist/DatePicker/style/index.js +0 -3
  96. package/dist/DatePicker/style-W7f5wyUb.js +0 -15
  97. package/dist/DropDown/style/index.js +0 -3
  98. package/dist/DropDown/style-DZpkarne.js +0 -9
  99. package/dist/Editor/Buttons-vt3gwedu.js +0 -1841
  100. package/dist/Editor/ToolbarPlugin/Buttons/index.js +0 -21
  101. package/dist/Editor/constants/index.js +0 -61
  102. package/dist/Gantt/GanttChart/index.js +0 -21
  103. package/dist/Gantt/GanttChart-DRzJdEm-.js +0 -2292
  104. package/dist/Gantt/GanttHighlightContext-dtyoq-oj.js +0 -12
  105. package/dist/Gantt/GanttTable/index.js +0 -13
  106. package/dist/Gantt/GanttTable-fOv1Zn2-.js +0 -84
  107. package/dist/Gantt/GanttToolBar/index.js +0 -17
  108. package/dist/Gantt/GanttToolBar-4kxZP6oS.js +0 -120
  109. package/dist/Gantt/collapseKeys-BV_8sIA-.js +0 -160
  110. package/dist/Gantt/columnResize-Bkenlbab.js +0 -46
  111. package/dist/Gantt/constants-mEGQ1U1Q.js +0 -39
  112. package/dist/Gantt/highlightTarget-D3Nf9_7S.js +0 -25
  113. package/dist/Gantt/theme-B7Iap-tZ.js +0 -31
  114. package/dist/Gantt/timelineViewConfig-DNt7yi83.js +0 -118
  115. package/dist/Gantt/utils/index.js +0 -7
  116. package/dist/Gantt/utils/theme/index.js +0 -3
  117. package/dist/Select/style/index.js +0 -3
  118. package/dist/Select/style-C4A8kUd1.js +0 -9
  119. package/dist/Table/Table-3LSO0xSH.js +0 -545
  120. package/dist/Table/constants-D7wLH8Qy.js +0 -25
  121. package/dist/Table/hooks/index.js +0 -3
  122. package/dist/Table/hooks-DSBl2e4O.js +0 -108
  123. package/dist/Table/processRowspan-B6HMqw0Q.js +0 -144
  124. package/dist/Table/style/index.js +0 -3
  125. package/dist/Table/style-B8Cw8HJe.js +0 -9
  126. package/dist/Table/utils/index.js +0 -3
  127. package/dist/Tree/utils/index.js +0 -26
  128. package/dist/vendors/Tree-DSl4lDjx.js +0 -248
  129. /package/dist/Card/{Card-rJeWgxu5.js → Card-DAz0dvA3.js} +0 -0
  130. /package/dist/CheckBox/{CheckBox-DOK5N7z6.js → CheckBox-CcHskTz_.js} +0 -0
  131. /package/dist/Modal/{Modal-CRKitOOj.js → Modal-eZijJ7CB.js} +0 -0
  132. /package/dist/NotFoundContent/{NotFoundContent-BLmzWNBi.js → NotFoundContent-DJUQ0_2D.js} +0 -0
  133. /package/dist/Radio/{Radio-CX9cUqb7.js → Radio-D9jhW7K6.js} +0 -0
  134. /package/dist/vendors/{animations-Dn_5xJ7B.js → animations-ISccYUE3.js} +0 -0
  135. /package/dist/vendors/{cssVars-l4-kP_14.js → cssVars-UpriQzph.js} +0 -0
  136. /package/dist/vendors/{mergeRefs-TiJ0xjUN.js → mergeRefs-mEH9TBYV.js} +0 -0
  137. /package/dist/vendors/{useFloatingOverlay-B3M9k8nj.js → useFloatingOverlay-B66lOL8v.js} +0 -0
  138. /package/dist/vendors/{useFloatingPortal-VpzL-EPh.js → useFloatingPortal-DJ1iKmW-.js} +0 -0
  139. /package/dist/vendors/{useLatchedPopupPortalRoot-4fVhqVT4.js → useLatchedPopupPortalRoot-CC6af8t-.js} +0 -0
  140. /package/dist/vendors/{useLocale-D31qCCff.js → useLocale-Be4e7Xfn.js} +0 -0
@@ -1,1841 +0,0 @@
1
- import { t as e } from "../Icon/Icon-DrdQOEJE.js";
2
- import { a as t, i as n } from "../Overlay/OverlayContext-CVSFoyqN.js";
3
- import { t as r } from "../Modal/Modal-CRKitOOj.js";
4
- import { t as i } from "../ColorPicker/ColorPicker-CPr5j6ZN.js";
5
- import { t as a } from "../vendors/useLocale-D31qCCff.js";
6
- import { r as o } from "../vendors/animations-Dn_5xJ7B.js";
7
- import { t as s } from "../Tooltip/Tooltip-nJU13gX4.js";
8
- import { t as c } from "../CheckBox/CheckBox-B92dxWNo.js";
9
- import { t as l } from "../ScrollBar/ScrollBar-N2pOLv-8.js";
10
- import { t as u } from "../vendors/useFloatingPortal-VpzL-EPh.js";
11
- import { t as d } from "../DropDown/DropDown-CvG9IFVk.js";
12
- import { EDITOR_IMAGE_ACCEPT as f, EDITOR_IMAGE_FILE_TYPES as p, FONT_SIZES as m } from "./constants/index.js";
13
- import { keyBy as h, range as g } from "lodash-es";
14
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
15
- import b, { createContext as x, forwardRef as S, useCallback as C, useContext as w, useEffect as T, useId as ee, useImperativeHandle as te, useLayoutEffect as E, useMemo as ne, useRef as D, useState as O } from "react";
16
- import { Button as k, Form as re, Input as ie, message as A } from "antd";
17
- import j from "clsx";
18
- import { AnimatePresence as ae, motion as oe } from "motion/react";
19
- import { FloatingPortal as se } from "@floating-ui/react";
20
- import { $generateHtmlFromNodes as ce, $generateNodesFromDOM as le } from "@lexical/html";
21
- import { $createParagraphNode as ue, $createTextNode as de, $getRoot as fe, $getSelection as M, $insertNodes as pe, $isElementNode as me, $isRangeSelection as N, $isTextNode as he, $setSelection as ge, CAN_REDO_COMMAND as _e, CAN_UNDO_COMMAND as ve, COMMAND_PRIORITY_CRITICAL as ye, FORMAT_ELEMENT_COMMAND as be, FORMAT_TEXT_COMMAND as P, INDENT_CONTENT_COMMAND as xe, OUTDENT_CONTENT_COMMAND as Se, REDO_COMMAND as Ce, UNDO_COMMAND as we, createCommand as Te, mergeRegister as Ee } from "lexical";
22
- import { useLexicalComposerContext as F } from "@lexical/react/LexicalComposerContext";
23
- import { $patchStyleText as I, $setBlocksType as De } from "@lexical/selection";
24
- import { $createLinkNode as Oe, $toggleLink as ke, TOGGLE_LINK_COMMAND as Ae } from "@lexical/link";
25
- import { INSERT_ORDERED_LIST_COMMAND as je, INSERT_UNORDERED_LIST_COMMAND as Me, REMOVE_LIST_COMMAND as Ne } from "@lexical/list";
26
- import { $createCodeNode as Pe } from "@lexical/code-core";
27
- import { INSERT_TABLE_COMMAND as Fe } from "@lexical/table";
28
- import { $createHeadingNode as Ie } from "@lexical/rich-text";
29
- import Le from "dompurify";
30
- //#region src/components/Editor/constants/toolbarSize.ts
31
- var Re = "default", L = {
32
- x: 0,
33
- y: 5
34
- }, ze = {
35
- small: {
36
- itemHeight: 20,
37
- iconSize: 14
38
- },
39
- default: {
40
- itemHeight: 30,
41
- iconSize: 16
42
- }
43
- }, R = {
44
- "bsy-lexical__toolbar": "_bsy-lexical__toolbar_1wqto_1",
45
- "bsy-lexical__toolbar--floating": "_bsy-lexical__toolbar--floating_1wqto_14",
46
- "bsy-lexical__toolbar--sticky": "_bsy-lexical__toolbar--sticky_1wqto_19",
47
- "bsy-lexical__toolbar-stack": "_bsy-lexical__toolbar-stack_1wqto_24",
48
- "bsy-lexical__toolbar-items": "_bsy-lexical__toolbar-items_1wqto_34",
49
- "bsy-lexical__toolbar-item": "_bsy-lexical__toolbar-item_1wqto_34",
50
- "bsy-lexical__toolbar-item--disabled": "_bsy-lexical__toolbar-item--disabled_1wqto_49",
51
- "bsy-lexical__toolbar-group": "_bsy-lexical__toolbar-group_1wqto_53",
52
- "bsy-lexical__toolbar-divider": "_bsy-lexical__toolbar-divider_1wqto_59",
53
- "bsy-lexical__toolbar-select": "_bsy-lexical__toolbar-select_1wqto_66",
54
- "bsy-lexical__toolbar-select-label": "_bsy-lexical__toolbar-select-label_1wqto_84",
55
- "bsy-lexical__toolbar-select-arrow": "_bsy-lexical__toolbar-select-arrow_1wqto_94",
56
- "bsy-lexical__toolbar-select--ai": "_bsy-lexical__toolbar-select--ai_1wqto_98",
57
- "bsy-lexical__toolbar-more-sizer": "_bsy-lexical__toolbar-more-sizer_1wqto_104",
58
- "bsy-lexical__toolbar-overflow": "_bsy-lexical__toolbar-overflow_1wqto_112",
59
- "bsy-lexical__toolbar-overflow-row": "_bsy-lexical__toolbar-overflow-row_1wqto_116",
60
- "bsy-lexical__toolbar-overflow-row--open": "_bsy-lexical__toolbar-overflow-row--open_1wqto_124",
61
- "bsy-lexical__toolbar-overflow-row--instant": "_bsy-lexical__toolbar-overflow-row--instant_1wqto_128",
62
- "bsy-lexical__toolbar-overflow-inner": "_bsy-lexical__toolbar-overflow-inner_1wqto_132",
63
- "bsy-lexical__toolbar-with-divider": "_bsy-lexical__toolbar-with-divider_1wqto_140"
64
- }, Be = x(null), Ve = "plaintext", He = "github-light", Ue = [
65
- {
66
- id: "plaintext",
67
- label: "Plain text"
68
- },
69
- {
70
- id: "css",
71
- label: "CSS"
72
- },
73
- {
74
- id: "html",
75
- label: "HTML"
76
- },
77
- {
78
- id: "xml",
79
- label: "XML"
80
- },
81
- {
82
- id: "javascript",
83
- label: "JavaScript"
84
- },
85
- {
86
- id: "typescript",
87
- label: "TypeScript"
88
- },
89
- {
90
- id: "jsx",
91
- label: "JSX"
92
- },
93
- {
94
- id: "go",
95
- label: "Go"
96
- },
97
- {
98
- id: "php",
99
- label: "PHP"
100
- },
101
- {
102
- id: "c",
103
- label: "C"
104
- },
105
- {
106
- id: "python",
107
- label: "Python"
108
- },
109
- {
110
- id: "java",
111
- label: "Java"
112
- },
113
- {
114
- id: "cpp",
115
- label: "C++"
116
- },
117
- {
118
- id: "csharp",
119
- label: "C#"
120
- },
121
- {
122
- id: "vb",
123
- label: "Visual Basic"
124
- },
125
- {
126
- id: "sql",
127
- label: "SQL"
128
- },
129
- {
130
- id: "ruby",
131
- label: "Ruby"
132
- },
133
- {
134
- id: "swift",
135
- label: "Swift"
136
- },
137
- {
138
- id: "bash",
139
- label: "Bash"
140
- },
141
- {
142
- id: "lua",
143
- label: "Lua"
144
- },
145
- {
146
- id: "markdown",
147
- label: "Markdown"
148
- }
149
- ], We = h(Ue, "id"), Ge = (e) => e && We[e] ? e : Ve, Ke = (e) => e === "center" || e === "right" || e === "left" ? e : e === "end" ? "right" : "left", qe = x(null), Je = () => {
150
- let e = w(qe);
151
- if (!e) throw Error("useHistoryStateContext must be used within HistoryStateProvider");
152
- return e;
153
- }, Ye = ({ children: e }) => {
154
- let [t] = F(), [n, r] = O({
155
- canUndo: !1,
156
- canRedo: !1
157
- });
158
- return T(() => Ee(t.registerCommand(ve, (e) => (r((t) => t.canUndo === e ? t : {
159
- ...t,
160
- canUndo: e
161
- }), !1), ye), t.registerCommand(_e, (e) => (r((t) => t.canRedo === e ? t : {
162
- ...t,
163
- canRedo: e
164
- }), !1), ye)), [t]), /* @__PURE__ */ v(qe.Provider, {
165
- value: n,
166
- children: e
167
- });
168
- }, Xe = x({ iconSize: ze.default.iconSize }), Ze = Xe.Provider, z = () => w(Xe), B = {
169
- "lexical-editor__toolbar-button": "_lexical-editor__toolbar-button_dp4a1_1",
170
- "lexical-editor__toolbar-button-active": "_lexical-editor__toolbar-button-active_dp4a1_26",
171
- "lexical-editor__toolbar-button-highlight": "_lexical-editor__toolbar-button-highlight_dp4a1_30",
172
- "lexical-editor__toolbar-button-tooltip-trigger": "_lexical-editor__toolbar-button-tooltip-trigger_dp4a1_36"
173
- }, V = ({ icon: t, tooltip: n, onClick: r, disabled: i, showDisabledTooltip: a, active: o, highlight: c, size: l }) => {
174
- let { iconSize: u } = z(), d = /* @__PURE__ */ v("button", {
175
- className: j(B["lexical-editor__toolbar-button"], {
176
- [B["lexical-editor__toolbar-button-active"]]: o,
177
- [B["lexical-editor__toolbar-button-highlight"]]: c
178
- }),
179
- type: "button",
180
- onClick: r,
181
- onMouseDown: (e) => e.preventDefault(),
182
- disabled: i,
183
- children: b.isValidElement(t) ? t : /* @__PURE__ */ v(e, {
184
- name: t,
185
- size: l ?? u
186
- })
187
- });
188
- return !n || i && !a ? d : /* @__PURE__ */ v(s, {
189
- content: n,
190
- minWidth: "auto",
191
- children: i ? /* @__PURE__ */ v("span", {
192
- className: B["lexical-editor__toolbar-button-tooltip-trigger"],
193
- children: d
194
- }) : d
195
- });
196
- }, H = () => {
197
- let e = w(Be);
198
- if (!e) throw Error("useTextFormatsContext must be used within TextFormatsProvider");
199
- return e;
200
- }, Qe = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
201
- let [r] = F(), i = H(), { t: o } = a(), s = i.bold;
202
- return /* @__PURE__ */ v(V, {
203
- icon: "bold",
204
- tooltip: t ?? o("editor.bold"),
205
- showDisabledTooltip: n,
206
- active: s,
207
- disabled: e,
208
- onClick: () => {
209
- r.dispatchCommand(P, "bold");
210
- }
211
- });
212
- }, $e = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
213
- let [r] = F(), i = H(), { t: o } = a(), s = i.underline;
214
- return /* @__PURE__ */ v(V, {
215
- icon: "underline",
216
- tooltip: t ?? o("editor.underline"),
217
- showDisabledTooltip: n,
218
- active: s,
219
- disabled: e,
220
- onClick: () => {
221
- r.dispatchCommand(P, "underline");
222
- }
223
- });
224
- }, et = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
225
- let [r] = F(), i = H(), { t: o } = a(), s = i.italic;
226
- return /* @__PURE__ */ v(V, {
227
- icon: "italic",
228
- tooltip: t ?? o("editor.italic"),
229
- showDisabledTooltip: n,
230
- active: s,
231
- disabled: e,
232
- onClick: () => {
233
- r.dispatchCommand(P, "italic");
234
- }
235
- });
236
- }, tt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
237
- let [r] = F(), { t: i } = a(), { fontSize: o, headingTag: s } = H(), c = ne(() => m.map((e) => ({
238
- key: e.value,
239
- label: e.label
240
- })), []), l = C((e) => {
241
- let t = e.key;
242
- r.update(() => {
243
- let e = M();
244
- N(e) && I(e, { "font-size": t });
245
- });
246
- }, [r]);
247
- return s || e ? /* @__PURE__ */ v(V, {
248
- icon: "fontsize",
249
- tooltip: t ?? i("editor.fontSize"),
250
- showDisabledTooltip: n,
251
- disabled: !0
252
- }) : /* @__PURE__ */ v(d, {
253
- menus: c,
254
- onClick: l,
255
- activeKey: [o],
256
- showSearch: !1,
257
- offset: L,
258
- style: {
259
- width: "60px",
260
- minWidth: "60px"
261
- },
262
- children: /* @__PURE__ */ v("div", {
263
- className: "dropdown__trigger inline-flex",
264
- children: /* @__PURE__ */ v(V, {
265
- icon: "fontsize",
266
- tooltip: t ?? i("editor.fontSize"),
267
- showDisabledTooltip: n,
268
- active: !1
269
- })
270
- })
271
- });
272
- }, nt = "M896 860.48V960H128v-99.52h768zM578.944 128l251.648 655.936h-115.2l-59.904-164.48H379.904L320 784H204.8L456.384 128h122.56z m-58.944 115.776h-3.712L412.16 531.2h211.072L520 243.84z", rt = "M766.4 744.32c43.712 0 79.36-36.224 79.36-80.512 0-53.504-79.36-140.8-79.36-140.8s-79.36 87.296-79.36 140.8c0 44.288 35.648 80.512 79.36 80.512z m-377.088-44.16c7.04 7.168 18.56 7.168 25.6 0l256.064-256c7.104-7.04 7.104-18.56 0-25.6l-256-256a16.32 16.32 0 0 0-1.92-1.664L334.72 82.688a9.088 9.088 0 0 0-12.8 0l-48 48a9.088 9.088 0 0 0 0 12.8l67.2 67.2-207.808 207.936c-7.04 7.04-7.04 18.56 0 25.6l255.936 256z m12.864-448.576L581.12 430.528H223.36L402.24 251.52z m501.824 564.416H120a8 8 0 0 0-8 8v80c0 4.416 3.584 8 8 8h784a8 8 0 0 0 8-8v-80a8 8 0 0 0-8-8z", it = 860.48, at = 99.52, ot = /rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0(?:\.0+)?\s*\)/, st = {
273
- fontColor: {
274
- path: nt,
275
- clipHeight: it,
276
- x: 128,
277
- width: 768,
278
- rx: 0
279
- },
280
- fill: {
281
- path: rt,
282
- clipHeight: 816,
283
- x: 112,
284
- width: 800,
285
- rx: 8
286
- }
287
- }, ct = (e, t) => {
288
- let n = t.trim().toLowerCase();
289
- if (e === "fill") return !n || n === "transparent" || ot.test(n);
290
- let r = n.replace(/\s+/g, "");
291
- return r === "#000" || r === "#000000" || r === "black" || r === "rgb(0,0,0)" || r === "rgba(0,0,0,1)" || r === "rgba(0,0,0,1.0)";
292
- }, lt = ({ variant: e, barColor: t, size: n }) => {
293
- let r = `${ee().replace(/:/g, "")}clip`, i = st[e];
294
- return /* @__PURE__ */ y("svg", {
295
- width: n,
296
- height: n,
297
- viewBox: "0 0 1024 1024",
298
- "aria-hidden": "true",
299
- children: [
300
- /* @__PURE__ */ v("defs", { children: /* @__PURE__ */ v("clipPath", {
301
- id: r,
302
- children: /* @__PURE__ */ v("rect", {
303
- x: 0,
304
- y: 0,
305
- width: 1024,
306
- height: i.clipHeight
307
- })
308
- }) }),
309
- /* @__PURE__ */ v("path", {
310
- d: i.path,
311
- fill: "currentColor",
312
- clipPath: `url(#${r})`
313
- }),
314
- /* @__PURE__ */ v("rect", {
315
- x: i.x,
316
- y: it,
317
- width: i.width,
318
- height: at,
319
- rx: i.rx,
320
- fill: ct(e, t) ? "currentColor" : t
321
- })
322
- ]
323
- });
324
- }, ut = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
325
- let [r] = F(), o = H(), { iconSize: s } = z(), { t: c } = a(), l = C((e) => {
326
- r.update(() => {
327
- let t = M();
328
- N(t) && I(t, { color: e });
329
- });
330
- }, [r]);
331
- return /* @__PURE__ */ v(i, {
332
- value: o.fontColor,
333
- onChange: l,
334
- placement: "bottom-start",
335
- offset: L.y,
336
- presetColors: "basic",
337
- disabled: e,
338
- children: /* @__PURE__ */ v("div", {
339
- className: "trigger-picker inline-flex",
340
- children: /* @__PURE__ */ v(V, {
341
- icon: /* @__PURE__ */ v(lt, {
342
- variant: "fontColor",
343
- barColor: o.fontColor,
344
- size: s
345
- }),
346
- tooltip: t ?? c("editor.fontColor"),
347
- showDisabledTooltip: n,
348
- disabled: e
349
- })
350
- })
351
- });
352
- }, dt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
353
- let [r] = F(), o = H(), { iconSize: s } = z(), { t: c } = a(), l = C((e) => {
354
- r.update(() => {
355
- let t = M();
356
- N(t) && I(t, { "background-color": e });
357
- });
358
- }, [r]);
359
- return /* @__PURE__ */ v(i, {
360
- value: o.backgroundColor,
361
- onChange: l,
362
- placement: "bottom-start",
363
- offset: L.y,
364
- presetColors: "basic",
365
- disabled: e,
366
- children: /* @__PURE__ */ v("div", {
367
- className: "trigger-picker inline-flex",
368
- children: /* @__PURE__ */ v(V, {
369
- icon: /* @__PURE__ */ v(lt, {
370
- variant: "fill",
371
- barColor: o.backgroundColor,
372
- size: s
373
- }),
374
- tooltip: t ?? c("editor.fill"),
375
- showDisabledTooltip: n,
376
- disabled: e
377
- })
378
- })
379
- });
380
- }, U = {
381
- left: "paragraph",
382
- center: "paragraphmiddle",
383
- right: "paragraphright"
384
- }, ft = ({ disabled: t, tooltip: n, showDisabledTooltip: r }) => {
385
- let [i] = F(), { align: o } = H(), { iconSize: s } = z(), { t: c } = a(), l = ne(() => [
386
- {
387
- key: "left",
388
- label: c("leftAlign"),
389
- icon: /* @__PURE__ */ v(e, {
390
- name: U.left,
391
- size: s
392
- })
393
- },
394
- {
395
- key: "center",
396
- label: c("editor.centerAlign"),
397
- icon: /* @__PURE__ */ v(e, {
398
- name: U.center,
399
- size: s
400
- })
401
- },
402
- {
403
- key: "right",
404
- label: c("editor.rightAlign"),
405
- icon: /* @__PURE__ */ v(e, {
406
- name: U.right,
407
- size: s
408
- })
409
- }
410
- ], [s, c]), u = C((e) => {
411
- i.dispatchCommand(be, e.key);
412
- }, [i]), f = /* @__PURE__ */ v("div", {
413
- className: R["bsy-lexical__toolbar-select"],
414
- style: { width: 50 },
415
- children: /* @__PURE__ */ v(V, {
416
- icon: /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(e, {
417
- name: U[Ke(o)],
418
- size: s
419
- }), /* @__PURE__ */ v(e, {
420
- name: "arrow-down",
421
- size: s,
422
- className: R["bsy-lexical__toolbar-select-arrow"]
423
- })] }),
424
- tooltip: n ?? c("editor.alignment"),
425
- showDisabledTooltip: r,
426
- disabled: t
427
- })
428
- });
429
- return t ? f : /* @__PURE__ */ v(d, {
430
- menus: l,
431
- onClick: u,
432
- showSearch: !1,
433
- activeKey: [o],
434
- offset: L,
435
- style: {
436
- width: "110px",
437
- minWidth: "110px"
438
- },
439
- children: f
440
- });
441
- };
442
- //#endregion
443
- //#region src/components/Editor/ToolbarPlugin/Buttons/LinkButton.tsx
444
- function pt(e) {
445
- return e ? e.startsWith("@") ? "javascript:void(0);" : e.match(/^https?:\/\//) ? e : `http://${e}` : "";
446
- }
447
- var mt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
448
- let [i] = F(), { link: o } = H(), { t: s } = a(), [l, u] = O(!1), [d, f] = O(""), [p, m] = O(""), [h, g] = O(!0), [b, x] = A.useMessage(), S = D(null), w = C((e) => {
449
- u(e), e || i.setEditable(!0);
450
- }, [i]), T = () => {
451
- if (!d) {
452
- b.warning(s("editor.linkAddressEmpty"));
453
- return;
454
- }
455
- let e = pt(d);
456
- i.setEditable(!0), i.update(() => {
457
- let t = h ? {
458
- target: "_blank",
459
- rel: "noopener noreferrer",
460
- title: d
461
- } : { title: d }, n = S.current;
462
- n !== null && ge(n);
463
- let r = M();
464
- if (N(r)) {
465
- let n = p || d, i = r.getTextContent();
466
- if (!r.isCollapsed() && n === i) ke(e, t);
467
- else {
468
- let i = r.anchor.getNode(), a = he(i) ? i : null, o = r.style || r.getNodes().find(he)?.getStyle() || a?.getStyle() || "", s = r.format || a?.getFormat() || 0, c = Oe(e, t), l = de(n);
469
- l.setFormat(s), l.setStyle(o), c.append(l), r.insertNodes([c]);
470
- }
471
- } else {
472
- let n = Oe(e, t);
473
- n.append(de(p || d));
474
- let r = fe(), i = r.getLastChild();
475
- if (me(i) && i.isEmpty()) i.append(n);
476
- else {
477
- let e = ue();
478
- e.append(n), r.append(e);
479
- }
480
- }
481
- }), S.current = null, f(""), m(""), w(!1);
482
- }, ee = C(() => {
483
- let e = "";
484
- i.getEditorState().read(() => {
485
- let t = M();
486
- S.current = t ? t.clone() : null, N(t) && !t.isCollapsed() && (e = t.getTextContent());
487
- }), i.setEditable(!1), i.update(() => {
488
- ge(null);
489
- }), window.getSelection()?.removeAllRanges(), i.getRootElement()?.blur(), o ? (f(o.link === "javascript:void(0);" ? "" : o.link ?? ""), m(o.linkText ?? "")) : (f(""), m(e)), u(!0);
490
- }, [o, i]);
491
- return /* @__PURE__ */ y(_, { children: [
492
- /* @__PURE__ */ v(V, {
493
- icon: "Insertlink",
494
- tooltip: t ?? s("link"),
495
- showDisabledTooltip: n,
496
- onClick: ee,
497
- disabled: e,
498
- active: !!o?.link
499
- }),
500
- x,
501
- /* @__PURE__ */ v(r, {
502
- title: s("link"),
503
- open: l,
504
- onOpenChange: w,
505
- children: /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
506
- className: "px-[20px] pb-[60px] pt-[40px]",
507
- children: [/* @__PURE__ */ y("div", {
508
- className: "flex items-center relative",
509
- children: [
510
- /* @__PURE__ */ v("label", {
511
- className: "w-[80px] shrink-0",
512
- children: s("linkAddress")
513
- }),
514
- /* @__PURE__ */ v(ie, {
515
- value: d,
516
- onChange: (e) => f(e.target.value),
517
- placeholder: s("editor.linkTip")
518
- }),
519
- /* @__PURE__ */ v("div", {
520
- className: "absolute bottom-[-30px] left-[80px]",
521
- children: /* @__PURE__ */ v("p", {
522
- className: "text-[#999]",
523
- children: s("editor.linkAliasTip")
524
- })
525
- })
526
- ]
527
- }), /* @__PURE__ */ y("div", {
528
- className: "flex items-center mt-[40px]",
529
- children: [/* @__PURE__ */ v("label", {
530
- className: "w-[80px] shrink-0",
531
- children: s("showContent")
532
- }), /* @__PURE__ */ v(ie, {
533
- value: p,
534
- onChange: (e) => m(e.target.value)
535
- })]
536
- })]
537
- }), /* @__PURE__ */ y("div", {
538
- className: "py-[14px] px-[20px] flex justify-between items-center border-t-[1px] border-solid border-[#e0e0e0]",
539
- children: [/* @__PURE__ */ v("div", { children: /* @__PURE__ */ v(c, {
540
- checked: h,
541
- onChange: (e) => g(e),
542
- children: s("openInNewTab")
543
- }) }), /* @__PURE__ */ y("div", {
544
- className: "flex gap-[15px]",
545
- children: [/* @__PURE__ */ v(k, {
546
- onClick: () => w(!1),
547
- children: s("cancel")
548
- }), /* @__PURE__ */ v(k, {
549
- type: "primary",
550
- onClick: T,
551
- children: s("confirm")
552
- })]
553
- })]
554
- })] })
555
- })
556
- ] });
557
- }, ht = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
558
- let [r] = F(), { link: i } = H(), { t: o } = a();
559
- return /* @__PURE__ */ v(V, {
560
- icon: "cancellink",
561
- tooltip: t ?? o("cancelLink"),
562
- showDisabledTooltip: n,
563
- disabled: e,
564
- onClick: () => {
565
- i && r.dispatchCommand(Ae, null);
566
- }
567
- });
568
- }, W = {
569
- "picture-modal__container": "_picture-modal__container_1067t_1",
570
- "picture-modal__sidebar": "_picture-modal__sidebar_1067t_4",
571
- "picture-modal__menu-list": "_picture-modal__menu-list_1067t_8",
572
- "picture-modal__menu-item": "_picture-modal__menu-item_1067t_13",
573
- "picture-modal__menu-item--active": "_picture-modal__menu-item--active_1067t_22",
574
- "picture-modal__content": "_picture-modal__content_1067t_25",
575
- "picture-modal__content-body": "_picture-modal__content-body_1067t_31",
576
- "picture-modal__ops": "_picture-modal__ops_1067t_34",
577
- "picture-modal__content-title": "_picture-modal__content-title_1067t_42",
578
- "picture-modal__upload-area": "_picture-modal__upload-area_1067t_53",
579
- "picture-modal__upload-area--dragging": "_picture-modal__upload-area--dragging_1067t_69",
580
- "picture-modal__preview-list": "_picture-modal__preview-list_1067t_75",
581
- "picture-modal__preview": "_picture-modal__preview_1067t_75",
582
- "picture-modal__preview--error": "_picture-modal__preview--error_1067t_89",
583
- "picture-modal__preview-image": "_picture-modal__preview-image_1067t_92",
584
- "picture-modal__preview-mask": "_picture-modal__preview-mask_1067t_106",
585
- "picture-modal__preview-spinner": "_picture-modal__preview-spinner_1067t_116",
586
- "picture-modal-spin": "_picture-modal-spin_1067t_1",
587
- "picture-modal__preview-info": "_picture-modal__preview-info_1067t_124",
588
- "picture-modal__preview-filename": "_picture-modal__preview-filename_1067t_128",
589
- "picture-modal__preview-filename--error": "_picture-modal__preview-filename--error_1067t_136",
590
- "picture-modal__preview-size": "_picture-modal__preview-size_1067t_139",
591
- "picture-modal__preview-delete": "_picture-modal__preview-delete_1067t_143",
592
- "picture-modal__upload-text": "_picture-modal__upload-text_1067t_151",
593
- "picture-modal__footer": "_picture-modal__footer_1067t_155"
594
- }, gt = S((e, t) => {
595
- let [n] = re.useForm(), [r, i] = O(""), { t: o } = a(), s = (e) => /^https?:\/\/.+/i.test(e);
596
- return te(t, () => ({ getValue: async () => {
597
- try {
598
- return await n.validateFields(), r;
599
- } catch {
600
- throw Error("URL validation failed");
601
- }
602
- } })), /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("div", {
603
- className: W["picture-modal__content-title"],
604
- "data-title": o("editor.imageUrlNote"),
605
- children: o("editor.enterImageUrl")
606
- }), /* @__PURE__ */ v(re, {
607
- form: n,
608
- children: /* @__PURE__ */ v(re.Item, {
609
- name: "url",
610
- rules: [{
611
- required: !0,
612
- message: o("editor.pleaseEnterImageUrl")
613
- }, { validator: (e, t) => !t || s(t) ? Promise.resolve() : Promise.reject(Error(o("editor.pleaseEnterValidImageUrl"))) }],
614
- children: /* @__PURE__ */ v(ie, {
615
- placeholder: o("editor.pleaseEnterImageUrl"),
616
- value: r,
617
- onChange: (e) => i(e.target.value)
618
- })
619
- })
620
- })] });
621
- });
622
- gt.displayName = "LinkInput";
623
- //#endregion
624
- //#region src/components/Editor/utils/formatTruncatedFilename.ts
625
- var _t = "......", vt = (e, t, n) => {
626
- if (t <= 0 || n(e) <= t) return {
627
- display: e,
628
- truncated: !1
629
- };
630
- let r = e.lastIndexOf("."), i = r > 0 && r < e.length - 1, a = i ? e.slice(0, r) : e, o = i ? e.slice(r) : "", s = a.slice(-2), c = a.slice(0, -2), l = (e) => `${e}${_t}${s}${o}`, u = (e) => n(e) <= t;
631
- if (!u(l(""))) {
632
- let t = `${_t}${o}`;
633
- return {
634
- display: u(t) ? t : e,
635
- truncated: !0
636
- };
637
- }
638
- let d = 0, f = c.length, p = 0;
639
- for (; d <= f;) {
640
- let e = d + f >> 1;
641
- u(l(c.slice(0, e))) ? (p = e, d = e + 1) : f = e - 1;
642
- }
643
- return {
644
- display: l(c.slice(0, p)),
645
- truncated: !0
646
- };
647
- }, yt = x(null), bt = x({ text: "" }), G = () => {
648
- let e = w(yt);
649
- if (!e) throw Error("useEditorContainer must be used within EditorContainerProvider");
650
- return e;
651
- }, xt = () => w(bt), St = "EditorImageUploadingError";
652
- function Ct(e) {
653
- if (!e || typeof e != "object" || !("name" in e)) return !1;
654
- let t = String(e.name);
655
- return t === "AbortError" || t === "CanceledError";
656
- }
657
- function wt(e) {
658
- return p.includes(e.name.split(".").pop()?.toLowerCase() ?? "");
659
- }
660
- function Tt(e) {
661
- if (Number.isFinite(e)) return Math.min(100, Math.max(0, e));
662
- }
663
- function Et(e) {
664
- return e === void 0 ? .55 : .55 * (1 - e / 100);
665
- }
666
- //#endregion
667
- //#region src/components/Editor/ToolbarPlugin/Buttons/PictureButton/UploadImage.tsx
668
- var Dt = {
669
- duration: .2,
670
- ease: [
671
- .4,
672
- 0,
673
- .2,
674
- 1
675
- ]
676
- }, Ot = ({ name: e, error: t }) => {
677
- let n = D(null), [r, i] = O(e), [a, o] = O(!1);
678
- return E(() => {
679
- let t = n.current, r = document.createElement("canvas").getContext("2d");
680
- if (!t || !r) return;
681
- let a = () => {
682
- r.font = getComputedStyle(t).font;
683
- let n = vt(e, t.clientWidth, (e) => r.measureText(e).width);
684
- i(n.display), o(n.truncated);
685
- };
686
- a();
687
- let s = new ResizeObserver(a);
688
- return s.observe(t), () => s.disconnect();
689
- }, [e]), /* @__PURE__ */ v("div", {
690
- ref: n,
691
- className: j(W["picture-modal__preview-filename"], t && W["picture-modal__preview-filename--error"]),
692
- title: a ? e : void 0,
693
- children: r
694
- });
695
- }, kt = (e) => new Promise((t, n) => {
696
- let r = new FileReader();
697
- r.onload = () => t(r.result), r.onerror = () => n(r.error), r.readAsDataURL(e);
698
- }), At = S((t, n) => {
699
- let { upload: r } = G(), [i, o] = O(!1), [s, c] = O([]), l = D(s);
700
- l.current = s;
701
- let u = D(null), d = D(/* @__PURE__ */ new Map()), p = r?.customRequest, [m, h] = A.useMessage(), { t: g } = a(), _ = (e) => (e / 1024).toFixed(1) + "kb", b = (e, t) => {
702
- c((n) => n.map((n) => n.id === e ? {
703
- ...n,
704
- ...t
705
- } : n));
706
- }, x = (e, t) => {
707
- if (!p) {
708
- b(e, { status: "success" });
709
- return;
710
- }
711
- let n = new AbortController();
712
- d.current.set(e, n), p(t, {
713
- signal: n.signal,
714
- onProgress: (t) => {
715
- let n = Tt(t);
716
- n !== void 0 && b(e, { percent: n });
717
- }
718
- }).then((t) => {
719
- n.signal.aborted || b(e, {
720
- status: "success",
721
- src: typeof t == "string" ? t : t.url,
722
- percent: 100,
723
- attachment: typeof t == "string" ? void 0 : t.attachment
724
- });
725
- }).catch((t) => {
726
- n.signal.aborted || Ct(t) || b(e, { status: "error" });
727
- }).finally(() => {
728
- d.current.delete(e);
729
- });
730
- }, S = (e) => wt(e) ? e.size > 5242880 ? (m.warning(g("editor.imageSizeNote")), !1) : !0 : (m.warning(g("editor.onlyImageFormatsSupported")), !1), C = (e) => {
731
- let t = 10 - l.current.length;
732
- if (t <= 0) {
733
- m.warning(g("editor.imageCountNote", { count: 10 }));
734
- return;
735
- }
736
- let n = Array.from(e).filter(S), r = n.slice(0, t);
737
- if (n.length > t && m.warning(g("editor.imageCountNote", { count: 10 })), !r.length) return;
738
- let i = r.map((e) => ({
739
- id: `${e.name}-${e.size}-${e.lastModified}-${Math.random()}`,
740
- file: e,
741
- url: URL.createObjectURL(e),
742
- status: p ? "uploading" : "success"
743
- }));
744
- c((e) => [...e, ...i]), i.forEach((e) => {
745
- x(e.id, e.file);
746
- });
747
- }, w = (e) => {
748
- d.current.get(e)?.abort(), d.current.delete(e), c((t) => {
749
- let n = t.find((t) => t.id === e);
750
- return n && URL.revokeObjectURL(n.url), t.filter((t) => t.id !== e);
751
- });
752
- }, ee = () => {
753
- u.current?.click();
754
- }, E = (e) => {
755
- e.target.files?.length && C(e.target.files), e.target.value = "";
756
- };
757
- return T(() => () => {
758
- d.current.forEach((e) => e.abort()), d.current.clear(), l.current.forEach((e) => URL.revokeObjectURL(e.url));
759
- }, []), te(n, () => ({ getValue: async () => {
760
- if (s.some((e) => e.status === "uploading")) {
761
- let e = Error(g("editor.imageUploading"));
762
- throw e.name = St, e;
763
- }
764
- let e = s.filter((e) => e.status === "success");
765
- if (!e.length) throw m.warning(g("editor.pleaseUploadImageFirst")), Error(g("editor.pleaseUploadImageFirst"));
766
- try {
767
- return await Promise.all(e.map(async (e) => ({
768
- src: e.src ?? await kt(e.file),
769
- fileName: e.file.name,
770
- attachment: e.attachment
771
- })));
772
- } catch {
773
- throw Error(g("editor.operationFailed"));
774
- }
775
- } }), [
776
- s,
777
- m,
778
- g
779
- ]), /* @__PURE__ */ y("div", {
780
- onDragOver: (e) => {
781
- e.preventDefault(), o(!0);
782
- },
783
- onDragLeave: (e) => {
784
- e.preventDefault(), o(!1);
785
- },
786
- onDrop: (e) => {
787
- e.preventDefault(), o(!1), e.dataTransfer.files.length && C(e.dataTransfer.files);
788
- },
789
- children: [
790
- /* @__PURE__ */ y("div", {
791
- className: W["picture-modal__ops"],
792
- children: [/* @__PURE__ */ v("div", {
793
- className: W["picture-modal__content-title"],
794
- "data-title": g("editor.imageSizeNote"),
795
- children: g("editor.uploadImage")
796
- }), /* @__PURE__ */ y("div", {
797
- className: `${W["picture-modal__upload-area"]} ${i ? W["picture-modal__upload-area--dragging"] : ""}`,
798
- onClick: ee,
799
- children: [/* @__PURE__ */ v(e, { name: "upload" }), /* @__PURE__ */ v("span", {
800
- className: W["picture-modal__upload-text"],
801
- children: g("editor.clickOrDragToUpload")
802
- })]
803
- })]
804
- }),
805
- s.length > 0 ? /* @__PURE__ */ v("div", {
806
- className: W["picture-modal__preview-list"],
807
- children: /* @__PURE__ */ v(ae, {
808
- mode: "popLayout",
809
- children: s.map((t) => /* @__PURE__ */ y(oe.div, {
810
- layout: "position",
811
- className: j(W["picture-modal__preview"], t.status === "error" && W["picture-modal__preview--error"]),
812
- initial: {
813
- opacity: 0,
814
- y: 12
815
- },
816
- animate: {
817
- opacity: 1,
818
- y: 0
819
- },
820
- exit: {
821
- opacity: 0,
822
- y: -8
823
- },
824
- transition: Dt,
825
- children: [
826
- /* @__PURE__ */ y("div", {
827
- className: W["picture-modal__preview-image"],
828
- children: [/* @__PURE__ */ v("img", {
829
- src: t.url,
830
- alt: g("editor.previewImage")
831
- }), t.status === "uploading" ? /* @__PURE__ */ v("div", {
832
- className: W["picture-modal__preview-mask"],
833
- style: { opacity: Et(t.percent) },
834
- children: t.percent === void 0 ? /* @__PURE__ */ v("span", { className: W["picture-modal__preview-spinner"] }) : null
835
- }) : null]
836
- }),
837
- /* @__PURE__ */ y("div", {
838
- className: W["picture-modal__preview-info"],
839
- children: [/* @__PURE__ */ v(Ot, {
840
- name: t.file.name,
841
- error: t.status === "error"
842
- }), /* @__PURE__ */ v("div", {
843
- className: W["picture-modal__preview-size"],
844
- children: _(t.file.size)
845
- })]
846
- }),
847
- /* @__PURE__ */ v("div", {
848
- className: W["picture-modal__preview-delete"],
849
- role: "button",
850
- onClick: () => w(t.id),
851
- children: /* @__PURE__ */ v(e, { name: "delete" })
852
- })
853
- ]
854
- }, t.id))
855
- })
856
- }) : null,
857
- /* @__PURE__ */ v("input", {
858
- ref: u,
859
- type: "file",
860
- accept: f,
861
- multiple: !0,
862
- style: { display: "none" },
863
- onChange: E
864
- }),
865
- h
866
- ]
867
- });
868
- });
869
- At.displayName = "UploadImage";
870
- //#endregion
871
- //#region src/components/Editor/commands/ImageCommands.ts
872
- var jt = Te("INSERT_INLINE_IMAGE_COMMAND"), Mt = ({ disabled: t, tooltip: n, showDisabledTooltip: i }) => {
873
- let { t: o } = a(), [s] = F(), { attachmentsBySrcRef: c } = G(), [u, d] = O(!1), f = D(null), p = D(null), m = [{
874
- key: "upload",
875
- title: o("editor.uploadImage"),
876
- icon: /* @__PURE__ */ v(e, { name: "picture" })
877
- }, {
878
- key: "url",
879
- title: o("editor.imageUrl"),
880
- icon: /* @__PURE__ */ v(e, { name: "Insertlink" })
881
- }], [h, g] = O(m[0].key), b = async () => {
882
- try {
883
- if (h === "upload" && p.current) (await p.current.getValue()).forEach((e) => {
884
- e.attachment !== void 0 && c.current.set(e.src, e.attachment), s.dispatchCommand(jt, {
885
- src: e.src,
886
- altText: e.fileName,
887
- dataId: e.attachment?._id
888
- });
889
- });
890
- else if (f.current) {
891
- let e = await f.current.getValue();
892
- s.dispatchCommand(jt, {
893
- src: e,
894
- altText: e
895
- });
896
- }
897
- d(!1);
898
- } catch (e) {
899
- let t = e instanceof Error ? e.message : o("editor.operationFailed");
900
- if (e instanceof Error && e.name === "EditorImageUploadingError") {
901
- A.warning(t);
902
- return;
903
- }
904
- A.error(t);
905
- }
906
- }, x = {
907
- upload: /* @__PURE__ */ v(At, { ref: p }),
908
- url: /* @__PURE__ */ v(gt, { ref: f })
909
- };
910
- return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(V, {
911
- icon: "picture",
912
- tooltip: n ?? o("picture"),
913
- showDisabledTooltip: i,
914
- disabled: t,
915
- onClick: () => d(!0)
916
- }), /* @__PURE__ */ y(r, {
917
- title: o("addPicture"),
918
- open: u,
919
- onOpenChange: d,
920
- width: "620px",
921
- children: [/* @__PURE__ */ y("div", {
922
- className: W["picture-modal__container"],
923
- children: [/* @__PURE__ */ v("div", {
924
- className: W["picture-modal__sidebar"],
925
- children: /* @__PURE__ */ v("ul", {
926
- className: W["picture-modal__menu-list"],
927
- children: m.map((e) => /* @__PURE__ */ y("li", {
928
- className: `${W["picture-modal__menu-item"]} ${h === e.key ? W["picture-modal__menu-item--active"] : ""}`,
929
- onClick: () => g(e.key),
930
- children: [/* @__PURE__ */ v("span", {
931
- className: W["picture-modal__menu-icon"],
932
- children: e.icon
933
- }), /* @__PURE__ */ v("span", { children: e.title })]
934
- }, e.title))
935
- })
936
- }), /* @__PURE__ */ v(l, {
937
- className: W["picture-modal__content"],
938
- contentClassName: W["picture-modal__content-body"],
939
- children: x[h]
940
- })]
941
- }), /* @__PURE__ */ y("div", {
942
- className: W["picture-modal__footer"],
943
- children: [/* @__PURE__ */ v(k, {
944
- onClick: () => d(!1),
945
- children: o("cancel")
946
- }), /* @__PURE__ */ v(k, {
947
- type: "primary",
948
- onClick: b,
949
- children: o("confirm")
950
- })]
951
- })]
952
- })] });
953
- }, Nt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
954
- let [r] = F(), { canUndo: i } = Je(), { t: o } = a();
955
- return /* @__PURE__ */ v(V, {
956
- icon: "chexiao",
957
- tooltip: t ?? o("editor.undo"),
958
- showDisabledTooltip: n,
959
- disabled: e || !i,
960
- onClick: () => {
961
- r.dispatchCommand(we, void 0);
962
- }
963
- });
964
- }, Pt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
965
- let [r] = F(), { canRedo: i } = Je(), { t: o } = a();
966
- return /* @__PURE__ */ v(V, {
967
- icon: "fanhui",
968
- tooltip: t ?? o("editor.redo"),
969
- showDisabledTooltip: n,
970
- disabled: e || !i,
971
- onClick: () => r.dispatchCommand(Ce, void 0)
972
- });
973
- }, Ft = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
974
- let [r] = F(), { strikethrough: i } = H(), { t: o } = a();
975
- return /* @__PURE__ */ v(V, {
976
- icon: "shanchuxian",
977
- tooltip: t ?? o("editor.strikethrough"),
978
- showDisabledTooltip: n,
979
- active: i,
980
- disabled: e,
981
- onClick: () => r.dispatchCommand(P, "strikethrough")
982
- });
983
- }, It = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
984
- let [r] = F(), { superscript: i } = H(), { t: o } = a();
985
- return /* @__PURE__ */ v(V, {
986
- icon: "shangbiao",
987
- tooltip: t ?? o("editor.superscript"),
988
- showDisabledTooltip: n,
989
- active: i,
990
- disabled: e,
991
- onClick: () => r.dispatchCommand(P, "superscript")
992
- });
993
- }, Lt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
994
- let [r] = F(), { subscript: i } = H(), { t: o } = a();
995
- return /* @__PURE__ */ v(V, {
996
- icon: "xiabiao",
997
- tooltip: t ?? o("editor.subscript"),
998
- showDisabledTooltip: n,
999
- active: i,
1000
- disabled: e,
1001
- onClick: () => r.dispatchCommand(P, "subscript")
1002
- });
1003
- }, Rt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1004
- let [r] = F(), { t: i } = a();
1005
- return /* @__PURE__ */ v(V, {
1006
- icon: "zengjiasuojin",
1007
- tooltip: t ?? i("editor.indent"),
1008
- showDisabledTooltip: n,
1009
- disabled: e,
1010
- onClick: () => r.dispatchCommand(xe, void 0)
1011
- });
1012
- }, zt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1013
- let [r] = F(), { canOutdent: i } = H(), { t: o } = a();
1014
- return /* @__PURE__ */ y("div", {
1015
- className: R["bsy-lexical__toolbar-with-divider"],
1016
- children: [/* @__PURE__ */ v("div", { className: R["bsy-lexical__toolbar-divider"] }), /* @__PURE__ */ v(V, {
1017
- icon: "jianshaosuojin",
1018
- tooltip: t ?? o("editor.outdent"),
1019
- showDisabledTooltip: n,
1020
- disabled: e || !i,
1021
- onClick: () => r.dispatchCommand(Se, void 0)
1022
- })]
1023
- });
1024
- }, Bt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1025
- let [r] = F(), { listType: i } = H(), { t: o } = a(), s = i === "bullet";
1026
- return /* @__PURE__ */ v(V, {
1027
- icon: "xuhaoliebiao",
1028
- tooltip: t ?? o("editor.bulletList"),
1029
- showDisabledTooltip: n,
1030
- active: s,
1031
- disabled: e,
1032
- onClick: () => {
1033
- r.dispatchCommand(s ? Ne : Me, void 0);
1034
- }
1035
- });
1036
- }, Vt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1037
- let [r] = F(), { listType: i } = H(), { t: o } = a(), s = i === "number";
1038
- return /* @__PURE__ */ v(V, {
1039
- icon: "bianhaoliebiao",
1040
- tooltip: t ?? o("editor.numberList"),
1041
- showDisabledTooltip: n,
1042
- active: s,
1043
- disabled: e,
1044
- onClick: () => {
1045
- r.dispatchCommand(s ? Ne : je, void 0);
1046
- }
1047
- });
1048
- }, Ht = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1049
- let [r] = F(), { isCodeBlock: i } = H(), { t: o } = a();
1050
- return /* @__PURE__ */ v(V, {
1051
- icon: "daima",
1052
- tooltip: t ?? o("editor.codeBlock"),
1053
- showDisabledTooltip: n,
1054
- active: i,
1055
- disabled: e,
1056
- onClick: () => {
1057
- r.update(() => {
1058
- De(M(), () => i ? ue() : Pe(Ve));
1059
- });
1060
- }
1061
- });
1062
- }, K = {
1063
- "bsy-lexical__table-picker": "_bsy-lexical__table-picker_mv0nn_1",
1064
- "bsy-lexical__table-picker-grid": "_bsy-lexical__table-picker-grid_mv0nn_9",
1065
- "bsy-lexical__table-picker-cell": "_bsy-lexical__table-picker-cell_mv0nn_15",
1066
- "bsy-lexical__table-picker-cell--active": "_bsy-lexical__table-picker-cell--active_mv0nn_24",
1067
- "bsy-lexical__table-picker-label": "_bsy-lexical__table-picker-label_mv0nn_28"
1068
- }, Ut = g(1, 11), Wt = ({ disabled: e, tooltip: r, showDisabledTooltip: i }) => {
1069
- let [s] = F(), { isInTable: c } = H(), { t: l } = a(), d = t(), [f, p] = O(!1), [m, h] = O({
1070
- rows: 0,
1071
- cols: 0
1072
- });
1073
- T(() => {
1074
- c && p(!1);
1075
- }, [c]);
1076
- let g = () => {
1077
- p(!1), h({
1078
- rows: 0,
1079
- cols: 0
1080
- });
1081
- }, { refs: b, floatingStyles: x, getReferenceProps: S, getFloatingProps: C } = u({
1082
- isOpen: f,
1083
- close: g,
1084
- showMask: !1,
1085
- zIndex: d,
1086
- popupMinWidth: "220px",
1087
- offset: L
1088
- });
1089
- return c ? /* @__PURE__ */ v(V, {
1090
- icon: "charubiaoge",
1091
- tooltip: r ?? l("editor.table"),
1092
- showDisabledTooltip: i,
1093
- disabled: !0
1094
- }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("div", {
1095
- className: "inline-flex",
1096
- ref: b.setReference,
1097
- ...S({ onClick: () => p((e) => !e) }),
1098
- children: /* @__PURE__ */ v(V, {
1099
- icon: "charubiaoge",
1100
- tooltip: r ?? l("editor.table"),
1101
- showDisabledTooltip: i,
1102
- disabled: e
1103
- })
1104
- }), /* @__PURE__ */ v(se, { children: /* @__PURE__ */ v(n, {
1105
- zIndex: d,
1106
- children: /* @__PURE__ */ v(ae, { children: f ? /* @__PURE__ */ v(oe.div, {
1107
- ref: b.setFloating,
1108
- ...C(),
1109
- style: {
1110
- ...x,
1111
- zIndex: d
1112
- },
1113
- ...o,
1114
- children: /* @__PURE__ */ y("div", {
1115
- className: K["bsy-lexical__table-picker"],
1116
- onMouseDown: (e) => e.preventDefault(),
1117
- onMouseLeave: () => h({
1118
- rows: 0,
1119
- cols: 0
1120
- }),
1121
- children: [/* @__PURE__ */ v("div", {
1122
- className: K["bsy-lexical__table-picker-grid"],
1123
- children: Ut.map((e) => Ut.map((t) => /* @__PURE__ */ v("button", {
1124
- type: "button",
1125
- className: j(K["bsy-lexical__table-picker-cell"], m.rows >= e && m.cols >= t && K["bsy-lexical__table-picker-cell--active"]),
1126
- onMouseEnter: () => h({
1127
- rows: e,
1128
- cols: t
1129
- }),
1130
- onClick: () => {
1131
- s.dispatchCommand(Fe, {
1132
- rows: String(e),
1133
- columns: String(t),
1134
- includeHeaders: !1
1135
- }), g();
1136
- }
1137
- }, `${e}-${t}`)))
1138
- }), /* @__PURE__ */ y("div", {
1139
- className: K["bsy-lexical__table-picker-label"],
1140
- children: [
1141
- m.rows,
1142
- " × ",
1143
- m.cols
1144
- ]
1145
- })]
1146
- })
1147
- }, "bsy-lexical-table-picker") : null })
1148
- }) })] });
1149
- }, Gt = x(null), Kt = () => {
1150
- let e = w(Gt);
1151
- if (!e) throw Error("useSourceMode must be used within SourceModeProvider");
1152
- return e;
1153
- }, qt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1154
- let { t: r } = a(), { isSourceMode: i, toggleSourceMode: o } = Kt();
1155
- return /* @__PURE__ */ v(V, {
1156
- icon: "yuanmamoshi",
1157
- tooltip: t ?? r("editor.sourceMode"),
1158
- showDisabledTooltip: n,
1159
- active: i,
1160
- disabled: e,
1161
- onClick: o
1162
- });
1163
- }, Jt = ({ disabled: t, tooltip: n, showDisabledTooltip: r }) => {
1164
- let [i] = F(), { headingTag: o, isInTable: s } = H(), { t: c } = a(), { iconSize: l } = z(), u = o || "paragraph", f = [
1165
- {
1166
- key: "paragraph",
1167
- label: c("editor.paragraph")
1168
- },
1169
- {
1170
- key: "h1",
1171
- label: c("editor.heading1")
1172
- },
1173
- {
1174
- key: "h2",
1175
- label: c("editor.heading2")
1176
- },
1177
- {
1178
- key: "h3",
1179
- label: c("editor.heading3")
1180
- }
1181
- ], p = f.find((e) => e.key === u)?.label, m = C((e) => {
1182
- let t = e.key;
1183
- i.update(() => {
1184
- De(M(), () => t === "paragraph" ? ue() : Ie(t));
1185
- });
1186
- }, [i]), h = /* @__PURE__ */ v("div", {
1187
- className: R["bsy-lexical__toolbar-select"],
1188
- style: { width: 62 },
1189
- children: /* @__PURE__ */ v(V, {
1190
- icon: /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("span", {
1191
- className: R["bsy-lexical__toolbar-select-label"],
1192
- children: p
1193
- }), /* @__PURE__ */ v(e, {
1194
- name: "arrow-down",
1195
- size: l,
1196
- className: R["bsy-lexical__toolbar-select-arrow"]
1197
- })] }),
1198
- tooltip: n,
1199
- showDisabledTooltip: r,
1200
- disabled: t || s
1201
- })
1202
- });
1203
- return t || s ? h : /* @__PURE__ */ v(d, {
1204
- menus: f,
1205
- onClick: m,
1206
- showSearch: !1,
1207
- activeKey: [u],
1208
- offset: L,
1209
- style: {
1210
- width: "62px",
1211
- minWidth: "62px"
1212
- },
1213
- children: h
1214
- });
1215
- };
1216
- //#endregion
1217
- //#region src/components/Editor/utils/clearInlineTextFormat.ts
1218
- function Yt() {
1219
- let e = M();
1220
- if (N(e)) {
1221
- I(e, {
1222
- "font-size": null,
1223
- color: null,
1224
- "background-color": null
1225
- });
1226
- for (let t of e.getNodes()) he(t) && t.setFormat(0);
1227
- e.setFormat(0);
1228
- }
1229
- }
1230
- //#endregion
1231
- //#region src/components/Editor/ToolbarPlugin/Buttons/ClearFormatButton.tsx
1232
- var Xt = ({ disabled: e, tooltip: t, showDisabledTooltip: n }) => {
1233
- let [r] = F(), { t: i } = a();
1234
- return /* @__PURE__ */ v(V, {
1235
- icon: "clearTree",
1236
- tooltip: t ?? i("editor.clearFormat"),
1237
- showDisabledTooltip: n,
1238
- disabled: e,
1239
- onClick: () => {
1240
- r.update(() => {
1241
- Yt();
1242
- });
1243
- }
1244
- });
1245
- }, Zt = /<!--bsy-code-(\d+)-->/g, Qt = [
1246
- "quick",
1247
- "formal",
1248
- "colloquial",
1249
- "lively",
1250
- "literary",
1251
- "retro"
1252
- ], $t = {
1253
- quick: "editor.aiPresetQuick",
1254
- formal: "editor.aiPresetFormal",
1255
- colloquial: "editor.aiPresetColloquial",
1256
- lively: "editor.aiPresetLively",
1257
- literary: "editor.aiPresetLiterary",
1258
- retro: "editor.aiPresetRetro"
1259
- };
1260
- //#endregion
1261
- //#region src/components/Editor/utils/htmlText.ts
1262
- function en(e) {
1263
- return /<[^>]*$/.test(e.trim());
1264
- }
1265
- function tn(e) {
1266
- return e ? new DOMParser().parseFromString(e, "text/html").body.textContent ?? "" : "";
1267
- }
1268
- //#endregion
1269
- //#region src/components/Editor/utils/fillRootFromHtml.ts
1270
- var nn = [
1271
- "color",
1272
- "background-color",
1273
- "font-size",
1274
- "font-family",
1275
- "font-weight",
1276
- "text-decoration"
1277
- ], rn = (e) => {
1278
- let t = e.body.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, td, th");
1279
- for (let n of Array.from(t)) {
1280
- let t = n, r = [];
1281
- for (let e of nn) {
1282
- let n = t.style.getPropertyValue(e);
1283
- n && (r.push(`${e}: ${n}`), t.style.removeProperty(e));
1284
- }
1285
- if (!r.length) continue;
1286
- let i = r.join("; ");
1287
- for (let n of Array.from(t.childNodes)) {
1288
- if (n.nodeType === Node.TEXT_NODE && n.textContent) {
1289
- let r = e.createElement("span");
1290
- r.setAttribute("style", i), t.insertBefore(r, n), r.appendChild(n);
1291
- continue;
1292
- }
1293
- if (n.nodeType === Node.ELEMENT_NODE) {
1294
- let e = n, t = e.getAttribute("style");
1295
- e.setAttribute("style", t ? `${t}; ${i}` : i);
1296
- }
1297
- }
1298
- }
1299
- }, an = (e, t) => {
1300
- let n = fe();
1301
- if (n.clear(), t.trim()) {
1302
- let r = new DOMParser().parseFromString(t, "text/html");
1303
- rn(r);
1304
- let i = le(e, r);
1305
- if (i.length) {
1306
- n.select(), pe(i);
1307
- return;
1308
- }
1309
- }
1310
- let r = ue();
1311
- n.append(r), r.select();
1312
- };
1313
- //#endregion
1314
- //#region src/components/Editor/utils/isEmptyEditorHtml.ts
1315
- function on(e, t) {
1316
- return !t.trim() && (e === "<p><br></p>" || e === "<p></p>" || e === "" || /^<p>\s*<br>\s*<\/p>$/.test(e));
1317
- }
1318
- //#endregion
1319
- //#region src/components/Editor/utils/sanitizeEditorHtml.ts
1320
- var sn = /* @__PURE__ */ "p.br.strong.em.b.i.u.s.span.sub.sup.ul.ol.li.a.img.pre.code.table.thead.tbody.tr.td.th.h1.h2.h3.h4.h5.h6".split("."), cn = [
1321
- "href",
1322
- "src",
1323
- "alt",
1324
- "target",
1325
- "rel",
1326
- "colspan",
1327
- "rowspan",
1328
- "data-language",
1329
- "data-id",
1330
- "class",
1331
- "style",
1332
- "width",
1333
- "height"
1334
- ], ln = new Set(/* @__PURE__ */ "color.background-color.font-size.font-family.font-weight.font-style.text-decoration.text-align.max-width.display.vertical-align.width.height.border.margin.padding.padding-inline-start.line-height.list-style-type.list-style-position.list-style.border-collapse.table-layout.overflow-x.white-space.tab-size.border-radius.box-sizing.min-width.min-height.cursor".split(".")), un = /^(?:(?:(?:f|ht)tps?|mailto|blob):|data:image\/[a-z0-9.+-]+[;,].*|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i, dn = new Set([
1335
- "pre",
1336
- "code",
1337
- "td",
1338
- "th"
1339
- ]), fn = new Set(["pre", "code"]), pn = (e, t) => ln.has(e) ? e === "padding-inline-start" ? !0 : e === "padding" || e.startsWith("padding-") ? dn.has(t) : e === "border-radius" ? fn.has(t) : !0 : !1, mn = (e, t) => e.split(";").map((e) => e.trim()).filter(Boolean).map((e) => {
1340
- let n = e.indexOf(":");
1341
- if (n === -1) return null;
1342
- let r = e.slice(0, n).trim().toLowerCase(), i = e.slice(n + 1).trim();
1343
- if (r === "background") {
1344
- if (/url\s*\(/i.test(i)) return null;
1345
- r = "background-color";
1346
- }
1347
- return !pn(r, t) || /expression|javascript:|url\s*\(\s*['"]?\s*javascript/i.test(i) ? null : `${r}: ${i}`;
1348
- }).filter((e) => e !== null).join("; "), hn = !1, gn = () => {
1349
- hn ||= (Le.addHook("uponSanitizeAttribute", (e, t) => {
1350
- if (t.attrName === "href" && /^data:/i.test(t.attrValue)) {
1351
- t.keepAttr = !1;
1352
- return;
1353
- }
1354
- t.attrName === "style" && (t.attrValue = mn(t.attrValue, e.nodeName.toLowerCase()), t.attrValue || (t.keepAttr = !1));
1355
- }), !0);
1356
- };
1357
- function q(e) {
1358
- return e ? (gn(), Le.sanitize(e, {
1359
- ALLOWED_TAGS: sn,
1360
- ALLOWED_ATTR: cn,
1361
- ALLOW_DATA_ATTR: !1,
1362
- ADD_ATTR: ["data-language", "data-id"],
1363
- ALLOWED_URI_REGEXP: un
1364
- })) : "";
1365
- }
1366
- //#endregion
1367
- //#region src/components/Editor/utils/stitchCodePlaceholders.ts
1368
- var _n = "bsy-html-root";
1369
- function J(e) {
1370
- return new DOMParser().parseFromString(`<${_n}>${e}</${_n}>`, "text/html").body.querySelector(_n);
1371
- }
1372
- function vn(e, t) {
1373
- if (!t.length) return e;
1374
- let n = /* @__PURE__ */ new Set(), r = e.replace(Zt, (e, r) => {
1375
- let i = Number(r), a = t[i];
1376
- return a === void 0 ? "" : (n.add(i), a);
1377
- }), i = t.filter((e, t) => !n.has(t)).join("");
1378
- return i ? `${r}${i}` : r;
1379
- }
1380
- function yn(e, t) {
1381
- return vn(bn(e), t);
1382
- }
1383
- function bn(e) {
1384
- if (!/<pre[\s>/]/i.test(e)) return e;
1385
- let t = J(e);
1386
- if (!t) return e;
1387
- let n = t.ownerDocument;
1388
- for (let e of Array.from(t.querySelectorAll("pre"))) {
1389
- let t = n.createComment("bsy-code-dropped");
1390
- e.replaceWith(t);
1391
- }
1392
- return t.innerHTML.replace(/<!--bsy-code-dropped-->/g, "");
1393
- }
1394
- //#endregion
1395
- //#region src/components/Editor/constants/portableEditorStyles.ts
1396
- var Y = {
1397
- margin: "0.6em 0 0.4em",
1398
- "font-weight": "600",
1399
- "line-height": "1.35"
1400
- }, xn = {
1401
- h1: {
1402
- ...Y,
1403
- "font-size": "2em"
1404
- },
1405
- h2: {
1406
- ...Y,
1407
- "font-size": "1.5em"
1408
- },
1409
- h3: {
1410
- ...Y,
1411
- "font-size": "1.25em"
1412
- },
1413
- h4: {
1414
- ...Y,
1415
- "font-size": "1.125em"
1416
- },
1417
- h5: {
1418
- ...Y,
1419
- "font-size": "1em"
1420
- },
1421
- h6: {
1422
- ...Y,
1423
- "font-size": "0.875em"
1424
- }
1425
- }, Sn = {
1426
- color: "#0269ff",
1427
- cursor: "pointer"
1428
- }, Cn = {
1429
- margin: "0",
1430
- "padding-inline-start": "24px",
1431
- "list-style-position": "outside"
1432
- }, wn = [
1433
- "disc",
1434
- "circle",
1435
- "square"
1436
- ], Tn = {
1437
- margin: "0",
1438
- "list-style": "inherit"
1439
- }, En = {
1440
- margin: "0",
1441
- "list-style-type": "none"
1442
- }, Dn = {
1443
- display: "block",
1444
- "box-sizing": "border-box",
1445
- "max-width": "100%",
1446
- margin: "8px 0",
1447
- padding: "8px 12px",
1448
- "overflow-x": "auto",
1449
- "font-family": "Menlo, Consolas, Monaco, monospace",
1450
- "font-size": "13px",
1451
- "line-height": "1.53",
1452
- "white-space": "pre",
1453
- "tab-size": "2",
1454
- "border-radius": "4px",
1455
- "background-color": "rgb(240, 242, 245)",
1456
- color: "#1f2328"
1457
- }, On = {
1458
- "border-collapse": "collapse",
1459
- "table-layout": "fixed",
1460
- width: "100%",
1461
- "overflow-x": "auto",
1462
- margin: "8px 0"
1463
- }, kn = {
1464
- "box-sizing": "border-box",
1465
- "min-width": "75px",
1466
- "min-height": "32px",
1467
- padding: "4px 8px",
1468
- border: "1px solid #d9d9d9",
1469
- "vertical-align": "top"
1470
- }, An = {
1471
- "font-weight": "600",
1472
- "background-color": "#f2f3f5"
1473
- }, X = (e, t) => {
1474
- for (let [n, r] of Object.entries(t)) e.style.getPropertyValue(n) || e.style.setProperty(n, r);
1475
- }, jn = (e) => {
1476
- let t = 0, n = e;
1477
- for (; n;) n.tagName === "UL" && (t += 1), n = n.parentElement;
1478
- return t;
1479
- }, Mn = (e) => {
1480
- for (let t of Array.from(e.querySelectorAll("*"))) {
1481
- if (!(t instanceof HTMLElement)) continue;
1482
- let e = t.tagName.toLowerCase(), n = xn[e];
1483
- if (n && X(t, n), e === "a" && X(t, Sn), e === "ul") {
1484
- let e = Math.min(Math.max(jn(t), 1), wn.length);
1485
- X(t, {
1486
- ...Cn,
1487
- "list-style-type": wn[e - 1]
1488
- });
1489
- }
1490
- e === "ol" && X(t, {
1491
- ...Cn,
1492
- "list-style-type": "decimal"
1493
- }), e === "li" && X(t, t.classList.contains("editor-nested-listitem") ? En : Tn), e === "pre" && X(t, Dn), e === "table" && X(t, On), (e === "td" || e === "th") && (X(t, kn), (e === "th" || t.classList.contains("editor-table-cell-header")) && X(t, An)), t.classList.contains("editor-text-underline-strikethrough") ? X(t, { "text-decoration": "underline line-through" }) : t.classList.contains("editor-text-underline") ? X(t, { "text-decoration": "underline" }) : t.classList.contains("editor-text-strikethrough") && X(t, { "text-decoration": "line-through" });
1494
- for (let e of Array.from(t.classList)) e.startsWith("editor-") && t.classList.remove(e);
1495
- t.classList.length === 0 && t.removeAttribute("class");
1496
- }
1497
- }, Nn = (e) => {
1498
- let t = e.parentNode;
1499
- if (t) {
1500
- for (; e.firstChild;) t.insertBefore(e.firstChild, e);
1501
- t.removeChild(e);
1502
- }
1503
- }, Pn = (e) => {
1504
- let t = !0;
1505
- for (; t;) {
1506
- t = !1;
1507
- for (let n of Array.from(e.querySelectorAll("span, b, i"))) {
1508
- if (n.attributes.length > 0) continue;
1509
- let e = n.tagName.toLowerCase();
1510
- if (e === "span") {
1511
- Nn(n), t = !0;
1512
- continue;
1513
- }
1514
- if (n.childElementCount !== 1 || n.childNodes.length !== 1) continue;
1515
- let r = n.firstElementChild;
1516
- (e === "b" && r?.tagName === "STRONG" || e === "i" && r?.tagName === "EM") && (Nn(n), t = !0);
1517
- }
1518
- }
1519
- };
1520
- function Fn(e) {
1521
- if (!e.trim()) return e;
1522
- let t = new DOMParser().parseFromString(e, "text/html");
1523
- Mn(t.body), Pn(t.body);
1524
- for (let e of Array.from(t.body.querySelectorAll("pre"))) e.textContent?.trim() || e.remove();
1525
- return t.body.innerHTML;
1526
- }
1527
- //#endregion
1528
- //#region src/components/Editor/utils/applyAiPolish.ts
1529
- var In = "<!--bsy-block-->";
1530
- function Ln(e) {
1531
- return e.join(`\n\n${In}\n\n`);
1532
- }
1533
- function Rn(e) {
1534
- return e.includes("<!--bsy-block-->") ? e.split(In).map((e) => e.trim()) : [e];
1535
- }
1536
- function zn(e) {
1537
- return e.split(In).join("").trim().length > 0;
1538
- }
1539
- function Bn(e, t) {
1540
- let n = e.map(() => "");
1541
- if (e.length === 0) return n;
1542
- let r = [], i = [];
1543
- if (e.forEach((e, t) => {
1544
- for (let n of Array.from(e)) i.push(n), r.push(t);
1545
- }), i.length === 0) return n[0] = t, n;
1546
- let a = i, o = Array.from(t), s = a.length, c = o.length, l = Array.from({ length: s + 1 }, () => Array(c + 1).fill(0));
1547
- for (let e = s - 1; e >= 0; e--) for (let t = c - 1; t >= 0; t--) l[e][t] = a[e] === o[t] ? l[e + 1][t + 1] + 1 : Math.max(l[e + 1][t], l[e][t + 1]);
1548
- let u = 0, d = 0, f = r[0];
1549
- for (; u < s && d < c;) a[u] === o[d] ? (f = r[u], n[f] += o[d], u += 1, d += 1) : l[u + 1][d] >= l[u][d + 1] ? (f = r[u], u += 1) : (n[f] += o[d], d += 1);
1550
- for (; d < c;) n[n.length - 1] += o[d], d += 1;
1551
- return n;
1552
- }
1553
- var Vn = new Set(["PRE"]), Hn = new Set([
1554
- "PRE",
1555
- "TABLE",
1556
- "THEAD",
1557
- "TBODY",
1558
- "TR",
1559
- "TD",
1560
- "TH",
1561
- "IMG",
1562
- "BR"
1563
- ]);
1564
- function Un(e) {
1565
- let t = [], n = (e) => {
1566
- if (e.nodeType === Node.ELEMENT_NODE) {
1567
- let t = e.tagName;
1568
- if (Vn.has(t)) return;
1569
- for (let t of Array.from(e.childNodes)) n(t);
1570
- return;
1571
- }
1572
- e.nodeType === Node.TEXT_NODE && t.push(e);
1573
- };
1574
- return n(e), t;
1575
- }
1576
- function Wn(e, t) {
1577
- let n = e;
1578
- for (; n && n !== t && !Hn.has(n.tagName) && !(n.textContent ?? "").trim() && !n.querySelector("img, pre, table, br");) {
1579
- let e = n.parentElement;
1580
- n.remove(), n = e;
1581
- }
1582
- }
1583
- function Gn(e) {
1584
- let t = e.tagName;
1585
- return t === "PRE" || t === "IMG" || t === "TABLE";
1586
- }
1587
- function Kn(e) {
1588
- let t = J(e);
1589
- return t ? Array.from(t.children).filter((e) => !Gn(e)).map((e) => e.textContent ?? "") : [];
1590
- }
1591
- function qn(e) {
1592
- return e.includes("<!--bsy-block-->") ? e : tn(e) || e;
1593
- }
1594
- function Jn(e, t) {
1595
- let n = Un(e);
1596
- if (n.length === 0) {
1597
- t && (e.querySelector("br")?.remove(), e.append(e.ownerDocument.createTextNode(t)));
1598
- return;
1599
- }
1600
- let r = Bn(n.map((e) => e.textContent ?? ""), t);
1601
- for (let t = 0; t < n.length; t++) {
1602
- let i = r[t], a = n[t];
1603
- if (i) {
1604
- a.textContent = i;
1605
- continue;
1606
- }
1607
- let o = a.parentElement;
1608
- a.remove(), Wn(o, e);
1609
- }
1610
- }
1611
- function Yn(e, t) {
1612
- let n = qn(t);
1613
- if (!zn(n) || !e.trim()) return "";
1614
- let r = J(e);
1615
- if (!r) return "";
1616
- let i = Array.from(r.children).filter((e) => !Gn(e));
1617
- if (i.length === 0) return "";
1618
- let a = Rn(n), o = a.length === i.length ? a : Bn(i.map((e) => e.textContent ?? ""), a.join(""));
1619
- for (let e = 0; e < i.length; e++) Jn(i[e], o[e] ?? "");
1620
- return r.innerHTML;
1621
- }
1622
- function Xn(e, t) {
1623
- let n = "";
1624
- e.getEditorState().read(() => {
1625
- n = Fn(q(ce(e, null)));
1626
- }, { editor: e });
1627
- let r = q(Yn(n, t));
1628
- return !r.trim() || on(r, tn(r)) ? !1 : (e.update(() => {
1629
- an(e, r);
1630
- }, { discrete: !0 }), !0);
1631
- }
1632
- //#endregion
1633
- //#region src/components/Editor/utils/extractCodePlaceholders.ts
1634
- function Zn(e) {
1635
- if (!e.trim()) return {
1636
- html: e,
1637
- blocks: []
1638
- };
1639
- let t = new DOMParser().parseFromString(e, "text/html"), n = [], r = Array.from(t.body.querySelectorAll("pre"));
1640
- for (let e of r) {
1641
- n.push(e.outerHTML);
1642
- let r = t.createComment(`bsy-code-${n.length - 1}`);
1643
- e.replaceWith(r);
1644
- }
1645
- return {
1646
- html: t.body.innerHTML,
1647
- blocks: n
1648
- };
1649
- }
1650
- //#endregion
1651
- //#region src/components/Editor/utils/readEditorAiSnapshot.ts
1652
- function Qn(e) {
1653
- let t = "", n = "", r = "";
1654
- e.getEditorState().read(() => {
1655
- n = fe().getTextContent(), t = Fn(q(ce(e, null))), r = Ln(Kn(t));
1656
- }, { editor: e });
1657
- let i = Zn(t);
1658
- return {
1659
- html: t,
1660
- text: n,
1661
- polishText: r,
1662
- htmlWithoutCode: i.html,
1663
- codeBlocks: i.blocks
1664
- };
1665
- }
1666
- //#endregion
1667
- //#region src/components/Editor/Preview/preview.module.scss
1668
- var Z = {
1669
- "bsy-lexical-ai__trigger": "_bsy-lexical-ai__trigger_1ke2e_1",
1670
- "bsy-lexical-ai__icon": "_bsy-lexical-ai__icon_1ke2e_4",
1671
- "bsy-lexical-ai__dialog": "_bsy-lexical-ai__dialog_1ke2e_11",
1672
- "bsy-lexical-ai__pane": "_bsy-lexical-ai__pane_1ke2e_16",
1673
- "bsy-lexical-ai__column": "_bsy-lexical-ai__column_1ke2e_22",
1674
- "bsy-lexical-ai__column-head": "_bsy-lexical-ai__column-head_1ke2e_32",
1675
- "bsy-lexical-ai__column-title": "_bsy-lexical-ai__column-title_1ke2e_39",
1676
- "bsy-lexical-ai__column-title--before": "_bsy-lexical-ai__column-title--before_1ke2e_53",
1677
- "bsy-lexical-ai__column-dot": "_bsy-lexical-ai__column-dot_1ke2e_57",
1678
- "bsy-lexical-ai__column-title--after": "_bsy-lexical-ai__column-title--after_1ke2e_60",
1679
- "bsy-lexical-ai__column-stack": "_bsy-lexical-ai__column-stack_1ke2e_73",
1680
- "bsy-lexical-ai__column-body": "_bsy-lexical-ai__column-body_1ke2e_79",
1681
- "bsy-lexical-ai__think-pin": "_bsy-lexical-ai__think-pin_1ke2e_86",
1682
- "bsy-lexical-ai__think-head": "_bsy-lexical-ai__think-head_1ke2e_90",
1683
- "bsy-lexical-ai__think-label": "_bsy-lexical-ai__think-label_1ke2e_109",
1684
- "bsy-lexical-ai__think-label--shimmer": "_bsy-lexical-ai__think-label--shimmer_1ke2e_113",
1685
- "bsy-lexical-ai-think-shimmer": "_bsy-lexical-ai-think-shimmer_1ke2e_1",
1686
- "bsy-lexical-ai__think-arrow": "_bsy-lexical-ai__think-arrow_1ke2e_124",
1687
- "bsy-lexical-ai__think-arrow--open": "_bsy-lexical-ai__think-arrow--open_1ke2e_131",
1688
- "bsy-lexical-ai__think-icon": "_bsy-lexical-ai__think-icon_1ke2e_134",
1689
- "bsy-lexical-ai-think": "_bsy-lexical-ai-think_1ke2e_1",
1690
- "bsy-lexical-ai__think-collapse": "_bsy-lexical-ai__think-collapse_1ke2e_146",
1691
- "bsy-lexical-ai__think-collapse--grown": "_bsy-lexical-ai__think-collapse--grown_1ke2e_151",
1692
- "bsy-lexical-ai__think-body": "_bsy-lexical-ai__think-body_1ke2e_155",
1693
- "bsy-lexical-ai__html": "_bsy-lexical-ai__html_1ke2e_165",
1694
- "bsy-lexical-ai__footer": "_bsy-lexical-ai__footer_1ke2e_175",
1695
- "bsy-lexical-ai__error": "_bsy-lexical-ai__error_1ke2e_183",
1696
- "bsy-lexical-ai__preset": "_bsy-lexical-ai__preset_1ke2e_188"
1697
- }, $n = "data:image/png;base64,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", er = "data:image/png;base64,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", Q = 16, tr = ({ disabled: t, tooltip: n, showDisabledTooltip: r }) => {
1698
- let [i] = F(), { typeset: o, polish: s, canTypeset: c, canPolish: l, aiOpen: u, setAiOpen: f, aiSessionRef: p } = G(), { hasEditorText: m } = H(), { t: h } = a(), { iconSize: g } = z(), b = t || !c || !m, x = t || !l || !m, S = t || !!u, w = C(() => {
1699
- if (t || !c || !o) return;
1700
- let e = Qn(i);
1701
- e.text.trim() && (p.current = {
1702
- originalHtml: e.html,
1703
- codeBlocks: e.codeBlocks
1704
- }, f("typeset"), o({
1705
- text: e.text,
1706
- html: e.htmlWithoutCode
1707
- }));
1708
- }, [
1709
- p,
1710
- c,
1711
- t,
1712
- i,
1713
- f,
1714
- o
1715
- ]), T = C((e) => {
1716
- if (t || !l || !s) return;
1717
- let n = Qn(i);
1718
- zn(n.polishText) && (p.current = {
1719
- originalHtml: n.html,
1720
- originalText: n.polishText,
1721
- preset: e
1722
- }, f("polish"), s({
1723
- text: n.polishText,
1724
- preset: e
1725
- }));
1726
- }, [
1727
- p,
1728
- l,
1729
- t,
1730
- i,
1731
- s,
1732
- f
1733
- ]), ee = C((e) => {
1734
- if (e.key === "typeset") {
1735
- w();
1736
- return;
1737
- }
1738
- Qt.includes(e.key) && T(e.key);
1739
- }, [T, w]), te = [{
1740
- key: "typeset",
1741
- label: h("editor.aiTypeset"),
1742
- disabled: b,
1743
- icon: /* @__PURE__ */ v("img", {
1744
- src: $n,
1745
- alt: "",
1746
- width: Q,
1747
- height: Q,
1748
- className: Z["bsy-lexical-ai__icon"],
1749
- draggable: !1
1750
- })
1751
- }, {
1752
- key: "polish",
1753
- label: h("editor.aiPolish"),
1754
- disabled: x,
1755
- icon: /* @__PURE__ */ v("img", {
1756
- src: er,
1757
- alt: "",
1758
- width: Q,
1759
- height: Q,
1760
- className: Z["bsy-lexical-ai__icon"],
1761
- draggable: !1
1762
- }),
1763
- children: Qt.map((e) => ({
1764
- key: e,
1765
- label: h($t[e])
1766
- }))
1767
- }], E = /* @__PURE__ */ v("div", {
1768
- className: j(R["bsy-lexical__toolbar-select"], R["bsy-lexical__toolbar-select--ai"], Z["bsy-lexical-ai__trigger"]),
1769
- children: /* @__PURE__ */ v(V, {
1770
- tooltip: n,
1771
- showDisabledTooltip: r,
1772
- disabled: S,
1773
- icon: /* @__PURE__ */ y(_, { children: [
1774
- /* @__PURE__ */ v("img", {
1775
- src: $n,
1776
- alt: "",
1777
- width: Q,
1778
- height: Q,
1779
- className: Z["bsy-lexical-ai__icon"],
1780
- draggable: !1
1781
- }),
1782
- /* @__PURE__ */ v("span", {
1783
- className: R["bsy-lexical__toolbar-select-label"],
1784
- children: h("editor.aiTypeset")
1785
- }),
1786
- /* @__PURE__ */ v(e, {
1787
- name: "arrow-down",
1788
- size: g,
1789
- className: R["bsy-lexical__toolbar-select-arrow"]
1790
- })
1791
- ] })
1792
- })
1793
- });
1794
- return S ? E : /* @__PURE__ */ v(d, {
1795
- menus: te,
1796
- onClick: ee,
1797
- showSearch: !1,
1798
- offset: L,
1799
- style: {
1800
- width: 147,
1801
- minWidth: 147
1802
- },
1803
- children: E
1804
- });
1805
- }, $ = /* @__PURE__ */ new Map(), nr = (e, t) => {
1806
- if (!e) throw Error("registerToolbarButton: name is required");
1807
- $.set(e, t);
1808
- }, rr = (e) => {
1809
- $.delete(e);
1810
- }, ir = (e) => $.get(e), ar = () => Array.from($.keys()), or = {
1811
- undo: Nt,
1812
- redo: Pt,
1813
- bold: Qe,
1814
- underline: $e,
1815
- italic: et,
1816
- strikethrough: Ft,
1817
- superscript: It,
1818
- subscript: Lt,
1819
- heading: Jt,
1820
- fontSize: tt,
1821
- fontColor: ut,
1822
- fill: dt,
1823
- clearFormat: Xt,
1824
- bullet: Bt,
1825
- number: Vt,
1826
- outdent: zt,
1827
- indent: Rt,
1828
- align: ft,
1829
- link: mt,
1830
- unLink: ht,
1831
- picture: Mt,
1832
- code: Ht,
1833
- table: Wt,
1834
- source: qt,
1835
- ai: tr
1836
- };
1837
- Object.entries(or).forEach(([e, t]) => {
1838
- nr(e, t);
1839
- });
1840
- //#endregion
1841
- export { Ke as A, ze as B, xt as C, Ze as D, V as E, Ge as F, Be as I, R as L, Ue as M, We as N, z as O, Ve as P, Re as R, yt as S, H as T, $t as _, rr as a, jt as b, Yn as c, yn as d, q as f, Qt as g, en as h, nr as i, He as j, Ye as k, Fn as l, an as m, ir as n, Z as o, on as p, ar as r, Xn as s, or as t, J as u, Gt as v, G as w, bt as x, Kt as y, L as z };