@vite-plugin-opencode-assistant/components 1.0.37 → 1.0.39
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/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/open-code-widget/composables/use-persist-state.d.ts +2 -0
- package/es/open-code-widget/composables/use-persist-state.js +24 -9
- package/es/open-code-widget/composables/use-split.d.ts +24 -0
- package/es/open-code-widget/composables/use-split.js +90 -0
- package/es/open-code-widget/src/components/ChatPanel-sfc.css +1 -0
- package/es/open-code-widget/src/components/ChatPanel.vue.d.ts +180 -0
- package/es/open-code-widget/src/components/ChatPanel.vue.js +288 -0
- package/es/open-code-widget/src/components/Header.vue.js +13 -8
- package/es/open-code-widget/src/components/ResizeHandle-sfc.css +1 -0
- package/es/open-code-widget/src/components/ResizeHandle.vue.d.ts +19 -0
- package/es/open-code-widget/src/components/ResizeHandle.vue.js +91 -0
- package/es/open-code-widget/src/components/SplitTrigger-sfc.css +1 -0
- package/es/open-code-widget/src/components/SplitTrigger.vue.d.ts +17 -0
- package/es/open-code-widget/src/components/SplitTrigger.vue.js +130 -0
- package/es/open-code-widget/src/context.d.ts +1 -0
- package/es/open-code-widget/src/index-sfc.css +1 -1
- package/es/open-code-widget/src/index.vue.d.ts +16 -53
- package/es/open-code-widget/src/index.vue.js +150 -140
- package/es/open-code-widget/src/types.d.ts +1 -1
- package/lib/@vite-plugin-opencode-assistant/components.cjs.js +806 -248
- package/lib/@vite-plugin-opencode-assistant/components.es.js +802 -244
- package/lib/components.css +5 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/open-code-widget/composables/use-persist-state.d.ts +2 -0
- package/lib/open-code-widget/composables/use-persist-state.js +24 -9
- package/lib/open-code-widget/composables/use-split.d.ts +24 -0
- package/lib/open-code-widget/composables/use-split.js +109 -0
- package/lib/open-code-widget/src/components/ChatPanel-sfc.css +1 -0
- package/lib/open-code-widget/src/components/ChatPanel.vue.d.ts +180 -0
- package/lib/open-code-widget/src/components/ChatPanel.vue.js +315 -0
- package/lib/open-code-widget/src/components/Header.vue.js +12 -7
- package/lib/open-code-widget/src/components/ResizeHandle-sfc.css +1 -0
- package/lib/open-code-widget/src/components/ResizeHandle.vue.d.ts +19 -0
- package/lib/open-code-widget/src/components/ResizeHandle.vue.js +108 -0
- package/lib/open-code-widget/src/components/SplitTrigger-sfc.css +1 -0
- package/lib/open-code-widget/src/components/SplitTrigger.vue.d.ts +17 -0
- package/lib/open-code-widget/src/components/SplitTrigger.vue.js +147 -0
- package/lib/open-code-widget/src/context.d.ts +1 -0
- package/lib/open-code-widget/src/index-sfc.css +1 -1
- package/lib/open-code-widget/src/index.vue.d.ts +16 -53
- package/lib/open-code-widget/src/index.vue.js +149 -139
- package/lib/open-code-widget/src/types.d.ts +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
38
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
39
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
40
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
41
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
42
|
+
mod
|
|
43
|
+
));
|
|
44
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
45
|
+
var ChatPanel_vue_exports = {};
|
|
46
|
+
__export(ChatPanel_vue_exports, {
|
|
47
|
+
default: () => ChatPanel_vue_default
|
|
48
|
+
});
|
|
49
|
+
module.exports = __toCommonJS(ChatPanel_vue_exports);
|
|
50
|
+
var import_ChatPanel_sfc = require("./ChatPanel-sfc.css");
|
|
51
|
+
var import_vue = require("vue");
|
|
52
|
+
var import_vue2 = require("vue");
|
|
53
|
+
var import_Frame_vue = __toESM(require("./Frame.vue.js"));
|
|
54
|
+
var import_Header_vue = __toESM(require("./Header.vue.js"));
|
|
55
|
+
var import_SessionList_vue = __toESM(require("./SessionList.vue.js"));
|
|
56
|
+
var import_SelectedNodes_vue = __toESM(require("./SelectedNodes.vue.js"));
|
|
57
|
+
var import_ResizeHandle_vue = __toESM(require("./ResizeHandle.vue.js"));
|
|
58
|
+
var import_vue3 = require("vue");
|
|
59
|
+
const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProps(__spreadValues({}, {
|
|
60
|
+
name: "ChatPanel"
|
|
61
|
+
}), {
|
|
62
|
+
__name: "ChatPanel",
|
|
63
|
+
props: {
|
|
64
|
+
mode: { type: String, required: false, default: "bubble" },
|
|
65
|
+
open: { type: Boolean, required: false, default: false },
|
|
66
|
+
minimized: { type: Boolean, required: false, default: false },
|
|
67
|
+
positionStyle: { type: Object, required: false, default: () => ({}) },
|
|
68
|
+
animationOrigin: { type: Object, required: false, default: () => ({ x: "20px", y: "20px" }) },
|
|
69
|
+
panelWidth: { type: Number, required: false, default: 500 },
|
|
70
|
+
resizable: { type: Boolean, required: false, default: true },
|
|
71
|
+
minWidth: { type: Number, required: false, default: 400 },
|
|
72
|
+
maxWidth: { type: Number, required: false, default: 800 },
|
|
73
|
+
noTransition: { type: Boolean, required: false, default: false },
|
|
74
|
+
dragging: { type: Boolean, required: false, default: false },
|
|
75
|
+
notificationVisible: { type: Boolean, required: false, default: false },
|
|
76
|
+
notificationMessage: { type: String, required: false, default: "" },
|
|
77
|
+
notificationMode: { type: String, required: false, default: "widget" },
|
|
78
|
+
thinking: { type: Boolean, required: false, default: false },
|
|
79
|
+
resolvedTheme: { type: String, required: false, default: "light" }
|
|
80
|
+
},
|
|
81
|
+
emits: ["resize", "resize-start", "resize-end", "toggle"],
|
|
82
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
83
|
+
(0, import_vue.useCssVars)((_ctx) => ({
|
|
84
|
+
"-animationOrigin.x": _ctx.animationOrigin.x,
|
|
85
|
+
"-animationOrigin.y": _ctx.animationOrigin.y
|
|
86
|
+
}));
|
|
87
|
+
const props = __props;
|
|
88
|
+
const emit = __emit;
|
|
89
|
+
const slots = (0, import_vue2.useSlots)();
|
|
90
|
+
const frameRef = (0, import_vue2.ref)(null);
|
|
91
|
+
const sendMessageToIframe = (type, data) => {
|
|
92
|
+
var _a;
|
|
93
|
+
(_a = frameRef.value) == null ? void 0 : _a.sendMessageToIframe(type, data);
|
|
94
|
+
};
|
|
95
|
+
__expose({
|
|
96
|
+
sendMessageToIframe,
|
|
97
|
+
frameRef
|
|
98
|
+
});
|
|
99
|
+
const handleResizeStart = () => {
|
|
100
|
+
emit("resize-start");
|
|
101
|
+
};
|
|
102
|
+
const handleResize = (width) => {
|
|
103
|
+
emit("resize", width);
|
|
104
|
+
};
|
|
105
|
+
const handleResizeEnd = () => {
|
|
106
|
+
emit("resize-end");
|
|
107
|
+
};
|
|
108
|
+
const handleToggle = () => {
|
|
109
|
+
emit("toggle");
|
|
110
|
+
};
|
|
111
|
+
const panelStyle = (0, import_vue2.computed)(() => {
|
|
112
|
+
if (props.mode === "split") {
|
|
113
|
+
return {
|
|
114
|
+
width: `${props.panelWidth}px`
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return props.positionStyle;
|
|
118
|
+
});
|
|
119
|
+
const panelClasses = (0, import_vue2.computed)(() => [
|
|
120
|
+
"opencode-chat",
|
|
121
|
+
{
|
|
122
|
+
open: props.open,
|
|
123
|
+
minimized: props.minimized,
|
|
124
|
+
dragging: props.dragging,
|
|
125
|
+
"no-transition": props.noTransition,
|
|
126
|
+
"split-mode": props.mode === "split"
|
|
127
|
+
}
|
|
128
|
+
]);
|
|
129
|
+
const __returned__ = { props, emit, slots, frameRef, sendMessageToIframe, handleResizeStart, handleResize, handleResizeEnd, handleToggle, panelStyle, panelClasses, Frame: import_Frame_vue.default, Header: import_Header_vue.default, SessionList: import_SessionList_vue.default, SelectedNodes: import_SelectedNodes_vue.default, ResizeHandle: import_ResizeHandle_vue.default };
|
|
130
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
131
|
+
return __returned__;
|
|
132
|
+
}
|
|
133
|
+
}));
|
|
134
|
+
const _hoisted_1 = ["aria-expanded"];
|
|
135
|
+
const _hoisted_2 = { class: "opencode-split-toggle-icon" };
|
|
136
|
+
const _hoisted_3 = {
|
|
137
|
+
key: 0,
|
|
138
|
+
viewBox: "0 0 24 24",
|
|
139
|
+
width: "16",
|
|
140
|
+
height: "16",
|
|
141
|
+
fill: "none",
|
|
142
|
+
stroke: "currentColor",
|
|
143
|
+
"stroke-width": "2"
|
|
144
|
+
};
|
|
145
|
+
const _hoisted_4 = {
|
|
146
|
+
key: 1,
|
|
147
|
+
viewBox: "0 0 24 24",
|
|
148
|
+
width: "16",
|
|
149
|
+
height: "16",
|
|
150
|
+
fill: "none",
|
|
151
|
+
stroke: "currentColor",
|
|
152
|
+
"stroke-width": "2"
|
|
153
|
+
};
|
|
154
|
+
const _hoisted_5 = {
|
|
155
|
+
key: 2,
|
|
156
|
+
class: "opencode-notification",
|
|
157
|
+
role: "alert"
|
|
158
|
+
};
|
|
159
|
+
const _hoisted_6 = { class: "opencode-chat-content" };
|
|
160
|
+
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
161
|
+
return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
|
|
162
|
+
"div",
|
|
163
|
+
{
|
|
164
|
+
class: (0, import_vue3.normalizeClass)($setup.panelClasses),
|
|
165
|
+
style: (0, import_vue3.normalizeStyle)($setup.panelStyle)
|
|
166
|
+
},
|
|
167
|
+
[
|
|
168
|
+
$props.mode === "split" && $props.resizable && $props.open ? ((0, import_vue3.openBlock)(), (0, import_vue3.createBlock)($setup["ResizeHandle"], {
|
|
169
|
+
key: 0,
|
|
170
|
+
width: $props.panelWidth,
|
|
171
|
+
"min-width": $props.minWidth,
|
|
172
|
+
"max-width": $props.maxWidth,
|
|
173
|
+
onResize: $setup.handleResize,
|
|
174
|
+
onResizeStart: $setup.handleResizeStart,
|
|
175
|
+
onResizeEnd: $setup.handleResizeEnd
|
|
176
|
+
}, null, 8, ["width", "min-width", "max-width"])) : (0, import_vue3.createCommentVNode)("v-if", true),
|
|
177
|
+
$props.mode === "split" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
|
|
178
|
+
key: 1,
|
|
179
|
+
type: "button",
|
|
180
|
+
class: (0, import_vue3.normalizeClass)(["opencode-split-toggle-btn", { open: $setup.props.open, thinking: $setup.props.thinking, "opencode-theme-dark": $props.resolvedTheme === "dark" }]),
|
|
181
|
+
"aria-expanded": $props.open,
|
|
182
|
+
"aria-label": "\u5207\u6362\u9762\u677F",
|
|
183
|
+
onClick: $setup.handleToggle
|
|
184
|
+
}, [
|
|
185
|
+
(0, import_vue3.createElementVNode)("span", _hoisted_2, [
|
|
186
|
+
$props.open ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_3, [..._cache[0] || (_cache[0] = [
|
|
187
|
+
(0, import_vue3.createElementVNode)(
|
|
188
|
+
"path",
|
|
189
|
+
{
|
|
190
|
+
d: "M9 18l6-6-6-6",
|
|
191
|
+
"stroke-linecap": "round",
|
|
192
|
+
"stroke-linejoin": "round"
|
|
193
|
+
},
|
|
194
|
+
null,
|
|
195
|
+
-1
|
|
196
|
+
/* CACHED */
|
|
197
|
+
)
|
|
198
|
+
])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_4, [..._cache[1] || (_cache[1] = [
|
|
199
|
+
(0, import_vue3.createElementVNode)(
|
|
200
|
+
"path",
|
|
201
|
+
{
|
|
202
|
+
d: "M15 18l-6-6 6-6",
|
|
203
|
+
"stroke-linecap": "round",
|
|
204
|
+
"stroke-linejoin": "round"
|
|
205
|
+
},
|
|
206
|
+
null,
|
|
207
|
+
-1
|
|
208
|
+
/* CACHED */
|
|
209
|
+
)
|
|
210
|
+
])]))
|
|
211
|
+
])
|
|
212
|
+
], 10, _hoisted_1)) : (0, import_vue3.createCommentVNode)("v-if", true),
|
|
213
|
+
(0, import_vue3.createVNode)(
|
|
214
|
+
$setup["Header"],
|
|
215
|
+
null,
|
|
216
|
+
(0, import_vue3.createSlots)({
|
|
217
|
+
_: 2
|
|
218
|
+
/* DYNAMIC */
|
|
219
|
+
}, [
|
|
220
|
+
$setup.slots["session-toggle-icon"] ? {
|
|
221
|
+
name: "session-toggle-icon",
|
|
222
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
223
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "session-toggle-icon")
|
|
224
|
+
]),
|
|
225
|
+
key: "0"
|
|
226
|
+
} : void 0,
|
|
227
|
+
$setup.slots["select-icon"] ? {
|
|
228
|
+
name: "select-icon",
|
|
229
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
230
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "select-icon")
|
|
231
|
+
]),
|
|
232
|
+
key: "1"
|
|
233
|
+
} : void 0,
|
|
234
|
+
$setup.slots["close-icon"] ? {
|
|
235
|
+
name: "close-icon",
|
|
236
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
237
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "close-icon")
|
|
238
|
+
]),
|
|
239
|
+
key: "2"
|
|
240
|
+
} : void 0
|
|
241
|
+
]),
|
|
242
|
+
1024
|
|
243
|
+
/* DYNAMIC_SLOTS */
|
|
244
|
+
),
|
|
245
|
+
$props.notificationVisible && $props.notificationMode === "widget" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
|
|
246
|
+
"div",
|
|
247
|
+
_hoisted_5,
|
|
248
|
+
(0, import_vue3.toDisplayString)($props.notificationMessage),
|
|
249
|
+
1
|
|
250
|
+
/* TEXT */
|
|
251
|
+
)) : (0, import_vue3.createCommentVNode)("v-if", true),
|
|
252
|
+
(0, import_vue3.createElementVNode)("div", _hoisted_6, [
|
|
253
|
+
(0, import_vue3.createVNode)($setup["SessionList"], null, {
|
|
254
|
+
empty: (0, import_vue3.withCtx)(() => [
|
|
255
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "sessions-empty", {}, () => [
|
|
256
|
+
_cache[2] || (_cache[2] = (0, import_vue3.createElementVNode)(
|
|
257
|
+
"div",
|
|
258
|
+
{ class: "opencode-session-empty" },
|
|
259
|
+
"\u6682\u65E0\u4F1A\u8BDD",
|
|
260
|
+
-1
|
|
261
|
+
/* CACHED */
|
|
262
|
+
))
|
|
263
|
+
])
|
|
264
|
+
]),
|
|
265
|
+
_: 3
|
|
266
|
+
/* FORWARDED */
|
|
267
|
+
}),
|
|
268
|
+
(0, import_vue3.createVNode)(
|
|
269
|
+
$setup["Frame"],
|
|
270
|
+
{ ref: "frameRef" },
|
|
271
|
+
(0, import_vue3.createSlots)({
|
|
272
|
+
_: 2
|
|
273
|
+
/* DYNAMIC */
|
|
274
|
+
}, [
|
|
275
|
+
$setup.slots["empty-state"] ? {
|
|
276
|
+
name: "empty-state",
|
|
277
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
278
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "empty-state")
|
|
279
|
+
]),
|
|
280
|
+
key: "0"
|
|
281
|
+
} : void 0,
|
|
282
|
+
$setup.slots.loading ? {
|
|
283
|
+
name: "loading",
|
|
284
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
285
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "loading")
|
|
286
|
+
]),
|
|
287
|
+
key: "1"
|
|
288
|
+
} : void 0,
|
|
289
|
+
$setup.slots.error ? {
|
|
290
|
+
name: "error",
|
|
291
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
292
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "error")
|
|
293
|
+
]),
|
|
294
|
+
key: "2"
|
|
295
|
+
} : void 0,
|
|
296
|
+
$setup.slots.content ? {
|
|
297
|
+
name: "content",
|
|
298
|
+
fn: (0, import_vue3.withCtx)(() => [
|
|
299
|
+
(0, import_vue3.renderSlot)(_ctx.$slots, "content")
|
|
300
|
+
]),
|
|
301
|
+
key: "3"
|
|
302
|
+
} : void 0
|
|
303
|
+
]),
|
|
304
|
+
1536
|
|
305
|
+
/* NEED_PATCH, DYNAMIC_SLOTS */
|
|
306
|
+
),
|
|
307
|
+
(0, import_vue3.createVNode)($setup["SelectedNodes"])
|
|
308
|
+
])
|
|
309
|
+
],
|
|
310
|
+
6
|
|
311
|
+
/* CLASS, STYLE */
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
__vue_sfc__.render = __vue_render__;
|
|
315
|
+
var ChatPanel_vue_default = __vue_sfc__;
|
|
@@ -39,6 +39,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
39
39
|
resolvedTheme,
|
|
40
40
|
minimized,
|
|
41
41
|
promptDockVisible,
|
|
42
|
+
mode,
|
|
42
43
|
handleToggleSessionList,
|
|
43
44
|
handleToggleSelectMode,
|
|
44
45
|
handleToggleTheme,
|
|
@@ -46,6 +47,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
46
47
|
handleToggleMinimize,
|
|
47
48
|
handleTogglePromptDock
|
|
48
49
|
} = (0, import_context.useOpenCodeWidgetContext)();
|
|
50
|
+
const isSplitMode = (0, import_vue2.computed)(() => mode.value === "split");
|
|
49
51
|
const themeIconTitle = (0, import_vue2.computed)(() => {
|
|
50
52
|
const themeLabels = {
|
|
51
53
|
auto: "\u81EA\u52A8",
|
|
@@ -62,7 +64,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
62
64
|
};
|
|
63
65
|
return `\u5207\u6362\u4E3B\u9898 - \u5F53\u524D: ${themeLabels[theme.value]}`;
|
|
64
66
|
});
|
|
65
|
-
const __returned__ = { title, sessionListTitle, sessionListCollapsed, selectMode, selectEnabled, theme, resolvedTheme, minimized, promptDockVisible, handleToggleSessionList, handleToggleSelectMode, handleToggleTheme, handleClose, handleToggleMinimize, handleTogglePromptDock, themeIconTitle, themeIconLabel };
|
|
67
|
+
const __returned__ = { title, sessionListTitle, sessionListCollapsed, selectMode, selectEnabled, theme, resolvedTheme, minimized, promptDockVisible, mode, handleToggleSessionList, handleToggleSelectMode, handleToggleTheme, handleClose, handleToggleMinimize, handleTogglePromptDock, isSplitMode, themeIconTitle, themeIconLabel };
|
|
66
68
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
67
69
|
return __returned__;
|
|
68
70
|
}
|
|
@@ -225,7 +227,8 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
225
227
|
/* TEXT */
|
|
226
228
|
),
|
|
227
229
|
(0, import_vue3.createElementVNode)("div", _hoisted_10, [
|
|
228
|
-
(0, import_vue3.
|
|
230
|
+
!$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
|
|
231
|
+
key: 0,
|
|
229
232
|
class: "opencode-header-btn prompt-dock",
|
|
230
233
|
type: "button",
|
|
231
234
|
title: $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
|
|
@@ -252,8 +255,9 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
252
255
|
/* CACHED */
|
|
253
256
|
))
|
|
254
257
|
])
|
|
255
|
-
], 8, _hoisted_11),
|
|
256
|
-
(0, import_vue3.
|
|
258
|
+
], 8, _hoisted_11)) : (0, import_vue3.createCommentVNode)("v-if", true),
|
|
259
|
+
!$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
|
|
260
|
+
key: 1,
|
|
257
261
|
class: "opencode-header-btn minimize",
|
|
258
262
|
type: "button",
|
|
259
263
|
title: $setup.minimized ? "\u5C55\u5F00" : "\u6700\u5C0F\u5316",
|
|
@@ -280,8 +284,9 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
280
284
|
)
|
|
281
285
|
])]))
|
|
282
286
|
])
|
|
283
|
-
], 8, _hoisted_12),
|
|
284
|
-
(0, import_vue3.
|
|
287
|
+
], 8, _hoisted_12)) : (0, import_vue3.createCommentVNode)("v-if", true),
|
|
288
|
+
!$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
|
|
289
|
+
key: 2,
|
|
285
290
|
class: "opencode-header-btn close",
|
|
286
291
|
type: "button",
|
|
287
292
|
title: "\u5173\u95ED",
|
|
@@ -307,7 +312,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
307
312
|
/* CACHED */
|
|
308
313
|
))
|
|
309
314
|
])
|
|
310
|
-
])
|
|
315
|
+
])) : (0, import_vue3.createCommentVNode)("v-if", true)
|
|
311
316
|
])
|
|
312
317
|
]);
|
|
313
318
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.opencode-resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .2s ease}.opencode-resize-handle:hover,.opencode-resize-handle.resizing{background:var(--oc-primary-bg)}.opencode-resize-handle:after{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:2px;height:40px;background:var(--oc-border-secondary);border-radius:1px;opacity:0;transition:opacity .2s ease}.opencode-resize-handle:hover:after,.opencode-resize-handle.resizing:after{opacity:1}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
width: number;
|
|
3
|
+
minWidth?: number;
|
|
4
|
+
maxWidth?: number;
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
7
|
+
resize: (width: number) => any;
|
|
8
|
+
"resize-start": () => any;
|
|
9
|
+
"resize-end": () => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onResize?: ((width: number) => any) | undefined;
|
|
12
|
+
"onResize-start"?: (() => any) | undefined;
|
|
13
|
+
"onResize-end"?: (() => any) | undefined;
|
|
14
|
+
}>, {
|
|
15
|
+
width: number;
|
|
16
|
+
minWidth: number;
|
|
17
|
+
maxWidth: number;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(from))
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return to;
|
|
33
|
+
};
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
var ResizeHandle_vue_exports = {};
|
|
36
|
+
__export(ResizeHandle_vue_exports, {
|
|
37
|
+
default: () => ResizeHandle_vue_default
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(ResizeHandle_vue_exports);
|
|
40
|
+
var import_ResizeHandle_sfc = require("./ResizeHandle-sfc.css");
|
|
41
|
+
var import_vue = require("vue");
|
|
42
|
+
var import_vue2 = require("vue");
|
|
43
|
+
var import_vue3 = require("vue");
|
|
44
|
+
const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProps(__spreadValues({}, {
|
|
45
|
+
name: "ResizeHandle"
|
|
46
|
+
}), {
|
|
47
|
+
__name: "ResizeHandle",
|
|
48
|
+
props: {
|
|
49
|
+
width: { type: Number, required: true, default: 500 },
|
|
50
|
+
minWidth: { type: Number, required: false, default: 400 },
|
|
51
|
+
maxWidth: { type: Number, required: false, default: 800 }
|
|
52
|
+
},
|
|
53
|
+
emits: ["resize", "resize-start", "resize-end"],
|
|
54
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
55
|
+
__expose();
|
|
56
|
+
const props = __props;
|
|
57
|
+
const emit = __emit;
|
|
58
|
+
const isResizing = (0, import_vue2.ref)(false);
|
|
59
|
+
const startX = (0, import_vue2.ref)(0);
|
|
60
|
+
const startWidth = (0, import_vue2.ref)(0);
|
|
61
|
+
const handleMouseDown = (e) => {
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
isResizing.value = true;
|
|
64
|
+
startX.value = e.clientX;
|
|
65
|
+
startWidth.value = props.width;
|
|
66
|
+
emit("resize-start");
|
|
67
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
68
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
69
|
+
};
|
|
70
|
+
const handleMouseMove = (e) => {
|
|
71
|
+
if (!isResizing.value) return;
|
|
72
|
+
const deltaX = startX.value - e.clientX;
|
|
73
|
+
const newWidth = Math.max(props.minWidth, Math.min(props.maxWidth, startWidth.value + deltaX));
|
|
74
|
+
emit("resize", newWidth);
|
|
75
|
+
};
|
|
76
|
+
const handleMouseUp = () => {
|
|
77
|
+
isResizing.value = false;
|
|
78
|
+
emit("resize-end");
|
|
79
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
80
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
81
|
+
};
|
|
82
|
+
const handleDoubleClick = () => {
|
|
83
|
+
emit("resize", 500);
|
|
84
|
+
};
|
|
85
|
+
(0, import_vue2.onUnmounted)(() => {
|
|
86
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
87
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
88
|
+
});
|
|
89
|
+
const __returned__ = { props, emit, isResizing, startX, startWidth, handleMouseDown, handleMouseMove, handleMouseUp, handleDoubleClick };
|
|
90
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
91
|
+
return __returned__;
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
95
|
+
return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)(
|
|
96
|
+
"div",
|
|
97
|
+
{
|
|
98
|
+
class: (0, import_vue3.normalizeClass)(["opencode-resize-handle", { resizing: $setup.isResizing }]),
|
|
99
|
+
onMousedown: $setup.handleMouseDown,
|
|
100
|
+
onDblclick: $setup.handleDoubleClick
|
|
101
|
+
},
|
|
102
|
+
null,
|
|
103
|
+
34
|
|
104
|
+
/* CLASS, NEED_HYDRATION */
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
__vue_sfc__.render = __vue_render__;
|
|
108
|
+
var ResizeHandle_vue_default = __vue_sfc__;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.opencode-split-trigger{position:fixed;right:0;top:50%;transform:translateY(-50%);width:20px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px 0 0 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:-2px 0 8px rgba(59,130,246,.25);transition:right .3s ease,width .25s cubic-bezier(.4,0,.2,1),background .25s ease,box-shadow .25s ease;z-index:99998}.opencode-split-trigger:hover{width:24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:-3px 0 12px rgba(59,130,246,.35)}.opencode-split-trigger.open{width:20px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(59,130,246,.25)}.opencode-split-trigger.open:hover{width:24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:-3px 0 12px rgba(59,130,246,.35)}.opencode-split-trigger-icon{display:flex;align-items:center;justify-content:center;transition:transform .25s ease}.opencode-split-trigger:hover .opencode-split-trigger-icon{transform:scale(1.1)}.opencode-split-thinking-indicator{position:absolute;top:6px;right:6px;width:5px;height:5px;background:var(--oc-success);border-radius:50%;animation:opencode-thinking-pulse 1.5s ease-in-out infinite;box-shadow:0 0 4px rgba(16,185,129,.5)}@keyframes opencode-thinking-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
thinking?: boolean;
|
|
4
|
+
resolvedTheme?: "light" | "dark";
|
|
5
|
+
panelWidth?: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
|
+
toggle: () => any;
|
|
9
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
onToggle?: (() => any) | undefined;
|
|
11
|
+
}>, {
|
|
12
|
+
resolvedTheme: "light" | "dark";
|
|
13
|
+
thinking: boolean;
|
|
14
|
+
open: boolean;
|
|
15
|
+
panelWidth: number;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(from))
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return to;
|
|
33
|
+
};
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
var SplitTrigger_vue_exports = {};
|
|
36
|
+
__export(SplitTrigger_vue_exports, {
|
|
37
|
+
default: () => SplitTrigger_vue_default
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(SplitTrigger_vue_exports);
|
|
40
|
+
var import_SplitTrigger_sfc = require("./SplitTrigger-sfc.css");
|
|
41
|
+
var import_vue = require("vue");
|
|
42
|
+
var import_vue2 = require("vue");
|
|
43
|
+
var import_vue3 = require("vue");
|
|
44
|
+
const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProps(__spreadValues({}, {
|
|
45
|
+
name: "SplitTrigger"
|
|
46
|
+
}), {
|
|
47
|
+
__name: "SplitTrigger",
|
|
48
|
+
props: {
|
|
49
|
+
open: { type: Boolean, required: false, default: false },
|
|
50
|
+
thinking: { type: Boolean, required: false, default: false },
|
|
51
|
+
resolvedTheme: { type: String, required: false, default: "light" },
|
|
52
|
+
panelWidth: { type: Number, required: false, default: 500 }
|
|
53
|
+
},
|
|
54
|
+
emits: ["toggle"],
|
|
55
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
56
|
+
__expose();
|
|
57
|
+
const props = __props;
|
|
58
|
+
const emit = __emit;
|
|
59
|
+
const buttonClasses = (0, import_vue2.computed)(() => [
|
|
60
|
+
"opencode-split-trigger",
|
|
61
|
+
{
|
|
62
|
+
open: props.open,
|
|
63
|
+
thinking: props.thinking,
|
|
64
|
+
"opencode-theme-dark": props.resolvedTheme === "dark"
|
|
65
|
+
}
|
|
66
|
+
]);
|
|
67
|
+
const buttonStyle = (0, import_vue2.computed)(() => {
|
|
68
|
+
if (props.open) {
|
|
69
|
+
return {
|
|
70
|
+
right: `${props.panelWidth}px`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {};
|
|
74
|
+
});
|
|
75
|
+
const handleClick = () => {
|
|
76
|
+
emit("toggle");
|
|
77
|
+
};
|
|
78
|
+
const __returned__ = { props, emit, buttonClasses, buttonStyle, handleClick };
|
|
79
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
80
|
+
return __returned__;
|
|
81
|
+
}
|
|
82
|
+
}));
|
|
83
|
+
const _hoisted_1 = ["aria-expanded"];
|
|
84
|
+
const _hoisted_2 = { class: "opencode-split-trigger-icon" };
|
|
85
|
+
const _hoisted_3 = {
|
|
86
|
+
key: 0,
|
|
87
|
+
viewBox: "0 0 24 24",
|
|
88
|
+
width: "16",
|
|
89
|
+
height: "16",
|
|
90
|
+
fill: "none",
|
|
91
|
+
stroke: "currentColor",
|
|
92
|
+
"stroke-width": "2"
|
|
93
|
+
};
|
|
94
|
+
const _hoisted_4 = {
|
|
95
|
+
key: 1,
|
|
96
|
+
viewBox: "0 0 24 24",
|
|
97
|
+
width: "16",
|
|
98
|
+
height: "16",
|
|
99
|
+
fill: "none",
|
|
100
|
+
stroke: "currentColor",
|
|
101
|
+
"stroke-width": "2"
|
|
102
|
+
};
|
|
103
|
+
const _hoisted_5 = {
|
|
104
|
+
key: 0,
|
|
105
|
+
class: "opencode-split-thinking-indicator"
|
|
106
|
+
};
|
|
107
|
+
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
108
|
+
return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
|
|
109
|
+
class: (0, import_vue3.normalizeClass)($setup.buttonClasses),
|
|
110
|
+
style: (0, import_vue3.normalizeStyle)($setup.buttonStyle),
|
|
111
|
+
type: "button",
|
|
112
|
+
"aria-expanded": $props.open,
|
|
113
|
+
"aria-label": "\u6253\u5F00 AI \u52A9\u624B",
|
|
114
|
+
onClick: $setup.handleClick
|
|
115
|
+
}, [
|
|
116
|
+
(0, import_vue3.createElementVNode)("span", _hoisted_2, [
|
|
117
|
+
$props.open ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_3, [..._cache[0] || (_cache[0] = [
|
|
118
|
+
(0, import_vue3.createElementVNode)(
|
|
119
|
+
"path",
|
|
120
|
+
{
|
|
121
|
+
d: "M9 18l6-6-6-6",
|
|
122
|
+
"stroke-linecap": "round",
|
|
123
|
+
"stroke-linejoin": "round"
|
|
124
|
+
},
|
|
125
|
+
null,
|
|
126
|
+
-1
|
|
127
|
+
/* CACHED */
|
|
128
|
+
)
|
|
129
|
+
])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_4, [..._cache[1] || (_cache[1] = [
|
|
130
|
+
(0, import_vue3.createElementVNode)(
|
|
131
|
+
"path",
|
|
132
|
+
{
|
|
133
|
+
d: "M15 18l-6-6 6-6",
|
|
134
|
+
"stroke-linecap": "round",
|
|
135
|
+
"stroke-linejoin": "round"
|
|
136
|
+
},
|
|
137
|
+
null,
|
|
138
|
+
-1
|
|
139
|
+
/* CACHED */
|
|
140
|
+
)
|
|
141
|
+
])]))
|
|
142
|
+
]),
|
|
143
|
+
$props.thinking ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("span", _hoisted_5)) : (0, import_vue3.createCommentVNode)("v-if", true)
|
|
144
|
+
], 14, _hoisted_1);
|
|
145
|
+
}
|
|
146
|
+
__vue_sfc__.render = __vue_render__;
|
|
147
|
+
var SplitTrigger_vue_default = __vue_sfc__;
|