@composy/log-viewer-vue 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/dist/index.css +3 -0
- package/dist/index.js +260 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.css +3 -0
- package/dist/index.min.js +1 -0
- package/es/components/LogViewer.js +17 -0
- package/es/components/LogViewer.js.map +1 -0
- package/es/components/LogViewer.vue_vue_type_script_setup_true_lang.js +109 -0
- package/es/components/LogViewer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/es/composables/useLogViewer.d.ts +116 -0
- package/es/composables/useLogViewer.d.ts.map +1 -0
- package/es/composables/useLogViewer.js +113 -0
- package/es/composables/useLogViewer.js.map +1 -0
- package/es/index.d.ts +15 -0
- package/es/index.d.ts.map +1 -0
- package/es/index.js +19 -0
- package/es/index.js.map +1 -0
- package/es/plugin.d.ts +8 -0
- package/es/plugin.d.ts.map +1 -0
- package/es/plugin.js +18 -0
- package/es/plugin.js.map +1 -0
- package/es/style/css.js +1 -0
- package/es/style/index.js +1 -0
- package/es/style/index.less +1 -0
- package/lib/components/LogViewer.cjs +21 -0
- package/lib/components/LogViewer.cjs.map +1 -0
- package/lib/components/LogViewer.vue_vue_type_script_setup_true_lang.cjs +109 -0
- package/lib/components/LogViewer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/lib/composables/useLogViewer.cjs +114 -0
- package/lib/composables/useLogViewer.cjs.map +1 -0
- package/lib/composables/useLogViewer.d.ts +116 -0
- package/lib/index.cjs +53 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/package.json +3 -0
- package/lib/plugin.cjs +19 -0
- package/lib/plugin.cjs.map +1 -0
- package/lib/plugin.d.ts +8 -0
- package/lib/style/css.js +1 -0
- package/lib/style/index.css +2 -0
- package/lib/style/index.js +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import { onUnmounted, ref } from "vue";
|
|
11
|
+
import { createLogViewer } from "@composy/log-viewer-core";
|
|
12
|
+
//#region src/composables/useLogViewer.ts
|
|
13
|
+
function useLogViewer() {
|
|
14
|
+
const instance = ref(null);
|
|
15
|
+
const data = ref([]);
|
|
16
|
+
const filter = ref({});
|
|
17
|
+
const theme = ref("light");
|
|
18
|
+
const pagination = ref({
|
|
19
|
+
page: 1,
|
|
20
|
+
pageSize: 20
|
|
21
|
+
});
|
|
22
|
+
function create(container, config) {
|
|
23
|
+
if (instance.value) instance.value.destroy();
|
|
24
|
+
instance.value = createLogViewer({
|
|
25
|
+
container,
|
|
26
|
+
...config
|
|
27
|
+
});
|
|
28
|
+
instance.value.on("data:change", (entries) => {
|
|
29
|
+
data.value = entries;
|
|
30
|
+
});
|
|
31
|
+
instance.value.on("filter:change", (f) => {
|
|
32
|
+
filter.value = f;
|
|
33
|
+
});
|
|
34
|
+
instance.value.on("theme:change", (t) => {
|
|
35
|
+
theme.value = t;
|
|
36
|
+
});
|
|
37
|
+
instance.value.on("page:change", () => {
|
|
38
|
+
if (instance.value) pagination.value = instance.value.getPagination();
|
|
39
|
+
});
|
|
40
|
+
if (config?.data) data.value = config.data;
|
|
41
|
+
if (config?.theme) theme.value = config.theme;
|
|
42
|
+
if (config?.filter) filter.value = config.filter;
|
|
43
|
+
}
|
|
44
|
+
function setData(entries) {
|
|
45
|
+
instance.value?.setData(entries);
|
|
46
|
+
data.value = entries;
|
|
47
|
+
}
|
|
48
|
+
function appendData(entries) {
|
|
49
|
+
instance.value?.appendData(entries);
|
|
50
|
+
data.value = instance.value?.getData() || [];
|
|
51
|
+
}
|
|
52
|
+
function setFilter(f) {
|
|
53
|
+
instance.value?.setFilter(f);
|
|
54
|
+
filter.value = f;
|
|
55
|
+
}
|
|
56
|
+
function resetFilter() {
|
|
57
|
+
instance.value?.resetFilter();
|
|
58
|
+
filter.value = {};
|
|
59
|
+
}
|
|
60
|
+
function setTheme(t) {
|
|
61
|
+
instance.value?.setTheme(t);
|
|
62
|
+
theme.value = t;
|
|
63
|
+
}
|
|
64
|
+
function expandEntry(id) {
|
|
65
|
+
instance.value?.expandEntry(id);
|
|
66
|
+
}
|
|
67
|
+
function collapseEntry(id) {
|
|
68
|
+
instance.value?.collapseEntry(id);
|
|
69
|
+
}
|
|
70
|
+
function collapseAll() {
|
|
71
|
+
instance.value?.collapseAll();
|
|
72
|
+
}
|
|
73
|
+
function goToPage(page) {
|
|
74
|
+
instance.value?.goToPage(page);
|
|
75
|
+
}
|
|
76
|
+
function refresh() {
|
|
77
|
+
instance.value?.refresh();
|
|
78
|
+
}
|
|
79
|
+
function destroy() {
|
|
80
|
+
instance.value?.destroy();
|
|
81
|
+
instance.value = null;
|
|
82
|
+
}
|
|
83
|
+
function on(event, callback) {
|
|
84
|
+
return instance.value?.on(event, callback) || (() => {});
|
|
85
|
+
}
|
|
86
|
+
onUnmounted(() => {
|
|
87
|
+
destroy();
|
|
88
|
+
});
|
|
89
|
+
return {
|
|
90
|
+
instance,
|
|
91
|
+
data,
|
|
92
|
+
filter,
|
|
93
|
+
theme,
|
|
94
|
+
pagination,
|
|
95
|
+
create,
|
|
96
|
+
setData,
|
|
97
|
+
appendData,
|
|
98
|
+
setFilter,
|
|
99
|
+
resetFilter,
|
|
100
|
+
setTheme,
|
|
101
|
+
expandEntry,
|
|
102
|
+
collapseEntry,
|
|
103
|
+
collapseAll,
|
|
104
|
+
goToPage,
|
|
105
|
+
refresh,
|
|
106
|
+
destroy,
|
|
107
|
+
on
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
export { useLogViewer };
|
|
112
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
113
|
+
//# sourceMappingURL=useLogViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogViewer.js","names":[],"sources":["../../src/composables/useLogViewer.ts"],"sourcesContent":["/**\n * useLogViewer - Vue 3 组合式 API\n */\nimport { ref, onUnmounted } from 'vue'\nimport {\n createLogViewer,\n type LogViewer,\n type LogViewerConfig,\n type LogEntry,\n type FilterConfig,\n type ThemeMode,\n type PaginationConfig,\n} from '@composy/log-viewer-core'\n\n/**\n * useLogViewer - use Log Viewer function\n * @returns 返回值说明\n */\nexport function useLogViewer() {\n const instance = ref<LogViewer | null>(null)\n const data = ref<LogEntry[]>([])\n const filter = ref<FilterConfig>({})\n const theme = ref<ThemeMode>('light')\n const pagination = ref<PaginationConfig>({ page: 1, pageSize: 20 })\n\n function create(container: HTMLElement | string, config?: Partial<LogViewerConfig>) {\n if (instance.value) {\n instance.value.destroy()\n }\n\n instance.value = createLogViewer({\n container,\n ...config,\n })\n\n // Sync refs\n instance.value.on('data:change', (entries: LogEntry[]) => {\n data.value = entries\n })\n instance.value.on('filter:change', (f: FilterConfig) => {\n filter.value = f\n })\n instance.value.on('theme:change', (t: ThemeMode) => {\n theme.value = t\n })\n instance.value.on('page:change', () => {\n if (instance.value) {\n pagination.value = instance.value.getPagination()\n }\n })\n\n if (config?.data) data.value = config.data\n if (config?.theme) theme.value = config.theme\n if (config?.filter) filter.value = config.filter\n }\n\n function setData(entries: LogEntry[]) {\n instance.value?.setData(entries)\n data.value = entries\n }\n\n function appendData(entries: LogEntry[]) {\n instance.value?.appendData(entries)\n data.value = instance.value?.getData() || []\n }\n\n function setFilter(f: FilterConfig) {\n instance.value?.setFilter(f)\n filter.value = f\n }\n\n function resetFilter() {\n instance.value?.resetFilter()\n filter.value = {}\n }\n\n function setTheme(t: ThemeMode) {\n instance.value?.setTheme(t)\n theme.value = t\n }\n\n function expandEntry(id: string) {\n instance.value?.expandEntry(id)\n }\n\n function collapseEntry(id: string) {\n instance.value?.collapseEntry(id)\n }\n\n function collapseAll() {\n instance.value?.collapseAll()\n }\n\n function goToPage(page: number) {\n instance.value?.goToPage(page)\n }\n\n function refresh() {\n instance.value?.refresh()\n }\n\n function destroy() {\n instance.value?.destroy()\n instance.value = null\n }\n\n function on(event: string, callback: (...args: unknown[]) => void): () => void {\n return instance.value?.on(event, callback) || (() => {})\n }\n\n onUnmounted(() => {\n destroy()\n })\n\n return {\n instance,\n data,\n filter,\n theme,\n pagination,\n create,\n setData,\n appendData,\n setFilter,\n resetFilter,\n setTheme,\n expandEntry,\n collapseEntry,\n collapseAll,\n goToPage,\n refresh,\n destroy,\n on,\n }\n}\n"],"mappings":";;;;;;;;;;;;AAkBO,SAAS,eAAe;CAC7B,MAAM,WAAW,IAAsB,IAAI;CAC3C,MAAM,OAAO,IAAgB,CAAC,CAAC;CAC/B,MAAM,SAAS,IAAkB,CAAC,CAAC;CACnC,MAAM,QAAQ,IAAe,OAAO;CACpC,MAAM,aAAa,IAAsB;EAAE,MAAM;EAAG,UAAU;CAAG,CAAC;CAElE,SAAS,OAAO,WAAiC,QAAmC;EAClF,IAAI,SAAS,OACX,SAAS,MAAM,QAAQ;EAGzB,SAAS,QAAQ,gBAAgB;GAC/B;GACA,GAAG;EACL,CAAC;EAGD,SAAS,MAAM,GAAG,gBAAgB,YAAwB;GACxD,KAAK,QAAQ;EACf,CAAC;EACD,SAAS,MAAM,GAAG,kBAAkB,MAAoB;GACtD,OAAO,QAAQ;EACjB,CAAC;EACD,SAAS,MAAM,GAAG,iBAAiB,MAAiB;GAClD,MAAM,QAAQ;EAChB,CAAC;EACD,SAAS,MAAM,GAAG,qBAAqB;GACrC,IAAI,SAAS,OACX,WAAW,QAAQ,SAAS,MAAM,cAAc;EAEpD,CAAC;EAED,IAAI,QAAQ,MAAM,KAAK,QAAQ,OAAO;EACtC,IAAI,QAAQ,OAAO,MAAM,QAAQ,OAAO;EACxC,IAAI,QAAQ,QAAQ,OAAO,QAAQ,OAAO;CAC5C;CAEA,SAAS,QAAQ,SAAqB;EACpC,SAAS,OAAO,QAAQ,OAAO;EAC/B,KAAK,QAAQ;CACf;CAEA,SAAS,WAAW,SAAqB;EACvC,SAAS,OAAO,WAAW,OAAO;EAClC,KAAK,QAAQ,SAAS,OAAO,QAAQ,KAAK,CAAC;CAC7C;CAEA,SAAS,UAAU,GAAiB;EAClC,SAAS,OAAO,UAAU,CAAC;EAC3B,OAAO,QAAQ;CACjB;CAEA,SAAS,cAAc;EACrB,SAAS,OAAO,YAAY;EAC5B,OAAO,QAAQ,CAAC;CAClB;CAEA,SAAS,SAAS,GAAc;EAC9B,SAAS,OAAO,SAAS,CAAC;EAC1B,MAAM,QAAQ;CAChB;CAEA,SAAS,YAAY,IAAY;EAC/B,SAAS,OAAO,YAAY,EAAE;CAChC;CAEA,SAAS,cAAc,IAAY;EACjC,SAAS,OAAO,cAAc,EAAE;CAClC;CAEA,SAAS,cAAc;EACrB,SAAS,OAAO,YAAY;CAC9B;CAEA,SAAS,SAAS,MAAc;EAC9B,SAAS,OAAO,SAAS,IAAI;CAC/B;CAEA,SAAS,UAAU;EACjB,SAAS,OAAO,QAAQ;CAC1B;CAEA,SAAS,UAAU;EACjB,SAAS,OAAO,QAAQ;EACxB,SAAS,QAAQ;CACnB;CAEA,SAAS,GAAG,OAAe,UAAoD;EAC7E,OAAO,SAAS,OAAO,GAAG,OAAO,QAAQ,YAAY,CAAC;CACxD;CAEA,kBAAkB;EAChB,QAAQ;CACV,CAAC;CAED,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
package/es/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @composy/log-viewer-vue
|
|
3
|
+
*
|
|
4
|
+
* 审计日志查看器 — Vue 3 适配层
|
|
5
|
+
* 提供 LogViewer 组件、useLogViewer 组合式函数和 Vue 插件
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export declare const VERSION = "0.1.0";
|
|
10
|
+
export { default as LogViewer } from './components/LogViewer.vue';
|
|
11
|
+
export { useLogViewer } from './composables/useLogViewer';
|
|
12
|
+
export { LogViewerPlugin } from './plugin';
|
|
13
|
+
export type { ActionType, ThemeMode, AnomalyType, DiffEntry, LogEntry, FilterConfig, PaginationConfig, LogViewerConfig, LogViewerInstance, LogViewerEvents, } from '@composy/log-viewer-core';
|
|
14
|
+
export { createLogViewer, ACTION_LABELS, ACTION_COLORS, formatDate, formatRelativeTime, } from '@composy/log-viewer-core';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAA;AAG9B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,YAAY,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,kBAAkB,GACnB,MAAM,0BAA0B,CAAA"}
|
package/es/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import LogViewer_default from "./components/LogViewer.js";
|
|
11
|
+
import { useLogViewer } from "./composables/useLogViewer.js";
|
|
12
|
+
import { LogViewerPlugin } from "./plugin.js";
|
|
13
|
+
import { ACTION_COLORS, ACTION_LABELS, createLogViewer, formatDate, formatRelativeTime } from "@composy/log-viewer-core";
|
|
14
|
+
//#region src/index.ts
|
|
15
|
+
const VERSION = "0.1.0";
|
|
16
|
+
//#endregion
|
|
17
|
+
export { ACTION_COLORS, ACTION_LABELS, LogViewer_default as LogViewer, LogViewerPlugin, VERSION, createLogViewer, formatDate, formatRelativeTime, useLogViewer };
|
|
18
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @composy/log-viewer-vue\n *\n * 审计日志查看器 — Vue 3 适配层\n * 提供 LogViewer 组件、useLogViewer 组合式函数和 Vue 插件\n *\n * @packageDocumentation\n */\n\nexport const VERSION = '0.1.0'\n\n// 组件\nexport { default as LogViewer } from './components/LogViewer.vue'\n\n// 组合式 API\nexport { useLogViewer } from './composables/useLogViewer'\n\n// 插件\nexport { LogViewerPlugin } from './plugin'\n\n// 重新导出核心类型\nexport type {\n ActionType,\n ThemeMode,\n AnomalyType,\n DiffEntry,\n LogEntry,\n FilterConfig,\n PaginationConfig,\n LogViewerConfig,\n LogViewerInstance,\n LogViewerEvents,\n} from '@composy/log-viewer-core'\n\nexport {\n createLogViewer,\n ACTION_LABELS,\n ACTION_COLORS,\n formatDate,\n formatRelativeTime,\n} from '@composy/log-viewer-core'\n"],"mappings":";;;;;;;;;;;;;;AASO,MAAM,UAAU"}
|
package/es/plugin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAG9B,eAAO,MAAM,eAAe;iBACb,GAAG;CAGjB,CAAA"}
|
package/es/plugin.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import LogViewer_default from "./components/LogViewer.js";
|
|
11
|
+
//#region src/plugin.ts
|
|
12
|
+
const LogViewerPlugin = { install(app) {
|
|
13
|
+
app.component("LogViewer", LogViewer_default);
|
|
14
|
+
} };
|
|
15
|
+
//#endregion
|
|
16
|
+
export { LogViewerPlugin };
|
|
17
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
18
|
+
//# sourceMappingURL=plugin.js.map
|
package/es/plugin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["/**\n * Vue 插件 - 全局注册 LogViewer 组件\n */\nimport type { App } from 'vue'\nimport LogViewer from './components/LogViewer.vue'\n\nexport const LogViewerPlugin = {\n install(app: App) {\n app.component('LogViewer', LogViewer)\n },\n}\n"],"mappings":";;;;;;;;;;;AAMO,MAAM,kBAAkB,EAC7B,QAAQ,KAAU;CAChB,IAAI,UAAU,aAAa,iBAAS;AACtC,EACF"}
|
package/es/style/css.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @ldesign styles
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperties(exports, {
|
|
11
|
+
__esModule: { value: true },
|
|
12
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
13
|
+
});
|
|
14
|
+
const require_LogViewer_vue_vue_type_script_setup_true_lang = require("./LogViewer.vue_vue_type_script_setup_true_lang.cjs");
|
|
15
|
+
//#region src/components/LogViewer.vue
|
|
16
|
+
require_LogViewer_vue_vue_type_script_setup_true_lang.default.__file = "src/components/LogViewer.vue";
|
|
17
|
+
var LogViewer_default = require_LogViewer_vue_vue_type_script_setup_true_lang.default;
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.default = LogViewer_default;
|
|
20
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
21
|
+
//# sourceMappingURL=LogViewer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogViewer.cjs","names":[],"sources":["../../src/components/LogViewer.vue"],"sourcesContent":["<!--\n @file 日志查看器组件\n @description LDesign 日志查看器组件,支持日志过滤、差异对比、异常标记等功能\n-->\n<template>\n <div ref=\"containerRef\" class=\"lv-vue-root\"></div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted, watch, toRefs } from 'vue'\nimport {\n createLogViewer,\n type LogViewerConfig,\n type LogEntry,\n type FilterConfig,\n type ThemeMode,\n type LogViewer as LogViewerInstance,\n} from '@composy/log-viewer-core'\n\nconst props = withDefaults(defineProps<{\n data?: LogEntry[]\n filter?: FilterConfig\n theme?: ThemeMode\n pageSize?: number\n showFilter?: boolean\n showDiff?: boolean\n showAnomalyBadge?: boolean\n}>(), {\n data: () => [],\n theme: 'light',\n pageSize: 20,\n showFilter: true,\n showDiff: true,\n showAnomalyBadge: true,\n})\n\nconst emit = defineEmits<{\n 'entry-click': [entry: LogEntry]\n 'entry-expand': [entry: LogEntry]\n 'entry-collapse': [entry: LogEntry]\n 'filter-change': [filter: FilterConfig]\n 'theme-change': [theme: ThemeMode]\n 'page-change': [page: number]\n}>()\n\nconst containerRef = ref<HTMLElement | null>(null)\nlet instance: LogViewerInstance | null = null\n\nonMounted(() => {\n if (!containerRef.value) return\n\n instance = createLogViewer({\n container: containerRef.value,\n data: props.data,\n filter: props.filter,\n theme: props.theme,\n pageSize: props.pageSize,\n showFilter: props.showFilter,\n showDiff: props.showDiff,\n showAnomalyBadge: props.showAnomalyBadge,\n })\n\n instance.on('entry:click', (entry: LogEntry) => emit('entry-click', entry))\n instance.on('entry:expand', (entry: LogEntry) => emit('entry-expand', entry))\n instance.on('entry:collapse', (entry: LogEntry) => emit('entry-collapse', entry))\n instance.on('filter:change', (filter: FilterConfig) => emit('filter-change', filter))\n instance.on('theme:change', (theme: ThemeMode) => emit('theme-change', theme))\n instance.on('page:change', (page: number) => emit('page-change', page))\n})\n\nwatch(() => props.data, (newData) => {\n instance?.setData(newData)\n}, { deep: true })\n\nwatch(() => props.filter, (newFilter) => {\n if (newFilter) instance?.setFilter(newFilter)\n}, { deep: true })\n\nwatch(() => props.theme, (newTheme) => {\n instance?.setTheme(newTheme)\n})\n\nonUnmounted(() => {\n instance?.destroy()\n instance = null\n})\n\ndefineExpose({\n getInstance: () => instance,\n})\n</script>\n"],"mappings":""}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
let vue = require("vue");
|
|
11
|
+
let _composy_log_viewer_core = require("@composy/log-viewer-core");
|
|
12
|
+
//#region src/components/LogViewer.vue?vue&type=script&setup=true&lang.ts
|
|
13
|
+
var LogViewer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
14
|
+
__name: "LogViewer",
|
|
15
|
+
props: {
|
|
16
|
+
data: {
|
|
17
|
+
type: Array,
|
|
18
|
+
required: false,
|
|
19
|
+
default: () => []
|
|
20
|
+
},
|
|
21
|
+
filter: {
|
|
22
|
+
type: Object,
|
|
23
|
+
required: false
|
|
24
|
+
},
|
|
25
|
+
theme: {
|
|
26
|
+
type: String,
|
|
27
|
+
required: false,
|
|
28
|
+
default: "light"
|
|
29
|
+
},
|
|
30
|
+
pageSize: {
|
|
31
|
+
type: Number,
|
|
32
|
+
required: false,
|
|
33
|
+
default: 20
|
|
34
|
+
},
|
|
35
|
+
showFilter: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
required: false,
|
|
38
|
+
default: true
|
|
39
|
+
},
|
|
40
|
+
showDiff: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
required: false,
|
|
43
|
+
default: true
|
|
44
|
+
},
|
|
45
|
+
showAnomalyBadge: {
|
|
46
|
+
type: Boolean,
|
|
47
|
+
required: false,
|
|
48
|
+
default: true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
emits: [
|
|
52
|
+
"entry-click",
|
|
53
|
+
"entry-expand",
|
|
54
|
+
"entry-collapse",
|
|
55
|
+
"filter-change",
|
|
56
|
+
"theme-change",
|
|
57
|
+
"page-change"
|
|
58
|
+
],
|
|
59
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
60
|
+
const props = __props;
|
|
61
|
+
const emit = __emit;
|
|
62
|
+
const containerRef = (0, vue.ref)(null);
|
|
63
|
+
let instance = null;
|
|
64
|
+
(0, vue.onMounted)(() => {
|
|
65
|
+
if (!containerRef.value) return;
|
|
66
|
+
instance = (0, _composy_log_viewer_core.createLogViewer)({
|
|
67
|
+
container: containerRef.value,
|
|
68
|
+
data: props.data,
|
|
69
|
+
filter: props.filter,
|
|
70
|
+
theme: props.theme,
|
|
71
|
+
pageSize: props.pageSize,
|
|
72
|
+
showFilter: props.showFilter,
|
|
73
|
+
showDiff: props.showDiff,
|
|
74
|
+
showAnomalyBadge: props.showAnomalyBadge
|
|
75
|
+
});
|
|
76
|
+
instance.on("entry:click", (entry) => emit("entry-click", entry));
|
|
77
|
+
instance.on("entry:expand", (entry) => emit("entry-expand", entry));
|
|
78
|
+
instance.on("entry:collapse", (entry) => emit("entry-collapse", entry));
|
|
79
|
+
instance.on("filter:change", (filter) => emit("filter-change", filter));
|
|
80
|
+
instance.on("theme:change", (theme) => emit("theme-change", theme));
|
|
81
|
+
instance.on("page:change", (page) => emit("page-change", page));
|
|
82
|
+
});
|
|
83
|
+
(0, vue.watch)(() => props.data, (newData) => {
|
|
84
|
+
instance?.setData(newData);
|
|
85
|
+
}, { deep: true });
|
|
86
|
+
(0, vue.watch)(() => props.filter, (newFilter) => {
|
|
87
|
+
if (newFilter) instance?.setFilter(newFilter);
|
|
88
|
+
}, { deep: true });
|
|
89
|
+
(0, vue.watch)(() => props.theme, (newTheme) => {
|
|
90
|
+
instance?.setTheme(newTheme);
|
|
91
|
+
});
|
|
92
|
+
(0, vue.onUnmounted)(() => {
|
|
93
|
+
instance?.destroy();
|
|
94
|
+
instance = null;
|
|
95
|
+
});
|
|
96
|
+
__expose({ getInstance: () => instance });
|
|
97
|
+
return (_ctx, _cache) => {
|
|
98
|
+
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
99
|
+
ref_key: "containerRef",
|
|
100
|
+
ref: containerRef,
|
|
101
|
+
class: "lv-vue-root"
|
|
102
|
+
}, null, 512);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//#endregion
|
|
107
|
+
exports.default = LogViewer_vue_vue_type_script_setup_true_lang_default;
|
|
108
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
109
|
+
//# sourceMappingURL=LogViewer.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogViewer.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/LogViewer.vue"],"sourcesContent":["<!--\n @file 日志查看器组件\n @description LDesign 日志查看器组件,支持日志过滤、差异对比、异常标记等功能\n-->\n<template>\n <div ref=\"containerRef\" class=\"lv-vue-root\"></div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted, watch, toRefs } from 'vue'\nimport {\n createLogViewer,\n type LogViewerConfig,\n type LogEntry,\n type FilterConfig,\n type ThemeMode,\n type LogViewer as LogViewerInstance,\n} from '@composy/log-viewer-core'\n\nconst props = withDefaults(defineProps<{\n data?: LogEntry[]\n filter?: FilterConfig\n theme?: ThemeMode\n pageSize?: number\n showFilter?: boolean\n showDiff?: boolean\n showAnomalyBadge?: boolean\n}>(), {\n data: () => [],\n theme: 'light',\n pageSize: 20,\n showFilter: true,\n showDiff: true,\n showAnomalyBadge: true,\n})\n\nconst emit = defineEmits<{\n 'entry-click': [entry: LogEntry]\n 'entry-expand': [entry: LogEntry]\n 'entry-collapse': [entry: LogEntry]\n 'filter-change': [filter: FilterConfig]\n 'theme-change': [theme: ThemeMode]\n 'page-change': [page: number]\n}>()\n\nconst containerRef = ref<HTMLElement | null>(null)\nlet instance: LogViewerInstance | null = null\n\nonMounted(() => {\n if (!containerRef.value) return\n\n instance = createLogViewer({\n container: containerRef.value,\n data: props.data,\n filter: props.filter,\n theme: props.theme,\n pageSize: props.pageSize,\n showFilter: props.showFilter,\n showDiff: props.showDiff,\n showAnomalyBadge: props.showAnomalyBadge,\n })\n\n instance.on('entry:click', (entry: LogEntry) => emit('entry-click', entry))\n instance.on('entry:expand', (entry: LogEntry) => emit('entry-expand', entry))\n instance.on('entry:collapse', (entry: LogEntry) => emit('entry-collapse', entry))\n instance.on('filter:change', (filter: FilterConfig) => emit('filter-change', filter))\n instance.on('theme:change', (theme: ThemeMode) => emit('theme-change', theme))\n instance.on('page:change', (page: number) => emit('page-change', page))\n})\n\nwatch(() => props.data, (newData) => {\n instance?.setData(newData)\n}, { deep: true })\n\nwatch(() => props.filter, (newFilter) => {\n if (newFilter) instance?.setFilter(newFilter)\n}, { deep: true })\n\nwatch(() => props.theme, (newTheme) => {\n instance?.setTheme(newTheme)\n})\n\nonUnmounted(() => {\n instance?.destroy()\n instance = null\n})\n\ndefineExpose({\n getInstance: () => instance,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA,MAAM,QAAQ;EAiBd,MAAM,OAAO;EASb,MAAM,gBAAA,GAAA,IAAA,IAAA,CAAuC,IAAI;EACjD,IAAI,WAAqC;EAEzC,CAAA,GAAA,IAAA,UAAA,OAAgB;GACd,IAAI,CAAC,aAAa,OAAO;GAEzB,YAAA,GAAA,yBAAA,gBAAA,CAA2B;IACzB,WAAW,aAAa;IACxB,MAAM,MAAM;IACZ,QAAQ,MAAM;IACd,OAAO,MAAM;IACb,UAAU,MAAM;IAChB,YAAY,MAAM;IAClB,UAAU,MAAM;IAChB,kBAAkB,MAAM;GAC1B,CAAC;GAED,SAAS,GAAG,gBAAgB,UAAoB,KAAK,eAAe,KAAK,CAAC;GAC1E,SAAS,GAAG,iBAAiB,UAAoB,KAAK,gBAAgB,KAAK,CAAC;GAC5E,SAAS,GAAG,mBAAmB,UAAoB,KAAK,kBAAkB,KAAK,CAAC;GAChF,SAAS,GAAG,kBAAkB,WAAyB,KAAK,iBAAiB,MAAM,CAAC;GACpF,SAAS,GAAG,iBAAiB,UAAqB,KAAK,gBAAgB,KAAK,CAAC;GAC7E,SAAS,GAAG,gBAAgB,SAAiB,KAAK,eAAe,IAAI,CAAC;EACxE,CAAC;EAED,CAAA,GAAA,IAAA,MAAA,OAAY,MAAM,OAAO,YAAY;GACnC,UAAU,QAAQ,OAAO;EAC3B,GAAG,EAAE,MAAM,KAAK,CAAC;EAEjB,CAAA,GAAA,IAAA,MAAA,OAAY,MAAM,SAAS,cAAc;GACvC,IAAI,WAAW,UAAU,UAAU,SAAS;EAC9C,GAAG,EAAE,MAAM,KAAK,CAAC;EAEjB,CAAA,GAAA,IAAA,MAAA,OAAY,MAAM,QAAQ,aAAa;GACrC,UAAU,SAAS,QAAQ;EAC7B,CAAC;EAED,CAAA,GAAA,IAAA,YAAA,OAAkB;GAChB,UAAU,QAAQ;GAClB,WAAW;EACb,CAAC;EAED,SAAa,EACX,mBAAmB,SACrB,CAAC;;4DApFmD,OAAA;aAAzC;IAAJ,KAAI;IAAe,OAAM"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
11
|
+
let vue = require("vue");
|
|
12
|
+
let _composy_log_viewer_core = require("@composy/log-viewer-core");
|
|
13
|
+
//#region src/composables/useLogViewer.ts
|
|
14
|
+
function useLogViewer() {
|
|
15
|
+
const instance = (0, vue.ref)(null);
|
|
16
|
+
const data = (0, vue.ref)([]);
|
|
17
|
+
const filter = (0, vue.ref)({});
|
|
18
|
+
const theme = (0, vue.ref)("light");
|
|
19
|
+
const pagination = (0, vue.ref)({
|
|
20
|
+
page: 1,
|
|
21
|
+
pageSize: 20
|
|
22
|
+
});
|
|
23
|
+
function create(container, config) {
|
|
24
|
+
if (instance.value) instance.value.destroy();
|
|
25
|
+
instance.value = (0, _composy_log_viewer_core.createLogViewer)({
|
|
26
|
+
container,
|
|
27
|
+
...config
|
|
28
|
+
});
|
|
29
|
+
instance.value.on("data:change", (entries) => {
|
|
30
|
+
data.value = entries;
|
|
31
|
+
});
|
|
32
|
+
instance.value.on("filter:change", (f) => {
|
|
33
|
+
filter.value = f;
|
|
34
|
+
});
|
|
35
|
+
instance.value.on("theme:change", (t) => {
|
|
36
|
+
theme.value = t;
|
|
37
|
+
});
|
|
38
|
+
instance.value.on("page:change", () => {
|
|
39
|
+
if (instance.value) pagination.value = instance.value.getPagination();
|
|
40
|
+
});
|
|
41
|
+
if (config?.data) data.value = config.data;
|
|
42
|
+
if (config?.theme) theme.value = config.theme;
|
|
43
|
+
if (config?.filter) filter.value = config.filter;
|
|
44
|
+
}
|
|
45
|
+
function setData(entries) {
|
|
46
|
+
instance.value?.setData(entries);
|
|
47
|
+
data.value = entries;
|
|
48
|
+
}
|
|
49
|
+
function appendData(entries) {
|
|
50
|
+
instance.value?.appendData(entries);
|
|
51
|
+
data.value = instance.value?.getData() || [];
|
|
52
|
+
}
|
|
53
|
+
function setFilter(f) {
|
|
54
|
+
instance.value?.setFilter(f);
|
|
55
|
+
filter.value = f;
|
|
56
|
+
}
|
|
57
|
+
function resetFilter() {
|
|
58
|
+
instance.value?.resetFilter();
|
|
59
|
+
filter.value = {};
|
|
60
|
+
}
|
|
61
|
+
function setTheme(t) {
|
|
62
|
+
instance.value?.setTheme(t);
|
|
63
|
+
theme.value = t;
|
|
64
|
+
}
|
|
65
|
+
function expandEntry(id) {
|
|
66
|
+
instance.value?.expandEntry(id);
|
|
67
|
+
}
|
|
68
|
+
function collapseEntry(id) {
|
|
69
|
+
instance.value?.collapseEntry(id);
|
|
70
|
+
}
|
|
71
|
+
function collapseAll() {
|
|
72
|
+
instance.value?.collapseAll();
|
|
73
|
+
}
|
|
74
|
+
function goToPage(page) {
|
|
75
|
+
instance.value?.goToPage(page);
|
|
76
|
+
}
|
|
77
|
+
function refresh() {
|
|
78
|
+
instance.value?.refresh();
|
|
79
|
+
}
|
|
80
|
+
function destroy() {
|
|
81
|
+
instance.value?.destroy();
|
|
82
|
+
instance.value = null;
|
|
83
|
+
}
|
|
84
|
+
function on(event, callback) {
|
|
85
|
+
return instance.value?.on(event, callback) || (() => {});
|
|
86
|
+
}
|
|
87
|
+
(0, vue.onUnmounted)(() => {
|
|
88
|
+
destroy();
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
instance,
|
|
92
|
+
data,
|
|
93
|
+
filter,
|
|
94
|
+
theme,
|
|
95
|
+
pagination,
|
|
96
|
+
create,
|
|
97
|
+
setData,
|
|
98
|
+
appendData,
|
|
99
|
+
setFilter,
|
|
100
|
+
resetFilter,
|
|
101
|
+
setTheme,
|
|
102
|
+
expandEntry,
|
|
103
|
+
collapseEntry,
|
|
104
|
+
collapseAll,
|
|
105
|
+
goToPage,
|
|
106
|
+
refresh,
|
|
107
|
+
destroy,
|
|
108
|
+
on
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
exports.useLogViewer = useLogViewer;
|
|
113
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
114
|
+
//# sourceMappingURL=useLogViewer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogViewer.cjs","names":[],"sources":["../../src/composables/useLogViewer.ts"],"sourcesContent":["/**\n * useLogViewer - Vue 3 组合式 API\n */\nimport { ref, onUnmounted } from 'vue'\nimport {\n createLogViewer,\n type LogViewer,\n type LogViewerConfig,\n type LogEntry,\n type FilterConfig,\n type ThemeMode,\n type PaginationConfig,\n} from '@composy/log-viewer-core'\n\n/**\n * useLogViewer - use Log Viewer function\n * @returns 返回值说明\n */\nexport function useLogViewer() {\n const instance = ref<LogViewer | null>(null)\n const data = ref<LogEntry[]>([])\n const filter = ref<FilterConfig>({})\n const theme = ref<ThemeMode>('light')\n const pagination = ref<PaginationConfig>({ page: 1, pageSize: 20 })\n\n function create(container: HTMLElement | string, config?: Partial<LogViewerConfig>) {\n if (instance.value) {\n instance.value.destroy()\n }\n\n instance.value = createLogViewer({\n container,\n ...config,\n })\n\n // Sync refs\n instance.value.on('data:change', (entries: LogEntry[]) => {\n data.value = entries\n })\n instance.value.on('filter:change', (f: FilterConfig) => {\n filter.value = f\n })\n instance.value.on('theme:change', (t: ThemeMode) => {\n theme.value = t\n })\n instance.value.on('page:change', () => {\n if (instance.value) {\n pagination.value = instance.value.getPagination()\n }\n })\n\n if (config?.data) data.value = config.data\n if (config?.theme) theme.value = config.theme\n if (config?.filter) filter.value = config.filter\n }\n\n function setData(entries: LogEntry[]) {\n instance.value?.setData(entries)\n data.value = entries\n }\n\n function appendData(entries: LogEntry[]) {\n instance.value?.appendData(entries)\n data.value = instance.value?.getData() || []\n }\n\n function setFilter(f: FilterConfig) {\n instance.value?.setFilter(f)\n filter.value = f\n }\n\n function resetFilter() {\n instance.value?.resetFilter()\n filter.value = {}\n }\n\n function setTheme(t: ThemeMode) {\n instance.value?.setTheme(t)\n theme.value = t\n }\n\n function expandEntry(id: string) {\n instance.value?.expandEntry(id)\n }\n\n function collapseEntry(id: string) {\n instance.value?.collapseEntry(id)\n }\n\n function collapseAll() {\n instance.value?.collapseAll()\n }\n\n function goToPage(page: number) {\n instance.value?.goToPage(page)\n }\n\n function refresh() {\n instance.value?.refresh()\n }\n\n function destroy() {\n instance.value?.destroy()\n instance.value = null\n }\n\n function on(event: string, callback: (...args: unknown[]) => void): () => void {\n return instance.value?.on(event, callback) || (() => {})\n }\n\n onUnmounted(() => {\n destroy()\n })\n\n return {\n instance,\n data,\n filter,\n theme,\n pagination,\n create,\n setData,\n appendData,\n setFilter,\n resetFilter,\n setTheme,\n expandEntry,\n collapseEntry,\n collapseAll,\n goToPage,\n refresh,\n destroy,\n on,\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkBO,SAAS,eAAe;CAC7B,MAAM,YAAA,GAAA,IAAA,IAAA,CAAiC,IAAI;CAC3C,MAAM,QAAA,GAAA,IAAA,IAAA,CAAuB,CAAC,CAAC;CAC/B,MAAM,UAAA,GAAA,IAAA,IAAA,CAA2B,CAAC,CAAC;CACnC,MAAM,SAAA,GAAA,IAAA,IAAA,CAAuB,OAAO;CACpC,MAAM,cAAA,GAAA,IAAA,IAAA,CAAmC;EAAE,MAAM;EAAG,UAAU;CAAG,CAAC;CAElE,SAAS,OAAO,WAAiC,QAAmC;EAClF,IAAI,SAAS,OACX,SAAS,MAAM,QAAQ;EAGzB,SAAS,SAAA,GAAA,yBAAA,gBAAA,CAAwB;GAC/B;GACA,GAAG;EACL,CAAC;EAGD,SAAS,MAAM,GAAG,gBAAgB,YAAwB;GACxD,KAAK,QAAQ;EACf,CAAC;EACD,SAAS,MAAM,GAAG,kBAAkB,MAAoB;GACtD,OAAO,QAAQ;EACjB,CAAC;EACD,SAAS,MAAM,GAAG,iBAAiB,MAAiB;GAClD,MAAM,QAAQ;EAChB,CAAC;EACD,SAAS,MAAM,GAAG,qBAAqB;GACrC,IAAI,SAAS,OACX,WAAW,QAAQ,SAAS,MAAM,cAAc;EAEpD,CAAC;EAED,IAAI,QAAQ,MAAM,KAAK,QAAQ,OAAO;EACtC,IAAI,QAAQ,OAAO,MAAM,QAAQ,OAAO;EACxC,IAAI,QAAQ,QAAQ,OAAO,QAAQ,OAAO;CAC5C;CAEA,SAAS,QAAQ,SAAqB;EACpC,SAAS,OAAO,QAAQ,OAAO;EAC/B,KAAK,QAAQ;CACf;CAEA,SAAS,WAAW,SAAqB;EACvC,SAAS,OAAO,WAAW,OAAO;EAClC,KAAK,QAAQ,SAAS,OAAO,QAAQ,KAAK,CAAC;CAC7C;CAEA,SAAS,UAAU,GAAiB;EAClC,SAAS,OAAO,UAAU,CAAC;EAC3B,OAAO,QAAQ;CACjB;CAEA,SAAS,cAAc;EACrB,SAAS,OAAO,YAAY;EAC5B,OAAO,QAAQ,CAAC;CAClB;CAEA,SAAS,SAAS,GAAc;EAC9B,SAAS,OAAO,SAAS,CAAC;EAC1B,MAAM,QAAQ;CAChB;CAEA,SAAS,YAAY,IAAY;EAC/B,SAAS,OAAO,YAAY,EAAE;CAChC;CAEA,SAAS,cAAc,IAAY;EACjC,SAAS,OAAO,cAAc,EAAE;CAClC;CAEA,SAAS,cAAc;EACrB,SAAS,OAAO,YAAY;CAC9B;CAEA,SAAS,SAAS,MAAc;EAC9B,SAAS,OAAO,SAAS,IAAI;CAC/B;CAEA,SAAS,UAAU;EACjB,SAAS,OAAO,QAAQ;CAC1B;CAEA,SAAS,UAAU;EACjB,SAAS,OAAO,QAAQ;EACxB,SAAS,QAAQ;CACnB;CAEA,SAAS,GAAG,OAAe,UAAoD;EAC7E,OAAO,SAAS,OAAO,GAAG,OAAO,QAAQ,YAAY,CAAC;CACxD;CAEA,CAAA,GAAA,IAAA,YAAA,OAAkB;EAChB,QAAQ;CACV,CAAC;CAED,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { type LogViewer, type LogViewerConfig, type LogEntry, type FilterConfig, type ThemeMode, type PaginationConfig } from '@composy/log-viewer-core';
|
|
2
|
+
/**
|
|
3
|
+
* useLogViewer - use Log Viewer function
|
|
4
|
+
* @returns 返回值说明
|
|
5
|
+
*/
|
|
6
|
+
export declare function useLogViewer(): {
|
|
7
|
+
instance: import("vue").Ref<{
|
|
8
|
+
getData: () => LogEntry[];
|
|
9
|
+
setData: (entries: LogEntry[]) => void;
|
|
10
|
+
appendData: (entries: LogEntry[]) => void;
|
|
11
|
+
getFilter: () => FilterConfig;
|
|
12
|
+
setFilter: (filter: FilterConfig) => void;
|
|
13
|
+
resetFilter: () => void;
|
|
14
|
+
getTheme: () => ThemeMode;
|
|
15
|
+
setTheme: (theme: ThemeMode) => void;
|
|
16
|
+
expandEntry: (id: string) => void;
|
|
17
|
+
collapseEntry: (id: string) => void;
|
|
18
|
+
collapseAll: () => void;
|
|
19
|
+
goToPage: (page: number) => void;
|
|
20
|
+
getPagination: () => PaginationConfig;
|
|
21
|
+
on: (event: string, callback: (...args: unknown[]) => void) => () => void;
|
|
22
|
+
refresh: () => void;
|
|
23
|
+
destroy: () => void;
|
|
24
|
+
}, LogViewer | {
|
|
25
|
+
getData: () => LogEntry[];
|
|
26
|
+
setData: (entries: LogEntry[]) => void;
|
|
27
|
+
appendData: (entries: LogEntry[]) => void;
|
|
28
|
+
getFilter: () => FilterConfig;
|
|
29
|
+
setFilter: (filter: FilterConfig) => void;
|
|
30
|
+
resetFilter: () => void;
|
|
31
|
+
getTheme: () => ThemeMode;
|
|
32
|
+
setTheme: (theme: ThemeMode) => void;
|
|
33
|
+
expandEntry: (id: string) => void;
|
|
34
|
+
collapseEntry: (id: string) => void;
|
|
35
|
+
collapseAll: () => void;
|
|
36
|
+
goToPage: (page: number) => void;
|
|
37
|
+
getPagination: () => PaginationConfig;
|
|
38
|
+
on: (event: string, callback: (...args: unknown[]) => void) => () => void;
|
|
39
|
+
refresh: () => void;
|
|
40
|
+
destroy: () => void;
|
|
41
|
+
}>;
|
|
42
|
+
data: import("vue").Ref<{
|
|
43
|
+
id: string;
|
|
44
|
+
timestamp: string | number | Date;
|
|
45
|
+
user: string;
|
|
46
|
+
userId?: string;
|
|
47
|
+
action: import("@composy/log-viewer-core").ActionType;
|
|
48
|
+
module: string;
|
|
49
|
+
detail?: string;
|
|
50
|
+
ip?: string;
|
|
51
|
+
changes?: {
|
|
52
|
+
field: string;
|
|
53
|
+
label?: string;
|
|
54
|
+
oldValue: unknown;
|
|
55
|
+
newValue: unknown;
|
|
56
|
+
}[];
|
|
57
|
+
metadata?: Record<string, unknown>;
|
|
58
|
+
anomaly?: import("@composy/log-viewer-core").AnomalyType;
|
|
59
|
+
}[], LogEntry[] | {
|
|
60
|
+
id: string;
|
|
61
|
+
timestamp: string | number | Date;
|
|
62
|
+
user: string;
|
|
63
|
+
userId?: string;
|
|
64
|
+
action: import("@composy/log-viewer-core").ActionType;
|
|
65
|
+
module: string;
|
|
66
|
+
detail?: string;
|
|
67
|
+
ip?: string;
|
|
68
|
+
changes?: {
|
|
69
|
+
field: string;
|
|
70
|
+
label?: string;
|
|
71
|
+
oldValue: unknown;
|
|
72
|
+
newValue: unknown;
|
|
73
|
+
}[];
|
|
74
|
+
metadata?: Record<string, unknown>;
|
|
75
|
+
anomaly?: import("@composy/log-viewer-core").AnomalyType;
|
|
76
|
+
}[]>;
|
|
77
|
+
filter: import("vue").Ref<{
|
|
78
|
+
user?: string;
|
|
79
|
+
action?: import("@composy/log-viewer-core").ActionType | import("@composy/log-viewer-core").ActionType[];
|
|
80
|
+
module?: string;
|
|
81
|
+
ip?: string;
|
|
82
|
+
timeRange?: [Date | string | number, Date | string | number];
|
|
83
|
+
keyword?: string;
|
|
84
|
+
}, FilterConfig | {
|
|
85
|
+
user?: string;
|
|
86
|
+
action?: import("@composy/log-viewer-core").ActionType | import("@composy/log-viewer-core").ActionType[];
|
|
87
|
+
module?: string;
|
|
88
|
+
ip?: string;
|
|
89
|
+
timeRange?: [Date | string | number, Date | string | number];
|
|
90
|
+
keyword?: string;
|
|
91
|
+
}>;
|
|
92
|
+
theme: import("vue").Ref<ThemeMode, ThemeMode>;
|
|
93
|
+
pagination: import("vue").Ref<{
|
|
94
|
+
page: number;
|
|
95
|
+
pageSize: number;
|
|
96
|
+
total?: number;
|
|
97
|
+
}, PaginationConfig | {
|
|
98
|
+
page: number;
|
|
99
|
+
pageSize: number;
|
|
100
|
+
total?: number;
|
|
101
|
+
}>;
|
|
102
|
+
create: (container: HTMLElement | string, config?: Partial<LogViewerConfig>) => void;
|
|
103
|
+
setData: (entries: LogEntry[]) => void;
|
|
104
|
+
appendData: (entries: LogEntry[]) => void;
|
|
105
|
+
setFilter: (f: FilterConfig) => void;
|
|
106
|
+
resetFilter: () => void;
|
|
107
|
+
setTheme: (t: ThemeMode) => void;
|
|
108
|
+
expandEntry: (id: string) => void;
|
|
109
|
+
collapseEntry: (id: string) => void;
|
|
110
|
+
collapseAll: () => void;
|
|
111
|
+
goToPage: (page: number) => void;
|
|
112
|
+
refresh: () => void;
|
|
113
|
+
destroy: () => void;
|
|
114
|
+
on: (event: string, callback: (...args: unknown[]) => void) => () => void;
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=useLogViewer.d.ts.map
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/log-viewer-vue v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:42:24 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
11
|
+
const require_useLogViewer = require("./composables/useLogViewer.cjs");
|
|
12
|
+
const require_LogViewer = require("./components/LogViewer.cjs");
|
|
13
|
+
const require_plugin = require("./plugin.cjs");
|
|
14
|
+
let _composy_log_viewer_core = require("@composy/log-viewer-core");
|
|
15
|
+
//#region src/index.ts
|
|
16
|
+
const VERSION = "0.1.0";
|
|
17
|
+
//#endregion
|
|
18
|
+
Object.defineProperty(exports, "ACTION_COLORS", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function() {
|
|
21
|
+
return _composy_log_viewer_core.ACTION_COLORS;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "ACTION_LABELS", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function() {
|
|
27
|
+
return _composy_log_viewer_core.ACTION_LABELS;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
exports.LogViewer = require_LogViewer.default;
|
|
31
|
+
exports.LogViewerPlugin = require_plugin.LogViewerPlugin;
|
|
32
|
+
exports.VERSION = VERSION;
|
|
33
|
+
Object.defineProperty(exports, "createLogViewer", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function() {
|
|
36
|
+
return _composy_log_viewer_core.createLogViewer;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "formatDate", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function() {
|
|
42
|
+
return _composy_log_viewer_core.formatDate;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, "formatRelativeTime", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function() {
|
|
48
|
+
return _composy_log_viewer_core.formatRelativeTime;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
exports.useLogViewer = require_useLogViewer.useLogViewer;
|
|
52
|
+
/*! End of @composy/log-viewer-vue | Powered by @composy/builder */
|
|
53
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @composy/log-viewer-vue\n *\n * 审计日志查看器 — Vue 3 适配层\n * 提供 LogViewer 组件、useLogViewer 组合式函数和 Vue 插件\n *\n * @packageDocumentation\n */\n\nexport const VERSION = '0.1.0'\n\n// 组件\nexport { default as LogViewer } from './components/LogViewer.vue'\n\n// 组合式 API\nexport { useLogViewer } from './composables/useLogViewer'\n\n// 插件\nexport { LogViewerPlugin } from './plugin'\n\n// 重新导出核心类型\nexport type {\n ActionType,\n ThemeMode,\n AnomalyType,\n DiffEntry,\n LogEntry,\n FilterConfig,\n PaginationConfig,\n LogViewerConfig,\n LogViewerInstance,\n LogViewerEvents,\n} from '@composy/log-viewer-core'\n\nexport {\n createLogViewer,\n ACTION_LABELS,\n ACTION_COLORS,\n formatDate,\n formatRelativeTime,\n} from '@composy/log-viewer-core'\n"],"mappings":";;;;;;;;;;;;;;;AASO,MAAM,UAAU"}
|