@robot-admin/naive-ui-components 0.4.3 → 0.4.5
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/dist/C_ActionBar.cjs +1 -5
- package/dist/C_ActionBar.js +1 -4
- package/dist/C_ActionBar.js.map +1 -0
- package/dist/C_ActionBar2.js +1 -195
- package/dist/C_ActionBar2.js.map +1 -1
- package/dist/{C_AntV-DGjscTWa.css.map → C_AntV-A3NXx_sF.css.map} +1 -1
- package/dist/C_AntV.cjs +1 -8
- package/dist/C_AntV.js +1 -4
- package/dist/C_AntV.js.map +1 -0
- package/dist/C_AntV2.js +4 -3149
- package/dist/C_AntV2.js.map +1 -1
- package/dist/C_Barcode.cjs +1 -4
- package/dist/C_Barcode.js +1 -3
- package/dist/C_Barcode.js.map +1 -0
- package/dist/C_Barcode2.js +1 -67
- package/dist/C_Barcode2.js.map +1 -1
- package/dist/C_Captcha.cjs +1 -4
- package/dist/C_Captcha.js +1 -3
- package/dist/C_Captcha.js.map +1 -0
- package/dist/C_Captcha2.js +1 -154
- package/dist/C_Captcha2.js.map +1 -1
- package/dist/C_Cascade.cjs +1 -4
- package/dist/C_Cascade.js +1 -3
- package/dist/C_Cascade.js.map +1 -0
- package/dist/C_Cascade2.js +1 -102
- package/dist/C_Cascade2.js.map +1 -1
- package/dist/C_City.cjs +1 -4
- package/dist/C_City.js +1 -3
- package/dist/C_City.js.map +1 -0
- package/dist/C_City2.js +1 -840
- package/dist/C_City2.js.map +1 -1
- package/dist/C_Code.cjs +1 -5
- package/dist/C_Code.js +1 -4
- package/dist/C_Code.js.map +1 -0
- package/dist/C_Code2.js +1 -346
- package/dist/C_Code2.js.map +1 -1
- package/dist/C_CollapsePanel.cjs +1 -6
- package/dist/C_CollapsePanel.js +1 -4
- package/dist/C_CollapsePanel.js.map +1 -0
- package/dist/C_CollapsePanel2.js +1 -318
- package/dist/C_CollapsePanel2.js.map +1 -1
- package/dist/C_Cron.cjs +1 -15
- package/dist/C_Cron.js +1 -4
- package/dist/C_Cron.js.map +1 -0
- package/dist/C_Cron2.js +1 -1209
- package/dist/C_Cron2.js.map +1 -1
- package/dist/C_Date.cjs +1 -4
- package/dist/C_Date.js +1 -3
- package/dist/C_Date.js.map +1 -0
- package/dist/C_Date2.js +1 -218
- package/dist/C_Date2.js.map +1 -1
- package/dist/C_Draggable.cjs +1 -5
- package/dist/C_Draggable.js +1 -3
- package/dist/C_Draggable.js.map +1 -0
- package/dist/C_Draggable2.js +1 -294
- package/dist/C_Draggable2.js.map +1 -1
- package/dist/C_Editor.cjs +1 -4
- package/dist/C_Editor.js +1 -3
- package/dist/C_Editor.js.map +1 -0
- package/dist/C_Editor2.js +1 -159
- package/dist/C_Editor2.js.map +1 -1
- package/dist/{C_FilePreview-B4XgTv-h.css.map → C_FilePreview-DHGlV4OR.css.map} +1 -1
- package/dist/C_FilePreview.cjs +1 -7
- package/dist/C_FilePreview.js +1 -4
- package/dist/C_FilePreview.js.map +1 -0
- package/dist/C_FilePreview2.js +1 -1031
- package/dist/C_FilePreview2.js.map +1 -1
- package/dist/{C_Form-DLb9FtAb.css.map → C_Form-CKHvXL3O.css.map} +1 -1
- package/dist/C_Form.cjs +1 -16
- package/dist/C_Form.js +1 -5
- package/dist/C_Form.js.map +1 -0
- package/dist/C_Form2.js +1 -2569
- package/dist/C_Form2.js.map +1 -1
- package/dist/{C_FormSearch-DlIEoh7X.css.map → C_FormSearch-DBNtnjaL.css.map} +1 -1
- package/dist/C_FormSearch.cjs +1 -6
- package/dist/C_FormSearch.js +1 -3
- package/dist/C_FormSearch.js.map +1 -0
- package/dist/C_FormSearch2.js +1 -355
- package/dist/C_FormSearch2.js.map +1 -1
- package/dist/C_FormulaEditor.cjs +1 -13
- package/dist/C_FormulaEditor.js +1 -4
- package/dist/C_FormulaEditor.js.map +1 -0
- package/dist/C_FormulaEditor2.js +1 -1432
- package/dist/C_FormulaEditor2.js.map +1 -1
- package/dist/C_FullCalendar-DLUdCtqf.css.map +1 -0
- package/dist/C_FullCalendar.cjs +1 -9
- package/dist/C_FullCalendar.js +1 -3
- package/dist/C_FullCalendar.js.map +1 -0
- package/dist/C_FullCalendar2.js +1 -376
- package/dist/C_FullCalendar2.js.map +1 -1
- package/dist/C_GlobalSearch.cjs +1 -5
- package/dist/C_GlobalSearch.js +1 -3
- package/dist/C_GlobalSearch.js.map +1 -0
- package/dist/C_GlobalSearch2.js +1 -335
- package/dist/C_GlobalSearch2.js.map +1 -1
- package/dist/C_Guide.cjs +1 -5
- package/dist/C_Guide.js +1 -4
- package/dist/C_Guide.js.map +1 -0
- package/dist/C_Guide2.js +1 -60
- package/dist/C_Guide2.js.map +1 -1
- package/dist/C_Icon.cjs +1 -4
- package/dist/C_Icon.js +1 -3
- package/dist/C_Icon.js.map +1 -0
- package/dist/C_Icon2.js +1 -285
- package/dist/C_Icon2.js.map +1 -1
- package/dist/C_ImageCropper.cjs +1 -6
- package/dist/C_ImageCropper.js +1 -4
- package/dist/C_ImageCropper.js.map +1 -0
- package/dist/C_ImageCropper2.js +1 -722
- package/dist/C_ImageCropper2.js.map +1 -1
- package/dist/C_Language.cjs +1 -5
- package/dist/C_Language.js +1 -4
- package/dist/C_Language.js.map +1 -0
- package/dist/C_Language2.js +1 -78
- package/dist/C_Language2.js.map +1 -1
- package/dist/C_Map.cjs +1 -7
- package/dist/C_Map.js +1 -3
- package/dist/C_Map.js.map +1 -0
- package/dist/C_Map2.js +1 -198
- package/dist/C_Map2.js.map +1 -1
- package/dist/{C_Markdown-C2uiBVSW.css.map → C_Markdown-BbTvdFCl.css.map} +1 -1
- package/dist/C_Markdown.cjs +1 -4
- package/dist/C_Markdown.js +1 -3
- package/dist/C_Markdown.js.map +1 -0
- package/dist/C_Markdown2.js +1 -185
- package/dist/C_Markdown2.js.map +1 -1
- package/dist/C_NotificationCenter.cjs +1 -20
- package/dist/C_NotificationCenter.js +1 -4
- package/dist/C_NotificationCenter.js.map +1 -0
- package/dist/C_NotificationCenter2.js +1 -1383
- package/dist/C_NotificationCenter2.js.map +1 -1
- package/dist/C_Progress.cjs +1 -4
- package/dist/C_Progress.js +1 -3
- package/dist/C_Progress.js.map +1 -0
- package/dist/C_Progress2.js +1 -102
- package/dist/C_Progress2.js.map +1 -1
- package/dist/C_QRCode.cjs +1 -5
- package/dist/C_QRCode.js +1 -3
- package/dist/C_QRCode.js.map +1 -0
- package/dist/C_QRCode2.js +1 -217
- package/dist/C_QRCode2.js.map +1 -1
- package/dist/C_Signature.cjs +1 -8
- package/dist/C_Signature.js +1 -4
- package/dist/C_Signature.js.map +1 -0
- package/dist/C_Signature2.js +1 -617
- package/dist/C_Signature2.js.map +1 -1
- package/dist/C_SplitPane.cjs +1 -6
- package/dist/C_SplitPane.js +1 -4
- package/dist/C_SplitPane.js.map +1 -0
- package/dist/C_SplitPane2.js +1 -355
- package/dist/C_SplitPane2.js.map +1 -1
- package/dist/C_Steps.cjs +1 -4
- package/dist/C_Steps.js +1 -3
- package/dist/C_Steps.js.map +1 -0
- package/dist/C_Steps2.js +1 -81
- package/dist/C_Steps2.js.map +1 -1
- package/dist/{C_Table-C55H4kPr.css.map → C_Table-tbUx-R4H.css.map} +1 -1
- package/dist/C_Table.cjs +1 -20
- package/dist/C_Table.js +1 -6
- package/dist/C_Table.js.map +1 -0
- package/dist/C_Table2.js +1 -3023
- package/dist/C_Table2.js.map +1 -1
- package/dist/C_Theme.cjs +1 -5
- package/dist/C_Theme.js +1 -4
- package/dist/C_Theme.js.map +1 -0
- package/dist/C_Theme2.js +1 -63
- package/dist/C_Theme2.js.map +1 -1
- package/dist/C_Time.cjs +1 -5
- package/dist/C_Time.js +1 -3
- package/dist/C_Time.js.map +1 -0
- package/dist/C_Time2.js +1 -198
- package/dist/C_Time2.js.map +1 -1
- package/dist/C_Tree.cjs +1 -7
- package/dist/C_Tree.js +1 -4
- package/dist/C_Tree.js.map +1 -0
- package/dist/C_Tree2.js +1 -440
- package/dist/C_Tree2.js.map +1 -1
- package/dist/C_Upload.cjs +1 -12
- package/dist/C_Upload.js +1 -4
- package/dist/C_Upload.js.map +1 -0
- package/dist/C_Upload2.js +2 -1365
- package/dist/C_Upload2.js.map +1 -1
- package/dist/C_VideoPlayer.cjs +1 -23
- package/dist/C_VideoPlayer.js +1 -3
- package/dist/C_VideoPlayer.js.map +1 -0
- package/dist/C_VideoPlayer2.js +3 -1932
- package/dist/C_VideoPlayer2.js.map +1 -1
- package/dist/C_VtableGantt.cjs +1 -6
- package/dist/C_VtableGantt.js +1 -4
- package/dist/C_VtableGantt.js.map +1 -0
- package/dist/C_VtableGantt2.js +1 -872
- package/dist/C_VtableGantt2.js.map +1 -1
- package/dist/C_WaterFall.cjs +1 -13
- package/dist/C_WaterFall.js +1 -3
- package/dist/C_WaterFall.js.map +1 -0
- package/dist/C_WaterFall2.js +1 -364
- package/dist/C_WaterFall2.js.map +1 -1
- package/dist/{C_WorkFlow-CSO86Cuc.css.map → C_WorkFlow-7F6op6qN.css.map} +1 -1
- package/dist/C_WorkFlow.cjs +1 -8
- package/dist/C_WorkFlow.js +1 -4
- package/dist/C_WorkFlow.js.map +1 -0
- package/dist/C_WorkFlow2.js +1 -1983
- package/dist/C_WorkFlow2.js.map +1 -1
- package/dist/chunk.js +1 -18
- package/dist/city.js +1 -4816
- package/dist/constants.d.ts +1 -1
- package/dist/constants2.d.ts +2 -2
- package/dist/constants4.d.ts +8 -8
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.ts +2 -2
- package/dist/export-helper.js +1 -9
- package/dist/index.cjs +2 -413
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -2
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -231
- package/dist/index.js.map +1 -1
- package/dist/index.vue.d.ts +2 -2
- package/dist/index10.vue.d.ts +6 -6
- package/dist/index12.vue.d.ts +4 -4
- package/dist/index13.vue.d.ts +1 -1
- package/dist/index14.vue.d.ts +1 -1
- package/dist/index15.vue.d.ts +1 -1
- package/dist/index16.vue.d.ts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index5.vue.d.ts +1 -1
- package/dist/index7.vue.d.ts +4 -4
- package/dist/index8.vue.d.ts +3 -3
- package/dist/index9.vue.d.ts +1 -1
- package/dist/resolver.cjs +2 -89
- package/dist/resolver.cjs.map +1 -0
- package/dist/resolver.js +1 -86
- package/dist/resolver.js.map +1 -1
- package/dist/storage.js +1 -30
- package/dist/storage.js.map +1 -1
- package/dist/style.css +447 -447
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +2 -2
- package/dist/useCropperCore.d.ts +3 -3
- package/dist/useDraggableLayout.d.ts +9 -9
- package/dist/useDynamicFormState.d.ts +5 -5
- package/dist/useEdgeInteraction.d.ts +4 -12
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useModalEdit.d.ts +45 -21
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.ts +2 -2
- package/dist/useSplitResize.d.ts +6 -6
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +6 -6
- package/dist/useWorkflowValidation.d.ts +3 -3
- package/package.json +1 -2
- package/dist/C_FullCalendar-BULCIlVK.css.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants2.d.ts.map +0 -1
- package/dist/constants3.d.ts.map +0 -1
- package/dist/constants4.d.ts.map +0 -1
- package/dist/constants5.d.ts.map +0 -1
- package/dist/data.d.ts.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.vue.d.ts.map +0 -1
- package/dist/index10.vue.d.ts.map +0 -1
- package/dist/index11.vue.d.ts.map +0 -1
- package/dist/index12.vue.d.ts.map +0 -1
- package/dist/index13.vue.d.ts.map +0 -1
- package/dist/index14.vue.d.ts.map +0 -1
- package/dist/index15.vue.d.ts.map +0 -1
- package/dist/index16.vue.d.ts.map +0 -1
- package/dist/index2.vue.d.ts.map +0 -1
- package/dist/index3.vue.d.ts.map +0 -1
- package/dist/index4.vue.d.ts.map +0 -1
- package/dist/index5.vue.d.ts.map +0 -1
- package/dist/index6.vue.d.ts.map +0 -1
- package/dist/index7.vue.d.ts.map +0 -1
- package/dist/index8.vue.d.ts.map +0 -1
- package/dist/index9.vue.d.ts.map +0 -1
- package/dist/resolver.d.cts.map +0 -1
- package/dist/resolver.d.ts.map +0 -1
- package/dist/useCalendarEvents.d.ts.map +0 -1
- package/dist/useCollapsePanel.d.ts.map +0 -1
- package/dist/useCropperCore.d.ts.map +0 -1
- package/dist/useDraggableLayout.d.ts.map +0 -1
- package/dist/useDynamicFormState.d.ts.map +0 -1
- package/dist/useEdgeInteraction.d.ts.map +0 -1
- package/dist/useFullscreen.d.ts.map +0 -1
- package/dist/useGlobalSearch.d.ts.map +0 -1
- package/dist/useInfiniteScroll.d.ts.map +0 -1
- package/dist/useModalEdit.d.ts.map +0 -1
- package/dist/useQRCode.d.ts.map +0 -1
- package/dist/useSearchState.d.ts.map +0 -1
- package/dist/useSignatureHistory.d.ts.map +0 -1
- package/dist/useSplitResize.d.ts.map +0 -1
- package/dist/useTimeSelection.d.ts.map +0 -1
- package/dist/useTreeOperations.d.ts.map +0 -1
- package/dist/useWorkflowValidation.d.ts.map +0 -1
package/dist/C_Editor2.js
CHANGED
|
@@ -1,160 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { computed, createElementBlock, defineComponent, nextTick, normalizeClass, onBeforeUnmount, onMounted, openBlock, readonly, ref, vShow, watch, withDirectives } from "vue";
|
|
3
|
-
import E from "wangeditor";
|
|
4
|
-
|
|
5
|
-
//#region src/components/C_Editor/index.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
const _hoisted_1 = ["id"];
|
|
7
|
-
var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
8
|
-
name: "C_Editor",
|
|
9
|
-
__name: "index",
|
|
10
|
-
props: {
|
|
11
|
-
editorId: {},
|
|
12
|
-
modelValue: { default: "" },
|
|
13
|
-
placeholder: { default: "" },
|
|
14
|
-
disabled: {
|
|
15
|
-
type: Boolean,
|
|
16
|
-
default: false
|
|
17
|
-
},
|
|
18
|
-
readonly: {
|
|
19
|
-
type: Boolean,
|
|
20
|
-
default: false
|
|
21
|
-
},
|
|
22
|
-
height: { default: 240 },
|
|
23
|
-
theme: { default: "light" }
|
|
24
|
-
},
|
|
25
|
-
emits: [
|
|
26
|
-
"update:modelValue",
|
|
27
|
-
"editor-mounted",
|
|
28
|
-
"editor-change"
|
|
29
|
-
],
|
|
30
|
-
setup(__props, { expose: __expose, emit: __emit }) {
|
|
31
|
-
const props = __props;
|
|
32
|
-
const emit = __emit;
|
|
33
|
-
const editorContainer = ref(null);
|
|
34
|
-
const editorInstance = ref(null);
|
|
35
|
-
const isInitialized = ref(false);
|
|
36
|
-
const isDark = computed(() => props.theme === "dark");
|
|
37
|
-
const initializeEditor = () => {
|
|
38
|
-
if (!editorContainer.value || isInitialized.value) return;
|
|
39
|
-
try {
|
|
40
|
-
const editor = new E(editorContainer.value);
|
|
41
|
-
const editorConfig = editor.config;
|
|
42
|
-
editorConfig.placeholder = props.placeholder;
|
|
43
|
-
editorConfig.height = props.height - 50;
|
|
44
|
-
editorConfig.onchange = (html) => {
|
|
45
|
-
emit("update:modelValue", html);
|
|
46
|
-
emit("editor-change", html);
|
|
47
|
-
};
|
|
48
|
-
editor.create();
|
|
49
|
-
nextTick(() => {
|
|
50
|
-
if (props.modelValue) editor.txt.html(props.modelValue);
|
|
51
|
-
if (props.readonly) editor.disable();
|
|
52
|
-
editorInstance.value = editor;
|
|
53
|
-
isInitialized.value = true;
|
|
54
|
-
emit("editor-mounted", editor);
|
|
55
|
-
});
|
|
56
|
-
} catch (error) {
|
|
57
|
-
console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const destroyEditor = () => {
|
|
61
|
-
if (editorInstance.value && isInitialized.value) try {
|
|
62
|
-
editorInstance.value.destroy();
|
|
63
|
-
editorInstance.value = null;
|
|
64
|
-
isInitialized.value = false;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const setContent = (html) => {
|
|
70
|
-
if (editorInstance.value && isInitialized.value) try {
|
|
71
|
-
editorInstance.value.txt.html(html);
|
|
72
|
-
} catch (error) {
|
|
73
|
-
console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
const getContent = () => {
|
|
77
|
-
if (editorInstance.value && isInitialized.value) try {
|
|
78
|
-
return editorInstance.value.txt.html();
|
|
79
|
-
} catch (error) {
|
|
80
|
-
console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);
|
|
81
|
-
return "";
|
|
82
|
-
}
|
|
83
|
-
return "";
|
|
84
|
-
};
|
|
85
|
-
watch(() => props.modelValue, (newValue) => {
|
|
86
|
-
if (editorInstance.value && isInitialized.value) {
|
|
87
|
-
if (editorInstance.value.txt.html() !== newValue) editorInstance.value.txt.html(newValue || "");
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
watch(() => props.disabled, (disabled) => {
|
|
91
|
-
if (editorInstance.value && isInitialized.value) try {
|
|
92
|
-
if (disabled) editorInstance.value.disable();
|
|
93
|
-
else editorInstance.value.enable();
|
|
94
|
-
} catch (error) {
|
|
95
|
-
console.warn(`[C_Editor] 设置编辑器状态失败`, error);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
watch(() => props.readonly, (readonlyVal) => {
|
|
99
|
-
if (editorInstance.value && isInitialized.value) try {
|
|
100
|
-
if (readonlyVal) editorInstance.value.disable();
|
|
101
|
-
else editorInstance.value.enable();
|
|
102
|
-
} catch (error) {
|
|
103
|
-
console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
const handleEditorFocus = () => {
|
|
107
|
-
if (!editorContainer.value) return;
|
|
108
|
-
const container = editorContainer.value.closest(".form-demo");
|
|
109
|
-
if (container) {
|
|
110
|
-
container.classList.add("editor-focused");
|
|
111
|
-
const containerWidth = container.scrollWidth;
|
|
112
|
-
container.style.maxWidth = `${containerWidth}px`;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
const handleEditorBlur = () => {
|
|
116
|
-
if (!editorContainer.value) return;
|
|
117
|
-
const container = editorContainer.value.closest(".form-demo");
|
|
118
|
-
if (container) {
|
|
119
|
-
container.classList.remove("editor-focused");
|
|
120
|
-
container.style.maxWidth = "";
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
onMounted(() => {
|
|
124
|
-
nextTick(() => {
|
|
125
|
-
initializeEditor();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
onBeforeUnmount(() => {
|
|
129
|
-
destroyEditor();
|
|
130
|
-
});
|
|
131
|
-
__expose({
|
|
132
|
-
initializeEditor,
|
|
133
|
-
destroyEditor,
|
|
134
|
-
setContent,
|
|
135
|
-
getContent,
|
|
136
|
-
handleEditorFocus,
|
|
137
|
-
handleEditorBlur,
|
|
138
|
-
editorInstance: readonly(editorInstance),
|
|
139
|
-
isInitialized: readonly(isInitialized)
|
|
140
|
-
});
|
|
141
|
-
return (_ctx, _cache) => {
|
|
142
|
-
return withDirectives((openBlock(), createElementBlock("div", {
|
|
143
|
-
ref_key: "editorContainer",
|
|
144
|
-
ref: editorContainer,
|
|
145
|
-
id: _ctx.editorId,
|
|
146
|
-
class: normalizeClass(["w-full", { "editor-dark": isDark.value }]),
|
|
147
|
-
onFocusin: handleEditorFocus,
|
|
148
|
-
onFocusout: handleEditorBlur
|
|
149
|
-
}, null, 42, _hoisted_1)), [[vShow, isInitialized.value]]);
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
//#endregion
|
|
155
|
-
//#region src/components/C_Editor/index.vue
|
|
156
|
-
var C_Editor_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e2dec5c9"]]);
|
|
157
|
-
|
|
158
|
-
//#endregion
|
|
159
|
-
export { C_Editor_default as t };
|
|
1
|
+
import{t as e}from"./export-helper.js";import{computed as t,createElementBlock as n,defineComponent as r,nextTick as i,normalizeClass as a,onBeforeUnmount as o,onMounted as s,openBlock as c,readonly as l,ref as u,vShow as d,watch as f,withDirectives as p}from"vue";import m from"wangeditor";const h=[`id`];var g=e(r({name:`C_Editor`,__name:`index`,props:{editorId:{},modelValue:{default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},height:{default:240},theme:{default:`light`}},emits:[`update:modelValue`,`editor-mounted`,`editor-change`],setup(e,{expose:r,emit:g}){let _=e,v=g,y=u(null),b=u(null),x=u(!1),S=t(()=>_.theme===`dark`),C=()=>{if(!(!y.value||x.value))try{let e=new m(y.value),t=e.config;t.placeholder=_.placeholder,t.height=_.height-50,t.onchange=e=>{v(`update:modelValue`,e),v(`editor-change`,e)},e.create(),i(()=>{_.modelValue&&e.txt.html(_.modelValue),_.readonly&&e.disable(),b.value=e,x.value=!0,v(`editor-mounted`,e)})}catch(e){console.error(`[C_Editor] 编辑器初始化失败: ${_.editorId}`,e)}},w=()=>{if(b.value&&x.value)try{b.value.destroy(),b.value=null,x.value=!1}catch(e){console.error(`[C_Editor] 编辑器销毁失败: ${_.editorId}`,e)}},T=e=>{if(b.value&&x.value)try{b.value.txt.html(e)}catch(e){console.warn(`[C_Editor] 设置编辑器内容失败: ${_.editorId}`,e)}},E=()=>{if(b.value&&x.value)try{return b.value.txt.html()}catch(e){return console.warn(`[C_Editor] 获取编辑器内容失败: ${_.editorId}`,e),``}return``};f(()=>_.modelValue,e=>{b.value&&x.value&&b.value.txt.html()!==e&&b.value.txt.html(e||``)}),f(()=>_.disabled,e=>{if(b.value&&x.value)try{e?b.value.disable():b.value.enable()}catch(e){console.warn(`[C_Editor] 设置编辑器状态失败`,e)}}),f(()=>_.readonly,e=>{if(b.value&&x.value)try{e?b.value.disable():b.value.enable()}catch(e){console.warn(`[C_Editor] 设置编辑器只读状态失败`,e)}});let D=()=>{if(!y.value)return;let e=y.value.closest(`.form-demo`);if(e){e.classList.add(`editor-focused`);let t=e.scrollWidth;e.style.maxWidth=`${t}px`}},O=()=>{if(!y.value)return;let e=y.value.closest(`.form-demo`);e&&(e.classList.remove(`editor-focused`),e.style.maxWidth=``)};return s(()=>{i(()=>{C()})}),o(()=>{w()}),r({initializeEditor:C,destroyEditor:w,setContent:T,getContent:E,handleEditorFocus:D,handleEditorBlur:O,editorInstance:l(b),isInitialized:l(x)}),(e,t)=>p((c(),n(`div`,{ref_key:`editorContainer`,ref:y,id:e.editorId,class:a([`w-full`,{"editor-dark":S.value}]),onFocusin:D,onFocusout:O},null,42,h)),[[d,x.value]])}}),[[`__scopeId`,`data-v-e2dec5c9`]]);export{g as t};
|
|
160
2
|
//# sourceMappingURL=C_Editor2.js.map
|
package/dist/C_Editor2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C_Editor2.js","names":["editorId"],"sources":["../src/components/C_Editor/index.vue","../src/components/C_Editor/index.vue","../src/components/C_Editor/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n","/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n","<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECiDA,MAAM,QAAQ;EASd,MAAM,OAAO;EAEb,MAAM,kBAAkB,IAAwB,KAAK;EACrD,MAAM,iBAAiB,IAAS,KAAK;EACrC,MAAM,gBAAgB,IAAa,MAAM;EAEzC,MAAM,SAAS,eAAe,MAAM,UAAU,OAAO;EAErD,MAAM,yBAA+B;AACnC,OAAI,CAAC,gBAAgB,SAAS,cAAc,MAAO;AAEnD,OAAI;IACF,MAAM,SAAS,IAAI,EAAE,gBAAgB,MAAM;IAC3C,MAAM,eAAe,OAAO;AAC5B,iBAAa,cAAc,MAAM;AACjC,iBAAa,SAAS,MAAM,SAAS;AAErC,iBAAa,YAAY,SAAiB;AACxC,UAAK,qBAAqB,KAAK;AAC/B,UAAK,iBAAiB,KAAK;;AAG7B,WAAO,QAAQ;AAEf,mBAAe;AACb,SAAI,MAAM,WACR,QAAO,IAAI,KAAK,MAAM,WAAW;AAEnC,SAAI,MAAM,SACR,QAAO,SAAS;AAElB,oBAAe,QAAQ;AACvB,mBAAc,QAAQ;AACtB,UAAK,kBAAkB,OAAO;MAC9B;YACK,OAAO;AACd,YAAQ,MAAM,wBAAwB,MAAM,YAAY,MAAM;;;EAIlE,MAAM,sBAA4B;AAChC,OAAI,eAAe,SAAS,cAAc,MACxC,KAAI;AACF,mBAAe,MAAM,SAAS;AAC9B,mBAAe,QAAQ;AACvB,kBAAc,QAAQ;YACf,OAAO;AACd,YAAQ,MAAM,uBAAuB,MAAM,YAAY,MAAM;;;EAKnE,MAAM,cAAc,SAAuB;AACzC,OAAI,eAAe,SAAS,cAAc,MACxC,KAAI;AACF,mBAAe,MAAM,IAAI,KAAK,KAAK;YAC5B,OAAO;AACd,YAAQ,KAAK,yBAAyB,MAAM,YAAY,MAAM;;;EAKpE,MAAM,mBAA2B;AAC/B,OAAI,eAAe,SAAS,cAAc,MACxC,KAAI;AACF,WAAO,eAAe,MAAM,IAAI,MAAM;YAC/B,OAAO;AACd,YAAQ,KAAK,yBAAyB,MAAM,YAAY,MAAM;AAC9D,WAAO;;AAGX,UAAO;;AAGT,cACQ,MAAM,aACX,aAAa;AACZ,OAAI,eAAe,SAAS,cAAc,OAExC;QADuB,eAAe,MAAM,IAAI,MAAM,KAC/B,SACrB,gBAAe,MAAM,IAAI,KAAK,YAAY,GAAG;;IAIpD;AAED,cACQ,MAAM,WACX,aAAa;AACZ,OAAI,eAAe,SAAS,cAAc,MACxC,KAAI;AACF,QAAI,SAAU,gBAAe,MAAM,SAAS;QACvC,gBAAe,MAAM,QAAQ;YAC3B,OAAO;AACd,YAAQ,KAAK,wBAAwB,MAAM;;IAIlD;AAED,cACQ,MAAM,WACX,gBAAgB;AACf,OAAI,eAAe,SAAS,cAAc,MACxC,KAAI;AACF,QAAI,YAAa,gBAAe,MAAM,SAAS;QAC1C,gBAAe,MAAM,QAAQ;YAC3B,OAAO;AACd,YAAQ,KAAK,0BAA0B,MAAM;;IAIpD;EAED,MAAM,0BAAgC;AACpC,OAAI,CAAC,gBAAgB,MAAO;GAC5B,MAAM,YAAY,gBAAgB,MAAM,QACtC,aACD;AACD,OAAI,WAAW;AACb,cAAU,UAAU,IAAI,iBAAiB;IACzC,MAAM,iBAAiB,UAAU;AACjC,cAAU,MAAM,WAAW,GAAG,eAAe;;;EAIjD,MAAM,yBAA+B;AACnC,OAAI,CAAC,gBAAgB,MAAO;GAC5B,MAAM,YAAY,gBAAgB,MAAM,QACtC,aACD;AACD,OAAI,WAAW;AACb,cAAU,UAAU,OAAO,iBAAiB;AAC5C,cAAU,MAAM,WAAW;;;AAI/B,kBAAgB;AACd,kBAAe;AACb,sBAAkB;KAClB;IACF;AAEF,wBAAsB;AACpB,kBAAe;IACf;AAEF,WAAa;GACX;GACA;GACA;GACA;GACA;GACA;GACA,gBAAgB,SAAS,eAAe;GACxC,eAAe,SAAS,cAAc;GACvC,CAAC;;uCA9MA,mBAQO,OAAA;aAPD;IAAJ,KAAI;IACH,IAAIA,KAAAA;IAEL,OAAK,eAAA,CAAC,UAAQ,EAAA,eACW,OAAA,OAAM,CAAA,CAAA;IAC9B,WAAS;IACT,YAAU;uCAJH,cAAA,MAAa"}
|
|
1
|
+
{"version":3,"file":"C_Editor2.js","names":["editorId"],"sources":["../src/components/C_Editor/index.vue","../src/components/C_Editor/index.vue","../src/components/C_Editor/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n","/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n","<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-01\r\n * @Description: 富文本编辑器组件(简化主题版)\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n ref=\"editorContainer\"\r\n :id=\"editorId\"\r\n v-show=\"isInitialized\"\r\n class=\"w-full\"\r\n :class=\"{ 'editor-dark': isDark }\"\r\n @focusin=\"handleEditorFocus\"\r\n @focusout=\"handleEditorBlur\"\r\n ></div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n nextTick,\r\n onMounted,\r\n onBeforeUnmount,\r\n readonly,\r\n} from \"vue\";\r\nimport E from \"wangeditor\";\r\n\r\ndefineOptions({ name: \"C_Editor\" });\r\n\r\ninterface Props {\r\n editorId: string;\r\n modelValue?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n height?: number;\r\n theme?: \"light\" | \"dark\";\r\n}\r\n\r\ninterface Emits {\r\n (e: \"update:modelValue\", value: string): void;\r\n (e: \"editor-mounted\", editor: any): void;\r\n (e: \"editor-change\", html: string): void;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: \"\",\r\n placeholder: \"\",\r\n disabled: false,\r\n readonly: false,\r\n height: 240,\r\n theme: \"light\",\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst editorContainer = ref<HTMLElement | null>(null);\r\nconst editorInstance = ref<any>(null);\r\nconst isInitialized = ref<boolean>(false);\r\n\r\nconst isDark = computed(() => props.theme === \"dark\");\r\n\r\nconst initializeEditor = (): void => {\r\n if (!editorContainer.value || isInitialized.value) return;\r\n\r\n try {\r\n const editor = new E(editorContainer.value);\r\n const editorConfig = editor.config as any;\r\n editorConfig.placeholder = props.placeholder;\r\n editorConfig.height = props.height - 50;\r\n\r\n editorConfig.onchange = (html: string) => {\r\n emit(\"update:modelValue\", html);\r\n emit(\"editor-change\", html);\r\n };\r\n\r\n editor.create();\r\n\r\n nextTick(() => {\r\n if (props.modelValue) {\r\n editor.txt.html(props.modelValue);\r\n }\r\n if (props.readonly) {\r\n editor.disable();\r\n }\r\n editorInstance.value = editor;\r\n isInitialized.value = true;\r\n emit(\"editor-mounted\", editor);\r\n });\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器初始化失败: ${props.editorId}`, error);\r\n }\r\n};\r\n\r\nconst destroyEditor = (): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.destroy();\r\n editorInstance.value = null;\r\n isInitialized.value = false;\r\n } catch (error) {\r\n console.error(`[C_Editor] 编辑器销毁失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst setContent = (html: string): void => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n editorInstance.value.txt.html(html);\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器内容失败: ${props.editorId}`, error);\r\n }\r\n }\r\n};\r\n\r\nconst getContent = (): string => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n return editorInstance.value.txt.html();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 获取编辑器内容失败: ${props.editorId}`, error);\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n const currentContent = editorInstance.value.txt.html();\r\n if (currentContent !== newValue) {\r\n editorInstance.value.txt.html(newValue || \"\");\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.disabled,\r\n (disabled) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (disabled) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nwatch(\r\n () => props.readonly,\r\n (readonlyVal) => {\r\n if (editorInstance.value && isInitialized.value) {\r\n try {\r\n if (readonlyVal) editorInstance.value.disable();\r\n else editorInstance.value.enable();\r\n } catch (error) {\r\n console.warn(`[C_Editor] 设置编辑器只读状态失败`, error);\r\n }\r\n }\r\n },\r\n);\r\n\r\nconst handleEditorFocus = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.add(\"editor-focused\");\r\n const containerWidth = container.scrollWidth;\r\n container.style.maxWidth = `${containerWidth}px`;\r\n }\r\n};\r\n\r\nconst handleEditorBlur = (): void => {\r\n if (!editorContainer.value) return;\r\n const container = editorContainer.value.closest(\r\n \".form-demo\",\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.classList.remove(\"editor-focused\");\r\n container.style.maxWidth = \"\";\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n initializeEditor();\r\n });\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n destroyEditor();\r\n});\r\n\r\ndefineExpose({\r\n initializeEditor,\r\n destroyEditor,\r\n setContent,\r\n getContent,\r\n handleEditorFocus,\r\n handleEditorBlur,\r\n editorInstance: readonly(editorInstance),\r\n isInitialized: readonly(isInitialized),\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n/* 暗色主题样式 */\r\n.editor-dark :deep(.w-e-toolbar) {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item) {\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item:hover) {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active) {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container) {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text) {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n.editor-dark :deep(.w-e-text-container .w-e-text:focus) {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container) {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\r\n}\r\n\r\n:deep(.w-e-text) {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\r\n}\r\n\r\n:deep(.w-e-toolbar),\r\n:deep(.w-e-text-container),\r\n:deep(.w-e-text) {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\r\n}\r\n\r\n.editor-focused {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\r\n}\r\n</style>\r\n"],"mappings":"4mBEiDA,IAAM,EAAQ,EASR,EAAO,EAEP,EAAkB,EAAwB,KAAK,CAC/C,EAAiB,EAAS,KAAK,CAC/B,EAAgB,EAAa,GAAM,CAEnC,EAAS,MAAe,EAAM,QAAU,OAAO,CAE/C,MAA+B,CAC/B,MAAC,EAAgB,OAAS,EAAc,OAE5C,GAAI,CACF,IAAM,EAAS,IAAI,EAAE,EAAgB,MAAM,CACrC,EAAe,EAAO,OAC5B,EAAa,YAAc,EAAM,YACjC,EAAa,OAAS,EAAM,OAAS,GAErC,EAAa,SAAY,GAAiB,CACxC,EAAK,oBAAqB,EAAK,CAC/B,EAAK,gBAAiB,EAAK,EAG7B,EAAO,QAAQ,CAEf,MAAe,CACT,EAAM,YACR,EAAO,IAAI,KAAK,EAAM,WAAW,CAE/B,EAAM,UACR,EAAO,SAAS,CAElB,EAAe,MAAQ,EACvB,EAAc,MAAQ,GACtB,EAAK,iBAAkB,EAAO,EAC9B,OACK,EAAO,CACd,QAAQ,MAAM,wBAAwB,EAAM,WAAY,EAAM,GAI5D,MAA4B,CAChC,GAAI,EAAe,OAAS,EAAc,MACxC,GAAI,CACF,EAAe,MAAM,SAAS,CAC9B,EAAe,MAAQ,KACvB,EAAc,MAAQ,SACf,EAAO,CACd,QAAQ,MAAM,uBAAuB,EAAM,WAAY,EAAM,GAK7D,EAAc,GAAuB,CACzC,GAAI,EAAe,OAAS,EAAc,MACxC,GAAI,CACF,EAAe,MAAM,IAAI,KAAK,EAAK,OAC5B,EAAO,CACd,QAAQ,KAAK,yBAAyB,EAAM,WAAY,EAAM,GAK9D,MAA2B,CAC/B,GAAI,EAAe,OAAS,EAAc,MACxC,GAAI,CACF,OAAO,EAAe,MAAM,IAAI,MAAM,OAC/B,EAAO,CAEd,OADA,QAAQ,KAAK,yBAAyB,EAAM,WAAY,EAAM,CACvD,GAGX,MAAO,IAGT,MACQ,EAAM,WACX,GAAa,CACR,EAAe,OAAS,EAAc,OACjB,EAAe,MAAM,IAAI,MAAM,GAC/B,GACrB,EAAe,MAAM,IAAI,KAAK,GAAY,GAAG,EAIpD,CAED,MACQ,EAAM,SACX,GAAa,CACZ,GAAI,EAAe,OAAS,EAAc,MACxC,GAAI,CACE,EAAU,EAAe,MAAM,SAAS,CACvC,EAAe,MAAM,QAAQ,OAC3B,EAAO,CACd,QAAQ,KAAK,uBAAwB,EAAM,GAIlD,CAED,MACQ,EAAM,SACX,GAAgB,CACf,GAAI,EAAe,OAAS,EAAc,MACxC,GAAI,CACE,EAAa,EAAe,MAAM,SAAS,CAC1C,EAAe,MAAM,QAAQ,OAC3B,EAAO,CACd,QAAQ,KAAK,yBAA0B,EAAM,GAIpD,CAED,IAAM,MAAgC,CACpC,GAAI,CAAC,EAAgB,MAAO,OAC5B,IAAM,EAAY,EAAgB,MAAM,QACtC,aACD,CACD,GAAI,EAAW,CACb,EAAU,UAAU,IAAI,iBAAiB,CACzC,IAAM,EAAiB,EAAU,YACjC,EAAU,MAAM,SAAW,GAAG,EAAe,MAI3C,MAA+B,CACnC,GAAI,CAAC,EAAgB,MAAO,OAC5B,IAAM,EAAY,EAAgB,MAAM,QACtC,aACD,CACG,IACF,EAAU,UAAU,OAAO,iBAAiB,CAC5C,EAAU,MAAM,SAAW,YAI/B,MAAgB,CACd,MAAe,CACb,GAAkB,EAClB,EACF,CAEF,MAAsB,CACpB,GAAe,EACf,CAEF,EAAa,CACX,mBACA,gBACA,aACA,aACA,oBACA,mBACA,eAAgB,EAAS,EAAe,CACxC,cAAe,EAAS,EAAc,CACvC,CAAC,eA9MA,EAQO,MAAA,SAPD,kBAAJ,IAAI,EACH,GAAIA,EAAAA,SAEL,MAAK,EAAA,CAAC,SAAQ,CAAA,cACW,EAAA,MAAM,CAAA,CAAA,CAC9B,UAAS,EACT,WAAU,mBAJH,EAAA,MAAa,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C_FilePreview-B4XgTv-h.css","names":[],"sources":["../src/components/C_FilePreview/components/PdfViewer/index.vue?vue&type=style&index=0&scoped=5a57e241&lang.scss","../src/components/C_FilePreview/components/WordViewer/index.vue?vue&type=style&index=0&scoped=42ca58ad&lang.scss","../src/components/C_FilePreview/components/ExcelViewer/index.vue?vue&type=style&index=0&scoped=b6c3e1b9&lang.scss","../src/components/C_FilePreview/index.vue?vue&type=style&index=0&scoped=8042014e&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.file-container[data-v-5a57e241] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-5a57e241] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.file-container .file-viewer[data-v-5a57e241] {\n flex: 1;\n min-height: 300px;\n}","/* unplugin-vue-components disabled */.file-container[data-v-42ca58ad] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-42ca58ad] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.word-layout[data-v-42ca58ad] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.word-layout .word-main[data-v-42ca58ad] {\n flex: 1;\n display: flex;\n overflow: hidden;\n}\n.word-layout .word-main .word-outline[data-v-42ca58ad] {\n width: 280px;\n border-right: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n}\n.word-layout .word-main .word-outline .outline-header[data-v-42ca58ad] {\n padding: 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n}\n.word-layout .word-main .word-outline .outline-content[data-v-42ca58ad] {\n padding: 8px;\n overflow-y: auto;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item[data-v-42ca58ad] {\n padding: 8px 12px;\n cursor: pointer;\n border-radius: 4px;\n font-size: 14px;\n color: var(--c-text-1, #333);\n}\n.word-layout .word-main .word-outline .outline-content .outline-item[data-v-42ca58ad]:hover {\n background-color: #e6f3ff;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-1[data-v-42ca58ad] {\n padding-left: 12px;\n font-weight: 600;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-2[data-v-42ca58ad] {\n padding-left: 24px;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-3[data-v-42ca58ad], .word-layout .word-main .word-outline .outline-content .outline-item.level-4[data-v-42ca58ad] {\n padding-left: 36px;\n font-size: 13px;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-4[data-v-42ca58ad] {\n padding-left: 48px;\n}\n.word-layout .word-main .word-content[data-v-42ca58ad] {\n flex: 1;\n padding: 24px;\n overflow: auto;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] {\n max-width: 800px;\n margin: 0 auto;\n background: var(--c-bg-card, white);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n padding: 40px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h1 {\n margin: 24px 0 16px 0;\n font-weight: bold;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h1 {\n font-size: 1.8rem;\n color: var(--c-text-1, #333);\n border-bottom: 2px solid var(--c-border, #e0e0e0);\n padding-bottom: 8px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h2 {\n font-size: 1.5rem;\n color: var(--c-text-1, #444);\n margin: 20px 0 12px 0;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h3 {\n font-size: 1.25rem;\n color: var(--c-text-2, #555);\n margin: 16px 0 8px 0;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] p {\n margin-bottom: 12px;\n line-height: 1.8;\n color: var(--c-text-1, #333);\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] ul {\n margin: 12px 0;\n padding-left: 24px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] li {\n margin-bottom: 6px;\n line-height: 1.6;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] table {\n width: 100%;\n border-collapse: collapse;\n margin: 16px 0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] th {\n border: 1px solid #d0d0d0;\n padding: 12px;\n text-align: left;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] th {\n background-color: var(--c-bg-card, #f5f5f5);\n font-weight: bold;\n}","/* unplugin-vue-components disabled */.file-container[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-b6c3e1b9] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.excel-container[data-v-b6c3e1b9] {\n overflow: visible;\n}\n.excel-container .excel-viewer[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: visible;\n}\n.excel-container .excel-viewer .excel-info[data-v-b6c3e1b9] {\n padding: 8px 16px;\n background-color: var(--c-bg-card, #f9f9f9);\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n flex-shrink: 0;\n z-index: 7;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container[data-v-b6c3e1b9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n min-height: 0;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper[data-v-b6c3e1b9] {\n flex: 1;\n overflow: auto;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table[data-v-b6c3e1b9] {\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header[data-v-b6c3e1b9] {\n padding: 6px 8px;\n background: #f8f9fa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header .header-content .column-letter[data-v-b6c3e1b9] {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header .header-content .column-title[data-v-b6c3e1b9] {\n font-size: 11px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-row[data-v-b6c3e1b9]:nth-child(even) {\n background-color: #fefefe;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell[data-v-b6c3e1b9] {\n padding: 4px 8px;\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9] {\n border: 1px solid #1976d2 !important;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::after {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table[data-v-b6c3e1b9] {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-size: 13px;\n min-width: 100%;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .row-number[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n text-align: center;\n min-width: 30px;\n width: 30px;\n padding: 2px 4px;\n font-size: 11px;\n font-weight: bold;\n border: 1px solid #d0d0d0;\n color: #666;\n position: sticky;\n left: 0;\n z-index: 10;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);\n padding: 8px 12px;\n border: 1px solid #c0c0c0;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 5;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content .column-letter[data-v-b6c3e1b9] {\n background-color: var(--c-primary, #1976d2);\n color: white;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: normal;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content .column-title[data-v-b6c3e1b9] {\n font-size: 12px;\n font-weight: bold;\n text-align: center;\n word-break: break-all;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-row[data-v-b6c3e1b9]:nth-child(even) {\n background-color: #fafafa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-row[data-v-b6c3e1b9]:hover {\n background-color: #e6f3ff;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell[data-v-b6c3e1b9] {\n padding: 8px 12px;\n border: 1px solid #d0d0d0;\n vertical-align: middle;\n word-wrap: break-word;\n word-break: break-all;\n min-height: 24px;\n line-height: 1.4;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-number[data-v-b6c3e1b9] {\n text-align: right;\n font-family: \"Courier New\", monospace;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-gantt[data-v-b6c3e1b9] {\n text-align: center;\n font-family: monospace;\n font-size: 14px;\n font-weight: bold;\n background-color: #f0f0f0;\n color: var(--c-text-1, #333);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-date[data-v-b6c3e1b9] {\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-boolean[data-v-b6c3e1b9] {\n text-align: center;\n font-weight: bold;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-long[data-v-b6c3e1b9] {\n max-width: 200px;\n white-space: pre-wrap;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-empty[data-v-b6c3e1b9] {\n background-color: #fafafa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f8ff 0%, #e3f2fd 100%) !important;\n border: 2px solid var(--c-primary, #1976d2) !important;\n font-weight: bold;\n text-align: center;\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::before {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n right: 3px;\n bottom: 3px;\n background: rgba(25, 118, 210, 0.08);\n border-radius: 2px;\n pointer-events: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::after {\n content: \"📎\";\n position: absolute;\n top: 2px;\n right: 4px;\n font-size: 10px;\n opacity: 0.6;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell[data-v-b6c3e1b9] {\n padding: 4px 8px;\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f8ff 0%, #e3f2fd 100%) !important;\n border: 1px solid var(--c-primary, #1976d2) !important;\n font-weight: bold;\n text-align: center;\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9]::before {\n top: 2px;\n left: 2px;\n right: 2px;\n bottom: 2px;\n background: rgba(25, 118, 210, 0.05);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9]::after {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-empty[data-v-b6c3e1b9] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 200px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] {\n padding: 20px 16px;\n border-top: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n display: flex;\n justify-content: center;\n flex-shrink: 0;\n z-index: 1000;\n position: relative;\n overflow: visible;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination {\n z-index: 1001;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker {\n z-index: 1002;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker .n-base-selection {\n z-index: 1003;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker .n-base-selection-popover {\n z-index: 1004 !important;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-popover {\n z-index: 1005 !important;\n}","/* unplugin-vue-components disabled */.c-file-preview-wrapper[data-v-8042014e] {\n width: 100%;\n}\n.c-file-preview-wrapper .file-info-card .file-info[data-v-8042014e] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n border: 1px solid var(--c-border, #e0e0e0);\n border-radius: 12px;\n background: var(--c-bg-card, white);\n transition: var(--c-transition, 0.2s ease);\n cursor: pointer;\n}\n.c-file-preview-wrapper .file-info-card .file-info[data-v-8042014e]:hover {\n border-color: var(--c-primary, #40a9ff);\n box-shadow: 0 4px 12px rgba(64, 169, 255, 0.15);\n transform: translateY(-1px);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-icon[data-v-8042014e] {\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-radius: 12px;\n border: 1px solid #dee2e6;\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details[data-v-8042014e] {\n flex: 1;\n min-width: 0;\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-name[data-v-8042014e] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 6px;\n font-weight: 600;\n font-size: 16px;\n color: var(--c-text-1, #1f2937);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta[data-v-8042014e] {\n display: flex;\n gap: 16px;\n font-size: 13px;\n color: var(--c-text-2, #6b7280);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta .file-size[data-v-8042014e] {\n font-weight: 500;\n color: var(--c-text-1, #374151);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-actions[data-v-8042014e] {\n flex-shrink: 0;\n display: flex;\n gap: 8px;\n}\n.modal-container[data-v-8042014e] {\n background: var(--c-bg-card, white);\n border-radius: 8px;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: visible;\n}\n.modal-container .modal-header[data-v-8042014e] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--c-bg, #fafafa);\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n flex-shrink: 0;\n z-index: 10;\n position: relative;\n}\n.modal-container .modal-header .modal-title[data-v-8042014e] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 16px;\n color: var(--c-text-1, #333);\n}\n.modal-container .modal-header .modal-title span[data-v-8042014e] {\n max-width: 400px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.modal-container .modal-header .modal-actions[data-v-8042014e] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n.modal-container .modal-content[data-v-8042014e] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n min-height: 0;\n}\n.modal-container .preview-header[data-v-8042014e] {\n padding: 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 9;\n position: relative;\n}\n.modal-container .preview-content[data-v-8042014e] {\n flex: 1;\n overflow: auto;\n min-height: 0;\n position: relative;\n}\n.modal-container .preview-content .status-container[data-v-8042014e] {\n height: 300px;\n display: flex;\n align-items: center;\n justify-content: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"C_FilePreview-DHGlV4OR.css","names":[],"sources":["../src/components/C_FilePreview/components/PdfViewer/index.vue?vue&type=style&index=0&scoped=e96499e0&lang.scss","../src/components/C_FilePreview/components/WordViewer/index.vue?vue&type=style&index=0&scoped=42ca58ad&lang.scss","../src/components/C_FilePreview/components/ExcelViewer/index.vue?vue&type=style&index=0&scoped=b6c3e1b9&lang.scss","../src/components/C_FilePreview/index.vue?vue&type=style&index=0&scoped=1037e17e&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.file-container[data-v-e96499e0] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-e96499e0] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.file-container .file-viewer[data-v-e96499e0] {\n flex: 1;\n min-height: 300px;\n}","/* unplugin-vue-components disabled */.file-container[data-v-42ca58ad] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-42ca58ad] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.word-layout[data-v-42ca58ad] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.word-layout .word-main[data-v-42ca58ad] {\n flex: 1;\n display: flex;\n overflow: hidden;\n}\n.word-layout .word-main .word-outline[data-v-42ca58ad] {\n width: 280px;\n border-right: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n}\n.word-layout .word-main .word-outline .outline-header[data-v-42ca58ad] {\n padding: 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n}\n.word-layout .word-main .word-outline .outline-content[data-v-42ca58ad] {\n padding: 8px;\n overflow-y: auto;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item[data-v-42ca58ad] {\n padding: 8px 12px;\n cursor: pointer;\n border-radius: 4px;\n font-size: 14px;\n color: var(--c-text-1, #333);\n}\n.word-layout .word-main .word-outline .outline-content .outline-item[data-v-42ca58ad]:hover {\n background-color: #e6f3ff;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-1[data-v-42ca58ad] {\n padding-left: 12px;\n font-weight: 600;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-2[data-v-42ca58ad] {\n padding-left: 24px;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-3[data-v-42ca58ad], .word-layout .word-main .word-outline .outline-content .outline-item.level-4[data-v-42ca58ad] {\n padding-left: 36px;\n font-size: 13px;\n}\n.word-layout .word-main .word-outline .outline-content .outline-item.level-4[data-v-42ca58ad] {\n padding-left: 48px;\n}\n.word-layout .word-main .word-content[data-v-42ca58ad] {\n flex: 1;\n padding: 24px;\n overflow: auto;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] {\n max-width: 800px;\n margin: 0 auto;\n background: var(--c-bg-card, white);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n padding: 40px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h1 {\n margin: 24px 0 16px 0;\n font-weight: bold;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h1 {\n font-size: 1.8rem;\n color: var(--c-text-1, #333);\n border-bottom: 2px solid var(--c-border, #e0e0e0);\n padding-bottom: 8px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h2 {\n font-size: 1.5rem;\n color: var(--c-text-1, #444);\n margin: 20px 0 12px 0;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] h3 {\n font-size: 1.25rem;\n color: var(--c-text-2, #555);\n margin: 16px 0 8px 0;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] p {\n margin-bottom: 12px;\n line-height: 1.8;\n color: var(--c-text-1, #333);\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] ul {\n margin: 12px 0;\n padding-left: 24px;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] li {\n margin-bottom: 6px;\n line-height: 1.6;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] table {\n width: 100%;\n border-collapse: collapse;\n margin: 16px 0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] th {\n border: 1px solid #d0d0d0;\n padding: 12px;\n text-align: left;\n}\n.word-layout .word-main .word-content .word-document[data-v-42ca58ad] th {\n background-color: var(--c-bg-card, #f5f5f5);\n font-weight: bold;\n}","/* unplugin-vue-components disabled */.file-container[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.file-container .file-toolbar[data-v-b6c3e1b9] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 8;\n position: relative;\n}\n.excel-container[data-v-b6c3e1b9] {\n overflow: visible;\n}\n.excel-container .excel-viewer[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: visible;\n}\n.excel-container .excel-viewer .excel-info[data-v-b6c3e1b9] {\n padding: 8px 16px;\n background-color: var(--c-bg-card, #f9f9f9);\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n flex-shrink: 0;\n z-index: 7;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container[data-v-b6c3e1b9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n min-height: 0;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper[data-v-b6c3e1b9] {\n flex: 1;\n overflow: auto;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table[data-v-b6c3e1b9] {\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header[data-v-b6c3e1b9] {\n padding: 6px 8px;\n background: #f8f9fa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header .header-content .column-letter[data-v-b6c3e1b9] {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-header .header-content .column-title[data-v-b6c3e1b9] {\n font-size: 11px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-row[data-v-b6c3e1b9]:nth-child(even) {\n background-color: #fefefe;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell[data-v-b6c3e1b9] {\n padding: 4px 8px;\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9] {\n border: 1px solid #1976d2 !important;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table-wrapper.simple-mode .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::after {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table[data-v-b6c3e1b9] {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-size: 13px;\n min-width: 100%;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .row-number[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);\n text-align: center;\n min-width: 30px;\n width: 30px;\n padding: 2px 4px;\n font-size: 11px;\n font-weight: bold;\n border: 1px solid #d0d0d0;\n color: #666;\n position: sticky;\n left: 0;\n z-index: 10;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);\n padding: 8px 12px;\n border: 1px solid #c0c0c0;\n font-weight: bold;\n position: sticky;\n top: 0;\n z-index: 5;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content[data-v-b6c3e1b9] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content .column-letter[data-v-b6c3e1b9] {\n background-color: var(--c-primary, #1976d2);\n color: white;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: normal;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-header .header-content .column-title[data-v-b6c3e1b9] {\n font-size: 12px;\n font-weight: bold;\n text-align: center;\n word-break: break-all;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-row[data-v-b6c3e1b9]:nth-child(even) {\n background-color: #fafafa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-row[data-v-b6c3e1b9]:hover {\n background-color: #e6f3ff;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell[data-v-b6c3e1b9] {\n padding: 8px 12px;\n border: 1px solid #d0d0d0;\n vertical-align: middle;\n word-wrap: break-word;\n word-break: break-all;\n min-height: 24px;\n line-height: 1.4;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-number[data-v-b6c3e1b9] {\n text-align: right;\n font-family: \"Courier New\", monospace;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-gantt[data-v-b6c3e1b9] {\n text-align: center;\n font-family: monospace;\n font-size: 14px;\n font-weight: bold;\n background-color: #f0f0f0;\n color: var(--c-text-1, #333);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-date[data-v-b6c3e1b9] {\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-boolean[data-v-b6c3e1b9] {\n text-align: center;\n font-weight: bold;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-long[data-v-b6c3e1b9] {\n max-width: 200px;\n white-space: pre-wrap;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.cell-empty[data-v-b6c3e1b9] {\n background-color: #fafafa;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f8ff 0%, #e3f2fd 100%) !important;\n border: 2px solid var(--c-primary, #1976d2) !important;\n font-weight: bold;\n text-align: center;\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::before {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n right: 3px;\n bottom: 3px;\n background: rgba(25, 118, 210, 0.08);\n border-radius: 2px;\n pointer-events: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.merged-cell[data-v-b6c3e1b9]::after {\n content: \"📎\";\n position: absolute;\n top: 2px;\n right: 4px;\n font-size: 10px;\n opacity: 0.6;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell[data-v-b6c3e1b9] {\n padding: 4px 8px;\n font-size: 12px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9] {\n background: linear-gradient(135deg, #f0f8ff 0%, #e3f2fd 100%) !important;\n border: 1px solid var(--c-primary, #1976d2) !important;\n font-weight: bold;\n text-align: center;\n color: var(--c-primary, #1976d2);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9]::before {\n top: 2px;\n left: 2px;\n right: 2px;\n bottom: 2px;\n background: rgba(25, 118, 210, 0.05);\n}\n.excel-container .excel-viewer .excel-table-container .excel-table .excel-cell.compact-cell.merged-cell[data-v-b6c3e1b9]::after {\n display: none;\n}\n.excel-container .excel-viewer .excel-table-container .excel-empty[data-v-b6c3e1b9] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 200px;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] {\n padding: 20px 16px;\n border-top: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n display: flex;\n justify-content: center;\n flex-shrink: 0;\n z-index: 1000;\n position: relative;\n overflow: visible;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination {\n z-index: 1001;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker {\n z-index: 1002;\n position: relative;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker .n-base-selection {\n z-index: 1003;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-pagination-size-picker .n-base-selection-popover {\n z-index: 1004 !important;\n}\n.excel-container .excel-viewer .excel-table-container .excel-pagination[data-v-b6c3e1b9] .n-popover {\n z-index: 1005 !important;\n}","/* unplugin-vue-components disabled */.c-file-preview-wrapper[data-v-1037e17e] {\n width: 100%;\n}\n.c-file-preview-wrapper .file-info-card .file-info[data-v-1037e17e] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n border: 1px solid var(--c-border, #e0e0e0);\n border-radius: 12px;\n background: var(--c-bg-card, white);\n transition: var(--c-transition, 0.2s ease);\n cursor: pointer;\n}\n.c-file-preview-wrapper .file-info-card .file-info[data-v-1037e17e]:hover {\n border-color: var(--c-primary, #40a9ff);\n box-shadow: 0 4px 12px rgba(64, 169, 255, 0.15);\n transform: translateY(-1px);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-icon[data-v-1037e17e] {\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-radius: 12px;\n border: 1px solid #dee2e6;\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details[data-v-1037e17e] {\n flex: 1;\n min-width: 0;\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-name[data-v-1037e17e] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 6px;\n font-weight: 600;\n font-size: 16px;\n color: var(--c-text-1, #1f2937);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta[data-v-1037e17e] {\n display: flex;\n gap: 16px;\n font-size: 13px;\n color: var(--c-text-2, #6b7280);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta .file-size[data-v-1037e17e] {\n font-weight: 500;\n color: var(--c-text-1, #374151);\n}\n.c-file-preview-wrapper .file-info-card .file-info .file-actions[data-v-1037e17e] {\n flex-shrink: 0;\n display: flex;\n gap: 8px;\n}\n.modal-container[data-v-1037e17e] {\n background: var(--c-bg-card, white);\n border-radius: 8px;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: visible;\n}\n.modal-container .modal-header[data-v-1037e17e] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--c-bg, #fafafa);\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n flex-shrink: 0;\n z-index: 10;\n position: relative;\n}\n.modal-container .modal-header .modal-title[data-v-1037e17e] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 16px;\n color: var(--c-text-1, #333);\n}\n.modal-container .modal-header .modal-title span[data-v-1037e17e] {\n max-width: 400px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.modal-container .modal-header .modal-actions[data-v-1037e17e] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n.modal-container .modal-content[data-v-1037e17e] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n min-height: 0;\n}\n.modal-container .preview-header[data-v-1037e17e] {\n padding: 16px;\n border-bottom: 1px solid var(--c-border, #e0e0e0);\n background-color: var(--c-bg-card, #f9f9f9);\n flex-shrink: 0;\n z-index: 9;\n position: relative;\n}\n.modal-container .preview-content[data-v-1037e17e] {\n flex: 1;\n overflow: auto;\n min-height: 0;\n position: relative;\n}\n.modal-container .preview-content .status-container[data-v-1037e17e] {\n height: 300px;\n display: flex;\n align-items: center;\n justify-content: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/dist/C_FilePreview.cjs
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,
|
|
2
|
-
require('./C_Icon.js');
|
|
3
|
-
const require_C_FilePreview = require('./C_FilePreview.js');
|
|
4
|
-
|
|
5
|
-
exports.C_FilePreview = require_C_FilePreview.C_FilePreview_default;
|
|
6
|
-
exports.useFilePreview = require_C_FilePreview.useFilePreview;
|
|
7
|
-
exports.useFullscreen = require_C_FilePreview.useFullscreen;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon.js`);const e=require(`./C_FilePreview.js`);exports.C_FilePreview=e.t,exports.useFilePreview=e.r,exports.useFullscreen=e.n;
|
package/dist/C_FilePreview.js
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { n as useFullscreen, r as useFilePreview, t as C_FilePreview_default } from "./C_FilePreview2.js";
|
|
3
|
-
|
|
4
|
-
export { C_FilePreview_default as C_FilePreview, useFilePreview, useFullscreen };
|
|
1
|
+
import"./C_Icon2.js";import{n as e,r as t,t as n}from"./C_FilePreview2.js";export{n as C_FilePreview,t as useFilePreview,e as useFullscreen};
|