@naersen/tts-rich-text 0.5.0 → 0.6.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.
package/README.md CHANGED
@@ -87,7 +87,7 @@ const documentValue = ref<JSONContent>(getInitContent())
87
87
  const voiceVersion = ref(2)
88
88
 
89
89
  const features: TtsEditorFeatures = {
90
- tools: ['stop', 'customStop', 'pinyin', 'replace', 'language'],
90
+ tools: ['stop', 'customStop', 'pinyin', 'replace', 'language', 'ignore'],
91
91
  enablePreview: true
92
92
  }
93
93
 
@@ -119,7 +119,22 @@ const getPreviewParams = () => ({
119
119
 
120
120
  ### 功能配置
121
121
 
122
- `features` 可以覆盖工具列表、语言列表、拼音最大选区长度、数字最大长度和试听开关。包内提供 V1/V2 默认能力配置,项目配置拥有最高优先级。
122
+ `features` 可以覆盖工具列表、语言列表、拼音最大选区长度、数字最大长度和试听开关。包内提供 V1/V2 默认能力配置,项目配置拥有最高优先级。V2 默认提供全部工具,V1 默认不包含 `ignore`。
123
+
124
+ `ignore` 对应“忽略读音”工具,只能标记纯文本选区。`convertToTtsFormat()` 会保留句子原文,并为忽略区域输出替换指令:
125
+
126
+ ```ts
127
+ {
128
+ action: 'replace',
129
+ model: 'replace',
130
+ payload: ' ',
131
+ position: 0,
132
+ text: '需要忽略的文本',
133
+ actionCode: 'ignore'
134
+ }
135
+ ```
136
+
137
+ 合成端应按 `position` 和 `text` 将该区域替换为空格,从而保留编辑器可见文本但不合成读音。
123
138
 
124
139
  ### 服务适配
125
140
 
@@ -130,7 +145,7 @@ const getPreviewParams = () => ({
130
145
  - `readFormula`:公式转读法,支持通过 `onChunk` 增量输出。
131
146
  - `synthesizePreview`:选区试听,返回音频 URL 或 Blob。
132
147
  - `synthesizePreviewStream`:保持原编辑器的流式分片试听,逐条调用 `onMessage` 传入后端音频消息。
133
- - `confirmVoiceChange`:接管音色版本冲突确认框;未提供时使用 Element Plus。
148
+ - `confirmVoiceChange`:接管音色版本冲突确认框;未提供时使用 Element Plus MessageBox。
134
149
  - `notify`:接入项目自己的消息组件。
135
150
 
136
151
  所有耗时服务都会收到 `AbortSignal`,项目请求层必须将取消信号继续传给实际请求。
@@ -263,7 +278,7 @@ import {
263
278
  - `getJson()`
264
279
  - `getTtsData()`
265
280
  - `replaceText(text)`
266
- - `handleChangeVoice(currentModel, nextModel)`
281
+ - `handleChangeVoice(currentModel, nextModel)`:返回 `Promise<boolean>`;存在版本冲突时先请求确认,确认后清空冲突内容,取消时返回 `false`。
267
282
 
268
283
  核心转换函数也可以独立导入:
269
284
 
package/dist/base.css CHANGED
@@ -1 +1 @@
1
- .svg-icon[data-v-65f4bcb9]{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;font-size:inherit;width:var(--v6cd858ea);height:var(--v4f17a402);color:var(--v6f0655b0);line-height:1}.svg-icon[data-v-65f4bcb9] svg{display:block;width:100%;height:100%}.cx-button-loading[data-v-5ca09421]{animation:loading-5ca09421 1s linear infinite}@keyframes loading-5ca09421{to{transform:rotate(1turn)}}.el-button.is-plain.cx-button-link[data-v-5ca09421]{height:30px;padding:4px 8px;border-radius:6px;border:none}.el-button.is-plain.cx-button-link.is-disabled[data-v-5ca09421]{border:none;background-color:transparent}.cx-empty[data-v-56b17ee0]{display:flex;flex-direction:column;align-items:center;justify-content:center}.cx-empty .cx-empty-icon[data-v-56b17ee0]{display:flex;justify-content:center;align-items:center}.cx-empty .cx-empty-icon img[data-v-56b17ee0]{height:100%;width:100%;object-fit:contain}.cx-empty .cx-empty-desc[data-v-56b17ee0]{color:#797b80;font-size:14px;line-height:22px}.cx-radio-group[data-v-f56b6fd8]{position:relative;height:36px;padding:3px;border-radius:6px;border:1px solid #d9d9d9;display:flex;align-items:center;gap:3px}.cx-radio-group .cx-radio-slider[data-v-f56b6fd8]{position:absolute;left:0;height:calc(100% - 6px);border-radius:6px;transition:transform .2s cubic-bezier(.34,.69,.1,1)}.cx-radio-group .cx-radio[data-v-f56b6fd8]{-webkit-user-select:none;user-select:none;cursor:pointer;position:relative;z-index:1;flex:1;flex-shrink:0;height:100%;font-size:14px;line-height:22px;border-radius:6px;display:flex;justify-content:center;align-items:center;gap:4px}.cx-radio-group .cx-radio .cx-radio-icon[data-v-f56b6fd8]{display:flex;justify-content:center;align-items:center}.cx-radio-group .cx-radio.cx-radio-selected[data-v-f56b6fd8]{font-weight:600}.cx-radio-group[data-v-f56b6fd8]{background:var(--v74036a63)}.cx-radio-group .cx-radio-slider[data-v-f56b6fd8]{background:var(--v41a8ae01)}.cx-radio-group .cx-radio[data-v-f56b6fd8]{color:var(--c15225e4)}.cx-radio-group .cx-radio[data-v-f56b6fd8]:not(.cx-radio-selected):hover{background-color:var(--v9294f916);color:var(--v5c0c1e88)}.cx-radio-group .cx-radio.cx-radio-selected[data-v-f56b6fd8]{color:var(--v69c0c568)}.cx-spin[data-v-c91521a4]{position:relative;height:100%;width:100%}.cx-spin .cx-spin-mask[data-v-c91521a4]{z-index:9999;position:absolute;left:0;top:0;height:100%;width:100%;background-color:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center}.cx-spin .cx-spin-mask .cx-spin-icon[data-v-c91521a4]{display:flex;flex-direction:column;align-items:center;gap:16px}.cx-spin .cx-spin-mask .cx-spin-icon .cx-spin-tip[data-v-c91521a4]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.cx-upload-wrapper[data-v-a9f6b4ff]{height:212px;background-color:#fff;border-radius:16px;border:1px dashed #d9d9d9;transition:border-color .2s}.cx-upload-wrapper[data-v-a9f6b4ff]:hover,.cx-upload-wrapper.cx-upload-dragging[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-has-value[data-v-a9f6b4ff]{border:2px dashed #0d1839}.cx-upload-wrapper:hover.cx-upload-has-value[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-dragging.cx-upload-has-value[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-has-value.cx-upload-has-value[data-v-a9f6b4ff]{border-style:solid}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff]{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload .cx-upload-title[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-title[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-name[data-v-a9f6b4ff]{margin-top:10px;color:#101114;font-size:14px;font-weight:600;line-height:24px}.cx-upload-wrapper .cx-upload .cx-upload-title.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-title.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-name.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-name.cx-upload-file-name[data-v-a9f6b4ff]{max-width:100%;padding:0 12px}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-result-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-result-icon[data-v-a9f6b4ff]{position:relative;width:56px;height:56px;display:flex;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload .cx-upload-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-result-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-result-icon .cx-upload-clear-icon[data-v-a9f6b4ff]{cursor:pointer;position:absolute;right:-8px;top:-8px}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff]{background-color:#f1f2f5;border-radius:50%}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff]:hover,.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff]:hover{background-color:#d9d9d9}.cx-upload-wrapper .cx-upload .cx-upload-tip[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-tip[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-operate[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-operate[data-v-a9f6b4ff]{margin-top:4px;color:#797b80;line-height:22px}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff] .cx-upload-file-operate,.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff] .cx-upload-file-operate{color:#0057ff;display:flex;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff] .cx-upload-file-operate>span,.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff] .cx-upload-file-operate>span{cursor:pointer;text-decoration-line:underline}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff]{cursor:pointer}.cx-upload-wrapper.cx-upload-disabled[data-v-a9f6b4ff]{cursor:not-allowed;background-color:#f7f8fa;opacity:.7}.tag-node[data-v-d4205ec0]{display:inline;box-sizing:border-box;margin:0 3px;padding:2px 8px;font-size:12px;line-height:20px;min-height:22px;font-weight:400;background:#e5eeff;color:#3d4766;border-radius:4px;-webkit-user-select:none;user-select:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}.icon-wrapper[data-v-d4205ec0]{display:inline-flex;align-items:center;height:20px}.icon-wrapper.tag-icon[data-v-d4205ec0]{margin-right:4px;vertical-align:-.2em}.icon-wrapper.delete-icon[data-v-d4205ec0]{margin-left:4px}.delete-btn[data-v-d4205ec0]{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:10px;color:#7d8ab2}.delete-btn[data-v-d4205ec0]:hover{color:#ea5b41}[data-v-d764ae22] .tiptap-editor{font-size:14px;line-height:28px;word-break:break-word;outline:none}[data-v-d764ae22] .tiptap-editor p{counter-reset:sentence;margin:0}[data-v-d764ae22] .tiptap-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:#797b80;pointer-events:none}.lsh-menu-box[data-v-3171f4b7]{z-index:1;width:120px;padding:4px;border-radius:10px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 6px 24px #1f23291a}.lsh-menu-box .lsh-menu-item[data-v-3171f4b7]{display:flex;align-items:center;justify-content:flex-start;width:100%;height:32px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#101114;font-size:14px;line-height:22px;cursor:pointer}.lsh-menu-box .lsh-menu-item[data-v-3171f4b7]:hover{background:#f1f2f5}.red-text[data-v-259be8b7]{color:#ea5b41}.lsh-text-btn[data-v-259be8b7]{display:flex;justify-content:center;align-items:center;gap:4px;padding:1px 6px!important;cursor:pointer;color:#101114;line-height:22px;background:transparent!important;height:22px}.lsh-text-btn.is-disabled[data-v-259be8b7]{opacity:.4}.lsh-text-btn.blue[data-v-259be8b7]{color:#0057ff}.lsh-text-btn.red[data-v-259be8b7]{color:#ea5b41}.lsh-textarea[data-v-259be8b7]{resize:none;border:none;outline:none;width:100%;background:transparent}.lsh-content-box[data-v-259be8b7]{display:flex;gap:16px;height:444px}.lsh-content-box .lsh-form-box[data-v-259be8b7]{flex:1;display:flex;flex-direction:column;gap:8px}.lsh-content-box .lsh-form-box .lsh-form-top[data-v-259be8b7]{display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-top .lsh-title[data-v-259be8b7]{color:#101114;font-weight:600;line-height:22px}.lsh-content-box .lsh-form-box .lsh-form-bottom[data-v-259be8b7]{flex:1;border-radius:10px;border:1px solid #d9d9d9;padding:12px 16px;color:#101114;line-height:22px;background:#fff;display:flex;flex-direction:column;overflow:hidden}.lsh-content-box .lsh-form-box .lsh-form-bottom.gray[data-v-259be8b7]{background:#f1f2f5}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-tip[data-v-259be8b7]{color:#797b80;font-size:12px;line-height:20px;font-weight:400;display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7]{flex:1;overflow:auto}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7] .cx-spin-mask{background:transparent;opacity:.4}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7] .cx-spin-mask .cx-spin-tip{font-size:14px;font-weight:400}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item[data-v-259be8b7]{display:flex;flex-direction:column;gap:4px}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item[data-v-259be8b7]:nth-child(n+2){border-top:1px solid #eaecf2;padding-top:8px;margin-top:8px}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item .lsh-form-item-top[data-v-259be8b7]{color:#101114;font-weight:600;line-height:22px;display:flex;align-items:center;justify-content:space-between}.lsh-footer-box[data-v-8bafee79]{height:46px;padding:8px;display:flex;align-items:center;justify-content:flex-end}.lsh-footer-box .lsh-option-item[data-v-8bafee79]{height:100%;padding:4px 8px;display:flex;align-items:center;gap:4px;color:#101114;font-size:14px;font-weight:400;line-height:22px}.lsh-footer-box .lsh-option-item[data-v-8bafee79] .svg-icon{font-size:18px}.lsh-footer-box .lsh-option-item.btn[data-v-8bafee79]{cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-footer-box .lsh-option-item.btn.disabled[data-v-8bafee79]{opacity:.4}.lsh-footer-box .lsh-option-item.btn[data-v-8bafee79]:not(.disabled):hover{border-radius:6px;background:#f1f2f5}.lsh-footer-box .lsh-option-item.gray[data-v-8bafee79]{color:#797b80}.lsh-footer-box .lsh-divider[data-v-8bafee79]{width:1px;height:20px;background:#eaecf2;margin:0 8px}.red-text[data-v-e743e5e3]{color:#ea5b41}.lsh-text-btn[data-v-e743e5e3]{display:flex;justify-content:center;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;color:#101114;line-height:22px;height:22px}.lsh-text-btn.stop[data-v-e743e5e3]{color:#ea5b41}.lsh-textarea[data-v-e743e5e3]{resize:none;border:none;outline:none;width:100%;background:transparent}.lsh-content-box[data-v-e743e5e3]{display:flex;gap:16px;height:444px}.lsh-content-box .lsh-form-box[data-v-e743e5e3]{flex:1;display:flex;flex-direction:column;gap:8px}.lsh-content-box .lsh-form-box .lsh-form-top[data-v-e743e5e3]{display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-top .lsh-title[data-v-e743e5e3]{color:#101114;font-weight:600;line-height:22px}.lsh-content-box .lsh-form-box .lsh-form-bottom[data-v-e743e5e3]{flex:1;border-radius:10px;border:1px solid #d9d9d9;padding:12px;color:#101114;line-height:22px;background:#fff;display:flex;flex-direction:column;overflow:hidden}.lsh-content-box .lsh-form-box .lsh-form-bottom.gray[data-v-e743e5e3]{background:#f1f2f5}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-tip[data-v-e743e5e3]{color:#797b80;font-size:12px;line-height:20px;display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-e743e5e3]{flex:1;overflow:auto}.lsh-ai-modal{position:relative;overflow:hidden}.lsh-ai-modal:before{position:absolute;top:0;left:0;width:100%;height:120px;content:"";z-index:0;pointer-events:none;background:radial-gradient(53.22% 165.47% at 52.17% -65.47%,#0038ff14,#0038ff00),radial-gradient(51.16% 163.6% at 85.6% -63.59%,#ff642214,#ff642200),radial-gradient(102.93% 140.61% at 7.43% -30.94%,#00d09e14,#00d09e00),linear-gradient(180deg,#fafbfc 47.89%,#fafbfccc,#fafbfc00)}.lsh-ai-modal .el-dialog__header,.lsh-ai-modal .el-dialog__body,.lsh-ai-modal .el-dialog__footer{position:relative;z-index:1}.lsh-ai-modal .el-dialog__header .el-dialog__headerbtn{right:-2px!important}.rect-btn[data-v-44be22ad]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none}.rect-btn.active[data-v-44be22ad],.rect-btn[data-v-44be22ad]:hover{border-color:#0d1839}.lsh-header-content[data-v-44be22ad]{position:relative}.lsh-header-content .lsh-title[data-v-44be22ad]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-header-content .lsh-radio-group[data-v-44be22ad]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:185px}.lsh-content-box[data-v-44be22ad]{height:444px;display:flex;flex-direction:column}.lsh-content-box .lsh-label[data-v-44be22ad]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:8px}.lsh-content-box .lsh-text-box[data-v-44be22ad]{height:44px;padding:5px 12px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px;border:1px solid #d9d9d9;background:#f1f2f5;color:#101114;font-size:18px;font-weight:600;line-height:26px;width:100%;text-align:center}.lsh-content-box .lsh-polyphonic-box[data-v-44be22ad]{margin-top:16px;flex:1}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-list[data-v-44be22ad]{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-item[data-v-44be22ad]{display:flex;align-items:flex-start;gap:8px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-char[data-v-44be22ad]{display:flex;align-items:center;justify-content:center;width:36px;height:32px;flex-shrink:0;border-radius:10px;background:#f1f2f5;color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-options[data-v-44be22ad]{display:flex;flex-wrap:wrap;gap:8px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option[data-v-44be22ad]{height:32px;padding:4px 12px;border-radius:10px;border:1px solid #d9d9d9;background:#fff;color:#101114;font-size:14px;line-height:22px;cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option.active[data-v-44be22ad],.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option[data-v-44be22ad]:hover{border-color:#0d1839}.lsh-content-box .lsh-options-box[data-v-44be22ad]{margin-top:16px;display:flex;gap:16px}.lsh-content-box .lsh-options-box .lsh-options[data-v-44be22ad]{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;border:1px solid #d9d9d9;background:#fff}.lsh-content-box .lsh-options-box .lsh-initials[data-v-44be22ad]{display:flex;flex-wrap:wrap;gap:4px}.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn[data-v-44be22ad]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn.active[data-v-44be22ad],.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn[data-v-44be22ad]:hover{border-color:#0d1839}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-44be22ad]{border-radius:14px;padding:4px;gap:4px;height:44px}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-44be22ad] .cx-radio{border-radius:10px}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-44be22ad] .cx-radio.cx-radio-selected{font-weight:400}.lsh-content-box .lsh-options-box .lsh-final-box[data-v-44be22ad]{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:14px;background:#f1f2f5}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list[data-v-44be22ad]{display:flex;flex-wrap:wrap;gap:4px}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item[data-v-44be22ad]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;box-shadow:0 1px 4px #0000001a}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item.active[data-v-44be22ad],.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item[data-v-44be22ad]:hover{border-color:#0d1839}.lsh-content-box .lsh-manual-text-box[data-v-44be22ad]{margin-top:16px}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-list[data-v-44be22ad]{display:flex;gap:8px}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item[data-v-44be22ad]{display:flex;min-width:64px;height:52px;padding:4px 12px;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;border:1px solid #d9d9d9;background:#fff;font-size:16px;cursor:pointer}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item.active[data-v-44be22ad],.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item[data-v-44be22ad]:hover{border-color:#0d1839}.lsh-content-box .lsh-manual-text-box .lsh-manual-pinyin[data-v-44be22ad]{color:#666;font-size:12px;line-height:18px}.lsh-header-content[data-v-7c709cca]{width:calc(100% - 52px);display:flex;flex-direction:column;gap:4px}.lsh-header-content .lsh-title[data-v-7c709cca]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-header-content .lsh-tip[data-v-7c709cca]{color:#797b80;font-size:14px;font-weight:400;line-height:22px}.lsh-content-box[data-v-7c709cca]{display:flex;flex-direction:column;gap:24px;padding-bottom:44px}.lsh-content-box .lsh-form-item-label[data-v-7c709cca]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:8px}.lsh-modal-header{height:fit-content!important}.lsh-language-list[data-v-931bb88d]{display:flex;align-items:center;gap:8px;padding:12px;width:264px;flex-wrap:wrap}.lsh-language-list .el-button[data-v-931bb88d]{width:116px}.lsh-number-list[data-v-9fa42093]{display:flex;gap:8px;padding:12px;width:272px;flex-direction:column;align-items:start;overflow:hidden}.lsh-number-list .el-button[data-v-9fa42093]{width:100%;justify-content:flex-start}.lsh-number-label[data-v-9fa42093]{flex-shrink:0}.lsh-stop-list[data-v-0d7c92b5]{display:flex;align-items:center;gap:8px;padding:12px}.lsh-stop-input[data-v-0d7c92b5]{outline:none;border:none;color:#101114;line-height:22px;border-bottom:1px solid #101114;background:transparent;width:42px;height:22px;margin:0 4px}.lsh-stop-input[data-v-0d7c92b5]::placeholder{color:#797b80}.lsh-stop-input[data-v-0d7c92b5]:focus{border-color:#0057ff}.lsh-stop-input[data-v-0d7c92b5] .el-input .el-input__wrapper{box-shadow:none;padding:0;background:transparent}.lsh-content-box[data-v-cdac4822]{display:flex;flex-direction:column;gap:24px;padding-bottom:44px}.lsh-content-box .lsh-title[data-v-cdac4822]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:4px}.lsh-content-box .lsh-tip-text[data-v-cdac4822]{color:#797b80;font-size:14px;font-weight:400;line-height:175%}.word-upload-modal .el-overlay-dialog .el-dialog{overflow:hidden;height:600px;display:flex;flex-direction:column}.word-upload-modal .el-overlay-dialog .el-dialog .el-dialog__body{flex:1}.lsh-toolbar-box[data-v-ef10ee9b]{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.lsh-toolbar-box .lsh-tool-btn[data-v-ef10ee9b]{height:30px;flex-shrink:0;display:flex;align-items:center;padding:4px 8px;border-radius:6px;border:none;white-space:nowrap}.lsh-toolbar-measure[data-v-ef10ee9b]{position:absolute;top:0;left:0;z-index:-1;display:flex;gap:8px;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.lsh-more-list[data-v-ef10ee9b]{display:flex;min-width:140px;padding:4px;flex-direction:column;gap:2px}.lsh-more-list .lsh-more-item[data-v-ef10ee9b]{width:100%;justify-content:flex-start;padding:8px 10px;border:none;border-radius:6px}.el-popper.lsh-popper{width:fit-content!important;padding:0}.tts-rich-text-editor[data-v-139882dc]{box-sizing:border-box;display:flex;width:100%;max-width:100%;min-width:0;height:266px;min-height:220px;padding:0 8px 8px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#101114;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif}.tts-rich-text-editor.is-fullscreen[data-v-139882dc]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100vh;padding:16px;background:#f5f6f8}.tts-rich-text-editor.is-disabled .lsh-editor-box[data-v-139882dc]{background:#f7f8fa}.tts-rich-text-editor.is-disabled .lsh-top[data-v-139882dc],.tts-rich-text-editor.is-disabled .lsh-middle[data-v-139882dc],.tts-rich-text-editor.is-disabled .lsh-bottom[data-v-139882dc]{opacity:.7}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]{position:relative;display:flex;width:100%;min-width:0;height:100%;flex-direction:column;overflow:hidden;border:1px solid #d9d9d9;border-radius:24px;background:#fff;transition:box-shadow .3s}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:hover,.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:focus-within{border-color:#0057ff}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:focus-within{box-shadow:0 8px 16px #0057ff33}.tts-rich-text-editor .lsh-top[data-v-139882dc]{display:flex;height:46px;padding:8px 16px;align-items:center;gap:8px;flex-shrink:0;border-bottom:1px solid #eaecf2}.tts-rich-text-editor .lsh-fullscreen-btn[data-v-139882dc]{display:flex;width:30px;height:30px;padding:0;align-items:center;justify-content:center;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:#101114;cursor:pointer}.tts-rich-text-editor .lsh-fullscreen-btn[data-v-139882dc]:hover{background:#f1f2f5}.tts-rich-text-editor .lsh-middle[data-v-139882dc]{flex:1;min-height:0;padding:12px 16px 0;overflow:hidden}.tts-rich-text-editor .lsh-middle .editor-shell[data-v-139882dc]{height:100%;overflow:auto}.tts-rich-text-editor .lsh-bottom[data-v-139882dc]{display:flex;min-height:46px;min-width:0;align-items:center;justify-content:flex-end;flex-shrink:0}@media (max-width: 640px){.tts-rich-text-editor[data-v-139882dc]{padding:0}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]{border-radius:12px}.tts-rich-text-editor .lsh-top[data-v-139882dc]{padding:8px}}
1
+ .svg-icon[data-v-65f4bcb9]{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;font-size:inherit;width:var(--v6cd858ea);height:var(--v4f17a402);color:var(--v6f0655b0);line-height:1}.svg-icon[data-v-65f4bcb9] svg{display:block;width:100%;height:100%}.cx-button-loading[data-v-5ca09421]{animation:loading-5ca09421 1s linear infinite}@keyframes loading-5ca09421{to{transform:rotate(1turn)}}.el-button.is-plain.cx-button-link[data-v-5ca09421]{height:30px;padding:4px 8px;border-radius:6px;border:none}.el-button.is-plain.cx-button-link.is-disabled[data-v-5ca09421]{border:none;background-color:transparent}.cx-empty[data-v-56b17ee0]{display:flex;flex-direction:column;align-items:center;justify-content:center}.cx-empty .cx-empty-icon[data-v-56b17ee0]{display:flex;justify-content:center;align-items:center}.cx-empty .cx-empty-icon img[data-v-56b17ee0]{height:100%;width:100%;object-fit:contain}.cx-empty .cx-empty-desc[data-v-56b17ee0]{color:#797b80;font-size:14px;line-height:22px}.cx-radio-group[data-v-f56b6fd8]{position:relative;height:36px;padding:3px;border-radius:6px;border:1px solid #d9d9d9;display:flex;align-items:center;gap:3px}.cx-radio-group .cx-radio-slider[data-v-f56b6fd8]{position:absolute;left:0;height:calc(100% - 6px);border-radius:6px;transition:transform .2s cubic-bezier(.34,.69,.1,1)}.cx-radio-group .cx-radio[data-v-f56b6fd8]{-webkit-user-select:none;user-select:none;cursor:pointer;position:relative;z-index:1;flex:1;flex-shrink:0;height:100%;font-size:14px;line-height:22px;border-radius:6px;display:flex;justify-content:center;align-items:center;gap:4px}.cx-radio-group .cx-radio .cx-radio-icon[data-v-f56b6fd8]{display:flex;justify-content:center;align-items:center}.cx-radio-group .cx-radio.cx-radio-selected[data-v-f56b6fd8]{font-weight:600}.cx-radio-group[data-v-f56b6fd8]{background:var(--v74036a63)}.cx-radio-group .cx-radio-slider[data-v-f56b6fd8]{background:var(--v41a8ae01)}.cx-radio-group .cx-radio[data-v-f56b6fd8]{color:var(--c15225e4)}.cx-radio-group .cx-radio[data-v-f56b6fd8]:not(.cx-radio-selected):hover{background-color:var(--v9294f916);color:var(--v5c0c1e88)}.cx-radio-group .cx-radio.cx-radio-selected[data-v-f56b6fd8]{color:var(--v69c0c568)}.cx-spin[data-v-c91521a4]{position:relative;height:100%;width:100%}.cx-spin .cx-spin-mask[data-v-c91521a4]{z-index:9999;position:absolute;left:0;top:0;height:100%;width:100%;background-color:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center}.cx-spin .cx-spin-mask .cx-spin-icon[data-v-c91521a4]{display:flex;flex-direction:column;align-items:center;gap:16px}.cx-spin .cx-spin-mask .cx-spin-icon .cx-spin-tip[data-v-c91521a4]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.cx-upload-wrapper[data-v-a9f6b4ff]{height:212px;background-color:#fff;border-radius:16px;border:1px dashed #d9d9d9;transition:border-color .2s}.cx-upload-wrapper[data-v-a9f6b4ff]:hover,.cx-upload-wrapper.cx-upload-dragging[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-has-value[data-v-a9f6b4ff]{border:2px dashed #0d1839}.cx-upload-wrapper:hover.cx-upload-has-value[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-dragging.cx-upload-has-value[data-v-a9f6b4ff],.cx-upload-wrapper.cx-upload-has-value.cx-upload-has-value[data-v-a9f6b4ff]{border-style:solid}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff]{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload .cx-upload-title[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-title[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-name[data-v-a9f6b4ff]{margin-top:10px;color:#101114;font-size:14px;font-weight:600;line-height:24px}.cx-upload-wrapper .cx-upload .cx-upload-title.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-title.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-name.cx-upload-file-name[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-name.cx-upload-file-name[data-v-a9f6b4ff]{max-width:100%;padding:0 12px}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-result-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-result-icon[data-v-a9f6b4ff]{position:relative;width:56px;height:56px;display:flex;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload .cx-upload-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-result-icon .cx-upload-clear-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-result-icon .cx-upload-clear-icon[data-v-a9f6b4ff]{cursor:pointer;position:absolute;right:-8px;top:-8px}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff]{background-color:#f1f2f5;border-radius:50%}.cx-upload-wrapper .cx-upload .cx-upload-icon[data-v-a9f6b4ff]:hover,.cx-upload-wrapper .cx-upload-result .cx-upload-icon[data-v-a9f6b4ff]:hover{background-color:#d9d9d9}.cx-upload-wrapper .cx-upload .cx-upload-tip[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-tip[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload .cx-upload-file-operate[data-v-a9f6b4ff],.cx-upload-wrapper .cx-upload-result .cx-upload-file-operate[data-v-a9f6b4ff]{margin-top:4px;color:#797b80;line-height:22px}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff] .cx-upload-file-operate,.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff] .cx-upload-file-operate{color:#0057ff;display:flex;justify-content:center;align-items:center}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff] .cx-upload-file-operate>span,.cx-upload-wrapper .cx-upload-result[data-v-a9f6b4ff] .cx-upload-file-operate>span{cursor:pointer;text-decoration-line:underline}.cx-upload-wrapper .cx-upload[data-v-a9f6b4ff]{cursor:pointer}.cx-upload-wrapper.cx-upload-disabled[data-v-a9f6b4ff]{cursor:not-allowed;background-color:#f7f8fa;opacity:.7}.tag-node[data-v-2c169e02]{display:inline;box-sizing:border-box;margin:0 3px;padding:2px 8px;font-size:12px;line-height:20px;min-height:22px;font-weight:400;background:#e5eeff;color:#3d4766;border-radius:4px;-webkit-user-select:none;user-select:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}.icon-wrapper[data-v-2c169e02]{display:inline-flex;align-items:center;height:20px}.icon-wrapper.tag-icon[data-v-2c169e02]{margin-right:4px;vertical-align:-.2em}.icon-wrapper.delete-icon[data-v-2c169e02]{margin-left:4px}.delete-btn[data-v-2c169e02]{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:10px;color:#7d8ab2}.delete-btn[data-v-2c169e02]:hover{color:#ea5b41}[data-v-d764ae22] .tiptap-editor{font-size:14px;line-height:28px;word-break:break-word;outline:none}[data-v-d764ae22] .tiptap-editor p{counter-reset:sentence;margin:0}[data-v-d764ae22] .tiptap-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:#797b80;pointer-events:none}.lsh-menu-box[data-v-fc73c1bc]{z-index:1;width:120px;padding:4px;border-radius:10px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 6px 24px #1f23291a}.lsh-menu-box .lsh-menu-item[data-v-fc73c1bc]{display:flex;align-items:center;justify-content:flex-start;width:100%;height:32px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#101114;font-size:14px;line-height:22px;cursor:pointer}.lsh-menu-box .lsh-menu-item[data-v-fc73c1bc]:hover{background:#f1f2f5}.red-text[data-v-259be8b7]{color:#ea5b41}.lsh-text-btn[data-v-259be8b7]{display:flex;justify-content:center;align-items:center;gap:4px;padding:1px 6px!important;cursor:pointer;color:#101114;line-height:22px;background:transparent!important;height:22px}.lsh-text-btn.is-disabled[data-v-259be8b7]{opacity:.4}.lsh-text-btn.blue[data-v-259be8b7]{color:#0057ff}.lsh-text-btn.red[data-v-259be8b7]{color:#ea5b41}.lsh-textarea[data-v-259be8b7]{resize:none;border:none;outline:none;width:100%;background:transparent}.lsh-content-box[data-v-259be8b7]{display:flex;gap:16px;height:444px}.lsh-content-box .lsh-form-box[data-v-259be8b7]{flex:1;display:flex;flex-direction:column;gap:8px}.lsh-content-box .lsh-form-box .lsh-form-top[data-v-259be8b7]{display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-top .lsh-title[data-v-259be8b7]{color:#101114;font-weight:600;line-height:22px}.lsh-content-box .lsh-form-box .lsh-form-bottom[data-v-259be8b7]{flex:1;border-radius:10px;border:1px solid #d9d9d9;padding:12px 16px;color:#101114;line-height:22px;background:#fff;display:flex;flex-direction:column;overflow:hidden}.lsh-content-box .lsh-form-box .lsh-form-bottom.gray[data-v-259be8b7]{background:#f1f2f5}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-tip[data-v-259be8b7]{color:#797b80;font-size:12px;line-height:20px;font-weight:400;display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7]{flex:1;overflow:auto}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7] .cx-spin-mask{background:transparent;opacity:.4}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-259be8b7] .cx-spin-mask .cx-spin-tip{font-size:14px;font-weight:400}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item[data-v-259be8b7]{display:flex;flex-direction:column;gap:4px}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item[data-v-259be8b7]:nth-child(n+2){border-top:1px solid #eaecf2;padding-top:8px;margin-top:8px}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-form-item .lsh-form-item-top[data-v-259be8b7]{color:#101114;font-weight:600;line-height:22px;display:flex;align-items:center;justify-content:space-between}.lsh-footer-box[data-v-8bafee79]{height:46px;padding:8px;display:flex;align-items:center;justify-content:flex-end}.lsh-footer-box .lsh-option-item[data-v-8bafee79]{height:100%;padding:4px 8px;display:flex;align-items:center;gap:4px;color:#101114;font-size:14px;font-weight:400;line-height:22px}.lsh-footer-box .lsh-option-item[data-v-8bafee79] .svg-icon{font-size:18px}.lsh-footer-box .lsh-option-item.btn[data-v-8bafee79]{cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-footer-box .lsh-option-item.btn.disabled[data-v-8bafee79]{opacity:.4}.lsh-footer-box .lsh-option-item.btn[data-v-8bafee79]:not(.disabled):hover{border-radius:6px;background:#f1f2f5}.lsh-footer-box .lsh-option-item.gray[data-v-8bafee79]{color:#797b80}.lsh-footer-box .lsh-divider[data-v-8bafee79]{width:1px;height:20px;background:#eaecf2;margin:0 8px}.red-text[data-v-e743e5e3]{color:#ea5b41}.lsh-text-btn[data-v-e743e5e3]{display:flex;justify-content:center;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;color:#101114;line-height:22px;height:22px}.lsh-text-btn.stop[data-v-e743e5e3]{color:#ea5b41}.lsh-textarea[data-v-e743e5e3]{resize:none;border:none;outline:none;width:100%;background:transparent}.lsh-content-box[data-v-e743e5e3]{display:flex;gap:16px;height:444px}.lsh-content-box .lsh-form-box[data-v-e743e5e3]{flex:1;display:flex;flex-direction:column;gap:8px}.lsh-content-box .lsh-form-box .lsh-form-top[data-v-e743e5e3]{display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-top .lsh-title[data-v-e743e5e3]{color:#101114;font-weight:600;line-height:22px}.lsh-content-box .lsh-form-box .lsh-form-bottom[data-v-e743e5e3]{flex:1;border-radius:10px;border:1px solid #d9d9d9;padding:12px;color:#101114;line-height:22px;background:#fff;display:flex;flex-direction:column;overflow:hidden}.lsh-content-box .lsh-form-box .lsh-form-bottom.gray[data-v-e743e5e3]{background:#f1f2f5}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-tip[data-v-e743e5e3]{color:#797b80;font-size:12px;line-height:20px;display:flex;align-items:center;justify-content:space-between}.lsh-content-box .lsh-form-box .lsh-form-bottom .lsh-result-box[data-v-e743e5e3]{flex:1;overflow:auto}.lsh-ai-modal{position:relative;overflow:hidden}.lsh-ai-modal:before{position:absolute;top:0;left:0;width:100%;height:120px;content:"";z-index:0;pointer-events:none;background:radial-gradient(53.22% 165.47% at 52.17% -65.47%,#0038ff14,#0038ff00),radial-gradient(51.16% 163.6% at 85.6% -63.59%,#ff642214,#ff642200),radial-gradient(102.93% 140.61% at 7.43% -30.94%,#00d09e14,#00d09e00),linear-gradient(180deg,#fafbfc 47.89%,#fafbfccc,#fafbfc00)}.lsh-ai-modal .el-dialog__header,.lsh-ai-modal .el-dialog__body,.lsh-ai-modal .el-dialog__footer{position:relative;z-index:1}.lsh-ai-modal .el-dialog__header .el-dialog__headerbtn{right:-2px!important}.rect-btn[data-v-f349a294]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none}.rect-btn.active[data-v-f349a294],.rect-btn[data-v-f349a294]:hover{border-color:#0d1839}.lsh-header-content[data-v-f349a294]{position:relative}.lsh-header-content .lsh-title[data-v-f349a294]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-header-content .lsh-radio-group[data-v-f349a294]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:185px}.lsh-content-box[data-v-f349a294]{height:444px;display:flex;flex-direction:column}.lsh-content-box .lsh-label[data-v-f349a294]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:8px}.lsh-content-box .lsh-text-box[data-v-f349a294]{height:44px;padding:5px 12px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px;border:1px solid #d9d9d9;background:#f1f2f5;color:#101114;font-size:18px;font-weight:600;line-height:26px;width:100%;text-align:center}.lsh-content-box .lsh-polyphonic-box[data-v-f349a294]{margin-top:16px;flex:1}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-list[data-v-f349a294]{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-item[data-v-f349a294]{display:flex;align-items:flex-start;gap:8px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-char[data-v-f349a294]{display:flex;align-items:center;justify-content:center;width:36px;height:32px;flex-shrink:0;border-radius:10px;background:#f1f2f5;color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-options[data-v-f349a294]{display:flex;flex-wrap:wrap;gap:8px}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option[data-v-f349a294]{height:32px;padding:4px 12px;border-radius:10px;border:1px solid #d9d9d9;background:#fff;color:#101114;font-size:14px;line-height:22px;cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option.active[data-v-f349a294],.lsh-content-box .lsh-polyphonic-box .lsh-polyphonic-option[data-v-f349a294]:hover{border-color:#0d1839}.lsh-content-box .lsh-options-box[data-v-f349a294]{margin-top:16px;display:flex;gap:16px}.lsh-content-box .lsh-options-box .lsh-options[data-v-f349a294]{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;border:1px solid #d9d9d9;background:#fff}.lsh-content-box .lsh-options-box .lsh-initials[data-v-f349a294]{display:flex;flex-wrap:wrap;gap:4px}.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn[data-v-f349a294]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none}.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn.active[data-v-f349a294],.lsh-content-box .lsh-options-box .lsh-initials .lsh-initial-btn[data-v-f349a294]:hover{border-color:#0d1839}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-f349a294]{border-radius:14px;padding:4px;gap:4px;height:44px}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-f349a294] .cx-radio{border-radius:10px}.lsh-content-box .lsh-options-box .lsh-radio-group-white[data-v-f349a294] .cx-radio.cx-radio-selected{font-weight:400}.lsh-content-box .lsh-options-box .lsh-final-box[data-v-f349a294]{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:14px;background:#f1f2f5}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list[data-v-f349a294]{display:flex;flex-wrap:wrap;gap:4px}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item[data-v-f349a294]{display:flex;width:40px;height:36px;padding:0 12px;justify-content:center;align-items:center;flex-shrink:0;border-radius:10px;background:#f1f2f5;border:1px solid #f1f2f5;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;box-shadow:0 1px 4px #0000001a}.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item.active[data-v-f349a294],.lsh-content-box .lsh-options-box .lsh-final-box .lsh-final-list .lsh-final-item[data-v-f349a294]:hover{border-color:#0d1839}.lsh-content-box .lsh-manual-text-box[data-v-f349a294]{margin-top:16px}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-list[data-v-f349a294]{display:flex;gap:8px}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item[data-v-f349a294]{display:flex;min-width:64px;height:52px;padding:4px 12px;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;border:1px solid #d9d9d9;background:#fff;font-size:16px;cursor:pointer}.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item.active[data-v-f349a294],.lsh-content-box .lsh-manual-text-box .lsh-manual-text-item[data-v-f349a294]:hover{border-color:#0d1839}.lsh-content-box .lsh-manual-text-box .lsh-manual-pinyin[data-v-f349a294]{color:#666;font-size:12px;line-height:18px}.lsh-header-content[data-v-7c709cca]{width:calc(100% - 52px);display:flex;flex-direction:column;gap:4px}.lsh-header-content .lsh-title[data-v-7c709cca]{color:#101114;font-size:16px;font-weight:600;line-height:24px}.lsh-header-content .lsh-tip[data-v-7c709cca]{color:#797b80;font-size:14px;font-weight:400;line-height:22px}.lsh-content-box[data-v-7c709cca]{display:flex;flex-direction:column;gap:24px;padding-bottom:44px}.lsh-content-box .lsh-form-item-label[data-v-7c709cca]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:8px}.lsh-modal-header{height:fit-content!important}.lsh-language-list[data-v-931bb88d]{display:flex;align-items:center;gap:8px;padding:12px;width:264px;flex-wrap:wrap}.lsh-language-list .el-button[data-v-931bb88d]{width:116px}.lsh-number-list[data-v-9fa42093]{display:flex;gap:8px;padding:12px;width:272px;flex-direction:column;align-items:start;overflow:hidden}.lsh-number-list .el-button[data-v-9fa42093]{width:100%;justify-content:flex-start}.lsh-number-label[data-v-9fa42093]{flex-shrink:0}.lsh-stop-list[data-v-a92cb91d]{display:flex;align-items:center;gap:8px;padding:12px}.lsh-stop-input[data-v-a92cb91d]{outline:none;border:none;color:#101114;line-height:22px;border-bottom:1px solid #101114;background:transparent;width:42px;height:22px;margin:0 4px}.lsh-stop-input[data-v-a92cb91d]::placeholder{color:#797b80}.lsh-stop-input[data-v-a92cb91d]:focus{border-color:#0057ff}.lsh-stop-input[data-v-a92cb91d] .el-input .el-input__wrapper{box-shadow:none;padding:0;background:transparent}.lsh-content-box[data-v-cdac4822]{display:flex;flex-direction:column;gap:24px;padding-bottom:44px}.lsh-content-box .lsh-title[data-v-cdac4822]{color:#101114;font-size:14px;font-weight:600;line-height:22px;margin-bottom:4px}.lsh-content-box .lsh-tip-text[data-v-cdac4822]{color:#797b80;font-size:14px;font-weight:400;line-height:175%}.word-upload-modal .el-overlay-dialog .el-dialog{overflow:hidden;height:600px;display:flex;flex-direction:column}.word-upload-modal .el-overlay-dialog .el-dialog .el-dialog__body{flex:1}.lsh-toolbar-box[data-v-c900d867]{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.lsh-toolbar-box .lsh-tool-btn[data-v-c900d867]{height:30px;flex-shrink:0;display:flex;align-items:center;padding:4px 8px;border-radius:6px;border:none;white-space:nowrap}.lsh-toolbar-measure[data-v-c900d867]{position:absolute;top:0;left:0;z-index:-1;display:flex;gap:8px;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.lsh-more-list[data-v-c900d867]{display:flex;min-width:140px;padding:4px;flex-direction:column;gap:2px}.lsh-more-list .lsh-more-item[data-v-c900d867]{width:100%;justify-content:flex-start;padding:8px 10px;border:none;border-radius:6px}.el-popper.lsh-popper{width:fit-content!important;padding:0}.tts-rich-text-editor[data-v-139882dc]{box-sizing:border-box;display:flex;width:100%;max-width:100%;min-width:0;height:266px;min-height:220px;padding:0 8px 8px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#101114;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif}.tts-rich-text-editor.is-fullscreen[data-v-139882dc]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100vh;padding:16px;background:#f5f6f8}.tts-rich-text-editor.is-disabled .lsh-editor-box[data-v-139882dc]{background:#f7f8fa}.tts-rich-text-editor.is-disabled .lsh-top[data-v-139882dc],.tts-rich-text-editor.is-disabled .lsh-middle[data-v-139882dc],.tts-rich-text-editor.is-disabled .lsh-bottom[data-v-139882dc]{opacity:.7}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]{position:relative;display:flex;width:100%;min-width:0;height:100%;flex-direction:column;overflow:hidden;border:1px solid #d9d9d9;border-radius:24px;background:#fff;transition:box-shadow .3s}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:hover,.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:focus-within{border-color:#0057ff}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]:focus-within{box-shadow:0 8px 16px #0057ff33}.tts-rich-text-editor .lsh-top[data-v-139882dc]{display:flex;height:46px;padding:8px 16px;align-items:center;gap:8px;flex-shrink:0;border-bottom:1px solid #eaecf2}.tts-rich-text-editor .lsh-fullscreen-btn[data-v-139882dc]{display:flex;width:30px;height:30px;padding:0;align-items:center;justify-content:center;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:#101114;cursor:pointer}.tts-rich-text-editor .lsh-fullscreen-btn[data-v-139882dc]:hover{background:#f1f2f5}.tts-rich-text-editor .lsh-middle[data-v-139882dc]{flex:1;min-height:0;padding:12px 16px 0;overflow:hidden}.tts-rich-text-editor .lsh-middle .editor-shell[data-v-139882dc]{height:100%;overflow:auto}.tts-rich-text-editor .lsh-bottom[data-v-139882dc]{display:flex;min-height:46px;min-width:0;align-items:center;justify-content:flex-end;flex-shrink:0}@media (max-width: 640px){.tts-rich-text-editor[data-v-139882dc]{padding:0}.tts-rich-text-editor .lsh-editor-box[data-v-139882dc]{border-radius:12px}.tts-rich-text-editor .lsh-top[data-v-139882dc]{padding:8px}}
@@ -18,13 +18,13 @@ declare const __VLS_component: import('vue').DefineComponent<TtsEditorRootProps,
18
18
  replaceText: (text: string) => void;
19
19
  handleChangeVoice: (currentModel: number, nextModel: number) => Promise<boolean>;
20
20
  editor: import('vue').ShallowRef<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
21
- driveMode: import('vue').Ref<import('../tts-rich-text/editor').DriveModeEnum, import('../tts-rich-text/editor').DriveModeEnum>;
21
+ driveMode: import('vue').Ref<import('../tts-rich-text/constants').DriveModeEnum, import('../tts-rich-text/constants').DriveModeEnum>;
22
22
  insertToken: (data: {
23
- categ: import('../tts-rich-text/editor').CustomTagType;
23
+ categ: import('../../core').CustomTagType;
24
24
  payload: Record<string, any>;
25
25
  }) => void;
26
26
  insertWrappedToken: (data: {
27
- categ: import('../tts-rich-text/editor').CustomTagType;
27
+ categ: import('../../core').CustomTagType;
28
28
  payload: Record<string, any>;
29
29
  }) => void;
30
30
  clearContent: () => void;
@@ -0,0 +1,15 @@
1
+ export declare const DriveModeEnum: {
2
+ readonly TEXT: "TEXT";
3
+ readonly AUDIO: "AUDIO";
4
+ };
5
+ export type DriveModeEnum = (typeof DriveModeEnum)[keyof typeof DriveModeEnum];
6
+ export declare const PinyinInitials: readonly ["b", "p", "m", "f", "d", "t", "n", "l", "g", "k", "h", "j", "q", "x", "zh", "ch", "sh", "r", "z", "c", "s", "y", "w"];
7
+ export declare const PinyinTone: {
8
+ label: string;
9
+ value: string;
10
+ }[];
11
+ export declare const PinyinFinal: {
12
+ label: string;
13
+ value: number;
14
+ options: string[];
15
+ }[];
@@ -1,5 +1,3 @@
1
- export * from './utils/index';
2
1
  export * from './nodes/tag-node';
3
2
  export * from './useRichTextEditor';
4
3
  export * from './useEditorToolbar';
5
- export * from './config';
@@ -1,5 +1,5 @@
1
1
  import { ComputedRef } from 'vue';
2
- import { ToolConfig } from './config';
2
+ import { ToolConfig } from '../../../core';
3
3
  import { RichTextEditor } from './useRichTextEditor';
4
4
  type ToolbarTool = (typeof ToolConfig)[keyof typeof ToolConfig];
5
5
  export type ToolbarItem = {
@@ -17,9 +17,9 @@ type UseEditorToolbarOptions = {
17
17
  upload: () => void;
18
18
  };
19
19
  };
20
- export declare const useEditorToolbar: ({ editorContext, openModal }: UseEditorToolbarOptions) => {
20
+ export declare const useEditorToolbar: ({ editorContext, openModal, }: UseEditorToolbarOptions) => {
21
21
  toolList: ComputedRef<ToolbarItem[]>;
22
- languageOptions: ComputedRef<readonly import('../../..').LanguageOption[]>;
22
+ languageOptions: ComputedRef<readonly import('../../../type').LanguageOption[]>;
23
23
  numberToTextList: ComputedRef<{
24
24
  label: string;
25
25
  value: string;
@@ -1,7 +1,8 @@
1
1
  import { Ref } from 'vue';
2
2
  import { Editor, JSONContent } from '@tiptap/core';
3
3
  import { NotificationType, TtsEditorFeatures, TtsRichTextServices } from '../../../type';
4
- import { CustomTagType, DriveModeEnum } from './config';
4
+ import { DriveModeEnum } from '../constants';
5
+ import { CustomTagType } from '../../../core';
5
6
  export interface UseRichTextEditorOptions {
6
7
  content?: JSONContent;
7
8
  textLimitLength?: number;
@@ -61,13 +61,13 @@ declare function __VLS_template(): {
61
61
  replaceText: (text: string) => void;
62
62
  handleChangeVoice: (currentModel: number, nextModel: number) => Promise<boolean>;
63
63
  editor: import('vue').ShallowRef<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
64
- driveMode: import('vue').Ref<import('../tts-rich-text/editor').DriveModeEnum, import('../tts-rich-text/editor').DriveModeEnum>;
64
+ driveMode: import('vue').Ref<import('../tts-rich-text/constants').DriveModeEnum, import('../tts-rich-text/constants').DriveModeEnum>;
65
65
  insertToken: (data: {
66
- categ: import('../tts-rich-text/editor').CustomTagType;
66
+ categ: import('../../core').CustomTagType;
67
67
  payload: Record<string, any>;
68
68
  }) => void;
69
69
  insertWrappedToken: (data: {
70
- categ: import('../tts-rich-text/editor').CustomTagType;
70
+ categ: import('../../core').CustomTagType;
71
71
  payload: Record<string, any>;
72
72
  }) => void;
73
73
  clearContent: () => void;
@@ -154,13 +154,13 @@ declare function __VLS_template(): {
154
154
  replaceText: (text: string) => void;
155
155
  handleChangeVoice: (currentModel: number, nextModel: number) => Promise<boolean>;
156
156
  editor: import('@tiptap/vue-3').Editor | undefined;
157
- driveMode: import('../tts-rich-text/editor').DriveModeEnum;
157
+ driveMode: import('../tts-rich-text/constants').DriveModeEnum;
158
158
  insertToken: (data: {
159
- categ: import('../tts-rich-text/editor').CustomTagType;
159
+ categ: import('../../core').CustomTagType;
160
160
  payload: Record<string, any>;
161
161
  }) => void;
162
162
  insertWrappedToken: (data: {
163
- categ: import('../tts-rich-text/editor').CustomTagType;
163
+ categ: import('../../core').CustomTagType;
164
164
  payload: Record<string, any>;
165
165
  }) => void;
166
166
  clearContent: () => void;
@@ -271,13 +271,13 @@ declare const __VLS_component: import('vue').DefineComponent<TtsRichTextEditorPr
271
271
  replaceText: (text: string) => void;
272
272
  handleChangeVoice: (currentModel: number, nextModel: number) => Promise<boolean>;
273
273
  editor: import('vue').ShallowRef<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
274
- driveMode: import('vue').Ref<import('../tts-rich-text/editor').DriveModeEnum, import('../tts-rich-text/editor').DriveModeEnum>;
274
+ driveMode: import('vue').Ref<import('../tts-rich-text/constants').DriveModeEnum, import('../tts-rich-text/constants').DriveModeEnum>;
275
275
  insertToken: (data: {
276
- categ: import('../tts-rich-text/editor').CustomTagType;
276
+ categ: import('../../core').CustomTagType;
277
277
  payload: Record<string, any>;
278
278
  }) => void;
279
279
  insertWrappedToken: (data: {
280
- categ: import('../tts-rich-text/editor').CustomTagType;
280
+ categ: import('../../core').CustomTagType;
281
281
  payload: Record<string, any>;
282
282
  }) => void;
283
283
  clearContent: () => void;
@@ -364,13 +364,13 @@ declare const __VLS_component: import('vue').DefineComponent<TtsRichTextEditorPr
364
364
  replaceText: (text: string) => void;
365
365
  handleChangeVoice: (currentModel: number, nextModel: number) => Promise<boolean>;
366
366
  editor: import('@tiptap/vue-3').Editor | undefined;
367
- driveMode: import('../tts-rich-text/editor').DriveModeEnum;
367
+ driveMode: import('../tts-rich-text/constants').DriveModeEnum;
368
368
  insertToken: (data: {
369
- categ: import('../tts-rich-text/editor').CustomTagType;
369
+ categ: import('../../core').CustomTagType;
370
370
  payload: Record<string, any>;
371
371
  }) => void;
372
372
  insertWrappedToken: (data: {
373
- categ: import('../tts-rich-text/editor').CustomTagType;
373
+ categ: import('../../core').CustomTagType;
374
374
  payload: Record<string, any>;
375
375
  }) => void;
376
376
  clearContent: () => void;
@@ -8,52 +8,68 @@ export type DeleteMode = (typeof DeleteMode)[keyof typeof DeleteMode];
8
8
  export declare const ToolConfig: {
9
9
  readonly stop: {
10
10
  readonly label: "停顿";
11
+ readonly icon: "editor-stop";
11
12
  readonly type: "stop";
12
13
  readonly deleteMode: "deleteNode";
13
14
  };
14
15
  readonly customStop: {
15
16
  readonly label: "长停顿";
17
+ readonly icon: "editor-stop-long";
16
18
  readonly type: "customStop";
17
19
  readonly deleteMode: "deleteNode";
18
20
  };
19
21
  readonly continue: {
20
22
  readonly label: "连续";
23
+ readonly icon: "editor-continue";
21
24
  readonly type: "continue";
22
25
  readonly deleteMode: "convertToText";
23
26
  };
24
27
  readonly pinyin: {
25
28
  readonly label: "拼音标注";
29
+ readonly icon: "editor-pinyin";
26
30
  readonly type: "pinyin";
27
31
  readonly deleteMode: "convertToText";
28
32
  };
29
33
  readonly replace: {
30
34
  readonly label: "替换";
35
+ readonly icon: "editor-replace";
31
36
  readonly type: "replace";
32
37
  readonly deleteMode: "convertToText";
33
38
  };
34
39
  readonly language: {
35
40
  readonly label: "语种标记";
41
+ readonly icon: "editor-language";
36
42
  readonly type: "language";
37
43
  readonly deleteMode: "convertToText";
38
44
  };
39
45
  readonly number: {
40
46
  readonly label: "数字读法";
47
+ readonly icon: "editor-number";
41
48
  readonly type: "number";
42
49
  };
43
50
  readonly formula: {
44
51
  readonly label: "读公式";
52
+ readonly icon: "editor-formula";
45
53
  readonly type: "formula";
46
54
  };
47
55
  readonly aiRewrite: {
48
56
  readonly label: "AI 改写";
57
+ readonly icon: "editor-ai-rewrite";
49
58
  readonly type: "aiRewrite";
50
59
  };
51
60
  readonly upload: {
52
61
  readonly label: "上传文稿";
62
+ readonly icon: "editor-upload";
53
63
  readonly type: "upload";
54
64
  };
65
+ readonly ignore: {
66
+ readonly label: "忽略读音";
67
+ readonly icon: "editor-ingore";
68
+ readonly type: "ignore";
69
+ readonly deleteMode: "deleteNode";
70
+ };
55
71
  };
56
- export type CustomTagType = 'stop' | 'customStop' | 'continue' | 'pinyin' | 'replace' | 'language';
72
+ export type CustomTagType = 'stop' | 'customStop' | 'continue' | 'pinyin' | 'replace' | 'language' | 'ignore';
57
73
  export declare const LanguageOptions: readonly LanguageOption[];
58
74
  export declare const StopOptions: readonly [{
59
75
  readonly label: "停顿 0.5 秒";