@trilogy-data/trilogy-studio-components 0.1.24 → 0.1.26
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 +5 -0
- package/dist/AssetAutoImporter-CBzvBaOt.js +405 -0
- package/dist/ChatCreatorModal-CL-jBnc3.js +218 -0
- package/dist/ChatModelSelect-Do-VRUFc.js +40 -0
- package/dist/{CommunityModels-CsDDXyIL.js → CommunityModels-Cmro0hV3.js} +101 -70
- package/dist/{Dashboard-BJfgRfRy.js → Dashboard-BH9ZwMVJ.js} +8 -8
- package/dist/{DashboardCreatorInline-wAlx6oH7.js → DashboardCreatorInline-CDU7kLy3.js} +3 -3
- package/dist/{DashboardImportSelector-D6ufVZIk.js → DashboardImportSelector-DQSvu9T-.js} +1 -1
- package/dist/{DashboardMobile-DoOyBHN7.js → DashboardMobile-BUPtdN2V.js} +4 -4
- package/dist/{Editor-Bs-h7edF.js → Editor-DQsYpkwl.js} +6 -6
- package/dist/{GlobalChatPanel-YsDZGxg8.js → GlobalChatPanel-DhnOaige.js} +155 -119
- package/dist/{IDE-CLF-KH2r.js → IDE-HLa8vybk.js} +9 -9
- package/dist/{JobsView-D1pp2xi5.js → JobsView-B97HBoIE.js} +8 -8
- package/dist/{LLMChat-CwM_brSg.js → LLMChat-CxJcPLEG.js} +1 -1
- package/dist/{LLMView-BiwCZb3Q.js → LLMView-C1MUf0c2.js} +21 -21
- package/dist/{MobileIDE-DrWh_OlB.js → MobileIDE-BpqXoaMR.js} +258 -253
- package/dist/{ModelCard-CsW4UwZI.js → ModelCard-BhN25jaV.js} +10 -10
- package/dist/{ModelCreator-C2douDis.js → ModelCreator-CCdC7EXt.js} +1 -1
- package/dist/{ModelView-D7ENFV2U.js → ModelView-DUDA_PtZ.js} +3 -3
- package/dist/{PageLoading-C5WK5i5Y.js → PageLoading-BzniJM0C.js} +622 -619
- package/dist/{ResultComponent-1MQlbELb.js → ResultComponent-CAn_r3BL.js} +3 -3
- package/dist/{Results-DXIYS4iW.js → Results-BJtlwebY.js} +3 -3
- package/dist/{SymbolsPane-BM6dUN-h.js → SymbolsPane-KYSwN9Sv.js} +1 -1
- package/dist/{TutorialPage-HXbXCznh.js → TutorialPage-NRcee6Dx.js} +8 -8
- package/dist/{VegaLiteChart-CS4h_t-K.js → VegaLiteChart-D1slfOUY.js} +11227 -11195
- package/dist/{WelcomePage-CLKvAvk-.js → WelcomePage-D5mU2x1L.js} +1 -1
- package/dist/components/AssetAutoImporter.vue.d.ts.map +1 -1
- package/dist/components/TipsCTA.vue.d.ts +1 -1
- package/dist/components/VegaLiteChart.vue.d.ts.map +1 -1
- package/dist/components/chartHelpers.d.ts +9 -1
- package/dist/components/chartHelpers.d.ts.map +1 -1
- package/dist/components/chartRenderManager.d.ts +4 -1
- package/dist/components/chartRenderManager.d.ts.map +1 -1
- package/dist/components/community/AddStoreModal.vue.d.ts +1 -1
- package/dist/components/community/AddStoreModal.vue.d.ts.map +1 -1
- package/dist/components/community/CommunityModelCard.vue.d.ts.map +1 -1
- package/dist/components/editor/Editor.vue.d.ts.map +1 -1
- package/dist/components/jobs/JobsAddStoreModal.vue.d.ts.map +1 -1
- package/dist/components/llm/ChatCreatorModal.vue.d.ts +17 -1
- package/dist/components/llm/ChatCreatorModal.vue.d.ts.map +1 -1
- package/dist/components/llm/ChatModelSelect.vue.d.ts +13 -0
- package/dist/components/llm/ChatModelSelect.vue.d.ts.map +1 -0
- package/dist/components/llm/GlobalChatPanel.vue.d.ts.map +1 -1
- package/dist/components/sidebar/CommunityModelList.vue.d.ts +33 -50
- package/dist/components/sidebar/CommunityModelList.vue.d.ts.map +1 -1
- package/dist/components/sidebar/CommunityModelListItem.vue.d.ts.map +1 -1
- package/dist/components/sidebar/EditorList.vue.d.ts +32 -49
- package/dist/components/sidebar/EditorList.vue.d.ts.map +1 -1
- package/dist/components/sidebar/Sidebar.vue.d.ts +65 -99
- package/dist/components/sidebar/Sidebar.vue.d.ts.map +1 -1
- package/dist/dashboard.js +52 -52
- package/dist/{dashboardStore-BzmI4OCV.js → dashboardStore-ppM6nGks.js} +33 -33
- package/dist/dashboards/layerSpec.d.ts +38 -4
- package/dist/dashboards/layerSpec.d.ts.map +1 -1
- package/dist/dashboards/lineAreaSpec.d.ts +8 -80
- package/dist/dashboards/lineAreaSpec.d.ts.map +1 -1
- package/dist/dashboards/mapSpec.d.ts +1 -0
- package/dist/dashboards/mapSpec.d.ts.map +1 -1
- package/dist/dashboards/spec.d.ts.map +1 -1
- package/dist/data/tutorial/documentation.d.ts.map +1 -1
- package/dist/data/tutorial/startupScripts.d.ts +3 -0
- package/dist/data/tutorial/startupScripts.d.ts.map +1 -0
- package/dist/{demoSetup-vmiMeH4_.js → demoSetup-mwa-RDC6.js} +19 -18
- package/dist/{editorRefinementRuntime-hC3u8GMO.js → editorRefinementRuntime-DoP9P5J2.js} +892 -871
- package/dist/{editorRefinementToolExecutor-Bomrpmns.js → editorRefinementToolExecutor-CVY3FA7k.js} +392 -267
- package/dist/{editorStore-Bj3Qnatp.js → editorStore-BhhmXbi-.js} +230 -183
- package/dist/entry.dashboard.d.ts +1 -0
- package/dist/entry.dashboard.d.ts.map +1 -1
- package/dist/{globalChatRuntime-DXI2KyGn.js → globalChatRuntime-DWZxeS57.js} +13 -13
- package/dist/{helpers-CFp2QCvv.js → helpers-BLQAgX3C.js} +17 -16
- package/dist/llm/chatAgentPrompt.d.ts.map +1 -1
- package/dist/llm/data/constants.d.ts +1 -1
- package/dist/llm/data/constants.d.ts.map +1 -1
- package/dist/llm/data/trilogySyntax.generated.d.ts +7 -1
- package/dist/llm/data/trilogySyntax.generated.d.ts.map +1 -1
- package/dist/llm/docsIndex.d.ts.map +1 -1
- package/dist/llm/openai.d.ts +2 -1
- package/dist/llm/openai.d.ts.map +1 -1
- package/dist/{llm-BuEsqH9Q.js → llm-BBOVWb-F.js} +7 -5
- package/dist/llm.js +3 -3
- package/dist/{llmStore-x5lRrKgx.js → llmStore-DJM2JhzY.js} +2 -2
- package/dist/{localStorage-C-ZtI6YA.js → localStorage-D9uyOFEO.js} +14 -14
- package/dist/models/helpers.d.ts.map +1 -1
- package/dist/monaco.js +1 -1
- package/dist/{reconcile-E5LR5p_f.js → reconcile-Dyf4UZmj.js} +1 -1
- package/dist/{remoteStoreSync-MwuJpHHt.js → remoteStoreSync-Z-yjlYtI.js} +1 -1
- package/dist/remotes/displayHelpers.d.ts.map +1 -1
- package/dist/remotes/genericStoreMetadata.d.ts +1 -0
- package/dist/remotes/genericStoreMetadata.d.ts.map +1 -1
- package/dist/remotes/models.d.ts +37 -5
- package/dist/remotes/models.d.ts.map +1 -1
- package/dist/remotes/staticStorePresets.d.ts +22 -0
- package/dist/remotes/staticStorePresets.d.ts.map +1 -0
- package/dist/remotes/storeService.d.ts +25 -4
- package/dist/remotes/storeService.d.ts.map +1 -1
- package/dist/stores/communityApiStore.d.ts +32 -60
- package/dist/stores/communityApiStore.d.ts.map +1 -1
- package/dist/stores/connectionStore.d.ts.map +1 -1
- package/dist/stores/resolver.d.ts +5 -0
- package/dist/stores/resolver.d.ts.map +1 -1
- package/dist/stores/urlStore.d.ts +1 -0
- package/dist/stores/urlStore.d.ts.map +1 -1
- package/dist/{stores-D-gHjj-_.js → stores-BT9hTLny.js} +47 -47
- package/dist/stores.js +7 -7
- package/dist/trilogy-studio-components.css +1 -1
- package/dist/{urlStore-Dgmwx1YI.js → urlStore-52HG6lsX.js} +1 -0
- package/dist/{useChatWithTools-BlCJrJT7.js → useChatWithTools-B0HZ_DVh.js} +1 -1
- package/dist/{useDashboard-CVlbV17V.js → useDashboard-CdSnPe_6.js} +186 -186
- package/dist/{useGlobalChatPanel-CNARTFYu.js → useGlobalChatPanel-D_0luajQ.js} +2 -2
- package/dist/views/MobileIDE.vue.d.ts.map +1 -1
- package/dist/views/TutorialPage.vue.d.ts +32 -49
- package/dist/views/TutorialPage.vue.d.ts.map +1 -1
- package/dist/views.js +16 -16
- package/package.json +1 -1
- package/dist/AssetAutoImporter-BD1P91Hq.js +0 -403
- package/dist/ChatCreatorModal-BTqY06B6.js +0 -177
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { t as e } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as n, o as r, r as i } from "./stores-
|
|
4
|
-
import { o as a } from "./editorRefinementRuntime-
|
|
5
|
-
import { a as o, c as s, i as c, l, u } from "./editorStore-
|
|
6
|
-
import "./dashboardStore-
|
|
7
|
-
import { n as
|
|
8
|
-
import { t as
|
|
9
|
-
import { t as
|
|
10
|
-
import { t as
|
|
11
|
-
import { t as
|
|
12
|
-
import { t as
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import { t as
|
|
16
|
-
import { n as
|
|
17
|
-
import { t as w } from "./ModelCreator-
|
|
2
|
+
import { kt as t } from "./editorRefinementToolExecutor-CVY3FA7k.js";
|
|
3
|
+
import { i as n, o as r, r as i } from "./stores-BT9hTLny.js";
|
|
4
|
+
import { o as a } from "./editorRefinementRuntime-DoP9P5J2.js";
|
|
5
|
+
import { a as o, c as s, i as c, o as l, s as u, u as d } from "./editorStore-BhhmXbi-.js";
|
|
6
|
+
import "./dashboardStore-ppM6nGks.js";
|
|
7
|
+
import { n as f, t as p } from "./urlStore-52HG6lsX.js";
|
|
8
|
+
import { t as m } from "./ModalDialog-D1EOG4rl.js";
|
|
9
|
+
import { t as h } from "./Tooltip-Dihir4zs.js";
|
|
10
|
+
import { t as g } from "./LoadingButton-OH3frQuO.js";
|
|
11
|
+
import { t as _ } from "./useIsMobile-CNpUQAvk.js";
|
|
12
|
+
import { t as v } from "./trilogy-BroD2Qmp.js";
|
|
13
|
+
import { t as y } from "./DashboardCreatorInline-CDU7kLy3.js";
|
|
14
|
+
import { t as b } from "./useGlobalChatPanel-D_0luajQ.js";
|
|
15
|
+
import { t as x } from "./localStorage-D9uyOFEO.js";
|
|
16
|
+
import { n as S, r as C, t as ee } from "./remoteStoreSync-Z-yjlYtI.js";
|
|
17
|
+
import { t as w } from "./ModelCreator-CCdC7EXt.js";
|
|
18
18
|
import { t as T } from "./StatusIcon-BylPx2EO.js";
|
|
19
|
-
import { a as
|
|
20
|
-
import { Fragment as
|
|
21
|
-
import { storeToRefs as
|
|
19
|
+
import { a as te, c as ne, d as E, f as D, i as re, l as ie, n as ae, o as O, p as k, r as oe, s as se, u as ce } from "./demoSetup-mwa-RDC6.js";
|
|
20
|
+
import { Fragment as A, computed as j, createBlock as M, createCommentVNode as N, createElementBlock as P, createElementVNode as F, createStaticVNode as le, createTextVNode as I, createVNode as L, defineComponent as R, inject as z, nextTick as B, normalizeClass as V, normalizeStyle as ue, onMounted as de, openBlock as H, reactive as fe, ref as U, renderList as W, resolveComponent as G, toDisplayString as K, unref as q, vModelCheckbox as pe, vModelSelect as J, vModelText as Y, vShow as X, watch as me, withCtx as Z, withDirectives as Q, withModifiers as $ } from "vue";
|
|
21
|
+
import { storeToRefs as he } from "pinia";
|
|
22
22
|
//#region components/layout/screenPresentation.ts
|
|
23
|
-
var
|
|
23
|
+
var ge = "mdi mdi-file-document-outline", _e = {
|
|
24
24
|
editors: "mdi mdi-file-document-edit-outline",
|
|
25
25
|
connections: "mdi mdi-database-outline",
|
|
26
26
|
llms: "mdi mdi-creation-outline",
|
|
@@ -34,17 +34,17 @@ var he = "mdi mdi-file-document-outline", ge = {
|
|
|
34
34
|
settings: "mdi mdi-cog-outline",
|
|
35
35
|
profile: "mdi mdi-account-outline",
|
|
36
36
|
welcome: "mdi mdi-home-outline",
|
|
37
|
-
"":
|
|
38
|
-
},
|
|
39
|
-
function ve(e) {
|
|
40
|
-
return ge[e] || he;
|
|
41
|
-
}
|
|
37
|
+
"": ge
|
|
38
|
+
}, ve = { llms: "LLMs" };
|
|
42
39
|
function ye(e) {
|
|
43
|
-
return _e[e]
|
|
40
|
+
return _e[e] || ge;
|
|
41
|
+
}
|
|
42
|
+
function be(e) {
|
|
43
|
+
return ve[e] ?? e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
|
|
44
44
|
}
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region components/sidebar/TutorialSidebar.vue?vue&type=script&lang.ts
|
|
47
|
-
var
|
|
47
|
+
var xe = {
|
|
48
48
|
name: "DocumentationSidebar",
|
|
49
49
|
props: { activeDocumentationKey: {
|
|
50
50
|
type: String,
|
|
@@ -52,10 +52,10 @@ var be = {
|
|
|
52
52
|
optional: !0
|
|
53
53
|
} },
|
|
54
54
|
setup(e, { emit: t }) {
|
|
55
|
-
if (!
|
|
56
|
-
let n =
|
|
55
|
+
if (!z("editorStore")) throw Error("Editor store is not provided!");
|
|
56
|
+
let n = f(p.TUTORIAL) || "", r = _(), i = U(null), o = `documentation+${n.split("+")[1]}`, { overrides: s, isCollapsed: c, toggle: l } = k((e) => o.startsWith(e));
|
|
57
57
|
return {
|
|
58
|
-
documentationNodes:
|
|
58
|
+
documentationNodes: j(() => {
|
|
59
59
|
let e = [];
|
|
60
60
|
return a.forEach((t) => {
|
|
61
61
|
let n = `documentation+${t.title}`;
|
|
@@ -92,18 +92,18 @@ var be = {
|
|
|
92
92
|
this.$emit("documentation-key-selected", e);
|
|
93
93
|
} },
|
|
94
94
|
components: {
|
|
95
|
-
SidebarList:
|
|
96
|
-
SidebarItem:
|
|
97
|
-
MobileTreeList:
|
|
95
|
+
SidebarList: D,
|
|
96
|
+
SidebarItem: E,
|
|
97
|
+
MobileTreeList: O
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
//#endregion
|
|
101
101
|
//#region components/sidebar/TutorialSidebar.vue
|
|
102
|
-
function
|
|
103
|
-
let o =
|
|
104
|
-
return
|
|
102
|
+
function Se(e, t, n, r, i, a) {
|
|
103
|
+
let o = G("sidebar-item"), s = G("mobile-tree-list"), c = G("sidebar-list");
|
|
104
|
+
return H(), M(c, { title: "Documentation" }, {
|
|
105
105
|
actions: Z(() => [...t[0] ||= []]),
|
|
106
|
-
default: Z(() => [
|
|
106
|
+
default: Z(() => [L(s, {
|
|
107
107
|
"list-id": "tutorial",
|
|
108
108
|
ref: "mobileTree",
|
|
109
109
|
items: r.documentationNodes,
|
|
@@ -113,7 +113,7 @@ function xe(e, t, n, r, i, a) {
|
|
|
113
113
|
onExpand: r.expandMobileBranch,
|
|
114
114
|
onSelect: r.selectMobileNode
|
|
115
115
|
}, {
|
|
116
|
-
item: Z(({ item: e }) => [(
|
|
116
|
+
item: Z(({ item: e }) => [(H(), M(o, {
|
|
117
117
|
key: e.id,
|
|
118
118
|
"item-id": e.id,
|
|
119
119
|
name: e.name,
|
|
@@ -150,7 +150,7 @@ function xe(e, t, n, r, i, a) {
|
|
|
150
150
|
_: 1
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
|
-
var
|
|
153
|
+
var Ce = /*#__PURE__*/ e(xe, [["render", Se], ["__scopeId", "data-v-07263be1"]]), we = {
|
|
154
154
|
name: "ModelList",
|
|
155
155
|
props: {
|
|
156
156
|
activeModelKey: String,
|
|
@@ -164,12 +164,12 @@ var Se = /*#__PURE__*/ e(be, [["render", xe], ["__scopeId", "data-v-07263be1"]])
|
|
|
164
164
|
}
|
|
165
165
|
},
|
|
166
166
|
setup(e) {
|
|
167
|
-
let t =
|
|
168
|
-
if (
|
|
169
|
-
let { overrides: y, isCollapsed: b, toggle: x } =
|
|
167
|
+
let t = z("modelStore"), r = z("saveModels"), i = z("editorStore"), a = z("trilogyResolver"), o = n(), s = _(), c = U(null), l = U(!1), u = o.activeModelKey.value || f(p.MODELS) || "", d = u.split("+")[0], m = "", h = "", g = "", v = u.split("+");
|
|
168
|
+
if (d === "model" ? m = v[1] : d === "source" ? (m = v[1], h = v[2]) : d === "datasource" ? (m = v[1], h = v[2], g = v[3]) : d === "concept" && (m = v[1], h = v[2], v.length > 5 && (g = v[3])), !t || !r || !i || !a) throw Error("Model store is not provided!");
|
|
169
|
+
let { overrides: y, isCollapsed: b, toggle: x } = k((e) => {
|
|
170
170
|
let [t, n, r, i] = e.split("+");
|
|
171
|
-
return n === m ? t === "model" ? !0 : r === h ? t === "source" || t === "datasource" && i ===
|
|
172
|
-
}), S =
|
|
171
|
+
return n === m ? t === "model" ? !0 : r === h ? t === "source" || t === "datasource" && i === g : !1 : !1;
|
|
172
|
+
}), S = j(() => e.mobileSearchQuery.trim().toLocaleLowerCase()), C = (e) => !S.value && b(e), ee = j(() => {
|
|
173
173
|
let e = [];
|
|
174
174
|
return Object.values(t.models).sort((e, t) => e.name.localeCompare(t.name)).forEach((t) => {
|
|
175
175
|
if (t.deleted) return;
|
|
@@ -243,27 +243,27 @@ var Se = /*#__PURE__*/ e(be, [["render", xe], ["__scopeId", "data-v-07263be1"]])
|
|
|
243
243
|
}));
|
|
244
244
|
});
|
|
245
245
|
}), S.value ? e.filter((e) => e.type === "concept" && e.name.toLocaleLowerCase().includes(S.value)) : e;
|
|
246
|
-
}),
|
|
246
|
+
}), w = (e) => a.resolveModel(e, t.models[e].sources.map((e) => ({
|
|
247
247
|
alias: e.alias,
|
|
248
248
|
contents: (i.editors[e.editor] || { contents: "" }).contents
|
|
249
249
|
}))).then((n) => {
|
|
250
250
|
t.setModelConfigParseResults(e, n);
|
|
251
251
|
}).catch((n) => {
|
|
252
252
|
t.setModelParseError(e, n.message), console.error("Failed to fetch parse results:", n);
|
|
253
|
-
}),
|
|
253
|
+
}), T = (e) => {
|
|
254
254
|
let t = e.lastIndexOf("+"), n = t === -1 ? e : e.substring(t + 1);
|
|
255
255
|
o.openTab("models", n, e);
|
|
256
256
|
};
|
|
257
257
|
return {
|
|
258
258
|
creatorVisible: l,
|
|
259
|
-
flatList:
|
|
259
|
+
flatList: ee,
|
|
260
260
|
collapsed: y,
|
|
261
261
|
isCollapsed: b,
|
|
262
262
|
saveModels: r,
|
|
263
|
-
fetchParseResults:
|
|
264
|
-
trilogyIcon:
|
|
263
|
+
fetchParseResults: w,
|
|
264
|
+
trilogyIcon: ce,
|
|
265
265
|
navigationStore: o,
|
|
266
|
-
handleClick:
|
|
266
|
+
handleClick: T,
|
|
267
267
|
handleToggle: x,
|
|
268
268
|
modelStore: t,
|
|
269
269
|
contextMenuItems: (e) => e.type === "model" ? [
|
|
@@ -286,7 +286,7 @@ var Se = /*#__PURE__*/ e(be, [["render", xe], ["__scopeId", "data-v-07263be1"]])
|
|
|
286
286
|
handleContextMenuItemClick: (e, n) => {
|
|
287
287
|
switch (n.id) {
|
|
288
288
|
case "refresh-model":
|
|
289
|
-
|
|
289
|
+
w(e.name);
|
|
290
290
|
break;
|
|
291
291
|
case "delete-model":
|
|
292
292
|
t.removeModelConfig(e.name);
|
|
@@ -300,46 +300,46 @@ var Se = /*#__PURE__*/ e(be, [["render", xe], ["__scopeId", "data-v-07263be1"]])
|
|
|
300
300
|
expandMobileBranch: (e) => {
|
|
301
301
|
b(e.id) && x(e.id);
|
|
302
302
|
},
|
|
303
|
-
selectMobileItem: (e) =>
|
|
303
|
+
selectMobileItem: (e) => T(e.id)
|
|
304
304
|
};
|
|
305
305
|
},
|
|
306
306
|
components: {
|
|
307
|
-
SidebarList:
|
|
308
|
-
SidebarItem:
|
|
307
|
+
SidebarList: D,
|
|
308
|
+
SidebarItem: E,
|
|
309
309
|
ModelCreator: w,
|
|
310
|
-
LoadingButton:
|
|
311
|
-
Tooltip:
|
|
312
|
-
SidebarOverflowMenu:
|
|
313
|
-
MobileTreeList:
|
|
310
|
+
LoadingButton: g,
|
|
311
|
+
Tooltip: h,
|
|
312
|
+
SidebarOverflowMenu: ne,
|
|
313
|
+
MobileTreeList: O
|
|
314
314
|
}
|
|
315
|
-
},
|
|
315
|
+
}, Te = { class: "models-header" }, Ee = { class: "models-header-actions" }, De = ["data-testid"], Oe = ["src"], ke = {
|
|
316
316
|
key: 2,
|
|
317
317
|
class: "mdi mdi-table node-icon"
|
|
318
|
-
},
|
|
318
|
+
}, Ae = {
|
|
319
319
|
key: 0,
|
|
320
320
|
class: "right-container"
|
|
321
321
|
};
|
|
322
|
-
function
|
|
323
|
-
let o =
|
|
324
|
-
return
|
|
325
|
-
header: Z(() => [
|
|
322
|
+
function je(e, t, n, r, i, a) {
|
|
323
|
+
let o = G("loading-button"), s = G("model-creator"), c = G("sidebar-overflow-menu"), l = G("sidebar-item"), u = G("mobile-tree-list"), d = G("sidebar-list");
|
|
324
|
+
return H(), M(d, { title: "Models" }, {
|
|
325
|
+
header: Z(() => [F("div", Te, [t[4] ||= F("h3", { class: "font-sans sidebar-header" }, "Models", -1), F("div", Ee, [F("button", {
|
|
326
326
|
class: "sidebar-control-button sidebar-header-action sidebar-primary-create",
|
|
327
327
|
onClick: t[0] ||= (e) => r.creatorVisible = !r.creatorVisible,
|
|
328
328
|
"data-testid": n.testTag ? `model-creator-add-${n.testTag}` : "model-creator-add"
|
|
329
|
-
}, [t[2] ||=
|
|
329
|
+
}, [t[2] ||= F("i", { class: "mdi mdi-plus" }, null, -1), I(" " + K(r.creatorVisible ? "Close" : "New"), 1)], 8, De), L(o, {
|
|
330
330
|
class: "sidebar-control-button sidebar-header-action",
|
|
331
331
|
action: r.saveModels,
|
|
332
332
|
"key-combination": ["control", "s"],
|
|
333
333
|
"use-default-style": !1
|
|
334
334
|
}, {
|
|
335
|
-
default: Z(() => [...t[3] ||= [
|
|
335
|
+
default: Z(() => [...t[3] ||= [I(" Save ", -1)]]),
|
|
336
336
|
_: 1
|
|
337
337
|
}, 8, ["action"])])])]),
|
|
338
|
-
actions: Z(() => [
|
|
338
|
+
actions: Z(() => [L(s, {
|
|
339
339
|
visible: r.creatorVisible,
|
|
340
340
|
onClose: t[1] ||= (e) => r.creatorVisible = !r.creatorVisible
|
|
341
341
|
}, null, 8, ["visible"])]),
|
|
342
|
-
default: Z(() => [
|
|
342
|
+
default: Z(() => [L(u, {
|
|
343
343
|
"list-id": "models",
|
|
344
344
|
ref: "mobileTree",
|
|
345
345
|
items: r.flatList,
|
|
@@ -350,7 +350,7 @@ function Ae(e, t, n, r, i, a) {
|
|
|
350
350
|
onExpand: r.expandMobileBranch,
|
|
351
351
|
onSelect: r.selectMobileItem
|
|
352
352
|
}, {
|
|
353
|
-
item: Z(({ item: e }) => [
|
|
353
|
+
item: Z(({ item: e }) => [L(l, {
|
|
354
354
|
"item-id": e.id,
|
|
355
355
|
name: e.name,
|
|
356
356
|
indent: e.indent,
|
|
@@ -360,19 +360,19 @@ function Ae(e, t, n, r, i, a) {
|
|
|
360
360
|
onClick: (t) => r.isMobile ? r.mobileTree?.openItem(e) : r.handleClick(e.id),
|
|
361
361
|
onToggle: r.handleToggle
|
|
362
362
|
}, {
|
|
363
|
-
icon: Z(() => [e.type === "source" ? (
|
|
363
|
+
icon: Z(() => [e.type === "source" ? (H(), P("img", {
|
|
364
364
|
key: 0,
|
|
365
365
|
src: r.trilogyIcon,
|
|
366
366
|
class: "trilogy-icon"
|
|
367
|
-
}, null, 8,
|
|
367
|
+
}, null, 8, Oe)) : e.type === "concept" ? (H(), P("span", {
|
|
368
368
|
key: 1,
|
|
369
369
|
class: V(`purpose-${e.concept.purpose.toLowerCase()}`)
|
|
370
|
-
},
|
|
371
|
-
"extra-content": Z(() => [e.type === "model" ? (
|
|
370
|
+
}, K(e.concept.purpose.charAt(0).toUpperCase()), 3)) : e.type === "datasource" ? (H(), P("i", ke)) : N("", !0)]),
|
|
371
|
+
"extra-content": Z(() => [e.type === "model" ? (H(), P("span", Ae, [L(c, {
|
|
372
372
|
items: r.contextMenuItems(e),
|
|
373
373
|
tooltip: "Model actions",
|
|
374
374
|
onSelect: (t) => r.handleContextMenuItemClick(e, t)
|
|
375
|
-
}, null, 8, ["items", "onSelect"])])) :
|
|
375
|
+
}, null, 8, ["items", "onSelect"])])) : N("", !0)]),
|
|
376
376
|
_: 2
|
|
377
377
|
}, 1032, [
|
|
378
378
|
"item-id",
|
|
@@ -397,19 +397,19 @@ function Ae(e, t, n, r, i, a) {
|
|
|
397
397
|
_: 1
|
|
398
398
|
});
|
|
399
399
|
}
|
|
400
|
-
var
|
|
400
|
+
var Me = /*#__PURE__*/ e(we, [["render", je], ["__scopeId", "data-v-ad82d845"]]), Ne = {
|
|
401
401
|
key: 0,
|
|
402
402
|
class: "mdi mdi-server-network sidebar-icon"
|
|
403
|
-
},
|
|
403
|
+
}, Pe = {
|
|
404
404
|
key: 1,
|
|
405
405
|
class: "mdi mdi-folder-outline sidebar-icon"
|
|
406
|
-
},
|
|
406
|
+
}, Fe = {
|
|
407
407
|
key: 2,
|
|
408
408
|
class: "mdi mdi-file-outline sidebar-icon"
|
|
409
|
-
},
|
|
409
|
+
}, Ie = {
|
|
410
410
|
key: 0,
|
|
411
411
|
class: "tag-container"
|
|
412
|
-
},
|
|
412
|
+
}, Le = /*#__PURE__*/ e(/* @__PURE__ */ R({
|
|
413
413
|
__name: "JobsListItem",
|
|
414
414
|
props: {
|
|
415
415
|
item: {},
|
|
@@ -437,7 +437,7 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
437
437
|
if (n === "connected") return "Ready";
|
|
438
438
|
if (n === "running") return "Polling active jobs";
|
|
439
439
|
};
|
|
440
|
-
return (t, n) => (
|
|
440
|
+
return (t, n) => (H(), M(E, {
|
|
441
441
|
"item-id": e.item.key,
|
|
442
442
|
name: e.item.label,
|
|
443
443
|
indent: e.item.indent,
|
|
@@ -448,29 +448,29 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
448
448
|
onClick: o,
|
|
449
449
|
onToggle: s
|
|
450
450
|
}, {
|
|
451
|
-
icon: Z(() => [e.item.type === "store" ? (
|
|
452
|
-
"extra-content": Z(() => [e.item.type === "store" && e.item.store ? (
|
|
453
|
-
|
|
451
|
+
icon: Z(() => [e.item.type === "store" ? (H(), P("i", Ne)) : e.item.type === "directory" ? (H(), P("i", Pe)) : (H(), P("i", Fe))]),
|
|
452
|
+
"extra-content": Z(() => [e.item.type === "store" && e.item.store ? (H(), P("span", Ie, [
|
|
453
|
+
L(h, {
|
|
454
454
|
content: "Remove Store",
|
|
455
455
|
position: "left"
|
|
456
456
|
}, {
|
|
457
|
-
default: Z(() => [
|
|
457
|
+
default: Z(() => [F("span", {
|
|
458
458
|
class: "remove-btn hover-icon sidebar-icon-button danger",
|
|
459
459
|
onClick: n[0] ||= $((t) => i("delete-store", e.item.store), ["stop"])
|
|
460
|
-
}, [...n[2] ||= [
|
|
460
|
+
}, [...n[2] ||= [F("i", { class: "mdi mdi-trash-can-outline" }, null, -1)]])]),
|
|
461
461
|
_: 1
|
|
462
462
|
}),
|
|
463
|
-
|
|
463
|
+
L(h, {
|
|
464
464
|
content: "Refresh Store",
|
|
465
465
|
position: "left"
|
|
466
466
|
}, {
|
|
467
|
-
default: Z(() => [
|
|
467
|
+
default: Z(() => [F("span", {
|
|
468
468
|
class: "hover-icon sidebar-icon-button",
|
|
469
469
|
onClick: n[1] ||= $((t) => i("refresh-store", e.item.store.id), ["stop"])
|
|
470
|
-
}, [...n[3] ||= [
|
|
470
|
+
}, [...n[3] ||= [F("i", { class: "mdi mdi-refresh" }, null, -1)]])]),
|
|
471
471
|
_: 1
|
|
472
472
|
}),
|
|
473
|
-
|
|
473
|
+
L(T, {
|
|
474
474
|
status: c(e.item.store.id),
|
|
475
475
|
message: l(e.item.store.id),
|
|
476
476
|
"test-name": e.item.store.id
|
|
@@ -479,7 +479,7 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
479
479
|
"message",
|
|
480
480
|
"test-name"
|
|
481
481
|
])
|
|
482
|
-
])) :
|
|
482
|
+
])) : N("", !0)]),
|
|
483
483
|
_: 1
|
|
484
484
|
}, 8, [
|
|
485
485
|
"item-id",
|
|
@@ -490,11 +490,11 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
490
490
|
"is-collapsed"
|
|
491
491
|
]));
|
|
492
492
|
}
|
|
493
|
-
}), [["__scopeId", "data-v-ace64696"]]),
|
|
493
|
+
}), [["__scopeId", "data-v-ace64696"]]), Re = { class: "form-group" }, ze = { class: "form-group" }, Be = { class: "form-group" }, Ve = {
|
|
494
494
|
key: 0,
|
|
495
495
|
class: "form-error",
|
|
496
496
|
"data-testid": "add-jobs-store-error"
|
|
497
|
-
},
|
|
497
|
+
}, He = { class: "dialog-actions" }, Ue = ["disabled"], We = /*#__PURE__*/ e(/* @__PURE__ */ R({
|
|
498
498
|
__name: "JobsAddStoreModal",
|
|
499
499
|
props: {
|
|
500
500
|
show: { type: Boolean },
|
|
@@ -502,98 +502,91 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
502
502
|
},
|
|
503
503
|
emits: ["close", "add"],
|
|
504
504
|
setup(e, { emit: t }) {
|
|
505
|
-
let n = e, r = t, i =
|
|
506
|
-
|
|
507
|
-
e && (i.value = "", a.value = "", o.value = "",
|
|
505
|
+
let n = e, r = t, i = U(""), a = U(""), o = U(""), s = U("");
|
|
506
|
+
me(() => n.show, (e) => {
|
|
507
|
+
e && (i.value = "", a.value = "", o.value = "", s.value = "");
|
|
508
508
|
});
|
|
509
|
-
let
|
|
509
|
+
let c = () => {
|
|
510
510
|
if (!a.value) {
|
|
511
|
-
|
|
511
|
+
s.value = "Base URL is required.";
|
|
512
512
|
return;
|
|
513
513
|
}
|
|
514
|
-
|
|
515
|
-
r("add", {
|
|
516
|
-
type: "generic",
|
|
517
|
-
id: l(e),
|
|
518
|
-
name: i.value || s(e),
|
|
519
|
-
baseUrl: e,
|
|
520
|
-
token: o.value || void 0
|
|
521
|
-
});
|
|
514
|
+
r("add", d(a.value, i.value, o.value));
|
|
522
515
|
};
|
|
523
|
-
return (t, n) => (
|
|
516
|
+
return (t, n) => (H(), M(m, {
|
|
524
517
|
show: e.show,
|
|
525
518
|
title: "Add Jobs Store",
|
|
526
519
|
"test-id": "add-jobs-store-modal",
|
|
527
520
|
onClose: n[4] ||= (e) => t.$emit("close")
|
|
528
521
|
}, {
|
|
529
|
-
default: Z(() => [
|
|
530
|
-
|
|
522
|
+
default: Z(() => [F("form", { onSubmit: $(c, ["prevent"]) }, [
|
|
523
|
+
F("div", Re, [n[5] ||= F("label", null, "Store Name", -1), Q(F("input", {
|
|
531
524
|
"onUpdate:modelValue": n[0] ||= (e) => i.value = e,
|
|
532
525
|
type: "text",
|
|
533
526
|
placeholder: "Optional, defaults to the store URL",
|
|
534
527
|
"data-testid": "jobs-store-name-input"
|
|
535
528
|
}, null, 512), [[Y, i.value]])]),
|
|
536
|
-
|
|
537
|
-
n[6] ||=
|
|
538
|
-
Q(
|
|
529
|
+
F("div", ze, [
|
|
530
|
+
n[6] ||= F("label", null, "Base URL", -1),
|
|
531
|
+
Q(F("input", {
|
|
539
532
|
"onUpdate:modelValue": n[1] ||= (e) => a.value = e,
|
|
540
533
|
type: "url",
|
|
541
534
|
placeholder: "e.g., http://localhost:8100",
|
|
542
535
|
"data-testid": "jobs-store-url-input",
|
|
543
536
|
required: ""
|
|
544
537
|
}, null, 512), [[Y, a.value]]),
|
|
545
|
-
n[7] ||=
|
|
538
|
+
n[7] ||= F("small", null, "Must expose `/index.json`, `/files`, `/run`, `/refresh`, and `/jobs/{id}`.", -1)
|
|
546
539
|
]),
|
|
547
|
-
|
|
548
|
-
n[8] ||=
|
|
549
|
-
Q(
|
|
540
|
+
F("div", Be, [
|
|
541
|
+
n[8] ||= F("label", null, "Token", -1),
|
|
542
|
+
Q(F("input", {
|
|
550
543
|
"onUpdate:modelValue": n[2] ||= (e) => o.value = e,
|
|
551
544
|
type: "text",
|
|
552
545
|
placeholder: "Optional X-Trilogy-Token value",
|
|
553
546
|
"data-testid": "jobs-store-token-input"
|
|
554
547
|
}, null, 512), [[Y, o.value]]),
|
|
555
|
-
n[9] ||=
|
|
548
|
+
n[9] ||= F("small", null, "Stored in memory only. You’ll need to re-enter it after a full reload.", -1)
|
|
556
549
|
]),
|
|
557
|
-
|
|
558
|
-
|
|
550
|
+
s.value ? (H(), P("div", Ve, K(s.value), 1)) : N("", !0),
|
|
551
|
+
F("div", He, [F("button", {
|
|
559
552
|
type: "button",
|
|
560
553
|
class: "cancel-btn",
|
|
561
554
|
onClick: n[3] ||= (e) => t.$emit("close")
|
|
562
|
-
}, "Cancel"),
|
|
555
|
+
}, "Cancel"), F("button", {
|
|
563
556
|
type: "submit",
|
|
564
557
|
class: "confirm-btn",
|
|
565
558
|
disabled: e.loading
|
|
566
|
-
},
|
|
559
|
+
}, K(e.loading ? "Adding..." : "Add Store"), 9, Ue)])
|
|
567
560
|
], 32)]),
|
|
568
561
|
_: 1
|
|
569
562
|
}, 8, ["show"]));
|
|
570
563
|
}
|
|
571
|
-
}), [["__scopeId", "data-v-
|
|
564
|
+
}), [["__scopeId", "data-v-733e3642"]]), Ge = (e, t) => ({
|
|
572
565
|
name: e,
|
|
573
566
|
path: t,
|
|
574
567
|
files: [],
|
|
575
568
|
children: {}
|
|
576
|
-
}),
|
|
569
|
+
}), Ke = (e) => e.slice().sort((e, t) => e.localeCompare(t)), qe = (e, t) => {
|
|
577
570
|
if (!t) return e;
|
|
578
571
|
let n = t.split("/").filter(Boolean), r = e, i = "";
|
|
579
572
|
return n.forEach((e) => {
|
|
580
|
-
i = i ? `${i}/${e}` : e, r.children[e] || (r.children[e] =
|
|
573
|
+
i = i ? `${i}/${e}` : e, r.children[e] || (r.children[e] = Ge(e, i)), r = r.children[e];
|
|
581
574
|
}), r;
|
|
582
|
-
},
|
|
583
|
-
|
|
575
|
+
}, Je = (e, t) => `${e}+directory+${encodeURIComponent(t)}`, Ye = (e, t) => `${e}+file+${encodeURIComponent(t)}`, Xe = (e, t, n, r, i) => {
|
|
576
|
+
Ke(n).forEach((n) => {
|
|
584
577
|
let a = r ? `${r}/${n}` : n;
|
|
585
578
|
e.push({
|
|
586
579
|
type: "file",
|
|
587
580
|
label: n,
|
|
588
|
-
key:
|
|
581
|
+
key: Ye(t, a),
|
|
589
582
|
indent: i,
|
|
590
583
|
storeId: t,
|
|
591
584
|
target: a
|
|
592
585
|
});
|
|
593
586
|
});
|
|
594
|
-
},
|
|
595
|
-
|
|
596
|
-
let a =
|
|
587
|
+
}, Ze = (e, t, n, r, i) => {
|
|
588
|
+
Xe(e, t, n.files, n.path, i), Object.values(n.children).sort((e, t) => e.name.localeCompare(t.name)).forEach((n) => {
|
|
589
|
+
let a = Je(t, n.path);
|
|
597
590
|
e.push({
|
|
598
591
|
type: "directory",
|
|
599
592
|
label: n.name,
|
|
@@ -601,9 +594,9 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
601
594
|
indent: i,
|
|
602
595
|
storeId: t,
|
|
603
596
|
target: n.path
|
|
604
|
-
}), r(a) ||
|
|
597
|
+
}), r(a) || Ze(e, t, n, r, i + 1);
|
|
605
598
|
});
|
|
606
|
-
},
|
|
599
|
+
}, Qe = (e, t = [], n = {}) => {
|
|
607
600
|
let r = [];
|
|
608
601
|
return t.forEach((t) => {
|
|
609
602
|
if (r.push({
|
|
@@ -614,80 +607,80 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
614
607
|
storeId: t.id,
|
|
615
608
|
store: t
|
|
616
609
|
}), e(t.id)) return;
|
|
617
|
-
let i =
|
|
610
|
+
let i = Ge("", "");
|
|
618
611
|
(n[t.id]?.directories || []).forEach((e) => {
|
|
619
|
-
let t =
|
|
620
|
-
t.files =
|
|
621
|
-
}),
|
|
612
|
+
let t = qe(i, e.directory);
|
|
613
|
+
t.files = Ke(e.files);
|
|
614
|
+
}), Ze(r, t.id, i, e, 1);
|
|
622
615
|
}), r;
|
|
623
|
-
},
|
|
616
|
+
}, $e = { class: "jobs-header" }, et = {
|
|
624
617
|
key: 0,
|
|
625
618
|
class: "empty-state"
|
|
626
|
-
},
|
|
619
|
+
}, tt = {
|
|
627
620
|
key: 1,
|
|
628
621
|
class: "error-container"
|
|
629
|
-
},
|
|
622
|
+
}, nt = { class: "error-text" }, rt = ["onClick"], it = /*#__PURE__*/ e(/* @__PURE__ */ R({
|
|
630
623
|
__name: "JobsList",
|
|
631
624
|
props: { activeJobsKey: { default: "" } },
|
|
632
625
|
emits: ["jobs-key-selected"],
|
|
633
626
|
setup(e, { emit: t }) {
|
|
634
|
-
let i = e, a = t, o = c(), s = r(), l = n(), u =
|
|
627
|
+
let i = e, a = t, o = c(), s = r(), l = n(), u = z("storageSources", []), d = z("editorStore"), f = z("connectionStore"), p = z("modelStore"), m = U(!1), h = _(), g = U(null), v = j(() => u.find((e) => e.type === "remote")), y = j(() => o.stores.filter((e) => e.type === "generic")), b = j(() => y.value.some((e) => !!s.errors[e.id])), x = j(() => y.value.filter((e) => !!s.errors[e.id])), w = j(() => (i.activeJobsKey || "").split("+")[0] || ""), { isCollapsed: T, toggle: te, open: ne } = k((e) => e.includes("+directory+") ? !0 : w.value ? e === w.value : y.value.length === 1 && e === y.value[0].id), E = j(() => Qe(T, y.value, s.filesByStore)), re = async (e) => {
|
|
635
628
|
try {
|
|
636
|
-
await o.addStore(e), await s.fetchFilesForStore(e.id), v.value && d && f && p && await
|
|
629
|
+
await o.addStore(e), await s.fetchFilesForStore(e.id), v.value && d && f && p && await S(v.value, e.id, d, f, p), ne(e.id), m.value = !1;
|
|
637
630
|
} catch (e) {
|
|
638
631
|
console.error("Failed to add jobs store:", e);
|
|
639
632
|
}
|
|
640
|
-
}, { isOpen:
|
|
641
|
-
d && f && p &&
|
|
642
|
-
}),
|
|
633
|
+
}, { isOpen: ie, openConfirmation: ae, closeConfirmation: oe, confirm: ce } = se((e) => {
|
|
634
|
+
d && f && p && ee(e.id, d, f, p), o.removeStore(e.id), s.clearStoreData(e.id);
|
|
635
|
+
}), le = (e) => {
|
|
643
636
|
l.openTab("jobs", null, e.key), a("jobs-key-selected", e.key);
|
|
644
|
-
},
|
|
645
|
-
|
|
646
|
-
},
|
|
647
|
-
|
|
637
|
+
}, R = (e) => {
|
|
638
|
+
te(e.key);
|
|
639
|
+
}, B = (e) => ["store", "directory"].includes(e.type), V = (e) => {
|
|
640
|
+
T(e.key) && R(e);
|
|
648
641
|
}, ue = (e) => {
|
|
649
|
-
h.value ?
|
|
650
|
-
},
|
|
642
|
+
h.value ? g.value?.openItem(e) : le(e);
|
|
643
|
+
}, fe = async (e) => {
|
|
651
644
|
await s.fetchFilesForStore(e);
|
|
652
645
|
};
|
|
653
|
-
return
|
|
646
|
+
return de(async () => {
|
|
654
647
|
o.loadStoresFromStorage(), await s.refreshAllStores();
|
|
655
|
-
}), (t, n) => (
|
|
656
|
-
header: Z(() => [
|
|
648
|
+
}), (t, n) => (H(), M(D, { title: "Jobs" }, {
|
|
649
|
+
header: Z(() => [F("div", $e, [n[3] ||= F("h3", { class: "font-sans sidebar-header" }, "Jobs", -1), F("button", {
|
|
657
650
|
class: "sidebar-control-button sidebar-header-action sidebar-primary-create",
|
|
658
651
|
onClick: n[0] ||= (e) => m.value = !0
|
|
659
|
-
}, [...n[2] ||= [
|
|
652
|
+
}, [...n[2] ||= [F("i", { class: "mdi mdi-plus" }, null, -1), I(" New ", -1)]])])]),
|
|
660
653
|
default: Z(() => [
|
|
661
|
-
y.value.length ?
|
|
662
|
-
b.value ? (
|
|
654
|
+
y.value.length ? N("", !0) : (H(), P("div", et, " Add a Trilogy local server to browse files and run jobs. ")),
|
|
655
|
+
b.value ? (H(), P("div", tt, [(H(!0), P(A, null, W(x.value, (e) => (H(), P("div", {
|
|
663
656
|
key: e.id,
|
|
664
657
|
class: "error-item"
|
|
665
|
-
}, [
|
|
666
|
-
onClick: (t) =>
|
|
658
|
+
}, [F("span", nt, K(e.name) + ": " + K(q(s).errors[e.id]), 1), F("button", {
|
|
659
|
+
onClick: (t) => q(s).clearStoreError(e.id),
|
|
667
660
|
class: "clear-error"
|
|
668
|
-
}, "x", 8,
|
|
669
|
-
|
|
661
|
+
}, "x", 8, rt)]))), 128))])) : N("", !0),
|
|
662
|
+
L(O, {
|
|
670
663
|
"list-id": "jobs",
|
|
671
664
|
ref_key: "mobileTree",
|
|
672
|
-
ref:
|
|
673
|
-
items:
|
|
665
|
+
ref: g,
|
|
666
|
+
items: E.value,
|
|
674
667
|
"id-field": "key",
|
|
675
668
|
"label-field": "label",
|
|
676
|
-
enabled:
|
|
677
|
-
"is-branch":
|
|
678
|
-
"is-selectable":
|
|
679
|
-
onExpand:
|
|
680
|
-
onSelect:
|
|
669
|
+
enabled: q(h),
|
|
670
|
+
"is-branch": B,
|
|
671
|
+
"is-selectable": B,
|
|
672
|
+
onExpand: V,
|
|
673
|
+
onSelect: le
|
|
681
674
|
}, {
|
|
682
|
-
item: Z(({ item: t }) => [(
|
|
675
|
+
item: Z(({ item: t }) => [(H(), M(Le, {
|
|
683
676
|
key: t.key,
|
|
684
677
|
item: t,
|
|
685
|
-
"is-collapsed":
|
|
678
|
+
"is-collapsed": q(T)(t.key),
|
|
686
679
|
"active-jobs-key": e.activeJobsKey,
|
|
687
680
|
onItemClick: ue,
|
|
688
|
-
onItemToggle:
|
|
689
|
-
onDeleteStore:
|
|
690
|
-
onRefreshStore:
|
|
681
|
+
onItemToggle: R,
|
|
682
|
+
onDeleteStore: q(ae),
|
|
683
|
+
onRefreshStore: fe
|
|
691
684
|
}, null, 8, [
|
|
692
685
|
"item",
|
|
693
686
|
"is-collapsed",
|
|
@@ -696,18 +689,18 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
696
689
|
]))]),
|
|
697
690
|
_: 1
|
|
698
691
|
}, 8, ["items", "enabled"]),
|
|
699
|
-
|
|
692
|
+
L(We, {
|
|
700
693
|
show: m.value,
|
|
701
694
|
onClose: n[1] ||= (e) => m.value = !1,
|
|
702
|
-
onAdd:
|
|
695
|
+
onAdd: re
|
|
703
696
|
}, null, 8, ["show"]),
|
|
704
|
-
|
|
705
|
-
show:
|
|
697
|
+
L(C, {
|
|
698
|
+
show: q(ie),
|
|
706
699
|
title: "Confirm Store Removal",
|
|
707
700
|
message: "Remove this jobs store? Imported models remain untouched.",
|
|
708
701
|
"confirm-label": "Remove",
|
|
709
|
-
onClose:
|
|
710
|
-
onConfirm:
|
|
702
|
+
onClose: q(oe),
|
|
703
|
+
onConfirm: q(ce)
|
|
711
704
|
}, null, 8, [
|
|
712
705
|
"show",
|
|
713
706
|
"onClose",
|
|
@@ -717,45 +710,45 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
717
710
|
_: 1
|
|
718
711
|
}));
|
|
719
712
|
}
|
|
720
|
-
}), [["__scopeId", "data-v-6c9c90f4"]]),
|
|
713
|
+
}), [["__scopeId", "data-v-6c9c90f4"]]), at = {
|
|
721
714
|
class: "popup-content",
|
|
722
715
|
"data-testid": "dashboard-import-popup"
|
|
723
|
-
},
|
|
716
|
+
}, ot = { class: "popup-header" }, st = { class: "popup-body" }, ct = { class: "import-mode-selector" }, lt = {
|
|
724
717
|
key: 0,
|
|
725
718
|
class: "input-group"
|
|
726
|
-
},
|
|
719
|
+
}, ut = {
|
|
727
720
|
key: 0,
|
|
728
721
|
class: "error-message"
|
|
729
|
-
},
|
|
722
|
+
}, dt = {
|
|
730
723
|
key: 1,
|
|
731
724
|
class: "input-group"
|
|
732
|
-
},
|
|
725
|
+
}, ft = { class: "url-input-container" }, pt = ["disabled"], mt = {
|
|
733
726
|
key: 0,
|
|
734
727
|
class: "error-message"
|
|
735
|
-
},
|
|
728
|
+
}, ht = {
|
|
736
729
|
key: 1,
|
|
737
730
|
class: "preview-container"
|
|
738
|
-
},
|
|
731
|
+
}, gt = { class: "json-preview" }, _t = { class: "connection-selector" }, vt = { class: "form-row" }, yt = ["value"], bt = {
|
|
739
732
|
key: 0,
|
|
740
733
|
class: "form-row"
|
|
741
|
-
},
|
|
734
|
+
}, xt = {
|
|
742
735
|
key: 1,
|
|
743
736
|
class: "form-row"
|
|
744
|
-
},
|
|
737
|
+
}, St = { class: "form-row" }, Ct = { class: "form-row" }, wt = { class: "form-row" }, Tt = { class: "popup-footer" }, Et = ["disabled"], Dt = /*#__PURE__*/ e(/* @__PURE__ */ R({
|
|
745
738
|
__name: "DashboardImportPopup",
|
|
746
739
|
props: { isOpen: { type: Boolean } },
|
|
747
740
|
emits: ["close"],
|
|
748
741
|
setup(e, { emit: n }) {
|
|
749
|
-
let r = n, i =
|
|
742
|
+
let r = n, i = z("dashboardStore"), a = z("connectionStore"), o = z("saveDashboards"), s = z("saveAll");
|
|
750
743
|
if (!i || !a || !o || !s) throw Error("Required stores not provided");
|
|
751
|
-
let c =
|
|
744
|
+
let c = U(""), l = U(""), u = U(null), d = U(!1), f = U(""), p = U("paste"), m = U(null), h = U({
|
|
752
745
|
mdToken: "",
|
|
753
746
|
projectId: "",
|
|
754
747
|
username: "",
|
|
755
748
|
password: "",
|
|
756
749
|
account: "",
|
|
757
750
|
sshPrivateKey: ""
|
|
758
|
-
}), g =
|
|
751
|
+
}), g = U(!0);
|
|
759
752
|
function _() {
|
|
760
753
|
if (!l.value) {
|
|
761
754
|
g.value = !1;
|
|
@@ -825,30 +818,30 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
825
818
|
u.value = null;
|
|
826
819
|
}, 3e3);
|
|
827
820
|
}
|
|
828
|
-
}, b =
|
|
829
|
-
return _(), (t, n) => e.isOpen ? (
|
|
821
|
+
}, b = U(!1);
|
|
822
|
+
return _(), (t, n) => e.isOpen ? (H(), P("div", {
|
|
830
823
|
key: 0,
|
|
831
824
|
class: "popup-overlay",
|
|
832
825
|
onClick: n[11] ||= $((e) => r("close"), ["self"])
|
|
833
|
-
}, [
|
|
834
|
-
|
|
826
|
+
}, [F("div", at, [
|
|
827
|
+
F("div", ot, [n[12] ||= F("h3", null, "Import Dashboard", -1), F("button", {
|
|
835
828
|
onClick: n[0] ||= (e) => r("close"),
|
|
836
829
|
class: "close-button",
|
|
837
830
|
"data-testid": "close-popup-button"
|
|
838
831
|
}, " ✕ ")]),
|
|
839
|
-
|
|
840
|
-
|
|
832
|
+
F("div", st, [
|
|
833
|
+
F("div", ct, [F("button", {
|
|
841
834
|
class: V(["mode-button", { active: p.value === "paste" }]),
|
|
842
835
|
onClick: n[1] ||= (e) => p.value = "paste",
|
|
843
836
|
"data-testid": "paste-mode-button"
|
|
844
|
-
}, " Paste JSON ", 2),
|
|
837
|
+
}, " Paste JSON ", 2), F("button", {
|
|
845
838
|
class: V(["mode-button", { active: p.value === "url" }]),
|
|
846
839
|
onClick: n[2] ||= (e) => p.value = "url",
|
|
847
840
|
"data-testid": "url-mode-button"
|
|
848
841
|
}, " From URL ", 2)]),
|
|
849
|
-
p.value === "paste" ? (
|
|
850
|
-
n[13] ||=
|
|
851
|
-
Q(
|
|
842
|
+
p.value === "paste" ? (H(), P("div", lt, [
|
|
843
|
+
n[13] ||= F("label", { for: "dashboard-json" }, "Paste Dashboard JSON", -1),
|
|
844
|
+
Q(F("textarea", {
|
|
852
845
|
id: "dashboard-json",
|
|
853
846
|
"onUpdate:modelValue": n[3] ||= (e) => c.value = e,
|
|
854
847
|
placeholder: "Paste your dashboard JSON here",
|
|
@@ -856,49 +849,49 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
856
849
|
class: "dashboard-textarea",
|
|
857
850
|
"data-testid": "dashboard-json-input"
|
|
858
851
|
}, null, 512), [[Y, c.value]]),
|
|
859
|
-
u.value ? (
|
|
860
|
-
])) :
|
|
861
|
-
p.value === "url" ? (
|
|
862
|
-
n[15] ||=
|
|
863
|
-
|
|
852
|
+
u.value ? (H(), P("div", ut, K(u.value), 1)) : N("", !0)
|
|
853
|
+
])) : N("", !0),
|
|
854
|
+
p.value === "url" ? (H(), P("div", dt, [
|
|
855
|
+
n[15] ||= F("label", { for: "dashboard-url" }, "Dashboard URL", -1),
|
|
856
|
+
F("div", ft, [Q(F("input", {
|
|
864
857
|
type: "text",
|
|
865
858
|
id: "dashboard-url",
|
|
866
859
|
"onUpdate:modelValue": n[4] ||= (e) => f.value = e,
|
|
867
860
|
placeholder: "https://example.com/dashboard.json",
|
|
868
861
|
class: "url-input",
|
|
869
862
|
"data-testid": "dashboard-url-input"
|
|
870
|
-
}, null, 512), [[Y, f.value]]),
|
|
863
|
+
}, null, 512), [[Y, f.value]]), F("button", {
|
|
871
864
|
onClick: v,
|
|
872
865
|
class: "fetch-button",
|
|
873
866
|
disabled: d.value,
|
|
874
867
|
"data-testid": "fetch-url-button"
|
|
875
|
-
},
|
|
876
|
-
m.value ? (
|
|
877
|
-
c.value && p.value === "url" ? (
|
|
878
|
-
])) :
|
|
868
|
+
}, K(d.value ? "Loading..." : "Fetch"), 9, pt)]),
|
|
869
|
+
m.value ? (H(), P("div", mt, K(m.value), 1)) : N("", !0),
|
|
870
|
+
c.value && p.value === "url" ? (H(), P("div", ht, [n[14] ||= F("label", null, "Dashboard JSON Preview", -1), F("div", gt, [F("pre", null, K(c.value.length > 500 ? c.value.substring(0, 500) + "..." : c.value), 1)])])) : N("", !0)
|
|
871
|
+
])) : N("", !0)
|
|
879
872
|
]),
|
|
880
|
-
|
|
881
|
-
|
|
873
|
+
F("div", _t, [
|
|
874
|
+
F("div", vt, [n[21] ||= F("label", { for: "connection-select" }, "Assign To Connection", -1), Q(F("select", {
|
|
882
875
|
id: "connection-select",
|
|
883
876
|
"onUpdate:modelValue": n[5] ||= (e) => l.value = e,
|
|
884
877
|
class: "connection-dropdown",
|
|
885
878
|
"data-testid": "connection-select",
|
|
886
879
|
onChange: _
|
|
887
880
|
}, [
|
|
888
|
-
n[16] ||=
|
|
881
|
+
n[16] ||= F("option", {
|
|
889
882
|
value: "",
|
|
890
883
|
disabled: ""
|
|
891
884
|
}, "-- Select Connection --", -1),
|
|
892
|
-
(
|
|
885
|
+
(H(!0), P(A, null, W(q(a).connections, (e) => (H(), P("option", {
|
|
893
886
|
key: e.name,
|
|
894
887
|
value: e.name
|
|
895
|
-
},
|
|
896
|
-
n[17] ||=
|
|
897
|
-
n[18] ||=
|
|
898
|
-
n[19] ||=
|
|
899
|
-
n[20] ||=
|
|
900
|
-
], 544), [[
|
|
901
|
-
l.value === "new-motherduck" ? (
|
|
888
|
+
}, K(e.name), 9, yt))), 128)),
|
|
889
|
+
n[17] ||= F("option", { value: "new-duckdb" }, "New DuckDB", -1),
|
|
890
|
+
n[18] ||= F("option", { value: "new-motherduck" }, "New MotherDuck", -1),
|
|
891
|
+
n[19] ||= F("option", { value: "new-bigquery-oauth" }, "New Bigquery Oauth", -1),
|
|
892
|
+
n[20] ||= F("option", { value: "new-snowflake" }, "New Snowflake", -1)
|
|
893
|
+
], 544), [[J, l.value]])]),
|
|
894
|
+
l.value === "new-motherduck" ? (H(), P("div", bt, [n[22] ||= F("label", { for: "md-token" }, "MotherDuck Token", -1), Q(F("input", {
|
|
902
895
|
type: "text",
|
|
903
896
|
"onUpdate:modelValue": n[6] ||= (e) => h.value.mdToken = e,
|
|
904
897
|
id: "md-token",
|
|
@@ -910,8 +903,8 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
910
903
|
h.value.mdToken,
|
|
911
904
|
void 0,
|
|
912
905
|
{ trim: !0 }
|
|
913
|
-
]])])) :
|
|
914
|
-
l.value === "new-bigquery-oauth" ? (
|
|
906
|
+
]])])) : N("", !0),
|
|
907
|
+
l.value === "new-bigquery-oauth" ? (H(), P("div", xt, [n[23] ||= F("label", { for: "project-id" }, "BigQuery Project ID", -1), Q(F("input", {
|
|
915
908
|
type: "text",
|
|
916
909
|
"onUpdate:modelValue": n[7] ||= (e) => h.value.projectId = e,
|
|
917
910
|
id: "project-id",
|
|
@@ -923,9 +916,9 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
923
916
|
h.value.projectId,
|
|
924
917
|
void 0,
|
|
925
918
|
{ trim: !0 }
|
|
926
|
-
]])])) :
|
|
927
|
-
l.value === "new-snowflake" ? (
|
|
928
|
-
|
|
919
|
+
]])])) : N("", !0),
|
|
920
|
+
l.value === "new-snowflake" ? (H(), P(A, { key: 2 }, [
|
|
921
|
+
F("div", St, [n[24] ||= F("label", { for: "snowflake-username" }, "Username", -1), Q(F("input", {
|
|
929
922
|
type: "text",
|
|
930
923
|
"onUpdate:modelValue": n[8] ||= (e) => h.value.username = e,
|
|
931
924
|
id: "snowflake-username",
|
|
@@ -938,7 +931,7 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
938
931
|
void 0,
|
|
939
932
|
{ trim: !0 }
|
|
940
933
|
]])]),
|
|
941
|
-
|
|
934
|
+
F("div", Ct, [n[25] ||= F("label", { for: "snowflake-account" }, "Account", -1), Q(F("input", {
|
|
942
935
|
type: "text",
|
|
943
936
|
"onUpdate:modelValue": n[9] ||= (e) => h.value.account = e,
|
|
944
937
|
id: "snowflake-account",
|
|
@@ -951,7 +944,7 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
951
944
|
void 0,
|
|
952
945
|
{ trim: !0 }
|
|
953
946
|
]])]),
|
|
954
|
-
|
|
947
|
+
F("div", wt, [n[26] ||= F("label", { for: "snowflake-ssh-private-key" }, "Private Key", -1), Q(F("input", {
|
|
955
948
|
type: "text",
|
|
956
949
|
"onUpdate:modelValue": n[10] ||= (e) => h.value.sshPrivateKey = e,
|
|
957
950
|
id: "snowflake-ssh-private-key",
|
|
@@ -964,17 +957,17 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
964
957
|
void 0,
|
|
965
958
|
{ trim: !0 }
|
|
966
959
|
]])])
|
|
967
|
-
], 64)) :
|
|
960
|
+
], 64)) : N("", !0)
|
|
968
961
|
]),
|
|
969
|
-
|
|
962
|
+
F("div", Tt, [F("button", {
|
|
970
963
|
onClick: y,
|
|
971
964
|
class: "copy-button",
|
|
972
965
|
"data-testid": "import-dashboard-button",
|
|
973
966
|
disabled: !c.value || !l.value || d.value || !g.value
|
|
974
|
-
},
|
|
975
|
-
])])) :
|
|
967
|
+
}, K(b.value ? "Imported!" : "Import"), 9, Et)])
|
|
968
|
+
])])) : N("", !0);
|
|
976
969
|
}
|
|
977
|
-
}), [["__scopeId", "data-v-3448e3ad"]]),
|
|
970
|
+
}), [["__scopeId", "data-v-3448e3ad"]]), Ot = {
|
|
978
971
|
name: "DashboardListItem",
|
|
979
972
|
props: {
|
|
980
973
|
item: {
|
|
@@ -997,18 +990,18 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
997
990
|
"toggle"
|
|
998
991
|
],
|
|
999
992
|
setup(e) {
|
|
1000
|
-
let t =
|
|
993
|
+
let t = z("connectionStore"), n = z("dashboardStore"), r = _();
|
|
1001
994
|
if (!t || !n) throw Error("Connection/Dashboard stores is not provided!");
|
|
1002
|
-
let i =
|
|
995
|
+
let i = j(() => e.item.type === "connection" && (e.item.connectionId && t.connections[e.item.connectionId] || t.connectionByName(e.item.label)) || null);
|
|
1003
996
|
return {
|
|
1004
997
|
isMobile: r,
|
|
1005
998
|
dashboardStore: n,
|
|
1006
999
|
connectionInfo: i,
|
|
1007
|
-
connectionStatus:
|
|
1000
|
+
connectionStatus: j(() => {
|
|
1008
1001
|
let e = i.value;
|
|
1009
1002
|
return e ? e.running ? "running" : e.connected ? "connected" : "disabled" : "disabled";
|
|
1010
1003
|
}),
|
|
1011
|
-
contextMenuItems:
|
|
1004
|
+
contextMenuItems: j(() => e.item.type === "connection" ? [{
|
|
1012
1005
|
id: "new-dashboard",
|
|
1013
1006
|
label: "New dashboard",
|
|
1014
1007
|
icon: "mdi-table-plus"
|
|
@@ -1085,23 +1078,23 @@ var je = /*#__PURE__*/ e(Ce, [["render", Ae], ["__scopeId", "data-v-ad82d845"]])
|
|
|
1085
1078
|
}
|
|
1086
1079
|
},
|
|
1087
1080
|
components: {
|
|
1088
|
-
SidebarItem:
|
|
1089
|
-
Tooltip:
|
|
1081
|
+
SidebarItem: E,
|
|
1082
|
+
Tooltip: h,
|
|
1090
1083
|
StatusIcon: T,
|
|
1091
|
-
SidebarOverflowMenu:
|
|
1084
|
+
SidebarOverflowMenu: ne
|
|
1092
1085
|
}
|
|
1093
|
-
},
|
|
1086
|
+
}, kt = {
|
|
1094
1087
|
key: 0,
|
|
1095
1088
|
class: "text-light connection-model"
|
|
1096
|
-
},
|
|
1097
|
-
function
|
|
1098
|
-
let o =
|
|
1099
|
-
return n.item.type === "creator" ? (
|
|
1089
|
+
}, At = { class: "dashboard-actions" }, jt = ["data-testid"];
|
|
1090
|
+
function Mt(e, t, n, r, i, a) {
|
|
1091
|
+
let o = G("tooltip"), s = G("status-icon"), c = G("sidebar-overflow-menu"), l = G("sidebar-item");
|
|
1092
|
+
return n.item.type === "creator" ? (H(), P("div", {
|
|
1100
1093
|
key: 1,
|
|
1101
1094
|
"data-testid": `dashboard-list-id-${n.item.key}`,
|
|
1102
1095
|
class: "creator-item",
|
|
1103
1096
|
onClick: t[0] ||= (...e) => a.handleClick && a.handleClick(...e)
|
|
1104
|
-
},
|
|
1097
|
+
}, K(n.item.label), 9, jt)) : (H(), M(l, {
|
|
1105
1098
|
key: 0,
|
|
1106
1099
|
"item-id": n.item.key,
|
|
1107
1100
|
name: n.item.label,
|
|
@@ -1117,27 +1110,27 @@ function jt(e, t, n, r, i, a) {
|
|
|
1117
1110
|
onClick: a.handleClick,
|
|
1118
1111
|
onToggle: a.handleToggle
|
|
1119
1112
|
}, {
|
|
1120
|
-
icon: Z(() => [n.item.type === "investigation" ? (
|
|
1113
|
+
icon: Z(() => [n.item.type === "investigation" ? (H(), M(o, {
|
|
1121
1114
|
key: 0,
|
|
1122
1115
|
content: "Investigation",
|
|
1123
1116
|
position: "right"
|
|
1124
1117
|
}, {
|
|
1125
|
-
default: Z(() => [...t[1] ||= [
|
|
1118
|
+
default: Z(() => [...t[1] ||= [F("i", { class: "mdi mdi-source-branch node-icon investigation-icon" }, null, -1)]]),
|
|
1126
1119
|
_: 1
|
|
1127
|
-
})) : n.item.type === "dashboard" ? (
|
|
1120
|
+
})) : n.item.type === "dashboard" ? (H(), M(o, {
|
|
1128
1121
|
key: 1,
|
|
1129
1122
|
content: "Dashboard",
|
|
1130
1123
|
position: "right"
|
|
1131
1124
|
}, {
|
|
1132
|
-
default: Z(() => [...t[2] ||= [
|
|
1125
|
+
default: Z(() => [...t[2] ||= [F("i", { class: "mdi mdi-view-dashboard node-icon" }, null, -1)]]),
|
|
1133
1126
|
_: 1
|
|
1134
|
-
})) :
|
|
1135
|
-
name: Z(() => [
|
|
1136
|
-
"extra-content": Z(() => [
|
|
1127
|
+
})) : N("", !0)]),
|
|
1128
|
+
name: Z(() => [I(K(n.item.label) + " ", 1), n.item.type === "connection" ? (H(), P("span", kt, " (" + K(r.connectionInfo?.model ? r.connectionInfo?.model : "No Model Set") + ") ", 1)) : N("", !0)]),
|
|
1129
|
+
"extra-content": Z(() => [F("div", At, [n.item.type === "connection" ? (H(), P(A, { key: 0 }, [L(s, { status: r.connectionStatus }, null, 8, ["status"]), L(c, {
|
|
1137
1130
|
items: r.contextMenuItems,
|
|
1138
1131
|
tooltip: "Connection actions",
|
|
1139
1132
|
onSelect: a.handleContextMenuItemClick
|
|
1140
|
-
}, null, 8, ["items", "onSelect"])], 64)) :
|
|
1133
|
+
}, null, 8, ["items", "onSelect"])], 64)) : N("", !0), n.item.type === "dashboard" || n.item.type === "investigation" ? (H(), M(c, {
|
|
1141
1134
|
key: 1,
|
|
1142
1135
|
items: r.contextMenuItems,
|
|
1143
1136
|
tooltip: n.item.type === "investigation" ? "Investigation actions" : "Dashboard actions",
|
|
@@ -1146,7 +1139,7 @@ function jt(e, t, n, r, i, a) {
|
|
|
1146
1139
|
"items",
|
|
1147
1140
|
"tooltip",
|
|
1148
1141
|
"onSelect"
|
|
1149
|
-
])) :
|
|
1142
|
+
])) : N("", !0)])]),
|
|
1150
1143
|
_: 1
|
|
1151
1144
|
}, 8, [
|
|
1152
1145
|
"item-id",
|
|
@@ -1159,10 +1152,10 @@ function jt(e, t, n, r, i, a) {
|
|
|
1159
1152
|
"onToggle"
|
|
1160
1153
|
]));
|
|
1161
1154
|
}
|
|
1162
|
-
var
|
|
1155
|
+
var Nt = /*#__PURE__*/ e(Ot, [["render", Mt], ["__scopeId", "data-v-28e46aa7"]]);
|
|
1163
1156
|
//#endregion
|
|
1164
1157
|
//#region components/sidebar/DashboardList.vue?vue&type=script&lang.ts
|
|
1165
|
-
function
|
|
1158
|
+
function Pt(e, t, n) {
|
|
1166
1159
|
let r = [], i = {}, a = {};
|
|
1167
1160
|
return e.forEach((e) => {
|
|
1168
1161
|
if (e.deleted) return;
|
|
@@ -1222,7 +1215,7 @@ function Nt(e, t, n) {
|
|
|
1222
1215
|
}
|
|
1223
1216
|
}), r;
|
|
1224
1217
|
}
|
|
1225
|
-
var
|
|
1218
|
+
var Ft = {
|
|
1226
1219
|
name: "DashboardList",
|
|
1227
1220
|
props: {
|
|
1228
1221
|
activeDashboardKey: String,
|
|
@@ -1232,17 +1225,17 @@ var Pt = {
|
|
|
1232
1225
|
}
|
|
1233
1226
|
},
|
|
1234
1227
|
setup(e) {
|
|
1235
|
-
let t =
|
|
1228
|
+
let t = z("dashboardStore"), n = z("connectionStore"), r = z("chatStore", null), i = z("saveDashboards");
|
|
1236
1229
|
if (!t || !n || !i) throw Error("Dashboard or connection store is not provided!");
|
|
1237
|
-
let a =
|
|
1230
|
+
let a = U(!1), o = U(!1), s = _(), c = U(null), l = U(!0), u = f(p.DASHBOARD) || "", d = (e) => {
|
|
1238
1231
|
let t = e.storage || "local", n = e.connectionId || e.connection || "default";
|
|
1239
1232
|
return [`s-${t}`, `c-${t}-${n}`];
|
|
1240
|
-
}, m =
|
|
1233
|
+
}, m = j(() => {
|
|
1241
1234
|
let n = Object.values(t.dashboards).filter((e) => !e.deleted), r = e.activeDashboardKey || u, i = r ? n.find((e) => e.id === r) : void 0;
|
|
1242
|
-
if (i) return new Set(
|
|
1235
|
+
if (i) return new Set(d(i));
|
|
1243
1236
|
let a = new Set(n.map((e) => `s-${e.storage || "local"}`));
|
|
1244
1237
|
return a.size === 1 ? a : /* @__PURE__ */ new Set();
|
|
1245
|
-
}), { overrides: h, isCollapsed:
|
|
1238
|
+
}), { overrides: h, isCollapsed: g, toggle: v } = k((e) => e.startsWith("d-") || m.value.has(e)), y = j(() => Pt(Object.values(t.dashboards), g, n)), { isOpen: b, openConfirmation: x, closeConfirmation: S, confirm: C } = se((e) => {
|
|
1246
1239
|
r && e.chatId && r.chats[e.chatId] && r.removeChat(e.chatId), e.delete();
|
|
1247
1240
|
});
|
|
1248
1241
|
return {
|
|
@@ -1251,7 +1244,7 @@ var Pt = {
|
|
|
1251
1244
|
contentList: y,
|
|
1252
1245
|
toggleCollapse: v,
|
|
1253
1246
|
collapsed: h,
|
|
1254
|
-
isCollapsed:
|
|
1247
|
+
isCollapsed: g,
|
|
1255
1248
|
creatorVisible: a,
|
|
1256
1249
|
importPopupVisible: o,
|
|
1257
1250
|
saveDashboards: i,
|
|
@@ -1288,36 +1281,36 @@ var Pt = {
|
|
|
1288
1281
|
}
|
|
1289
1282
|
},
|
|
1290
1283
|
components: {
|
|
1291
|
-
DashboardCreatorInline:
|
|
1292
|
-
DashboardImportPopup:
|
|
1293
|
-
DashboardListItem:
|
|
1294
|
-
SidebarList:
|
|
1295
|
-
LoadingButton:
|
|
1296
|
-
ConfirmDialog:
|
|
1297
|
-
MobileTreeList:
|
|
1284
|
+
DashboardCreatorInline: y,
|
|
1285
|
+
DashboardImportPopup: Dt,
|
|
1286
|
+
DashboardListItem: Nt,
|
|
1287
|
+
SidebarList: D,
|
|
1288
|
+
LoadingButton: g,
|
|
1289
|
+
ConfirmDialog: C,
|
|
1290
|
+
MobileTreeList: O
|
|
1298
1291
|
}
|
|
1299
|
-
},
|
|
1292
|
+
}, It = { class: "dashboards-header" }, Lt = {
|
|
1300
1293
|
key: 0,
|
|
1301
1294
|
class: "font-sans sidebar-header"
|
|
1302
|
-
},
|
|
1295
|
+
}, Rt = ["data-testid"], zt = {
|
|
1303
1296
|
key: 0,
|
|
1304
1297
|
class: "button-container"
|
|
1305
1298
|
};
|
|
1306
|
-
function
|
|
1307
|
-
let o =
|
|
1308
|
-
return
|
|
1309
|
-
header: Z(() => [
|
|
1299
|
+
function Bt(e, t, n, r, i, a) {
|
|
1300
|
+
let o = G("dashboard-creator-inline"), s = G("dashboard-import-popup"), c = G("dashboard-list-item"), l = G("mobile-tree-list"), u = G("ConfirmDialog"), d = G("sidebar-list");
|
|
1301
|
+
return H(), M(d, { title: "Dashboards" }, {
|
|
1302
|
+
header: Z(() => [F("div", It, [r.isMobile ? N("", !0) : (H(), P("h3", Lt, "Dashboards")), F("button", {
|
|
1310
1303
|
class: "sidebar-control-button sidebar-header-action sidebar-primary-create",
|
|
1311
1304
|
onClick: t[0] ||= (e) => r.creatorVisible = !r.creatorVisible,
|
|
1312
1305
|
"data-testid": n.testTag ? `dashboard-creator-add-${n.testTag}` : "dashboard-creator-add"
|
|
1313
|
-
}, [t[5] ||=
|
|
1306
|
+
}, [t[5] ||= F("i", { class: "mdi mdi-plus" }, null, -1), I(" " + K(r.creatorVisible ? "Close" : "New"), 1)], 8, Rt)])]),
|
|
1314
1307
|
actions: Z(() => [
|
|
1315
|
-
!r.isMobile || r.mobileTreeAtRoot ? (
|
|
1308
|
+
!r.isMobile || r.mobileTreeAtRoot ? (H(), P("div", zt, [F("button", {
|
|
1316
1309
|
class: "sidebar-control-button sidebar-header-action",
|
|
1317
1310
|
onClick: t[1] ||= (e) => r.importPopupVisible = !0,
|
|
1318
1311
|
"data-testid": "dashboard-import-button"
|
|
1319
|
-
}, " Import ")])) :
|
|
1320
|
-
|
|
1312
|
+
}, " Import ")])) : N("", !0),
|
|
1313
|
+
L(o, {
|
|
1321
1314
|
visible: r.creatorVisible,
|
|
1322
1315
|
onClose: t[2] ||= (e) => r.creatorVisible = !r.creatorVisible,
|
|
1323
1316
|
testTag: n.testTag,
|
|
@@ -1327,12 +1320,12 @@ function zt(e, t, n, r, i, a) {
|
|
|
1327
1320
|
"testTag",
|
|
1328
1321
|
"onDashboardCreated"
|
|
1329
1322
|
]),
|
|
1330
|
-
|
|
1323
|
+
L(s, {
|
|
1331
1324
|
isOpen: r.importPopupVisible,
|
|
1332
1325
|
onClose: t[3] ||= (e) => r.importPopupVisible = !1
|
|
1333
1326
|
}, null, 8, ["isOpen"])
|
|
1334
1327
|
]),
|
|
1335
|
-
default: Z(() => [
|
|
1328
|
+
default: Z(() => [L(l, {
|
|
1336
1329
|
"list-id": "dashboards",
|
|
1337
1330
|
ref: "mobileTree",
|
|
1338
1331
|
items: r.contentList,
|
|
@@ -1345,7 +1338,7 @@ function zt(e, t, n, r, i, a) {
|
|
|
1345
1338
|
onSelect: a.selectMobileItem,
|
|
1346
1339
|
onViewChange: t[4] ||= (e) => r.mobileTreeAtRoot = e
|
|
1347
1340
|
}, {
|
|
1348
|
-
item: Z(({ item: e }) => [(
|
|
1341
|
+
item: Z(({ item: e }) => [(H(), M(c, {
|
|
1349
1342
|
key: e.key,
|
|
1350
1343
|
item: e,
|
|
1351
1344
|
"is-active": n.activeDashboardKey === e.id,
|
|
@@ -1369,7 +1362,7 @@ function zt(e, t, n, r, i, a) {
|
|
|
1369
1362
|
"is-selectable",
|
|
1370
1363
|
"onExpand",
|
|
1371
1364
|
"onSelect"
|
|
1372
|
-
]),
|
|
1365
|
+
]), L(u, {
|
|
1373
1366
|
show: r.showDeleteConfirmationState,
|
|
1374
1367
|
title: "Confirm Deletion",
|
|
1375
1368
|
message: "Are you sure you want to delete this dashboard? Contents cannot be recovered.",
|
|
@@ -1386,10 +1379,7 @@ function zt(e, t, n, r, i, a) {
|
|
|
1386
1379
|
_: 1
|
|
1387
1380
|
});
|
|
1388
1381
|
}
|
|
1389
|
-
var
|
|
1390
|
-
key: 0,
|
|
1391
|
-
class: "mdi mdi-source-repository sidebar-icon"
|
|
1392
|
-
}, Ht = {
|
|
1382
|
+
var Vt = /*#__PURE__*/ e(Ft, [["render", Bt], ["__scopeId", "data-v-04081e74"]]), Ht = {
|
|
1393
1383
|
key: 1,
|
|
1394
1384
|
class: "right-pad"
|
|
1395
1385
|
}, Ut = {
|
|
@@ -1401,7 +1391,7 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1401
1391
|
}, Gt = {
|
|
1402
1392
|
key: 2,
|
|
1403
1393
|
class: "tag-container"
|
|
1404
|
-
}, Kt = ["data-testid"], qt = /*#__PURE__*/ e(/* @__PURE__ */
|
|
1394
|
+
}, Kt = ["data-testid"], qt = /*#__PURE__*/ e(/* @__PURE__ */ R({
|
|
1405
1395
|
__name: "CommunityModelListItem",
|
|
1406
1396
|
props: {
|
|
1407
1397
|
item: {},
|
|
@@ -1434,14 +1424,14 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1434
1424
|
return;
|
|
1435
1425
|
}
|
|
1436
1426
|
n.item.type === "model" ? r("model-selected", n.item.model, n.item.key, n.item.modelRoot) : r("item-click", n.item.type, n.item.key, n.item.modelRoot);
|
|
1437
|
-
},
|
|
1427
|
+
}, o = () => {
|
|
1438
1428
|
["model"].includes(n.item.type) || r("item-toggle", n.item.type, n.item.key, n.item.modelRoot);
|
|
1439
|
-
}, l = () => "",
|
|
1429
|
+
}, l = () => "", d = (e) => e.id === s.id, f = (e) => i.getStoreStatus(e.id), p = (e) => {
|
|
1440
1430
|
let t = i.errors[e.id];
|
|
1441
1431
|
if (t) return `Connection failed: ${t}`;
|
|
1442
|
-
if (i.getStoreStatus(e.id) === "connected") return
|
|
1432
|
+
if (i.getStoreStatus(e.id) === "connected") return `Connected: ${u(e)}`;
|
|
1443
1433
|
};
|
|
1444
|
-
return (t, n) => (
|
|
1434
|
+
return (t, n) => (H(), M(E, {
|
|
1445
1435
|
"item-id": e.item.key,
|
|
1446
1436
|
name: e.item.label,
|
|
1447
1437
|
indent: e.item.indent,
|
|
@@ -1451,33 +1441,36 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1451
1441
|
icon: l(),
|
|
1452
1442
|
itemType: "community",
|
|
1453
1443
|
onClick: a,
|
|
1454
|
-
onToggle:
|
|
1444
|
+
onToggle: o
|
|
1455
1445
|
}, {
|
|
1456
|
-
icon: Z(() => [e.item.type === "root" ? (
|
|
1457
|
-
|
|
1446
|
+
icon: Z(() => [e.item.type === "root" ? (H(), P("i", {
|
|
1447
|
+
key: 0,
|
|
1448
|
+
class: V(["mdi sidebar-icon", e.item.store?.type === "generic" ? "mdi-server-network" : "mdi-source-repository"])
|
|
1449
|
+
}, null, 2)) : e.item.type === "engine" ? (H(), P("span", Ht, [L(re, { "connection-type": e.item.label }, null, 8, ["connection-type"])])) : N("", !0)]),
|
|
1450
|
+
"extra-content": Z(() => [e.item.type === "model" ? (H(), P("span", Ut, [(H(!0), P(A, null, W(e.item.model?.tags || [], (e) => (H(), M(ie, {
|
|
1458
1451
|
key: e,
|
|
1459
1452
|
label: e
|
|
1460
|
-
}, null, 8, ["label"]))), 128))])) : e.item.type === "engine" ? (
|
|
1453
|
+
}, null, 8, ["label"]))), 128))])) : e.item.type === "engine" ? (H(), P("span", Wt)) : e.item.type === "root" ? (H(), P("span", Gt, [e.item.store && !d(e.item.store) ? (H(), M(h, {
|
|
1461
1454
|
key: 0,
|
|
1462
1455
|
content: "Remove Store",
|
|
1463
1456
|
position: "left"
|
|
1464
1457
|
}, {
|
|
1465
|
-
default: Z(() => [
|
|
1458
|
+
default: Z(() => [F("span", {
|
|
1466
1459
|
class: "remove-btn hover-icon sidebar-icon-button danger",
|
|
1467
1460
|
onClick: n[0] ||= $((t) => r("delete-store", e.item.store), ["stop"]),
|
|
1468
1461
|
"data-testid": `delete-store-${e.item.store.id}`
|
|
1469
|
-
}, [...n[1] ||= [
|
|
1462
|
+
}, [...n[1] ||= [F("i", { class: "mdi mdi-trash-can-outline" }, null, -1)]], 8, Kt)]),
|
|
1470
1463
|
_: 1
|
|
1471
|
-
})) :
|
|
1464
|
+
})) : N("", !0), e.item.store ? (H(), M(T, {
|
|
1472
1465
|
key: 1,
|
|
1473
|
-
status:
|
|
1474
|
-
message:
|
|
1466
|
+
status: f(e.item.store),
|
|
1467
|
+
message: p(e.item.store),
|
|
1475
1468
|
"test-name": e.item.store.id
|
|
1476
1469
|
}, null, 8, [
|
|
1477
1470
|
"status",
|
|
1478
1471
|
"message",
|
|
1479
1472
|
"test-name"
|
|
1480
|
-
])) :
|
|
1473
|
+
])) : N("", !0)])) : N("", !0)]),
|
|
1481
1474
|
_: 1
|
|
1482
1475
|
}, 8, [
|
|
1483
1476
|
"item-id",
|
|
@@ -1489,9 +1482,9 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1489
1482
|
"icon"
|
|
1490
1483
|
]));
|
|
1491
1484
|
}
|
|
1492
|
-
}), [["__scopeId", "data-v-
|
|
1485
|
+
}), [["__scopeId", "data-v-8680201b"]]), Jt = {
|
|
1493
1486
|
name: "AddStoreModal",
|
|
1494
|
-
components: { ModalDialog:
|
|
1487
|
+
components: { ModalDialog: m },
|
|
1495
1488
|
props: {
|
|
1496
1489
|
show: {
|
|
1497
1490
|
type: Boolean,
|
|
@@ -1504,51 +1497,38 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1504
1497
|
},
|
|
1505
1498
|
emits: ["close", "add"],
|
|
1506
1499
|
setup(e, { emit: t }) {
|
|
1507
|
-
let n =
|
|
1500
|
+
let n = U("generic"), r = U(""), i = U(""), a = U(""), s = U(""), c = U("main"), u = U(null), f = U(!1), p = j(() => {
|
|
1508
1501
|
let e = typeof window < "u" ? `${window.location.origin}${window.location.pathname}` : "";
|
|
1509
1502
|
return e ? `trilogy serve . --studio-url ${e}` : "trilogy serve .";
|
|
1510
1503
|
});
|
|
1511
|
-
return
|
|
1512
|
-
e && (n.value = "generic", r.value = "", i.value = "", a.value = "",
|
|
1504
|
+
return me(() => e.show, (e) => {
|
|
1505
|
+
e && (n.value = "generic", r.value = "", i.value = "", a.value = "", s.value = "", c.value = "main", u.value = null, f.value = !1);
|
|
1513
1506
|
}), {
|
|
1514
1507
|
storeType: n,
|
|
1515
1508
|
storeName: r,
|
|
1516
1509
|
baseUrl: i,
|
|
1517
1510
|
owner: a,
|
|
1518
|
-
repo:
|
|
1511
|
+
repo: s,
|
|
1519
1512
|
branch: c,
|
|
1520
|
-
error:
|
|
1513
|
+
error: u,
|
|
1521
1514
|
handleSubmit: async () => {
|
|
1522
|
-
|
|
1515
|
+
u.value = null;
|
|
1523
1516
|
try {
|
|
1524
|
-
if (n.value === "generic") {
|
|
1517
|
+
if (n.value === "generic" || n.value === "static") {
|
|
1525
1518
|
if (!i.value) {
|
|
1526
|
-
|
|
1519
|
+
u.value = "Please fill in all required fields";
|
|
1527
1520
|
return;
|
|
1528
1521
|
}
|
|
1529
|
-
|
|
1530
|
-
t("add", {
|
|
1531
|
-
type: "generic",
|
|
1532
|
-
id: l(e),
|
|
1533
|
-
name: r.value || s(e),
|
|
1534
|
-
baseUrl: e
|
|
1535
|
-
});
|
|
1522
|
+
t("add", (n.value === "static" ? l : d)(i.value, r.value || void 0));
|
|
1536
1523
|
} else {
|
|
1537
|
-
if (!
|
|
1538
|
-
|
|
1524
|
+
if (!a.value || !s.value || !c.value) {
|
|
1525
|
+
u.value = "Please fill in all required fields";
|
|
1539
1526
|
return;
|
|
1540
1527
|
}
|
|
1541
|
-
t("add",
|
|
1542
|
-
type: "github",
|
|
1543
|
-
id: `${a.value}-${o.value}-${c.value}`,
|
|
1544
|
-
name: r.value,
|
|
1545
|
-
owner: a.value,
|
|
1546
|
-
repo: o.value,
|
|
1547
|
-
branch: c.value
|
|
1548
|
-
});
|
|
1528
|
+
t("add", o(a.value.trim(), s.value.trim(), c.value.trim(), r.value || void 0));
|
|
1549
1529
|
}
|
|
1550
1530
|
} catch (e) {
|
|
1551
|
-
|
|
1531
|
+
u.value = e instanceof Error ? e.message : "Failed to add store";
|
|
1552
1532
|
}
|
|
1553
1533
|
},
|
|
1554
1534
|
serveCommand: p,
|
|
@@ -1564,111 +1544,134 @@ var Bt = /*#__PURE__*/ e(Pt, [["render", zt], ["__scopeId", "data-v-04081e74"]])
|
|
|
1564
1544
|
copiedCommand: f
|
|
1565
1545
|
};
|
|
1566
1546
|
}
|
|
1567
|
-
}, Yt = { class: "form-group" }, Xt = { class: "form-group" }, Zt = { class: "form-group" }, Qt = {
|
|
1547
|
+
}, Yt = { class: "form-group" }, Xt = { class: "form-group" }, Zt = { class: "form-group" }, Qt = { class: "form-group" }, $t = { class: "form-group" }, en = {
|
|
1568
1548
|
class: "cli-tip",
|
|
1569
1549
|
"data-testid": "add-store-cli-tip"
|
|
1570
|
-
},
|
|
1571
|
-
key:
|
|
1550
|
+
}, tn = { class: "cli-tip-command" }, nn = { "data-testid": "add-store-cli-command" }, rn = ["title"], an = { class: "form-group" }, on = { class: "form-group" }, sn = { class: "form-group" }, cn = { class: "form-group" }, ln = {
|
|
1551
|
+
key: 3,
|
|
1572
1552
|
class: "form-error",
|
|
1573
1553
|
"data-testid": "add-store-error"
|
|
1574
|
-
},
|
|
1575
|
-
function
|
|
1576
|
-
let o =
|
|
1577
|
-
return
|
|
1554
|
+
}, un = { class: "dialog-actions" }, dn = ["disabled"];
|
|
1555
|
+
function fn(e, t, n, r, i, a) {
|
|
1556
|
+
let o = G("ModalDialog");
|
|
1557
|
+
return H(), M(o, {
|
|
1578
1558
|
show: n.show,
|
|
1579
1559
|
title: "Add Model Store",
|
|
1580
1560
|
"test-id": "add-store-modal",
|
|
1581
|
-
onClose: t[
|
|
1561
|
+
onClose: t[12] ||= (t) => e.$emit("close")
|
|
1582
1562
|
}, {
|
|
1583
|
-
default: Z(() => [
|
|
1584
|
-
|
|
1563
|
+
default: Z(() => [F("form", { onSubmit: t[11] ||= $((...e) => r.handleSubmit && r.handleSubmit(...e), ["prevent"]) }, [
|
|
1564
|
+
F("div", Yt, [t[14] ||= F("label", null, [I("Store Type: "), F("span", { class: "required" }, "*")], -1), Q(F("select", {
|
|
1585
1565
|
"onUpdate:modelValue": t[0] ||= (e) => r.storeType = e,
|
|
1586
1566
|
"data-testid": "store-type-select"
|
|
1587
|
-
}, [...t[
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1567
|
+
}, [...t[13] ||= [
|
|
1568
|
+
F("option", { value: "generic" }, "Trilogy serve (API)", -1),
|
|
1569
|
+
F("option", { value: "static" }, "Static files (URL)", -1),
|
|
1570
|
+
F("option", { value: "github" }, "GitHub repository", -1)
|
|
1571
|
+
]], 512), [[J, r.storeType]])]),
|
|
1572
|
+
r.storeType === "static" ? (H(), P(A, { key: 0 }, [F("div", Xt, [t[15] ||= F("label", null, "Store Name:", -1), Q(F("input", {
|
|
1573
|
+
"onUpdate:modelValue": t[1] ||= (e) => r.storeName = e,
|
|
1574
|
+
type: "text",
|
|
1575
|
+
placeholder: "Optional, defaults to the store URL",
|
|
1576
|
+
"data-testid": "store-name-input"
|
|
1577
|
+
}, null, 512), [[Y, r.storeName]])]), F("div", Zt, [
|
|
1578
|
+
t[16] ||= F("label", null, [I("Base URL: "), F("span", { class: "required" }, "*")], -1),
|
|
1579
|
+
Q(F("input", {
|
|
1580
|
+
"onUpdate:modelValue": t[2] ||= (e) => r.baseUrl = e,
|
|
1581
|
+
type: "url",
|
|
1582
|
+
placeholder: "e.g., https://storage.googleapis.com/my-bucket/models",
|
|
1583
|
+
"data-testid": "store-url-input",
|
|
1584
|
+
required: ""
|
|
1585
|
+
}, null, 512), [[Y, r.baseUrl]]),
|
|
1586
|
+
t[17] ||= F("small", null, "Any origin serving index.json plus model files: a GCS or S3 bucket, a CDN, GitHub Pages. Models are browsed and imported as local copies.", -1)
|
|
1587
|
+
])], 64)) : N("", !0),
|
|
1588
|
+
r.storeType === "generic" ? (H(), P(A, { key: 1 }, [
|
|
1589
|
+
F("div", Qt, [t[18] ||= F("label", null, "Store Name:", -1), Q(F("input", {
|
|
1590
|
+
"onUpdate:modelValue": t[3] ||= (e) => r.storeName = e,
|
|
1591
1591
|
type: "text",
|
|
1592
1592
|
placeholder: "Optional, defaults to the store URL",
|
|
1593
1593
|
"data-testid": "store-name-input"
|
|
1594
1594
|
}, null, 512), [[Y, r.storeName]])]),
|
|
1595
|
-
|
|
1596
|
-
t[
|
|
1597
|
-
Q(
|
|
1598
|
-
"onUpdate:modelValue": t[
|
|
1595
|
+
F("div", $t, [
|
|
1596
|
+
t[19] ||= F("label", null, [I("Base URL: "), F("span", { class: "required" }, "*")], -1),
|
|
1597
|
+
Q(F("input", {
|
|
1598
|
+
"onUpdate:modelValue": t[4] ||= (e) => r.baseUrl = e,
|
|
1599
1599
|
type: "url",
|
|
1600
1600
|
placeholder: "e.g., http://localhost:8100",
|
|
1601
1601
|
"data-testid": "store-url-input",
|
|
1602
1602
|
required: ""
|
|
1603
1603
|
}, null, 512), [[Y, r.baseUrl]]),
|
|
1604
|
-
t[
|
|
1604
|
+
t[20] ||= F("small", null, "URL should serve an index.json file at /index.json", -1)
|
|
1605
1605
|
]),
|
|
1606
|
-
|
|
1607
|
-
t[
|
|
1608
|
-
t[
|
|
1609
|
-
|
|
1606
|
+
F("div", en, [
|
|
1607
|
+
t[21] ||= F("div", { class: "cli-tip-title" }, [F("i", { class: "mdi mdi-lightbulb-on" }), I(" Serving a local model? ")], -1),
|
|
1608
|
+
t[22] ||= F("p", { class: "cli-tip-body" }, " Run this in your model directory. The Trilogy CLI serves it over HTTP and prints a link that opens the model back in this studio. ", -1),
|
|
1609
|
+
F("div", tn, [F("code", nn, K(r.serveCommand), 1), F("button", {
|
|
1610
1610
|
type: "button",
|
|
1611
1611
|
class: "cli-tip-copy",
|
|
1612
1612
|
title: r.copiedCommand ? "Copied" : "Copy command",
|
|
1613
1613
|
"data-testid": "add-store-cli-copy",
|
|
1614
|
-
onClick: t[
|
|
1615
|
-
}, [
|
|
1616
|
-
t[
|
|
1614
|
+
onClick: t[5] ||= (...e) => r.copyServeCommand && r.copyServeCommand(...e)
|
|
1615
|
+
}, [F("i", { class: V(["mdi", r.copiedCommand ? "mdi-check" : "mdi-content-copy"]) }, null, 2)], 8, rn)]),
|
|
1616
|
+
t[23] ||= F("small", null, "Then paste the URL it prints above, or just follow the link.", -1)
|
|
1617
1617
|
])
|
|
1618
|
-
], 64)) :
|
|
1619
|
-
r.storeType === "github" ? (
|
|
1620
|
-
|
|
1621
|
-
"onUpdate:modelValue": t[
|
|
1618
|
+
], 64)) : N("", !0),
|
|
1619
|
+
r.storeType === "github" ? (H(), P(A, { key: 2 }, [
|
|
1620
|
+
F("div", an, [t[24] ||= F("label", null, "Display Name:", -1), Q(F("input", {
|
|
1621
|
+
"onUpdate:modelValue": t[6] ||= (e) => r.storeName = e,
|
|
1622
1622
|
type: "text",
|
|
1623
|
-
placeholder: "
|
|
1624
|
-
"data-testid": "store-name-input"
|
|
1625
|
-
required: ""
|
|
1623
|
+
placeholder: "Optional, defaults to owner/repo",
|
|
1624
|
+
"data-testid": "store-name-input"
|
|
1626
1625
|
}, null, 512), [[Y, r.storeName]])]),
|
|
1627
|
-
|
|
1628
|
-
"onUpdate:modelValue": t[
|
|
1626
|
+
F("div", on, [t[25] ||= F("label", null, [I("Repository Owner: "), F("span", { class: "required" }, "*")], -1), Q(F("input", {
|
|
1627
|
+
"onUpdate:modelValue": t[7] ||= (e) => r.owner = e,
|
|
1629
1628
|
type: "text",
|
|
1630
1629
|
placeholder: "e.g., trilogy-data",
|
|
1631
1630
|
"data-testid": "github-owner-input",
|
|
1632
1631
|
required: ""
|
|
1633
1632
|
}, null, 512), [[Y, r.owner]])]),
|
|
1634
|
-
|
|
1635
|
-
"onUpdate:modelValue": t[
|
|
1633
|
+
F("div", sn, [t[26] ||= F("label", null, [I("Repository Name: "), F("span", { class: "required" }, "*")], -1), Q(F("input", {
|
|
1634
|
+
"onUpdate:modelValue": t[8] ||= (e) => r.repo = e,
|
|
1636
1635
|
type: "text",
|
|
1637
1636
|
placeholder: "e.g., trilogy-public-models",
|
|
1638
1637
|
"data-testid": "github-repo-input",
|
|
1639
1638
|
required: ""
|
|
1640
1639
|
}, null, 512), [[Y, r.repo]])]),
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1640
|
+
F("div", cn, [
|
|
1641
|
+
t[27] ||= F("label", null, [I("Branch: "), F("span", { class: "required" }, "*")], -1),
|
|
1642
|
+
Q(F("input", {
|
|
1643
|
+
"onUpdate:modelValue": t[9] ||= (e) => r.branch = e,
|
|
1644
|
+
type: "text",
|
|
1645
|
+
placeholder: "e.g., main",
|
|
1646
|
+
"data-testid": "github-branch-input",
|
|
1647
|
+
required: ""
|
|
1648
|
+
}, null, 512), [[Y, r.branch]]),
|
|
1649
|
+
t[28] ||= F("small", null, "Reads the repository's studio/index.json. Public repositories only.", -1)
|
|
1650
|
+
])
|
|
1651
|
+
], 64)) : N("", !0),
|
|
1652
|
+
r.error ? (H(), P("div", ln, K(r.error), 1)) : N("", !0),
|
|
1653
|
+
F("div", un, [F("button", {
|
|
1651
1654
|
type: "button",
|
|
1652
1655
|
class: "cancel-btn",
|
|
1653
1656
|
"data-testid": "add-store-cancel",
|
|
1654
|
-
onClick: t[
|
|
1655
|
-
}, " Cancel "),
|
|
1657
|
+
onClick: t[10] ||= (t) => e.$emit("close")
|
|
1658
|
+
}, " Cancel "), F("button", {
|
|
1656
1659
|
type: "submit",
|
|
1657
1660
|
class: "confirm-btn",
|
|
1658
1661
|
"data-testid": "add-store-submit",
|
|
1659
1662
|
disabled: n.loading
|
|
1660
|
-
},
|
|
1663
|
+
}, K(n.loading ? "Adding..." : "Add Store"), 9, dn)])
|
|
1661
1664
|
], 32)]),
|
|
1662
1665
|
_: 1
|
|
1663
1666
|
}, 8, ["show"]);
|
|
1664
1667
|
}
|
|
1665
|
-
var
|
|
1668
|
+
var pn = /*#__PURE__*/ e(Jt, [["render", fn], ["__scopeId", "data-v-4dd2e9ea"]]), mn = (e, t = [], n = {}) => {
|
|
1666
1669
|
let r = [];
|
|
1667
1670
|
return t.forEach((t) => {
|
|
1668
|
-
let i = t.id, a = t.name, o = {
|
|
1669
|
-
owner:
|
|
1670
|
-
repo:
|
|
1671
|
-
branch:
|
|
1671
|
+
let i = t.id, a = t.name, o = t.type === "static" ? t.origin : void 0, s = {
|
|
1672
|
+
owner: o?.owner ?? "",
|
|
1673
|
+
repo: o?.repo ?? "",
|
|
1674
|
+
branch: o?.branch ?? "main",
|
|
1672
1675
|
displayName: a
|
|
1673
1676
|
};
|
|
1674
1677
|
if (r.push({
|
|
@@ -1676,61 +1679,61 @@ var dn = /*#__PURE__*/ e(Jt, [["render", un], ["__scopeId", "data-v-10959a43"]])
|
|
|
1676
1679
|
label: a,
|
|
1677
1680
|
key: i,
|
|
1678
1681
|
indent: 0,
|
|
1679
|
-
modelRoot:
|
|
1682
|
+
modelRoot: s,
|
|
1680
1683
|
store: t
|
|
1681
1684
|
}), !e(i)) {
|
|
1682
|
-
let a = n[i] || [],
|
|
1685
|
+
let a = n[i] || [], o = {};
|
|
1683
1686
|
a.forEach((e) => {
|
|
1684
|
-
|
|
1685
|
-
}), Object.keys(
|
|
1687
|
+
o[e.engine] || (o[e.engine] = []), o[e.engine].push(e);
|
|
1688
|
+
}), Object.keys(o).sort().forEach((n) => {
|
|
1686
1689
|
let a = `${i}+${n}`;
|
|
1687
1690
|
r.push({
|
|
1688
1691
|
type: "engine",
|
|
1689
1692
|
label: n,
|
|
1690
1693
|
key: a,
|
|
1691
1694
|
indent: 1,
|
|
1692
|
-
modelRoot:
|
|
1695
|
+
modelRoot: s,
|
|
1693
1696
|
store: t
|
|
1694
|
-
}), e(a) ||
|
|
1697
|
+
}), e(a) || o[n].forEach((e) => {
|
|
1695
1698
|
r.push({
|
|
1696
1699
|
type: "model",
|
|
1697
1700
|
label: e.name,
|
|
1698
1701
|
key: `${a}+${e.name}`,
|
|
1699
1702
|
indent: 2,
|
|
1700
1703
|
model: e,
|
|
1701
|
-
modelRoot:
|
|
1704
|
+
modelRoot: s,
|
|
1702
1705
|
store: t
|
|
1703
1706
|
});
|
|
1704
1707
|
});
|
|
1705
1708
|
});
|
|
1706
1709
|
}
|
|
1707
1710
|
}), r;
|
|
1708
|
-
},
|
|
1711
|
+
}, hn = R({
|
|
1709
1712
|
name: "CommunityModelList",
|
|
1710
1713
|
setup() {
|
|
1711
|
-
let e = c(), t = n(), r =
|
|
1714
|
+
let e = c(), t = n(), r = z("editorStore"), i = z("connectionStore"), a = z("modelStore"), o = _(), s = U(null), l = t.activeCommunityModelKey.value || "", u = j(() => {
|
|
1712
1715
|
if (l) {
|
|
1713
1716
|
let [e, t] = l.split("+");
|
|
1714
1717
|
return new Set(t ? [e, `${e}+${t}`] : [e]);
|
|
1715
1718
|
}
|
|
1716
1719
|
let t = e.stores;
|
|
1717
1720
|
return t.length === 1 ? /* @__PURE__ */ new Set([t[0].id]) : /* @__PURE__ */ new Set();
|
|
1718
|
-
}), { overrides: d, isCollapsed: f, toggle: p, open: m } =
|
|
1721
|
+
}), { overrides: d, isCollapsed: f, toggle: p, open: m } = k((e) => u.value.has(e)), h = async (t) => {
|
|
1719
1722
|
try {
|
|
1720
1723
|
await e.addStore(t), e.closeAddStoreModal();
|
|
1721
1724
|
} catch (e) {
|
|
1722
1725
|
console.error("Failed to add store:", e);
|
|
1723
1726
|
}
|
|
1724
|
-
}, { isOpen:
|
|
1725
|
-
t.type === "generic" && r && i && a &&
|
|
1727
|
+
}, { isOpen: g, openConfirmation: v, closeConfirmation: y, confirm: b } = se((t) => {
|
|
1728
|
+
t.type === "generic" && r && i && a && ee(t.id, r, i, a), e.removeStore(t.id);
|
|
1726
1729
|
}), x = (e, n, r) => {
|
|
1727
1730
|
t.openTab("community-models", e.name, n), console.log("Selected model:", e.name, "from root:", r);
|
|
1728
1731
|
}, S = (e, n, r) => {
|
|
1729
1732
|
m(n), t.openTab("community-models", null, n);
|
|
1730
|
-
},
|
|
1733
|
+
}, C = (e, t, n) => {
|
|
1731
1734
|
p(t);
|
|
1732
|
-
},
|
|
1733
|
-
return
|
|
1735
|
+
}, w = j(() => mn(f, e.stores, e.filesByStore));
|
|
1736
|
+
return de(async () => {
|
|
1734
1737
|
await e.initialize();
|
|
1735
1738
|
}), {
|
|
1736
1739
|
communityStore: e,
|
|
@@ -1739,13 +1742,13 @@ var dn = /*#__PURE__*/ e(Jt, [["render", un], ["__scopeId", "data-v-10959a43"]])
|
|
|
1739
1742
|
showDeleteStoreConfirmation: v,
|
|
1740
1743
|
cancelDeleteStore: y,
|
|
1741
1744
|
confirmDeleteStore: b,
|
|
1742
|
-
showDeleteConfirmationState:
|
|
1745
|
+
showDeleteConfirmationState: g,
|
|
1743
1746
|
handleModelSelected: x,
|
|
1744
1747
|
handleItemClick: S,
|
|
1745
|
-
handleItemToggle:
|
|
1748
|
+
handleItemToggle: C,
|
|
1746
1749
|
collapsed: d,
|
|
1747
1750
|
isCollapsed: f,
|
|
1748
|
-
displayTree:
|
|
1751
|
+
displayTree: w,
|
|
1749
1752
|
isMobile: o,
|
|
1750
1753
|
mobileTree: s,
|
|
1751
1754
|
isCommunityBranch: (e) => ["root", "engine"].includes(e.type),
|
|
@@ -1759,39 +1762,39 @@ var dn = /*#__PURE__*/ e(Jt, [["render", un], ["__scopeId", "data-v-10959a43"]])
|
|
|
1759
1762
|
};
|
|
1760
1763
|
},
|
|
1761
1764
|
components: {
|
|
1762
|
-
SidebarList:
|
|
1765
|
+
SidebarList: D,
|
|
1763
1766
|
CommunityModelListItem: qt,
|
|
1764
|
-
AddStoreModal:
|
|
1765
|
-
ConfirmDialog:
|
|
1766
|
-
MobileTreeList:
|
|
1767
|
+
AddStoreModal: pn,
|
|
1768
|
+
ConfirmDialog: C,
|
|
1769
|
+
MobileTreeList: O
|
|
1767
1770
|
}
|
|
1768
|
-
}),
|
|
1771
|
+
}), gn = { class: "community-header" }, _n = { class: "button-container" }, vn = ["disabled"], yn = {
|
|
1769
1772
|
key: 0,
|
|
1770
1773
|
class: "error-container"
|
|
1771
|
-
},
|
|
1772
|
-
function
|
|
1773
|
-
let o =
|
|
1774
|
-
return
|
|
1775
|
-
header: Z(() => [
|
|
1774
|
+
}, bn = { class: "error-text" }, xn = ["onClick"];
|
|
1775
|
+
function Sn(e, t, n, r, i, a) {
|
|
1776
|
+
let o = G("CommunityModelListItem"), s = G("mobile-tree-list"), c = G("AddStoreModal"), l = G("ConfirmDialog"), u = G("sidebar-list");
|
|
1777
|
+
return H(), M(u, { title: "External Models" }, {
|
|
1778
|
+
header: Z(() => [F("div", gn, [t[4] ||= F("h3", { class: "font-sans sidebar-header" }, "External Models", -1), F("button", {
|
|
1776
1779
|
class: "sidebar-control-button sidebar-header-action sidebar-primary-create",
|
|
1777
1780
|
onClick: t[0] ||= (t) => e.communityStore.openAddStoreModal(),
|
|
1778
1781
|
"data-testid": "community-store-add"
|
|
1779
|
-
}, [...t[3] ||= [
|
|
1780
|
-
actions: Z(() => [
|
|
1782
|
+
}, [...t[3] ||= [F("i", { class: "mdi mdi-plus" }, null, -1), I(" New ", -1)]])])]),
|
|
1783
|
+
actions: Z(() => [F("div", _n, [F("button", {
|
|
1781
1784
|
class: "sidebar-control-button sidebar-header-action",
|
|
1782
1785
|
onClick: t[1] ||= (t) => e.communityStore.refreshData(),
|
|
1783
1786
|
disabled: e.communityStore.loading,
|
|
1784
1787
|
"data-testid": "community-store-refresh"
|
|
1785
|
-
}, [t[5] ||=
|
|
1788
|
+
}, [t[5] ||= F("i", { class: "mdi mdi-refresh" }, null, -1), I(" " + K(e.communityStore.loading ? "Refreshing" : "Refresh"), 1)], 8, vn)])]),
|
|
1786
1789
|
default: Z(() => [
|
|
1787
|
-
e.communityStore.hasErrors ? (
|
|
1790
|
+
e.communityStore.hasErrors ? (H(), P("div", yn, [(H(!0), P(A, null, W(e.communityStore.errorList, (t) => (H(), P("div", {
|
|
1788
1791
|
key: t.root,
|
|
1789
1792
|
class: "error-item"
|
|
1790
|
-
}, [
|
|
1793
|
+
}, [F("span", bn, K(t.name) + ": " + K(t.error), 1), F("button", {
|
|
1791
1794
|
onClick: (n) => e.communityStore.clearStoreError(t.root),
|
|
1792
1795
|
class: "clear-error"
|
|
1793
|
-
}, "×", 8,
|
|
1794
|
-
|
|
1796
|
+
}, "×", 8, xn)]))), 128))])) : N("", !0),
|
|
1797
|
+
L(s, {
|
|
1795
1798
|
"list-id": "community",
|
|
1796
1799
|
ref: "mobileTree",
|
|
1797
1800
|
items: e.displayTree,
|
|
@@ -1803,7 +1806,7 @@ function bn(e, t, n, r, i, a) {
|
|
|
1803
1806
|
onExpand: e.expandMobileBranch,
|
|
1804
1807
|
onSelect: e.selectMobileItem
|
|
1805
1808
|
}, {
|
|
1806
|
-
item: Z(({ item: t }) => [(
|
|
1809
|
+
item: Z(({ item: t }) => [(H(), M(o, {
|
|
1807
1810
|
key: t.key,
|
|
1808
1811
|
item: t,
|
|
1809
1812
|
"mobile-tree-mode": e.isMobile,
|
|
@@ -1834,7 +1837,7 @@ function bn(e, t, n, r, i, a) {
|
|
|
1834
1837
|
"onExpand",
|
|
1835
1838
|
"onSelect"
|
|
1836
1839
|
]),
|
|
1837
|
-
|
|
1840
|
+
L(c, {
|
|
1838
1841
|
show: e.communityStore.showAddStoreModal,
|
|
1839
1842
|
loading: e.communityStore.addingStore,
|
|
1840
1843
|
onClose: t[2] ||= (t) => e.communityStore.closeAddStoreModal(),
|
|
@@ -1844,7 +1847,7 @@ function bn(e, t, n, r, i, a) {
|
|
|
1844
1847
|
"loading",
|
|
1845
1848
|
"onAdd"
|
|
1846
1849
|
]),
|
|
1847
|
-
|
|
1850
|
+
L(l, {
|
|
1848
1851
|
show: e.showDeleteConfirmationState,
|
|
1849
1852
|
title: "Confirm Store Removal",
|
|
1850
1853
|
message: "Are you sure you want to remove this store? This will not delete any imported models.",
|
|
@@ -1862,33 +1865,33 @@ function bn(e, t, n, r, i, a) {
|
|
|
1862
1865
|
_: 1
|
|
1863
1866
|
});
|
|
1864
1867
|
}
|
|
1865
|
-
var
|
|
1866
|
-
editors: () => Promise.all([import("./Editor-
|
|
1868
|
+
var Cn = /*#__PURE__*/ e(hn, [["render", Sn], ["__scopeId", "data-v-46a284c6"]]), wn = {
|
|
1869
|
+
editors: () => Promise.all([import("./Editor-DQsYpkwl.js").then((e) => e.n), import("./ResultComponent-CAn_r3BL.js").then((e) => e.n)]),
|
|
1867
1870
|
connections: () => import("./ConnectionView-COnTTuA4.js").then((e) => e.n),
|
|
1868
|
-
llms: () => import("./LLMView-
|
|
1869
|
-
dashboard: () => import("./Dashboard-
|
|
1870
|
-
models: () => import("./ModelView-
|
|
1871
|
-
"community-models": () => import("./CommunityModels-
|
|
1872
|
-
jobs: () => import("./JobsView-
|
|
1873
|
-
tutorial: () => import("./TutorialPage-
|
|
1874
|
-
},
|
|
1875
|
-
function
|
|
1876
|
-
if (
|
|
1877
|
-
let t =
|
|
1878
|
-
t && (
|
|
1879
|
-
|
|
1871
|
+
llms: () => import("./LLMView-C1MUf0c2.js"),
|
|
1872
|
+
dashboard: () => import("./Dashboard-BH9ZwMVJ.js").then((e) => e.n),
|
|
1873
|
+
models: () => import("./ModelView-DUDA_PtZ.js").then((e) => e.n),
|
|
1874
|
+
"community-models": () => import("./CommunityModels-Cmro0hV3.js").then((e) => e.n),
|
|
1875
|
+
jobs: () => import("./JobsView-B97HBoIE.js").then((e) => e.n),
|
|
1876
|
+
tutorial: () => import("./TutorialPage-NRcee6Dx.js")
|
|
1877
|
+
}, Tn = /* @__PURE__ */ new Set();
|
|
1878
|
+
function En(e) {
|
|
1879
|
+
if (Tn.has(e)) return;
|
|
1880
|
+
let t = wn[e];
|
|
1881
|
+
t && (Tn.add(e), t().catch(() => {
|
|
1882
|
+
Tn.delete(e);
|
|
1880
1883
|
}));
|
|
1881
1884
|
}
|
|
1882
|
-
function
|
|
1885
|
+
function Dn(e = 3e3) {
|
|
1883
1886
|
if (typeof window > "u") return;
|
|
1884
|
-
let t = () => Object.keys(
|
|
1887
|
+
let t = () => Object.keys(wn).forEach(En);
|
|
1885
1888
|
window.setTimeout(() => {
|
|
1886
1889
|
"requestIdleCallback" in window ? window.requestIdleCallback(() => t(), { timeout: 1e4 }) : t();
|
|
1887
1890
|
}, e);
|
|
1888
1891
|
}
|
|
1889
1892
|
//#endregion
|
|
1890
1893
|
//#region components/sidebar/Sidebar.vue?vue&type=script&lang.ts
|
|
1891
|
-
var
|
|
1894
|
+
var On = R({
|
|
1892
1895
|
name: "Sidebar",
|
|
1893
1896
|
props: {
|
|
1894
1897
|
active: {
|
|
@@ -1929,9 +1932,9 @@ var En = z({
|
|
|
1929
1932
|
}
|
|
1930
1933
|
},
|
|
1931
1934
|
setup() {
|
|
1932
|
-
let e =
|
|
1935
|
+
let e = U(!1), t = U(null), n = _(), r = i(), a = b(), o = z("chatStore", null);
|
|
1933
1936
|
return {
|
|
1934
|
-
llmConnectionStore:
|
|
1937
|
+
llmConnectionStore: z("llmConnectionStore", null),
|
|
1935
1938
|
isSaving: e,
|
|
1936
1939
|
previousUnSaved: t,
|
|
1937
1940
|
isMobile: n,
|
|
@@ -1993,10 +1996,10 @@ var En = z({
|
|
|
1993
1996
|
icon: "mdi mdi-creation-outline",
|
|
1994
1997
|
screen: "llms"
|
|
1995
1998
|
}
|
|
1996
|
-
], n =
|
|
1999
|
+
], n = z("saveAll"), r = z("unSaved") || 0;
|
|
1997
2000
|
if (!n) throw Error("saveAll is not provided");
|
|
1998
2001
|
return {
|
|
1999
|
-
trilogyIcon:
|
|
2002
|
+
trilogyIcon: v,
|
|
2000
2003
|
sidebarItems: t,
|
|
2001
2004
|
sidebarFeatureItems: e,
|
|
2002
2005
|
unSaved: r,
|
|
@@ -2008,15 +2011,15 @@ var En = z({
|
|
|
2008
2011
|
};
|
|
2009
2012
|
},
|
|
2010
2013
|
components: {
|
|
2011
|
-
EditorList:
|
|
2012
|
-
ConnectionList:
|
|
2013
|
-
Tooltip:
|
|
2014
|
-
TutorialSidebar:
|
|
2015
|
-
ModelSidebar:
|
|
2016
|
-
JobsList:
|
|
2017
|
-
LLMConnectionList:
|
|
2018
|
-
DashboardList:
|
|
2019
|
-
CommunityModelList:
|
|
2014
|
+
EditorList: te,
|
|
2015
|
+
ConnectionList: oe,
|
|
2016
|
+
Tooltip: h,
|
|
2017
|
+
TutorialSidebar: Ce,
|
|
2018
|
+
ModelSidebar: Me,
|
|
2019
|
+
JobsList: it,
|
|
2020
|
+
LLMConnectionList: ae,
|
|
2021
|
+
DashboardList: Vt,
|
|
2022
|
+
CommunityModelList: Cn
|
|
2020
2023
|
},
|
|
2021
2024
|
watch: {
|
|
2022
2025
|
contentCollapsed(e) {
|
|
@@ -2051,7 +2054,7 @@ var En = z({
|
|
|
2051
2054
|
}
|
|
2052
2055
|
},
|
|
2053
2056
|
methods: {
|
|
2054
|
-
preloadScreen:
|
|
2057
|
+
preloadScreen: En,
|
|
2055
2058
|
toggleGlobalChat() {
|
|
2056
2059
|
this.globalChatPanel.togglePanel();
|
|
2057
2060
|
},
|
|
@@ -2135,63 +2138,63 @@ var En = z({
|
|
|
2135
2138
|
return t.set("sidebarScreen", e), `#${t.toString()}`;
|
|
2136
2139
|
}
|
|
2137
2140
|
}
|
|
2138
|
-
}),
|
|
2141
|
+
}), kn = {
|
|
2139
2142
|
key: 0,
|
|
2140
2143
|
class: "mobile-menu-root",
|
|
2141
2144
|
"data-testid": "mobile-menu-root"
|
|
2142
|
-
},
|
|
2145
|
+
}, An = ["aria-label"], jn = ["src"], Mn = { class: "mobile-menu-save-state" }, Nn = {
|
|
2143
2146
|
class: "mobile-menu-destinations",
|
|
2144
2147
|
"aria-label": "Main navigation"
|
|
2145
|
-
},
|
|
2148
|
+
}, Pn = [
|
|
2146
2149
|
"aria-current",
|
|
2147
2150
|
"data-testid",
|
|
2148
2151
|
"onClick",
|
|
2149
2152
|
"onMouseenter"
|
|
2150
|
-
],
|
|
2153
|
+
], Fn = { class: "mobile-menu-bottom" }, In = {
|
|
2151
2154
|
key: 1,
|
|
2152
2155
|
class: "sidebar-icons",
|
|
2153
2156
|
"data-testid": "sidebar-icons"
|
|
2154
|
-
},
|
|
2157
|
+
}, Ln = { class: "trilogy-icon" }, Rn = { class: "trilogy-icon-wrapper" }, zn = ["src"], Bn = ["title"], Vn = ["title"], Hn = [
|
|
2155
2158
|
"onClick",
|
|
2156
2159
|
"onMouseenter",
|
|
2157
2160
|
"data-testid"
|
|
2158
|
-
],
|
|
2161
|
+
], Un = [
|
|
2159
2162
|
"onClick",
|
|
2160
2163
|
"href",
|
|
2161
2164
|
"data-testid"
|
|
2162
|
-
],
|
|
2165
|
+
], Wn = [
|
|
2163
2166
|
"onClick",
|
|
2164
2167
|
"onMouseenter",
|
|
2165
2168
|
"data-testid"
|
|
2166
|
-
],
|
|
2169
|
+
], Gn = [
|
|
2167
2170
|
"onClick",
|
|
2168
2171
|
"href",
|
|
2169
2172
|
"data-testid"
|
|
2170
|
-
],
|
|
2173
|
+
], Kn = { class: "sidebar-bottom-icons" }, qn = {
|
|
2171
2174
|
key: 0,
|
|
2172
2175
|
class: "ai-running-dot",
|
|
2173
2176
|
title: "An AI conversation is running"
|
|
2174
|
-
},
|
|
2177
|
+
}, Jn = {
|
|
2175
2178
|
key: 0,
|
|
2176
2179
|
class: "mobile-subsection-search"
|
|
2177
|
-
},
|
|
2178
|
-
function
|
|
2179
|
-
let o =
|
|
2180
|
-
return
|
|
2181
|
-
e.isMobile && e.mobileNavigationLevel === "root" ? (
|
|
2182
|
-
|
|
2180
|
+
}, Yn = ["placeholder", "aria-label"];
|
|
2181
|
+
function Xn(e, t, n, r, i, a) {
|
|
2182
|
+
let o = G("tooltip"), s = G("EditorList"), c = G("ConnectionList"), l = G("LLMConnectionList"), u = G("ModelSidebar"), d = G("JobsList"), f = G("TutorialSidebar"), p = G("DashboardList"), m = G("CommunityModelList");
|
|
2183
|
+
return H(), P("div", { class: V(["sidebar-container", { "mobile-navigation": e.isMobile }]) }, [
|
|
2184
|
+
e.isMobile && e.mobileNavigationLevel === "root" ? (H(), P("div", kn, [
|
|
2185
|
+
F("button", {
|
|
2183
2186
|
type: "button",
|
|
2184
2187
|
class: "mobile-menu-brand",
|
|
2185
2188
|
"aria-label": e.unSaved ? `Save ${e.unSaved} unsaved changes` : "All changes saved",
|
|
2186
2189
|
onClick: t[0] ||= (...t) => e.handleSave && e.handleSave(...t)
|
|
2187
|
-
}, [
|
|
2190
|
+
}, [F("img", {
|
|
2188
2191
|
class: V(["mobile-menu-logo", { spinning: e.isSaving }]),
|
|
2189
2192
|
src: e.trilogyIcon,
|
|
2190
2193
|
alt: "",
|
|
2191
2194
|
"aria-hidden": "true",
|
|
2192
2195
|
"data-testid": "trilogy-icon"
|
|
2193
|
-
}, null, 10,
|
|
2194
|
-
|
|
2196
|
+
}, null, 10, jn), F("div", null, [t[10] ||= F("div", { class: "mobile-menu-title" }, "Trilogy Studio", -1), F("div", Mn, K(e.unSaved ? `${e.unSaved} unsaved — tap to save` : "All changes saved"), 1)])], 8, An),
|
|
2197
|
+
F("nav", Nn, [(H(!0), P(A, null, W([...e.sidebarItems, ...e.sidebarFeatureItems], (n) => (H(), P("button", {
|
|
2195
2198
|
key: n.screen,
|
|
2196
2199
|
type: "button",
|
|
2197
2200
|
class: V(["mobile-menu-destination", { selected: e.active === n.screen }]),
|
|
@@ -2200,142 +2203,142 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2200
2203
|
onClick: (t) => e.selectMobileDestination(n.screen),
|
|
2201
2204
|
onMouseenter: (t) => e.preloadScreen(n.screen)
|
|
2202
2205
|
}, [
|
|
2203
|
-
|
|
2206
|
+
F("i", {
|
|
2204
2207
|
class: V(n.icon),
|
|
2205
2208
|
"aria-hidden": "true"
|
|
2206
2209
|
}, null, 2),
|
|
2207
|
-
|
|
2208
|
-
t[11] ||=
|
|
2210
|
+
F("span", null, K(n.tooltip), 1),
|
|
2211
|
+
t[11] ||= F("i", {
|
|
2209
2212
|
class: "mdi mdi-chevron-right mobile-menu-chevron",
|
|
2210
2213
|
"aria-hidden": "true"
|
|
2211
2214
|
}, null, -1)
|
|
2212
|
-
], 42,
|
|
2213
|
-
|
|
2215
|
+
], 42, Pn))), 128))]),
|
|
2216
|
+
F("div", Fn, [F("button", {
|
|
2214
2217
|
type: "button",
|
|
2215
2218
|
class: "mobile-menu-destination",
|
|
2216
2219
|
"data-testid": "sidebar-icon-settings",
|
|
2217
2220
|
onClick: t[1] ||= (t) => e.selectItem("settings")
|
|
2218
|
-
}, [...t[12] ||= [
|
|
2221
|
+
}, [...t[12] ||= [F("i", {
|
|
2219
2222
|
class: "mdi mdi-cog-outline",
|
|
2220
2223
|
"aria-hidden": "true"
|
|
2221
|
-
}, null, -1),
|
|
2224
|
+
}, null, -1), F("span", null, "Settings", -1)]]), F("button", {
|
|
2222
2225
|
type: "button",
|
|
2223
2226
|
class: "mobile-menu-destination",
|
|
2224
2227
|
"data-testid": "sidebar-icon-profile",
|
|
2225
2228
|
onClick: t[2] ||= (t) => e.selectItem("profile")
|
|
2226
|
-
}, [...t[13] ||= [
|
|
2229
|
+
}, [...t[13] ||= [F("i", {
|
|
2227
2230
|
class: "mdi mdi-account-outline",
|
|
2228
2231
|
"aria-hidden": "true"
|
|
2229
|
-
}, null, -1),
|
|
2230
|
-
])) :
|
|
2231
|
-
e.isMobile ?
|
|
2232
|
-
|
|
2233
|
-
default: Z(() => [
|
|
2232
|
+
}, null, -1), F("span", null, "Profile", -1)]])])
|
|
2233
|
+
])) : N("", !0),
|
|
2234
|
+
e.isMobile ? N("", !0) : (H(), P("div", In, [
|
|
2235
|
+
F("div", Ln, [F("div", Rn, [L(o, { content: e.unSaved ? `Save ${e.unSaved} ${(e.unSaved?.valueOf() || 0) > 1 ? "changes" : "change"}` : "All changes saved!" }, {
|
|
2236
|
+
default: Z(() => [F("img", {
|
|
2234
2237
|
class: V(["trilogy-icon", { spinning: e.isSaving }]),
|
|
2235
2238
|
onClick: t[3] ||= (...t) => e.handleSave && e.handleSave(...t),
|
|
2236
2239
|
src: e.trilogyIcon,
|
|
2237
2240
|
"data-testid": "trilogy-icon"
|
|
2238
|
-
}, null, 10,
|
|
2241
|
+
}, null, 10, zn)]),
|
|
2239
2242
|
_: 1
|
|
2240
|
-
}, 8, ["content"]), (e.unSaved?.valueOf() || 0) > 0 ? (
|
|
2243
|
+
}, 8, ["content"]), (e.unSaved?.valueOf() || 0) > 0 ? (H(), P("div", {
|
|
2241
2244
|
key: 0,
|
|
2242
2245
|
class: "unsaved-badge",
|
|
2243
2246
|
title: `${e.unSaved} unsaved ${(e.unSaved?.valueOf() || 0) > 1 ? "changes" : "change"}`
|
|
2244
|
-
},
|
|
2245
|
-
t[17] ||=
|
|
2246
|
-
|
|
2247
|
+
}, K(e.unSaved), 9, Bn)) : N("", !0)])]),
|
|
2248
|
+
t[17] ||= F("div", { class: "trilogy-icon-padding" }, null, -1),
|
|
2249
|
+
F("div", {
|
|
2247
2250
|
class: "sidebar-collapse-btn",
|
|
2248
2251
|
onClick: t[4] ||= (...t) => e.toggleCollapse && e.toggleCollapse(...t),
|
|
2249
2252
|
title: e.contentCollapsed ? "Expand sidebar" : "Collapse sidebar"
|
|
2250
|
-
}, [
|
|
2251
|
-
t[18] ||=
|
|
2252
|
-
(
|
|
2253
|
+
}, [F("i", { class: V(e.contentCollapsed ? "mdi mdi-chevron-right" : "mdi mdi-chevron-left") }, null, 2)], 8, Vn),
|
|
2254
|
+
t[18] ||= F("div", { class: "sidebar-divider" }, null, -1),
|
|
2255
|
+
(H(!0), P(A, null, W(e.sidebarItems, (t, n) => (H(), P("div", {
|
|
2253
2256
|
key: t.name,
|
|
2254
2257
|
class: V(["sidebar-icon sidebar-icon-margin", { selected: e.active == t.screen }]),
|
|
2255
2258
|
onClick: (n) => e.selectItem(t.screen),
|
|
2256
2259
|
onMouseenter: (n) => e.preloadScreen(t.screen),
|
|
2257
2260
|
"data-testid": `sidebar-icon-${t.screen}`
|
|
2258
|
-
}, [
|
|
2259
|
-
default: Z(() => [
|
|
2261
|
+
}, [L(o, { content: t.tooltip }, {
|
|
2262
|
+
default: Z(() => [F("a", {
|
|
2260
2263
|
onClick: $((n) => e.selectItem(t.screen), ["prevent", "stop"]),
|
|
2261
2264
|
href: e.getUrl(t.screen),
|
|
2262
2265
|
target: "_blank",
|
|
2263
2266
|
"data-testid": `sidebar-link-${t.screen}`
|
|
2264
|
-
}, [
|
|
2267
|
+
}, [F("i", { class: V(t.icon) }, null, 2)], 8, Un)]),
|
|
2265
2268
|
_: 2
|
|
2266
|
-
}, 1032, ["content"])], 42,
|
|
2267
|
-
t[19] ||=
|
|
2268
|
-
(
|
|
2269
|
+
}, 1032, ["content"])], 42, Hn))), 128)),
|
|
2270
|
+
t[19] ||= F("div", { class: "sidebar-divider" }, null, -1),
|
|
2271
|
+
(H(!0), P(A, null, W(e.sidebarFeatureItems, (t, n) => (H(), P("div", {
|
|
2269
2272
|
key: t.name,
|
|
2270
2273
|
class: V(["sidebar-icon sidebar-icon-margin", { selected: e.active == t.screen }]),
|
|
2271
2274
|
onClick: (n) => e.selectItem(t.screen),
|
|
2272
2275
|
onMouseenter: (n) => e.preloadScreen(t.screen),
|
|
2273
2276
|
"data-testid": `sidebar-icon-${t.screen}`
|
|
2274
|
-
}, [
|
|
2275
|
-
default: Z(() => [
|
|
2277
|
+
}, [L(o, { content: t.tooltip }, {
|
|
2278
|
+
default: Z(() => [F("a", {
|
|
2276
2279
|
onClick: $((n) => e.selectItem(t.screen), ["prevent", "stop"]),
|
|
2277
2280
|
href: e.getUrl(t.screen),
|
|
2278
2281
|
target: "_blank",
|
|
2279
2282
|
"data-testid": `sidebar-link-${t.screen}`
|
|
2280
|
-
}, [
|
|
2283
|
+
}, [F("i", { class: V(t.icon) }, null, 2)], 8, Gn)]),
|
|
2281
2284
|
_: 2
|
|
2282
|
-
}, 1032, ["content"])], 42,
|
|
2283
|
-
|
|
2284
|
-
e.hasLLMConnections ? (
|
|
2285
|
+
}, 1032, ["content"])], 42, Wn))), 128)),
|
|
2286
|
+
F("div", Kn, [
|
|
2287
|
+
e.hasLLMConnections ? (H(), P("div", {
|
|
2285
2288
|
key: 0,
|
|
2286
2289
|
class: V(["sidebar-icon sidebar-icon-margin ai-panel-icon", { selected: e.globalChatOpen }]),
|
|
2287
2290
|
onClick: t[5] ||= (...t) => e.toggleGlobalChat && e.toggleGlobalChat(...t),
|
|
2288
2291
|
"data-testid": "sidebar-icon-ai-panel"
|
|
2289
|
-
}, [
|
|
2290
|
-
default: Z(() => [...t[14] ||= [
|
|
2292
|
+
}, [L(o, { content: "AI Assistant (Ctrl+Shift+.)" }, {
|
|
2293
|
+
default: Z(() => [...t[14] ||= [F("i", { class: "mdi mdi-creation" }, null, -1)]]),
|
|
2291
2294
|
_: 1
|
|
2292
|
-
}), e.aiChatRunning ? (
|
|
2293
|
-
|
|
2295
|
+
}), e.aiChatRunning ? (H(), P("span", qn)) : N("", !0)], 2)) : N("", !0),
|
|
2296
|
+
F("div", {
|
|
2294
2297
|
class: V(["sidebar-icon sidebar-icon-margin", { selected: e.active == "settings" }]),
|
|
2295
2298
|
onClick: t[6] ||= (t) => e.selectItem("settings"),
|
|
2296
2299
|
"data-testid": "sidebar-icon-settings"
|
|
2297
|
-
}, [
|
|
2298
|
-
default: Z(() => [...t[15] ||= [
|
|
2300
|
+
}, [L(o, { content: "Settings" }, {
|
|
2301
|
+
default: Z(() => [...t[15] ||= [F("i", { class: "mdi mdi-cog-outline" }, null, -1)]]),
|
|
2299
2302
|
_: 1
|
|
2300
2303
|
})], 2),
|
|
2301
|
-
|
|
2304
|
+
F("div", {
|
|
2302
2305
|
class: V(["sidebar-icon sidebar-icon-margin", { selected: e.active == "profile" }]),
|
|
2303
2306
|
"data-testid": "sidebar-icon-profile",
|
|
2304
2307
|
onClick: t[7] ||= (t) => e.selectItem("profile")
|
|
2305
|
-
}, [
|
|
2306
|
-
default: Z(() => [...t[16] ||= [
|
|
2308
|
+
}, [L(o, { content: "Profile" }, {
|
|
2309
|
+
default: Z(() => [...t[16] ||= [F("i", { class: "mdi mdi-account-outline" }, null, -1)]]),
|
|
2307
2310
|
_: 1
|
|
2308
2311
|
})], 2)
|
|
2309
2312
|
])
|
|
2310
2313
|
])),
|
|
2311
|
-
Q(
|
|
2314
|
+
Q(F("div", {
|
|
2312
2315
|
ref: "mobileDetailMenu",
|
|
2313
2316
|
class: V(["sidebar-content", { "sidebar-content-collapsed": e.contentCollapsed && !e.isMobile }]),
|
|
2314
|
-
style:
|
|
2317
|
+
style: ue(e.isMobile || e.contentCollapsed ? {} : { width: e.containerWidth - 40 + "px" })
|
|
2315
2318
|
}, [
|
|
2316
|
-
e.isMobile && e.activeMobileDestination?.searchLabel ? (
|
|
2317
|
-
t[21] ||=
|
|
2319
|
+
e.isMobile && e.activeMobileDestination?.searchLabel ? (H(), P("label", Jn, [
|
|
2320
|
+
t[21] ||= F("i", {
|
|
2318
2321
|
class: "mdi mdi-magnify",
|
|
2319
2322
|
"aria-hidden": "true"
|
|
2320
2323
|
}, null, -1),
|
|
2321
|
-
Q(
|
|
2324
|
+
Q(F("input", {
|
|
2322
2325
|
"onUpdate:modelValue": t[8] ||= (t) => e.mobileSearchQuery = t,
|
|
2323
2326
|
type: "search",
|
|
2324
2327
|
placeholder: `Search ${e.activeMobileDestination.searchLabel}`,
|
|
2325
2328
|
"aria-label": `Search ${e.activeMobileDestination.searchLabel}`,
|
|
2326
2329
|
"data-testid": "mobile-sidebar-search"
|
|
2327
|
-
}, null, 8,
|
|
2328
|
-
e.mobileSearchQuery ? (
|
|
2330
|
+
}, null, 8, Yn), [[Y, e.mobileSearchQuery]]),
|
|
2331
|
+
e.mobileSearchQuery ? (H(), P("button", {
|
|
2329
2332
|
key: 0,
|
|
2330
2333
|
type: "button",
|
|
2331
2334
|
"aria-label": "Clear search",
|
|
2332
2335
|
onClick: t[9] ||= (t) => e.mobileSearchQuery = ""
|
|
2333
|
-
}, [...t[20] ||= [
|
|
2336
|
+
}, [...t[20] ||= [F("i", {
|
|
2334
2337
|
class: "mdi mdi-close",
|
|
2335
2338
|
"aria-hidden": "true"
|
|
2336
|
-
}, null, -1)]])) :
|
|
2337
|
-
])) :
|
|
2338
|
-
Q(
|
|
2339
|
+
}, null, -1)]])) : N("", !0)
|
|
2340
|
+
])) : N("", !0),
|
|
2341
|
+
Q(L(s, {
|
|
2339
2342
|
activeEditor: e.activeEditor,
|
|
2340
2343
|
mobileSearchQuery: e.mobileSearchQuery,
|
|
2341
2344
|
onEditorSelected: e.editorSelected,
|
|
@@ -2346,7 +2349,7 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2346
2349
|
"onEditorSelected",
|
|
2347
2350
|
"onSaveEditors"
|
|
2348
2351
|
]), [[X, e.active === "editors"]]),
|
|
2349
|
-
Q(
|
|
2352
|
+
Q(L(c, {
|
|
2350
2353
|
onConnectionKeySelected: e.connectionKeySelected,
|
|
2351
2354
|
onToggleMobileMenu: e.toggleMobileMenu,
|
|
2352
2355
|
activeConnectionKey: e.activeConnectionKey
|
|
@@ -2355,7 +2358,7 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2355
2358
|
"onToggleMobileMenu",
|
|
2356
2359
|
"activeConnectionKey"
|
|
2357
2360
|
]), [[X, e.active === "connections"]]),
|
|
2358
|
-
Q(
|
|
2361
|
+
Q(L(l, {
|
|
2359
2362
|
onLlmConnectionKeySelected: e.llmKeySelected,
|
|
2360
2363
|
onLlmOpenView: e.llmOpenView,
|
|
2361
2364
|
onCreateNewChat: e.createNewChat,
|
|
@@ -2366,7 +2369,7 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2366
2369
|
"onCreateNewChat",
|
|
2367
2370
|
"activeLLMKey"
|
|
2368
2371
|
]), [[X, e.active === "llms"]]),
|
|
2369
|
-
Q(
|
|
2372
|
+
Q(L(u, {
|
|
2370
2373
|
onModelKeySelected: e.modelKeySelected,
|
|
2371
2374
|
activeModelKey: e.activeModelKey,
|
|
2372
2375
|
mobileSearchQuery: e.mobileSearchQuery
|
|
@@ -2375,15 +2378,15 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2375
2378
|
"activeModelKey",
|
|
2376
2379
|
"mobileSearchQuery"
|
|
2377
2380
|
]), [[X, e.active === "models"]]),
|
|
2378
|
-
Q(
|
|
2381
|
+
Q(L(d, {
|
|
2379
2382
|
onJobsKeySelected: e.jobsKeySelected,
|
|
2380
2383
|
activeJobsKey: e.activeJobsKey
|
|
2381
2384
|
}, null, 8, ["onJobsKeySelected", "activeJobsKey"]), [[X, e.active === "jobs"]]),
|
|
2382
|
-
Q(
|
|
2385
|
+
Q(L(f, {
|
|
2383
2386
|
onDocumentationKeySelected: e.documentationKeySelected,
|
|
2384
2387
|
activeDocumentationKey: e.activeDocumentationKey
|
|
2385
2388
|
}, null, 8, ["onDocumentationKeySelected", "activeDocumentationKey"]), [[X, e.active === "tutorial"]]),
|
|
2386
|
-
Q(
|
|
2389
|
+
Q(L(p, {
|
|
2387
2390
|
onDashboardKeySelected: e.dashboardKeySelected,
|
|
2388
2391
|
onSaveEditors: e.saveDashboards,
|
|
2389
2392
|
activeDashboardKey: e.activeDashboardKey,
|
|
@@ -2394,14 +2397,14 @@ function Jn(e, t, n, r, i, a) {
|
|
|
2394
2397
|
"activeDashboardKey",
|
|
2395
2398
|
"onToggleMobileMenu"
|
|
2396
2399
|
]), [[X, e.active === "dashboard"]]),
|
|
2397
|
-
Q(
|
|
2400
|
+
Q(L(m, null, null, 512), [[X, e.active === "community-models"]])
|
|
2398
2401
|
], 6), [[X, !e.isMobile || e.mobileNavigationLevel === "detail"]])
|
|
2399
2402
|
], 2);
|
|
2400
2403
|
}
|
|
2401
|
-
var
|
|
2404
|
+
var Zn = /*#__PURE__*/ e(On, [["render", Xn], ["__scopeId", "data-v-8ea26f23"]]), Qn = R({
|
|
2402
2405
|
name: "StorageManager",
|
|
2403
2406
|
setup() {
|
|
2404
|
-
let e = (
|
|
2407
|
+
let e = (z("storageSources", []) || []).find((e) => e instanceof x), t = U([]), n = U(!1), r = U(30), i = U(""), a = j(() => t.value.reduce((e, t) => e + t.bytes, 0));
|
|
2405
2408
|
async function o() {
|
|
2406
2409
|
if (e) {
|
|
2407
2410
|
n.value = !0;
|
|
@@ -2438,7 +2441,7 @@ var Yn = /*#__PURE__*/ e(En, [["render", Jn], ["__scopeId", "data-v-8ea26f23"]])
|
|
|
2438
2441
|
function l(e) {
|
|
2439
2442
|
return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / 1024 / 1024).toFixed(2)} MB`;
|
|
2440
2443
|
}
|
|
2441
|
-
return
|
|
2444
|
+
return de(o), {
|
|
2442
2445
|
rows: t,
|
|
2443
2446
|
loading: n,
|
|
2444
2447
|
pruneDays: r,
|
|
@@ -2450,89 +2453,89 @@ var Yn = /*#__PURE__*/ e(En, [["render", Jn], ["__scopeId", "data-v-8ea26f23"]])
|
|
|
2450
2453
|
formatBytes: l
|
|
2451
2454
|
};
|
|
2452
2455
|
}
|
|
2453
|
-
}),
|
|
2456
|
+
}), $n = { class: "storage-container" }, er = { class: "intro" }, tr = ["disabled"], nr = {
|
|
2454
2457
|
key: 0,
|
|
2455
2458
|
class: "empty"
|
|
2456
|
-
},
|
|
2459
|
+
}, rr = {
|
|
2457
2460
|
key: 1,
|
|
2458
2461
|
class: "empty"
|
|
2459
|
-
},
|
|
2462
|
+
}, ir = {
|
|
2460
2463
|
key: 2,
|
|
2461
2464
|
class: "usage-table"
|
|
2462
|
-
},
|
|
2465
|
+
}, ar = { class: "key" }, or = { class: "numeric" }, sr = ["onClick", "disabled"], cr = { class: "numeric" }, lr = { class: "section" }, ur = { class: "prune-row" }, dr = ["disabled"], fr = {
|
|
2463
2466
|
key: 0,
|
|
2464
2467
|
class: "prune-message"
|
|
2465
2468
|
};
|
|
2466
|
-
function
|
|
2467
|
-
return
|
|
2468
|
-
|
|
2469
|
+
function pr(e, t, n, r, i, a) {
|
|
2470
|
+
return H(), P("div", $n, [
|
|
2471
|
+
F("div", er, [t[3] ||= F("p", null, " Large data (chats, editors, dashboards, model config) is stored in IndexedDB. Smaller items (connections, LLM settings, user settings, credentials) stay in localStorage. Clear individual keys or prune old chats below. ", -1), F("button", {
|
|
2469
2472
|
class: "button",
|
|
2470
2473
|
onClick: t[0] ||= (...t) => e.refresh && e.refresh(...t),
|
|
2471
2474
|
disabled: e.loading
|
|
2472
|
-
}, "Refresh", 8,
|
|
2473
|
-
e.loading ? (
|
|
2474
|
-
t[6] ||=
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2475
|
+
}, "Refresh", 8, tr)]),
|
|
2476
|
+
e.loading ? (H(), P("div", nr, "Loading…")) : e.rows.length ? (H(), P("table", ir, [
|
|
2477
|
+
t[6] ||= F("thead", null, [F("tr", null, [
|
|
2478
|
+
F("th", null, "Key"),
|
|
2479
|
+
F("th", null, "Backend"),
|
|
2480
|
+
F("th", { class: "numeric" }, "Size"),
|
|
2481
|
+
F("th")
|
|
2479
2482
|
])], -1),
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2483
|
+
F("tbody", null, [(H(!0), P(A, null, W(e.rows, (t) => (H(), P("tr", { key: `${t.backend}:${t.key}` }, [
|
|
2484
|
+
F("td", ar, K(t.key), 1),
|
|
2485
|
+
F("td", null, [F("span", { class: V(["backend-badge", t.backend]) }, K(t.backend), 3)]),
|
|
2486
|
+
F("td", or, K(e.formatBytes(t.bytes)), 1),
|
|
2487
|
+
F("td", null, [F("button", {
|
|
2485
2488
|
class: "button button-small",
|
|
2486
2489
|
onClick: (n) => e.deleteKey(t.key, t.backend),
|
|
2487
2490
|
disabled: e.loading
|
|
2488
|
-
}, " Delete ", 8,
|
|
2491
|
+
}, " Delete ", 8, sr)])
|
|
2489
2492
|
]))), 128))]),
|
|
2490
|
-
|
|
2491
|
-
t[4] ||=
|
|
2492
|
-
|
|
2493
|
-
t[5] ||=
|
|
2493
|
+
F("tfoot", null, [F("tr", null, [
|
|
2494
|
+
t[4] ||= F("td", { colspan: "2" }, [F("strong", null, "Total")], -1),
|
|
2495
|
+
F("td", cr, [F("strong", null, K(e.formatBytes(e.totalBytes)), 1)]),
|
|
2496
|
+
t[5] ||= F("td", null, null, -1)
|
|
2494
2497
|
])])
|
|
2495
|
-
])) : (
|
|
2496
|
-
|
|
2497
|
-
t[9] ||=
|
|
2498
|
-
t[10] ||=
|
|
2499
|
-
|
|
2500
|
-
t[8] ||=
|
|
2501
|
-
Q(
|
|
2498
|
+
])) : (H(), P("div", rr, "Nothing stored.")),
|
|
2499
|
+
F("div", lr, [
|
|
2500
|
+
t[9] ||= F("h3", null, "Prune old chats", -1),
|
|
2501
|
+
t[10] ||= F("p", { class: "muted" }, " Deletes chats whose last activity is older than the selected age. Artifact payloads stored in chats are the most common cause of quota errors. ", -1),
|
|
2502
|
+
F("div", ur, [
|
|
2503
|
+
t[8] ||= F("label", { for: "prune-days" }, "Delete chats older than", -1),
|
|
2504
|
+
Q(F("select", {
|
|
2502
2505
|
id: "prune-days",
|
|
2503
2506
|
"onUpdate:modelValue": t[1] ||= (t) => e.pruneDays = t
|
|
2504
2507
|
}, [...t[7] ||= [
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2508
|
+
F("option", { value: 7 }, "7 days", -1),
|
|
2509
|
+
F("option", { value: 30 }, "30 days", -1),
|
|
2510
|
+
F("option", { value: 90 }, "90 days", -1),
|
|
2511
|
+
F("option", { value: 180 }, "180 days", -1),
|
|
2512
|
+
F("option", { value: 365 }, "1 year", -1)
|
|
2510
2513
|
]], 512), [[
|
|
2511
|
-
|
|
2514
|
+
J,
|
|
2512
2515
|
e.pruneDays,
|
|
2513
2516
|
void 0,
|
|
2514
2517
|
{ number: !0 }
|
|
2515
2518
|
]]),
|
|
2516
|
-
|
|
2519
|
+
F("button", {
|
|
2517
2520
|
class: "button",
|
|
2518
2521
|
onClick: t[2] ||= (...t) => e.pruneChats && e.pruneChats(...t),
|
|
2519
2522
|
disabled: e.loading
|
|
2520
|
-
}, "Prune", 8,
|
|
2523
|
+
}, "Prune", 8, dr)
|
|
2521
2524
|
]),
|
|
2522
|
-
e.pruneMessage ? (
|
|
2525
|
+
e.pruneMessage ? (H(), P("div", fr, K(e.pruneMessage), 1)) : N("", !0)
|
|
2523
2526
|
])
|
|
2524
2527
|
]);
|
|
2525
2528
|
}
|
|
2526
2529
|
//#endregion
|
|
2527
2530
|
//#region components/user/UserSettings.vue?vue&type=script&lang.ts
|
|
2528
|
-
var
|
|
2531
|
+
var mr = R({
|
|
2529
2532
|
name: "UserSettings",
|
|
2530
|
-
components: { StorageManager: /* @__PURE__ */ e(
|
|
2533
|
+
components: { StorageManager: /* @__PURE__ */ e(Qn, [["render", pr], ["__scopeId", "data-v-e5d394da"]]) },
|
|
2531
2534
|
setup() {
|
|
2532
|
-
let e =
|
|
2535
|
+
let e = z("userSettingsStore");
|
|
2533
2536
|
if (!e) throw Error("User Settings Store is required");
|
|
2534
|
-
let { settings: t, isLoading: n, hasChanges: r } =
|
|
2535
|
-
return
|
|
2537
|
+
let { settings: t, isLoading: n, hasChanges: r } = he(e), i = U("general");
|
|
2538
|
+
return de(() => {
|
|
2536
2539
|
e.hasLoaded || e.loadSettings();
|
|
2537
2540
|
}), {
|
|
2538
2541
|
settings: t,
|
|
@@ -2550,7 +2553,7 @@ var fr = z({
|
|
|
2550
2553
|
},
|
|
2551
2554
|
formatLabel: (e) => e.replace(/([A-Z])/g, " $1").replace(/^./, (e) => e.toUpperCase()),
|
|
2552
2555
|
toggleTheme: () => {
|
|
2553
|
-
|
|
2556
|
+
B(() => {
|
|
2554
2557
|
e.toggleTheme();
|
|
2555
2558
|
});
|
|
2556
2559
|
},
|
|
@@ -2558,79 +2561,79 @@ var fr = z({
|
|
|
2558
2561
|
e.setHasChanges(!0);
|
|
2559
2562
|
},
|
|
2560
2563
|
onThemeChange: () => {
|
|
2561
|
-
e.setHasChanges(!0),
|
|
2564
|
+
e.setHasChanges(!0), B(() => {
|
|
2562
2565
|
e.toggleTheme();
|
|
2563
2566
|
});
|
|
2564
2567
|
},
|
|
2565
2568
|
userSettingsStore: e
|
|
2566
2569
|
};
|
|
2567
2570
|
}
|
|
2568
|
-
}),
|
|
2571
|
+
}), hr = { class: "settings-container" }, gr = { class: "tabs" }, _r = { class: "tab-panel" }, vr = ["for"], yr = [
|
|
2569
2572
|
"id",
|
|
2570
2573
|
"onUpdate:modelValue",
|
|
2571
2574
|
"onChange"
|
|
2572
|
-
],
|
|
2575
|
+
], br = ["onUpdate:modelValue"], xr = { key: 2 }, Sr = ["disabled"], Cr = [
|
|
2573
2576
|
"id",
|
|
2574
2577
|
"onUpdate:modelValue",
|
|
2575
2578
|
"data-testid"
|
|
2576
|
-
],
|
|
2577
|
-
function
|
|
2578
|
-
let o =
|
|
2579
|
-
return
|
|
2580
|
-
|
|
2579
|
+
], wr = { class: "actions" }, Tr = ["disabled"], Er = ["disabled"], Dr = { class: "tab-panel" };
|
|
2580
|
+
function Or(e, t, n, r, i, a) {
|
|
2581
|
+
let o = G("StorageManager");
|
|
2582
|
+
return H(), P("div", hr, [
|
|
2583
|
+
F("div", gr, [F("button", {
|
|
2581
2584
|
class: V(["tab-button", { "tab-active": e.activeTab === "general" }]),
|
|
2582
2585
|
onClick: t[0] ||= (t) => e.activeTab = "general",
|
|
2583
2586
|
"data-testid": "settings-tab-general"
|
|
2584
|
-
}, " General ", 2),
|
|
2587
|
+
}, " General ", 2), F("button", {
|
|
2585
2588
|
class: V(["tab-button", { "tab-active": e.activeTab === "storage" }]),
|
|
2586
2589
|
onClick: t[1] ||= (t) => e.activeTab = "storage",
|
|
2587
2590
|
"data-testid": "settings-tab-storage"
|
|
2588
2591
|
}, " Storage ", 2)]),
|
|
2589
|
-
Q(
|
|
2590
|
-
t[8] ||=
|
|
2591
|
-
(
|
|
2592
|
+
Q(F("div", _r, [
|
|
2593
|
+
t[8] ||= F("h2", null, "Settings", -1),
|
|
2594
|
+
(H(!0), P(A, null, W(Object.entries(e.settings), ([n, r]) => (H(), P("div", {
|
|
2592
2595
|
class: "setting",
|
|
2593
2596
|
key: n
|
|
2594
|
-
}, [
|
|
2597
|
+
}, [F("label", { for: n }, K(e.formatLabel(n)), 9, vr), typeof r == "boolean" ? Q((H(), P("input", {
|
|
2595
2598
|
key: 0,
|
|
2596
2599
|
type: "checkbox",
|
|
2597
2600
|
id: n,
|
|
2598
2601
|
"onUpdate:modelValue": (t) => e.settings[n] = t,
|
|
2599
2602
|
onChange: () => e.userSettingsStore.updateSetting(n, e.settings[n])
|
|
2600
|
-
}, null, 40,
|
|
2603
|
+
}, null, 40, yr)), [[pe, e.settings[n]]]) : n === "theme" ? Q((H(), P("select", {
|
|
2601
2604
|
key: 1,
|
|
2602
2605
|
"onUpdate:modelValue": (t) => e.settings[n] = t,
|
|
2603
2606
|
onChange: t[2] ||= (...t) => e.onThemeChange && e.onThemeChange(...t)
|
|
2604
|
-
}, [...t[7] ||= [
|
|
2607
|
+
}, [...t[7] ||= [F("option", { value: "dark" }, "Dark", -1), F("option", { value: "light" }, "Light", -1)]], 40, br)), [[J, e.settings[n]]]) : n === "tipsRead" ? (H(), P("div", xr, [F("button", {
|
|
2605
2608
|
class: "button",
|
|
2606
2609
|
onClick: t[3] ||= (...t) => e.clearDismissedTips && e.clearDismissedTips(...t),
|
|
2607
2610
|
disabled: e.isLoading
|
|
2608
|
-
}, " Reshow Dismissed Popups (" +
|
|
2611
|
+
}, " Reshow Dismissed Popups (" + K(e.settings.tipsRead.length) + ") ", 9, Sr)])) : typeof r == "string" ? Q((H(), P("input", {
|
|
2609
2612
|
key: 3,
|
|
2610
2613
|
type: "text",
|
|
2611
2614
|
id: n,
|
|
2612
2615
|
"onUpdate:modelValue": (t) => e.settings[n] = t,
|
|
2613
2616
|
"data-testid": `settings-${n}`,
|
|
2614
2617
|
onInput: t[4] ||= (...t) => e.onSettingChange && e.onSettingChange(...t)
|
|
2615
|
-
}, null, 40,
|
|
2616
|
-
|
|
2618
|
+
}, null, 40, Cr)), [[Y, e.settings[n]]]) : N("", !0)]))), 128)),
|
|
2619
|
+
F("div", wr, [F("button", {
|
|
2617
2620
|
class: "button",
|
|
2618
2621
|
onClick: t[5] ||= (...t) => e.saveSettings && e.saveSettings(...t),
|
|
2619
2622
|
disabled: e.isLoading || !e.hasChanges
|
|
2620
|
-
}, " Save ", 8,
|
|
2623
|
+
}, " Save ", 8, Tr), F("button", {
|
|
2621
2624
|
class: "button",
|
|
2622
2625
|
onClick: t[6] ||= (...t) => e.resetToDefaults && e.resetToDefaults(...t),
|
|
2623
2626
|
disabled: e.isLoading
|
|
2624
|
-
}, " Reset to Defaults ", 8,
|
|
2627
|
+
}, " Reset to Defaults ", 8, Er)])
|
|
2625
2628
|
], 512), [[X, e.activeTab === "general"]]),
|
|
2626
|
-
Q(
|
|
2629
|
+
Q(F("div", Dr, [L(o)], 512), [[X, e.activeTab === "storage"]])
|
|
2627
2630
|
]);
|
|
2628
2631
|
}
|
|
2629
|
-
var
|
|
2632
|
+
var kr = /*#__PURE__*/ e(mr, [["render", Or], ["__scopeId", "data-v-e04e640c"]]), Ar = R({
|
|
2630
2633
|
name: "UserProfile",
|
|
2631
2634
|
setup() {
|
|
2632
2635
|
return {
|
|
2633
|
-
profile:
|
|
2636
|
+
profile: fe({
|
|
2634
2637
|
name: "Anonymous",
|
|
2635
2638
|
email: null,
|
|
2636
2639
|
organization: null
|
|
@@ -2638,29 +2641,29 @@ var Dr = /*#__PURE__*/ e(fr, [["render", Er], ["__scopeId", "data-v-e04e640c"]])
|
|
|
2638
2641
|
editProfile: () => {
|
|
2639
2642
|
console.log("Edit profile clicked");
|
|
2640
2643
|
},
|
|
2641
|
-
trilogyIcon:
|
|
2644
|
+
trilogyIcon: v
|
|
2642
2645
|
};
|
|
2643
2646
|
}
|
|
2644
|
-
}),
|
|
2645
|
-
function
|
|
2646
|
-
return
|
|
2647
|
+
}), jr = { class: "profile-container" }, Mr = { class: "profile-info" }, Nr = ["src"], Pr = { class: "details" }, Fr = { key: 0 }, Ir = { key: 1 };
|
|
2648
|
+
function Lr(e, t, n, r, i, a) {
|
|
2649
|
+
return H(), P("div", jr, [t[3] ||= F("h2", null, "Profile", -1), F("div", Mr, [F("img", {
|
|
2647
2650
|
src: e.trilogyIcon,
|
|
2648
2651
|
alt: "User Avatar",
|
|
2649
2652
|
class: "avatar"
|
|
2650
|
-
}, null, 8,
|
|
2651
|
-
|
|
2652
|
-
e.profile.email ? (
|
|
2653
|
-
e.profile.organization ? (
|
|
2653
|
+
}, null, 8, Nr), F("div", Pr, [
|
|
2654
|
+
F("p", null, [t[0] ||= F("strong", null, "User Name:", -1), I(" " + K(e.profile.name), 1)]),
|
|
2655
|
+
e.profile.email ? (H(), P("p", Fr, [t[1] ||= F("strong", null, "Email:", -1), I(" " + K(e.profile.email), 1)])) : N("", !0),
|
|
2656
|
+
e.profile.organization ? (H(), P("p", Ir, [t[2] ||= F("strong", null, "Organization:", -1), I(" " + K(e.profile.organization), 1)])) : N("", !0)
|
|
2654
2657
|
])])]);
|
|
2655
2658
|
}
|
|
2656
|
-
var
|
|
2659
|
+
var Rr = /*#__PURE__*/ e(Ar, [["render", Lr], ["__scopeId", "data-v-e25754ef"]]), zr = {}, Br = {
|
|
2657
2660
|
class: "page-loading",
|
|
2658
2661
|
role: "status",
|
|
2659
2662
|
"aria-label": "Loading page"
|
|
2660
2663
|
};
|
|
2661
|
-
function
|
|
2662
|
-
return
|
|
2664
|
+
function Vr(e, t) {
|
|
2665
|
+
return H(), P("div", Br, [...t[0] ||= [le("<div class=\"page-loading__bar\" data-v-bd8a428d><span class=\"skeleton skeleton--chip\" data-v-bd8a428d></span><span class=\"skeleton skeleton--title\" data-v-bd8a428d></span><span class=\"skeleton skeleton--chip\" data-v-bd8a428d></span></div><div class=\"page-loading__body\" data-v-bd8a428d><span class=\"skeleton skeleton--line skeleton--w60\" data-v-bd8a428d></span><span class=\"skeleton skeleton--line skeleton--w40\" data-v-bd8a428d></span><span class=\"skeleton skeleton--block\" data-v-bd8a428d></span><div class=\"page-loading__row\" data-v-bd8a428d><span class=\"skeleton skeleton--card\" data-v-bd8a428d></span><span class=\"skeleton skeleton--card\" data-v-bd8a428d></span></div></div>", 2)]]);
|
|
2663
2666
|
}
|
|
2664
|
-
var
|
|
2667
|
+
var Hr = /*#__PURE__*/ e(zr, [["render", Vr], ["__scopeId", "data-v-bd8a428d"]]);
|
|
2665
2668
|
//#endregion
|
|
2666
|
-
export {
|
|
2669
|
+
export { Dn as a, Zn as i, Rr as n, be as o, kr as r, ye as s, Hr as t };
|