@64mb/freelens-power 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/THIRD_PARTY_LICENSES +26 -0
- package/out/main/ai-models.js +2 -1
- package/out/main/ai-models.js.map +1 -1
- package/out/main/ai.js +13 -5
- package/out/main/ai.js.map +1 -1
- package/out/renderer/ai-extras.js +21 -16
- package/out/renderer/ai-extras.js.map +1 -1
- package/out/renderer/ai-icon.js +23 -0
- package/out/renderer/ai-icon.js.map +1 -1
- package/out/renderer/ai.js +81 -10
- package/out/renderer/ai.js.map +1 -1
- package/out/renderer/appearance.js +20 -2
- package/out/renderer/appearance.js.map +1 -1
- package/out/renderer/details/resource-health-details.js +2 -2
- package/out/renderer/details/resource-health-details.js.map +1 -1
- package/out/renderer/power-log-json-cell.js +2 -2
- package/out/renderer/power-logs.css.js +11 -2
- package/out/renderer/power-logs.css.js.map +1 -1
- package/out/renderer/power-logs.js +75 -32
- package/out/renderer/power-logs.js.map +1 -1
- package/out/renderer/preferences/ai-preferences.js +6 -3
- package/out/renderer/preferences/ai-preferences.js.map +1 -1
- package/out/renderer/preferences/monitoring-preferences.js +14 -6
- package/out/renderer/preferences/monitoring-preferences.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearance.js","names":[],"sources":["../../src/renderer/appearance.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport { reaction } from \"mobx\";\nimport { AppearancePreferencesStore, isAccentSelection } from \"../common/store/appearance-preferences-store\";\n\nexport function startAppearanceOverride(): () => void {\n const preferences = AppearancePreferencesStore.getInstanceOrCreate<AppearancePreferencesStore>();\n const style = document.createElement(\"style\");\n style.dataset.freelensPower = \"accent-color\";\n\n const stop = reaction(\n () => [preferences.enabled, preferences.accentColor, preferences.recolorAppIcon] as const,\n ([enabled, color, recolorAppIcon]) => {\n if (!enabled || !isAccentSelection(color)) {\n style.remove();\n return;\n }\n\n // [!important] takes precedence over the host theme's inline variables\n const accent =\n color === \"default\"\n ? \"\"\n : `\n :root { --primary: ${color} !important; --buttonPrimaryBackground: ${color} !important; --menuSelectedOptionBgc: ${color} !important; --select-option-focused-bgc: color-mix(in srgb, ${color} 24%, var(--contentColor)) !important; --icon-focus-color: ${color} !important; }\n :root .Checkbox, :root .Drawer .drawer-title, :root .DrawerParamToggler .param-link, :root .Drawer .ResizingAnchor { --blue: var(--primary); }\n :root [role=\"treeitem\"][class*=\"catalog-tree-module__selected--\"] { --blue: var(--primary); }\n :root [class*=\"main-layout-module__sidebar--\"] > .ResizingAnchor { --blue: var(--primary); }\n :root .MenuItem:is(.create-terminal-tab, .create-resource-tab) { --bgc-active: var(--primary); }\n :root .Select:not(.Select--is-disabled) .Select__control--is-focused:not(.Select__control--is-disabled) { border-color: ${color} !important; box-shadow: 0 0 0 1px ${color} !important; }\n :root .Select__option--is-selected { background: var(--primary) !important; color: var(--textColorAccent) !important; }\n :root .NamespaceSelectMenu .Select__option { margin-block: 2px; }\n :root .NamespaceSelectMenu .Select__option--is-selected { background: color-mix(in srgb, var(--primary) 10%, var(--contentColor)) !important; color: var(--textColorAccent) !important; }\n :root .NamespaceSelectMenu .Select__option--is-selected.Select__option--is-focused { background: color-mix(in srgb, var(--primary) 24%, var(--contentColor)) !important; }\n :root .NamespaceSelectMenu .Select__option--is-selected .Icon { color: var(--primary); }\n :root a.link { color: var(--primary); }\n :root [data-testid=\"download-logs-dropdown\"] { --accent-color: var(--primary); }\n ${recolorAppIcon ? '.Welcome [data-testid=\"no-welcome-banners-icon\"] svg path[fill=\"#23a49c\"] { fill: var(--primary); }' : \"\"}\n `;\n style.textContent = `${accent}\\ninput[role=\"switch\"] { --track-color-active: var(--primary) !important; }`;\n\n if (!style.isConnected) {\n document.head.append(style);\n }\n },\n { fireImmediately: true },\n );\n\n return () => {\n stop();\n style.remove();\n };\n}\n"],"mappings":";;;AAIA,SAAgB,0BAAsC;CACpD,MAAM,cAAc,qCAAA,2BAA2B,oBAAgD;CAC/F,MAAM,QAAQ,SAAS,cAAc,OAAO;CAC5C,MAAM,QAAQ,gBAAgB;CAE9B,MAAM,OAAO,8BAAA,eACL;EAAC,YAAY;EAAS,YAAY;EAAa,YAAY;CAAc,IAC9E,CAAC,SAAS,OAAO,oBAAoB;EACpC,IAAI,CAAC,WAAW,CAAC,qCAAA,kBAAkB,KAAK,GAAG;GACzC,MAAM,OAAO;GACb;EACF;
|
|
1
|
+
{"version":3,"file":"appearance.js","names":[],"sources":["../../src/renderer/appearance.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport { reaction } from \"mobx\";\nimport { AppearancePreferencesStore, isAccentSelection } from \"../common/store/appearance-preferences-store\";\n\nexport function accentForeground(color: string): \"#000000\" | \"#ffffff\" {\n const channels = [1, 3, 5].map((offset) => {\n const channel = Number.parseInt(color.slice(offset, offset + 2), 16) / 255;\n return channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;\n });\n const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;\n return (luminance + 0.05) / 0.05 >= 1.05 / (luminance + 0.05) ? \"#000000\" : \"#ffffff\";\n}\n\nexport function startAppearanceOverride(): () => void {\n const preferences = AppearancePreferencesStore.getInstanceOrCreate<AppearancePreferencesStore>();\n const style = document.createElement(\"style\");\n style.dataset.freelensPower = \"accent-color\";\n\n const stop = reaction(\n () => [preferences.enabled, preferences.accentColor, preferences.recolorAppIcon] as const,\n ([enabled, color, recolorAppIcon]) => {\n if (!enabled || !isAccentSelection(color)) {\n style.remove();\n return;\n }\n\n // [!important] takes precedence over the host theme's inline variables\n const accent =\n color === \"default\"\n ? \"\"\n : `\n :root { --freelens-power-accent-foreground: ${accentForeground(color)}; --select-option-focused-color: var(--textColorAccent) !important; --primary: ${color} !important; --buttonPrimaryBackground: ${color} !important; --menuSelectedOptionBgc: ${color} !important; --select-option-focused-bgc: color-mix(in srgb, ${color} 24%, var(--contentColor)) !important; --icon-focus-color: ${color} !important; }\n :root .Checkbox, :root .Drawer .drawer-title, :root .DrawerParamToggler .param-link, :root .Drawer .ResizingAnchor { --blue: var(--primary); }\n :root [role=\"treeitem\"][class*=\"catalog-tree-module__selected--\"] { --blue: var(--primary); }\n :root [class*=\"main-layout-module__sidebar--\"] > .ResizingAnchor { --blue: var(--primary); }\n :root .MenuItem:is(.create-terminal-tab, .create-resource-tab) { --bgc-active: var(--primary); }\n :root .Select:not(.Select--is-disabled) .Select__control--is-focused:not(.Select__control--is-disabled) { border-color: ${color} !important; box-shadow: 0 0 0 1px ${color} !important; }\n :root .Select__option--is-selected { background: var(--primary) !important; color: var(--freelens-power-accent-foreground) !important; }\n :root .Select__option--is-focused:not(.Select__option--is-selected) { color: var(--textColorAccent) !important; }\n :root .Button.primary:not(.plain):not(.outlined):not(.light) { color: var(--freelens-power-accent-foreground); }\n :root [data-testid=\"cluster-sidebar\"] { --sidebarActiveColor: var(--freelens-power-accent-foreground); --sidebarSubmenuActiveColor: var(--primary); }\n :root .NamespaceSelectMenu .Select__option { margin-block: 2px; }\n :root .NamespaceSelectMenu .Select__option--is-selected { background: color-mix(in srgb, var(--primary) 10%, var(--contentColor)) !important; color: var(--textColorAccent) !important; }\n :root .NamespaceSelectMenu .Select__option--is-selected.Select__option--is-focused { background: color-mix(in srgb, var(--primary) 24%, var(--contentColor)) !important; }\n :root .NamespaceSelectMenu .Select__option--is-selected .Icon { color: var(--primary); }\n :root .Select__option:not(.Select__option--is-disabled):active { background: var(--primary) !important; color: var(--freelens-power-accent-foreground) !important; }\n :root .NamespaceSelectMenu .Select__option--is-selected:active .Icon { color: inherit; }\n :root a.link { color: var(--primary); }\n :root [data-testid=\"download-logs-dropdown\"] { --accent-color: var(--primary); }\n ${recolorAppIcon ? '.Welcome [data-testid=\"no-welcome-banners-icon\"] svg path[fill=\"#23a49c\"] { fill: var(--primary); }' : \"\"}\n `;\n style.textContent = `${accent}\\ninput[role=\"switch\"] { --track-color-active: var(--primary) !important; }`;\n\n if (!style.isConnected) {\n document.head.append(style);\n }\n },\n { fireImmediately: true },\n );\n\n return () => {\n stop();\n style.remove();\n };\n}\n"],"mappings":";;;AAIA,SAAgB,iBAAiB,OAAsC;CACrE,MAAM,WAAW;EAAC;EAAG;EAAG;CAAC,CAAC,CAAC,KAAK,WAAW;EACzC,MAAM,UAAU,OAAO,SAAS,MAAM,MAAM,QAAQ,SAAS,CAAC,GAAG,EAAE,IAAI;EACvE,OAAO,WAAW,SAAU,UAAU,UAAU,UAAU,QAAS,UAAU;CAC/E,CAAC;CACD,MAAM,YAAY,SAAS,KAAK,QAAS,SAAS,KAAK,QAAS,SAAS,KAAK;CAC9E,QAAQ,YAAY,OAAQ,OAAQ,QAAQ,YAAY,OAAQ,YAAY;AAC9E;AAEA,SAAgB,0BAAsC;CACpD,MAAM,cAAc,qCAAA,2BAA2B,oBAAgD;CAC/F,MAAM,QAAQ,SAAS,cAAc,OAAO;CAC5C,MAAM,QAAQ,gBAAgB;CAE9B,MAAM,OAAO,8BAAA,eACL;EAAC,YAAY;EAAS,YAAY;EAAa,YAAY;CAAc,IAC9E,CAAC,SAAS,OAAO,oBAAoB;EACpC,IAAI,CAAC,WAAW,CAAC,qCAAA,kBAAkB,KAAK,GAAG;GACzC,MAAM,OAAO;GACb;EACF;EA2BA,MAAM,cAAc,GAvBlB,UAAU,YACN,KACA;sDAC0C,iBAAiB,KAAK,EAAE,iFAAiF,MAAM,0CAA0C,MAAM,wCAAwC,MAAM,+DAA+D,MAAM,6DAA6D,MAAM;;;;;kIAKzQ,MAAM,qCAAqC,MAAM;;;;;;;;;;;;;UAazK,iBAAiB,4GAAwG,GAAG;QAElG;EAE9B,IAAI,CAAC,MAAM,aACT,SAAS,KAAK,OAAO,KAAK;CAE9B,GACA,EAAE,iBAAiB,KAAK,CAC1B;CAEA,aAAa;EACX,KAAK;EACL,MAAM,OAAO;CACf;AACF"}
|
|
@@ -44,8 +44,8 @@ var ResourceHealthDetails = require__global_external_mobx_react.observer(({ obje
|
|
|
44
44
|
/* @__PURE__ */ require_jsx_runtime.jsx("style", { children: `
|
|
45
45
|
.power-operational-summary > .DrawerTitle.power-operational-title { margin-bottom: 10px; }
|
|
46
46
|
.power-operational-summary .power-resource-action::before { content: none; }
|
|
47
|
-
.power-operational-summary .power-resource-action { border: 1px solid var(--borderFaintColor); background: var(--
|
|
48
|
-
.power-operational-summary .power-resource-action:not(:disabled):hover { background: color-mix(in srgb, var(--
|
|
47
|
+
.power-operational-summary .power-resource-action { border: 1px solid var(--borderFaintColor); background: var(--contentColor); color: var(--textColorPrimary); transition: background-color 140ms, border-color 140ms; }
|
|
48
|
+
.power-operational-summary .power-resource-action:not(:disabled):hover { background: color-mix(in srgb, var(--contentColor) 85%, var(--textColorPrimary)); border-color: var(--borderColor); }
|
|
49
49
|
.power-operational-summary .power-resource-action:active { filter: brightness(1.12); }
|
|
50
50
|
.power-operational-summary .power-resource-action:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
|
|
51
51
|
` }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-health-details.js","names":[],"sources":["../../../src/renderer/details/resource-health-details.tsx"],"sourcesContent":["import { Renderer } from \"@freelensapp/extensions\";\nimport { observer } from \"mobx-react\";\nimport { type HealthObject, summarizeObjectHealth } from \"../../common/resource-health\";\nimport { AiPreferencesStore } from \"../../common/store/ai-preferences-store\";\nimport { explainDiagnosticFinding } from \"../ai-diagnostic-handoff\";\n\nconst { Button, DrawerItem, DrawerTitle, Icon } = Renderer.Component;\nconst actionStyle = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n minHeight: 28,\n padding: \"4px 8px\",\n} as const;\n\nexport type ResourceHealthDetailsProps = Renderer.Component.KubeObjectDetailsProps & {\n onOpenDiagnostics?: (namespace?: string, resource?: { kind: string; name: string; uid?: string }) => void;\n};\n\nexport const ResourceHealthDetails = observer(({ object, onOpenDiagnostics }: ResourceHealthDetailsProps) => {\n const health = summarizeObjectHealth(object as HealthObject);\n const namespace = object.getNs();\n const clusterId = Renderer.Catalog.activeCluster.get()?.metadata.uid;\n const aiEnabled = AiPreferencesStore.getInstanceOrCreate<AiPreferencesStore>().enabled;\n const askAi = () => {\n if (!clusterId || !AiPreferencesStore.getInstanceOrCreate<AiPreferencesStore>().enabled) return;\n const name = object.getName();\n explainDiagnosticFinding({\n clusterId,\n title: `${object.kind} ${name}: operational summary`.slice(0, 160),\n summary: [\n ...health.rows.map((row) => `${row.name}: ${row.value}`),\n ...(health.issue ? [`Key issue: ${health.issue}`] : []),\n ]\n .join(\"\\n\")\n .slice(0, 6000),\n resource: { kind: object.kind, name, ...(namespace ? { namespace } : {}) },\n });\n };\n const node = (object as HealthObject).spec?.nodeName;\n const open = (path: string) => {\n void Promise.resolve(Renderer.Navigation.showDetails(path)).catch(() => {});\n };\n return (\n <section className=\"power-operational-summary\" style={{ marginBottom: 16 }}>\n <style>{`\n .power-operational-summary > .DrawerTitle.power-operational-title { margin-bottom: 10px; }\n .power-operational-summary .power-resource-action::before { content: none; }\n .power-operational-summary .power-resource-action { border: 1px solid var(--borderFaintColor); background: var(--
|
|
1
|
+
{"version":3,"file":"resource-health-details.js","names":[],"sources":["../../../src/renderer/details/resource-health-details.tsx"],"sourcesContent":["import { Renderer } from \"@freelensapp/extensions\";\nimport { observer } from \"mobx-react\";\nimport { type HealthObject, summarizeObjectHealth } from \"../../common/resource-health\";\nimport { AiPreferencesStore } from \"../../common/store/ai-preferences-store\";\nimport { explainDiagnosticFinding } from \"../ai-diagnostic-handoff\";\n\nconst { Button, DrawerItem, DrawerTitle, Icon } = Renderer.Component;\nconst actionStyle = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n minHeight: 28,\n padding: \"4px 8px\",\n} as const;\n\nexport type ResourceHealthDetailsProps = Renderer.Component.KubeObjectDetailsProps & {\n onOpenDiagnostics?: (namespace?: string, resource?: { kind: string; name: string; uid?: string }) => void;\n};\n\nexport const ResourceHealthDetails = observer(({ object, onOpenDiagnostics }: ResourceHealthDetailsProps) => {\n const health = summarizeObjectHealth(object as HealthObject);\n const namespace = object.getNs();\n const clusterId = Renderer.Catalog.activeCluster.get()?.metadata.uid;\n const aiEnabled = AiPreferencesStore.getInstanceOrCreate<AiPreferencesStore>().enabled;\n const askAi = () => {\n if (!clusterId || !AiPreferencesStore.getInstanceOrCreate<AiPreferencesStore>().enabled) return;\n const name = object.getName();\n explainDiagnosticFinding({\n clusterId,\n title: `${object.kind} ${name}: operational summary`.slice(0, 160),\n summary: [\n ...health.rows.map((row) => `${row.name}: ${row.value}`),\n ...(health.issue ? [`Key issue: ${health.issue}`] : []),\n ]\n .join(\"\\n\")\n .slice(0, 6000),\n resource: { kind: object.kind, name, ...(namespace ? { namespace } : {}) },\n });\n };\n const node = (object as HealthObject).spec?.nodeName;\n const open = (path: string) => {\n void Promise.resolve(Renderer.Navigation.showDetails(path)).catch(() => {});\n };\n return (\n <section className=\"power-operational-summary\" style={{ marginBottom: 16 }}>\n <style>{`\n .power-operational-summary > .DrawerTitle.power-operational-title { margin-bottom: 10px; }\n .power-operational-summary .power-resource-action::before { content: none; }\n .power-operational-summary .power-resource-action { border: 1px solid var(--borderFaintColor); background: var(--contentColor); color: var(--textColorPrimary); transition: background-color 140ms, border-color 140ms; }\n .power-operational-summary .power-resource-action:not(:disabled):hover { background: color-mix(in srgb, var(--contentColor) 85%, var(--textColorPrimary)); border-color: var(--borderColor); }\n .power-operational-summary .power-resource-action:active { filter: brightness(1.12); }\n .power-operational-summary .power-resource-action:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }\n `}</style>\n <DrawerTitle className=\"power-operational-title\">Operational summary</DrawerTitle>\n <DrawerItem name=\"Health\">\n <span\n style={{\n color:\n health.state === \"healthy\"\n ? \"var(--colorOk)\"\n : health.state === \"warning\"\n ? \"var(--colorWarning)\"\n : \"var(--textColorSecondary)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 6,\n }}\n >\n <Icon\n material={\n health.state === \"healthy\" ? \"check_circle\" : health.state === \"warning\" ? \"warning\" : \"help_outline\"\n }\n />\n {health.state === \"healthy\" ? \"Healthy\" : health.state === \"warning\" ? \"Needs attention\" : \"Unknown\"}\n </span>\n </DrawerItem>\n {health.rows.map((row) => (\n <DrawerItem key={row.name} name={row.name}>\n {row.value}\n </DrawerItem>\n ))}\n {health.issue && <DrawerItem name=\"Key issue\">{health.issue}</DrawerItem>}\n {namespace && object.kind !== \"Namespace\" && (\n <DrawerItem name=\"Namespace\">\n <button\n type=\"button\"\n className=\"link\"\n onClick={() => open(Renderer.K8sApi.namespacesApi.getUrl({ name: namespace }))}\n >\n {namespace}\n </button>\n </DrawerItem>\n )}\n <DrawerItem name=\"Investigate\">\n <span style={{ display: \"flex\", flexWrap: \"wrap\", gap: 12 }}>\n {onOpenDiagnostics && (\n <Button\n className=\"power-resource-action\"\n onClick={() =>\n onOpenDiagnostics(namespace, {\n kind: object.kind,\n name: object.metadata.name ?? object.getName(),\n uid: object.metadata.uid,\n })\n }\n style={actionStyle}\n >\n <Icon material=\"insights\" size={14} aria-hidden=\"true\" /> Open Diagnostics\n </Button>\n )}\n <Button\n className=\"power-resource-action\"\n onClick={askAi}\n disabled={!aiEnabled || !clusterId}\n title={\n !aiEnabled\n ? \"Enable the AI assistant in settings\"\n : !clusterId\n ? \"Select a connected cluster\"\n : \"Attach this summary to the AI chat\"\n }\n style={actionStyle}\n >\n <Icon material=\"auto_awesome\" size={14} aria-hidden=\"true\" /> Ask AI\n </Button>\n </span>\n </DrawerItem>\n {node && (\n <DrawerItem name=\"Node\">\n <button type=\"button\" className=\"link\" onClick={() => open(Renderer.K8sApi.nodesApi.getUrl({ name: node }))}>\n {node}\n </button>\n </DrawerItem>\n )}\n </section>\n );\n});\n"],"mappings":";;;;;;;AAMA,IAAM,EAAE,QAAQ,YAAY,aAAa,SAAS,mBAAA,SAAS;AAC3D,IAAM,cAAc;CAClB,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,KAAK;CACL,WAAW;CACX,SAAS;AACX;AAMA,IAAa,wBAAwB,oCAAA,UAAU,EAAE,QAAQ,wBAAoD;CAC3G,MAAM,SAAS,wBAAA,sBAAsB,MAAsB;CAC3D,MAAM,YAAY,OAAO,MAAM;CAC/B,MAAM,YAAY,mBAAA,SAAS,QAAQ,cAAc,IAAI,CAAC,EAAE,SAAS;CACjE,MAAM,YAAY,6BAAA,mBAAmB,oBAAwC,CAAC,CAAC;CAC/E,MAAM,cAAc;EAClB,IAAI,CAAC,aAAa,CAAC,6BAAA,mBAAmB,oBAAwC,CAAC,CAAC,SAAS;EACzF,MAAM,OAAO,OAAO,QAAQ;EAC5B,8BAAA,yBAAyB;GACvB;GACA,OAAO,GAAG,OAAO,KAAK,GAAG,KAAK,uBAAuB,MAAM,GAAG,GAAG;GACjE,SAAS,CACP,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,GACvD,GAAI,OAAO,QAAQ,CAAC,cAAc,OAAO,OAAO,IAAI,CAAC,CACvD,CAAC,CACE,KAAK,IAAI,CAAC,CACV,MAAM,GAAG,GAAI;GAChB,UAAU;IAAE,MAAM,OAAO;IAAM;IAAM,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;GAAG;EAC3E,CAAC;CACH;CACA,MAAM,OAAQ,OAAwB,MAAM;CAC5C,MAAM,QAAQ,SAAiB;EAC7B,QAAa,QAAQ,mBAAA,SAAS,WAAW,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;CAC5E;CACA,OACE,oCAAA,KAAC,WAAD;EAAS,WAAU;EAA4B,OAAO,EAAE,cAAc,GAAG;YAAzE;GACE,oCAAA,IAAC,SAAD,EAAA,UAAQ;;;;;;;QAOC,CAAA;GACT,oCAAA,IAAC,aAAD;IAAa,WAAU;cAA0B;GAAgC,CAAA;GACjF,oCAAA,IAAC,YAAD;IAAY,MAAK;cACf,oCAAA,KAAC,QAAD;KACE,OAAO;MACL,OACE,OAAO,UAAU,YACb,mBACA,OAAO,UAAU,YACf,wBACA;MACR,SAAS;MACT,YAAY;MACZ,KAAK;KACP;eAXF,CAaE,oCAAA,IAAC,MAAD,EACE,UACE,OAAO,UAAU,YAAY,iBAAiB,OAAO,UAAU,YAAY,YAAY,eAE1F,CAAA,GACA,OAAO,UAAU,YAAY,YAAY,OAAO,UAAU,YAAY,oBAAoB,SACvF;;GACI,CAAA;GACX,OAAO,KAAK,KAAK,QAChB,oCAAA,IAAC,YAAD;IAA2B,MAAM,IAAI;cAClC,IAAI;GACK,GAFK,IAAI,IAET,CACb;GACA,OAAO,SAAS,oCAAA,IAAC,YAAD;IAAY,MAAK;cAAa,OAAO;GAAkB,CAAA;GACvE,aAAa,OAAO,SAAS,eAC5B,oCAAA,IAAC,YAAD;IAAY,MAAK;cACf,oCAAA,IAAC,UAAD;KACE,MAAK;KACL,WAAU;KACV,eAAe,KAAK,mBAAA,SAAS,OAAO,cAAc,OAAO,EAAE,MAAM,UAAU,CAAC,CAAC;eAE5E;IACK,CAAA;GACE,CAAA;GAEd,oCAAA,IAAC,YAAD;IAAY,MAAK;cACf,oCAAA,KAAC,QAAD;KAAM,OAAO;MAAE,SAAS;MAAQ,UAAU;MAAQ,KAAK;KAAG;eAA1D,CACG,qBACC,oCAAA,KAAC,QAAD;MACE,WAAU;MACV,eACE,kBAAkB,WAAW;OAC3B,MAAM,OAAO;OACb,MAAM,OAAO,SAAS,QAAQ,OAAO,QAAQ;OAC7C,KAAK,OAAO,SAAS;MACvB,CAAC;MAEH,OAAO;gBATT,CAWE,oCAAA,IAAC,MAAD;OAAM,UAAS;OAAW,MAAM;OAAI,eAAY;MAAQ,CAAA,GAAC,mBACnD;SAEV,oCAAA,KAAC,QAAD;MACE,WAAU;MACV,SAAS;MACT,UAAU,CAAC,aAAa,CAAC;MACzB,OACE,CAAC,YACG,wCACA,CAAC,YACC,+BACA;MAER,OAAO;gBAXT,CAaE,oCAAA,IAAC,MAAD;OAAM,UAAS;OAAe,MAAM;OAAI,eAAY;MAAQ,CAAA,GAAC,SACvD;OACJ;;GACI,CAAA;GACX,QACC,oCAAA,IAAC,YAAD;IAAY,MAAK;cACf,oCAAA,IAAC,UAAD;KAAQ,MAAK;KAAS,WAAU;KAAO,eAAe,KAAK,mBAAA,SAAS,OAAO,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;eACvG;IACK,CAAA;GACE,CAAA;EAEP;;AAEb,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const require__global_external_react = require("./_virtual/_global-external_react.js");
|
|
2
2
|
const require_jsx_runtime = require("./_virtual/_global-external_react/jsx-runtime.js");
|
|
3
3
|
const require_native_tooltip = require("./native-tooltip.js");
|
|
4
|
-
const require_date_time = require("./src/common/date-time.js");
|
|
5
|
-
const require_power_log_sql_level = require("./src/common/power-log-sql-level.js");
|
|
6
4
|
const require_power_log_json_fields = require("./power-log-json-fields.js");
|
|
7
5
|
const require_power_log_json = require("./power-log-json.js");
|
|
6
|
+
const require_date_time = require("./src/common/date-time.js");
|
|
7
|
+
const require_power_log_sql_level = require("./src/common/power-log-sql-level.js");
|
|
8
8
|
const require_power_log_message = require("./power-log-message.js");
|
|
9
9
|
let electron = require("electron");
|
|
10
10
|
//#region src/renderer/power-log-json-cell.tsx
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
//#region src/renderer/power-logs.css.ts
|
|
2
2
|
var powerLogsStyles = `
|
|
3
|
+
.ConfirmDialog:has(.power-logs-confirmation) > .box { background:var(--contentColor); color:var(--textColorPrimary); min-width:min(360px,calc(100vw - 32px)); max-width:min(640px,calc(100vw - 32px)); }
|
|
4
|
+
.ConfirmDialog:has(.power-logs-confirmation) .confirm-content { gap:12px; }
|
|
5
|
+
.ConfirmDialog:has(.power-logs-confirmation) .confirm-content > .Icon { flex-shrink:0; margin:0; }
|
|
6
|
+
.ConfirmDialog .power-logs-confirmation { display:block; min-width:0; overflow-wrap:anywhere; }
|
|
7
|
+
.ConfirmDialog:has(.power-logs-confirmation) .confirm-buttons { background:var(--mainBackground); color:var(--textColorPrimary); }
|
|
8
|
+
.ConfirmDialog .power-logs-confirm-label { display:inline-flex; align-items:center; gap:6px; }
|
|
9
|
+
.ConfirmDialog:has(.power-logs-confirmation) .Button.power-logs-confirm-delete { background:var(--colorError); color:#fff !important; }
|
|
3
10
|
body:has(.power-logs[data-testid="power-logs-page"]) .power-ai-launcher { display:none; }
|
|
4
11
|
.power-logs { display:flex; flex-direction:column; height:100%; min-height:0; min-width:0; box-sizing:border-box; overflow:hidden; padding:12px; gap:6px; color:var(--textColorPrimary); container-type:inline-size; }
|
|
5
12
|
.power-logs header, .power-logs-toolbar, .power-logs-filters, .power-logs-source { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
|
|
@@ -21,7 +28,8 @@ body:has(.power-logs[data-testid="power-logs-page"]) .power-ai-launcher { displa
|
|
|
21
28
|
.power-logs .power-logs-error { color:var(--colorError,#e68b80); }
|
|
22
29
|
.power-logs-tabs { display:flex; gap:4px; flex-shrink:0; }
|
|
23
30
|
.power-logs header .power-logs-page-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
|
|
24
|
-
.power-logs-snapshot-option { display:flex; align-items:center; justify-content:
|
|
31
|
+
.power-logs-snapshot-option { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-width:0; }
|
|
32
|
+
.power-logs-snapshot-option > .power-logs-option-text { flex:1; }
|
|
25
33
|
.power-logs-option-text { display:flex; flex-direction:column; gap:3px; min-width:0; white-space:normal; overflow-wrap:anywhere; }
|
|
26
34
|
.power-logs-option-text strong { font-weight:500; }
|
|
27
35
|
.power-logs-option-text small { opacity:.85; font-size:11px; }
|
|
@@ -123,7 +131,8 @@ body:has(.power-logs[data-testid="power-logs-page"]) .power-ai-launcher { displa
|
|
|
123
131
|
.power-logs .power-logs-error { white-space:normal; overflow:visible; overflow-wrap:anywhere; }
|
|
124
132
|
.power-logs-snapshot-notes { max-height:100px; overflow:auto; }
|
|
125
133
|
@container(max-width:760px) { .power-logs-detail { width:min(420px,86%); padding:12px; gap:10px; } .power-logs-filters .power-logs-select { flex:1 1 130px; } .power-logs-filters > input { flex-basis:100%; } .power-log-row { grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(0,1fr); } .power-log-row .power-log-origin { display:none; } .power-logs header .power-logs-actions { gap:4px; } }
|
|
126
|
-
.Select__option--is-selected .power-logs-snapshot-option > button { color
|
|
134
|
+
.Select__option--is-selected .power-logs-snapshot-option > button { color:var(--freelens-power-accent-foreground,#fff); background:#0002; border:1px solid currentColor; }
|
|
135
|
+
.Select__option--is-selected .power-logs-snapshot-option > button[data-capture-persistent]:not(:disabled):hover { color:var(--primary); background:var(--freelens-power-accent-foreground,#fff); border-color:var(--freelens-power-accent-foreground,#fff); }
|
|
127
136
|
.Select__option--is-selected .power-logs-snapshot-option > button[data-capture-delete]:not(:disabled):hover { color:#a61b1b; background:#fff; border-color:#fff; }
|
|
128
137
|
.power-logs-field-filters { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
|
|
129
138
|
.power-logs .power-logs-field-filters button { max-width:360px; min-height:24px; padding:2px 6px; font-size:11px; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-logs.css.js","names":[],"sources":["../../src/renderer/power-logs.css.ts"],"sourcesContent":["export const powerLogsStyles = `\nbody:has(.power-logs[data-testid=\"power-logs-page\"]) .power-ai-launcher { display:none; }\n.power-logs { display:flex; flex-direction:column; height:100%; min-height:0; min-width:0; box-sizing:border-box; overflow:hidden; padding:12px; gap:6px; color:var(--textColorPrimary); container-type:inline-size; }\n.power-logs header, .power-logs-toolbar, .power-logs-filters, .power-logs-source { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }\n.power-logs header h1 { margin:0; font-size:16px; display:flex; align-items:center; gap:10px; }\n.power-logs header .power-logs-actions { margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }\n.power-logs :is(button,input,select,textarea), .power-logs .power-logs-options > summary { font:inherit; color:inherit; }\n.power-logs :is(.power-logs-filters > input,textarea) { background:var(--contentColor); border:1px solid var(--borderColor); border-radius:5px; padding:4px 8px; min-width:0; }\n.power-logs-filters > input { flex:1; min-width:180px; }\n.power-logs label { display:flex; align-items:center; gap:8px; }\n.power-logs button, .power-logs .power-logs-options > summary { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:28px; padding:3px 8px; border:1px solid var(--borderColor); border-radius:5px; background:var(--contentColor); cursor:pointer; box-shadow:none; }\n.power-logs button::before { content:none; }\n.power-logs :is(button:not(:disabled),.power-logs-options > summary):hover { color:var(--primary); border-color:var(--primary); }\n.power-logs button[aria-pressed=true], .power-logs button[aria-selected=true] { color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,var(--contentColor)); border-color:var(--primary); }\n.power-logs button:disabled { opacity:.45; cursor:default; }\n.power-logs :is(button,input,select,textarea):focus-visible, .power-logs .power-logs-options > summary:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }\n.power-logs .power-logs-filters > input:focus-visible, .power-logs textarea:focus-visible { outline:none; border-color:var(--primary); box-shadow:inset 0 0 0 1px var(--primary); }\n.power-logs .power-logs-muted { color:var(--textColorSecondary); font-size:12px; line-height:1.5; }\n.power-logs .power-logs-notice { padding:3px 8px; border:1px solid var(--borderColor); border-radius:4px; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex-shrink:0; }\n.power-logs .power-logs-error { color:var(--colorError,#e68b80); }\n.power-logs-tabs { display:flex; gap:4px; flex-shrink:0; }\n.power-logs header .power-logs-page-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }\n.power-logs-snapshot-option { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }\n.power-logs-option-text { display:flex; flex-direction:column; gap:3px; min-width:0; white-space:normal; overflow-wrap:anywhere; }\n.power-logs-option-text strong { font-weight:500; }\n.power-logs-option-text small { opacity:.85; font-size:11px; }\n.power-logs-source-option { display:flex; align-items:center; gap:10px; width:100%; min-width:0; white-space:normal; line-height:1.4; }\n.power-logs-source-option > :first-child { flex-shrink:0; opacity:.75; }\n.power-logs-source-option .power-logs-option-text { flex:1; }\n.power-logs-source-option strong, .power-logs-source-option small { white-space:normal; overflow:visible; overflow-wrap:anywhere; }\n.power-logs-source-check { display:inline-flex; width:16px; flex-shrink:0; }\n.power-logs-snapshot-option > button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; min-width:28px; min-height:28px; padding:0; border:0; border-radius:4px; background:transparent; color:inherit; cursor:pointer; }\n.power-logs-snapshot-option > button[data-capture-delete]:not(:disabled):hover { color:var(--colorError); background:color-mix(in srgb,var(--colorError) 12%,transparent); }\n.power-logs-snapshot-option > button[data-capture-persistent]:not(:disabled):hover, .power-logs-snapshot-option > button[aria-pressed=true] { color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); }\n.power-logs-snapshot-option > button:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }\n.power-logs-snapshot-option > button:disabled { opacity:.45; cursor:default; }\n.power-logs-level-label { color:var(--textColorSecondary); }\n.power-logs-level-label[data-level=debug] { color:var(--colorInfo); }\n.power-logs-level-label[data-level=info] { color:var(--primary); }\n.power-logs-level-label[data-level=warn] { color:var(--colorWarning); }\n.power-logs-level-label[data-level=error],.power-logs-level-label[data-level=fatal] { color:var(--colorError); }\n.Select__option--is-selected .power-logs-level-label { color:inherit; }\n.power-logs-workspace { position:relative; display:flex; flex:1; min-height:0; }\n.power-logs-viewer { display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; gap:4px; }\n.power-logs-stream { position:relative; flex:1; min-height:0; min-width:0; overflow:auto; border:1px solid var(--borderColor); border-radius:6px; background:var(--contentColor); }\n.power-log-row { min-height:0!important; position:absolute; left:0; right:0; width:100%; display:grid!important; grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(100px,180px) minmax(0,1fr); align-items:center; gap:8px!important; padding:0 12px!important; border:0!important; border-left:3px solid var(--textColorSecondary)!important; border-bottom:1px solid var(--borderFaintColor)!important; border-radius:0!important; text-align:left; background:transparent!important; font-family:var(--font-monospace,monospace)!important; font-size:12px!important; }\n.power-logs[data-compact=true] .power-log-row { --log-time-width:calc(8ch + 1px); --log-level-width:calc(var(--power-log-level-ch,7) * .909091ch + 1px); padding-inline:6px!important; gap:4px!important; font-size:11px!important; line-height:16px; }\n.power-logs[data-compact=true] table :is(td,th) { padding:1px 6px; font-size:11px; line-height:16px; }\n.power-logs[data-compact=true] .power-logs-cell { white-space:nowrap; }\n.power-log-row > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-log-row > span:last-child { white-space:pre; height:16px; line-height:16px; }\n.power-log-message { color:var(--textColorPrimary); }\n.power-log-message [data-log-token=http-method] { color:var(--primary); }\n.power-log-message [data-log-token=uuid] { color:#9cdcfe; }\n.theme-light .power-log-message [data-log-token=uuid] { color:#005a9e; }\n.power-log-row .power-log-level { font-size:10px; font-weight:600; text-transform:uppercase; }\n.power-log-row[data-level=warn] { border-left-color:var(--colorWarning,#d9a441)!important; }\n.power-log-row[data-level=error],.power-log-row[data-level=fatal] { border-left-color:var(--colorError,#d26860)!important; }\n.power-log-row[data-level=info] { border-left-color:var(--primary)!important; }\n.power-logs-detail { position:absolute; z-index:5; top:0; bottom:0; right:0; box-sizing:border-box; box-shadow:-4px 0 18px #0004; display:flex; flex-direction:column; align-items:stretch; gap:12px; width:460px; max-width:95%; padding:16px; background:var(--contentColor); border:1px solid var(--borderColor); border-radius:6px; overflow:auto; }\n.power-logs-detail header { justify-content:flex-end; }\n.power-logs-detail header > strong { margin-right:auto; }\n.power-logs-structured-heading { display:flex; align-items:center; gap:6px; }\n.power-logs .power-logs-detail-copy, .power-logs .power-logs-detail-close { flex-shrink:0; width:28px; padding:0; border-color:transparent; background:transparent; }\n.power-logs .power-logs-detail-copy:not(:disabled):hover, .power-logs .power-logs-detail-close:not(:disabled):hover { border-color:transparent; background:color-mix(in srgb,var(--primary) 10%,transparent); }\n.power-log-json { --json-key:#9cdcfe; --json-string:#ce9178; --json-number:#b5cea8; --json-literal:#c586c0; }\n.theme-light .power-log-json { --json-key:#005a9e; --json-string:#9e2b1a; --json-number:#17642d; --json-literal:#7a288c; }\n.power-log-json [data-token=key] { color:var(--json-key); }\n.power-log-json [data-token=string] { color:var(--json-string); }\n.power-log-json [data-token=number] { color:var(--json-number); }\n.power-log-json [data-token=literal] { color:var(--json-literal); }\n.power-logs pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.6; }\n.power-logs textarea { user-select:text; box-sizing:border-box; width:100%; height:56px; min-height:48px; max-height:120px; flex-shrink:0; resize:vertical; font-family:var(--font-monospace,monospace); }\n.power-logs-results { flex:1; min-height:0; overflow:auto; border:1px solid var(--borderColor); border-radius:6px; }\n.power-logs table { border-collapse:collapse; table-layout:fixed; font-size:12px; width:100%; min-width:0; }\n\n.power-logs th,.power-logs td { padding:6px 10px; text-align:left; border-bottom:1px solid var(--borderColor); max-width:400px; white-space:nowrap; vertical-align:top; }\n.power-logs .power-logs-cell { display:block; overflow:hidden; text-overflow:ellipsis; max-height:4.8em; }\n.power-logs .power-logs-json-cell { position:relative; display:flex; align-items:center; gap:4px; min-width:0; height:20px; max-height:20px; }\n.power-logs .power-logs-json-cell .power-log-json { flex:1; min-width:0; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; line-height:20px; }\n.power-logs .power-logs-json-copy { display:inline-flex; align-items:center; justify-content:center; flex:0 0 20px; width:20px; height:20px; min-height:0; padding:0; border-color:transparent; background:transparent; opacity:.6; }\n.power-logs .power-logs-json-copy:hover, .power-logs .power-logs-json-copy:focus-visible { opacity:1; background:color-mix(in srgb,var(--primary) 10%,transparent); }\n.power-logs .power-logs-json-copy-feedback { position:absolute; left:0; top:0; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }\n\n.power-logs tbody tr { cursor:pointer; }\n.power-logs tbody tr:hover, .power-logs tbody tr:focus-visible { background:color-mix(in srgb,var(--primary) 10%,var(--contentColor)); outline:none; }\n.power-logs td[data-column=message] { font-family:var(--font-monospace,monospace); font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; }\n.power-logs td[data-level=error], .power-logs td[data-level=fatal] { color:var(--colorError,#d26860); }\n.power-logs td[data-level=warn] { color:var(--colorWarning,#d9a441); }\n.power-logs th { position:sticky; top:0; background:var(--contentColor); }\n.power-logs dialog { position:fixed; inset:0; margin:auto; background:var(--mainBackground); color:var(--textColorPrimary); border:1px solid var(--borderColor); border-radius:8px; padding:24px; width:min(640px,85vw); max-height:80vh; overflow:auto; }\n.power-logs dialog::backdrop { background:#0007; }\n.power-logs-empty { padding:32px; text-align:center; color:var(--textColorSecondary); }\n\n.power-logs > :not(.power-logs-workspace):not(.power-logs-results) { flex-shrink:0; }\n.power-logs-target, .power-logs-caption { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-select { display:inline-block; min-width:0; max-width:360px; flex:1; }\n.power-logs-source .power-logs-select { flex:1; max-width:none; }\n.power-logs-select > div { width:100%; min-width:0; }\n.power-logs-filters .power-logs-select { flex:0 1 180px; }\n.power-logs-filters .power-logs-select[data-source-select] { flex:1 1 260px; max-width:420px; }\n\n.power-logs-capture { display:flex; }\n.power-logs-capture > button { color:var(--primary); }\n.power-logs-options { position:relative; }\n.power-logs-options > summary { list-style:none; }\n.power-logs-options > summary::-webkit-details-marker { display:none; }\n.power-logs .power-logs-options[open] > summary { color:var(--primary); border-color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,var(--contentColor)); }\n.power-logs-options > div { position:absolute; z-index:10; top:calc(100% + 6px); right:0; box-sizing:border-box; width:280px; max-width:calc(100vw - 32px); border-radius:6px; padding:12px; display:flex; flex-direction:column; gap:12px; background:var(--mainBackground); border:1px solid var(--borderColor); box-shadow:0 4px 18px #0005; }\n.power-logs-options label { white-space:nowrap; justify-content:space-between; gap:12px; }\n.power-logs-options .power-logs-select { min-width:130px; }\n.power-logs-select .Select__single-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-sql-tools button { min-height:24px; font-size:12px; }\n.power-logs-pagination { justify-content:flex-end; gap:8px; }\n.power-logs-pagination button { width:28px; padding:3px; }\n.power-logs-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }\n.power-logs-caption { flex:1; min-width:0; font-size:11px!important; }\n.power-logs .power-logs-collection-note { display:flex; align-items:center; gap:5px; min-width:0; max-width:55%; padding:1px 6px; font-size:11px; }\n.power-logs-collection-note > :first-child { color:var(--colorWarning,#d9a441); flex-shrink:0; }\n.power-logs-collection-note > :last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-status { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n.power-logs .power-logs-error { white-space:normal; overflow:visible; overflow-wrap:anywhere; }\n.power-logs-snapshot-notes { max-height:100px; overflow:auto; }\n@container(max-width:760px) { .power-logs-detail { width:min(420px,86%); padding:12px; gap:10px; } .power-logs-filters .power-logs-select { flex:1 1 130px; } .power-logs-filters > input { flex-basis:100%; } .power-log-row { grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(0,1fr); } .power-log-row .power-log-origin { display:none; } .power-logs header .power-logs-actions { gap:4px; } }\n.Select__option--is-selected .power-logs-snapshot-option > button { color:#fff; background:#0002; border:1px solid #fff7; }\n.Select__option--is-selected .power-logs-snapshot-option > button[data-capture-delete]:not(:disabled):hover { color:#a61b1b; background:#fff; border-color:#fff; }\n.power-logs-field-filters { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }\n.power-logs .power-logs-field-filters button { max-width:360px; min-height:24px; padding:2px 6px; font-size:11px; }\n.power-logs-field-filters button > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-field-filters button > :last-child { flex-shrink:0; }\n@keyframes power-log-json-actions-in { from { opacity:0; } to { opacity:1; } }\n.power-log-json-actions button { color:inherit; }\n.power-logs .power-log-json-actions button:hover, .power-logs .power-log-json-actions button:focus-visible { color:var(--primary); }\n.power-log-json-actions { animation:power-log-json-actions-in 120ms ease-out; }\n@media (prefers-reduced-motion:reduce) { .power-log-json-actions { animation:none; } }\n.power-logs .power-logs-json-cell .power-log-json-fields { flex:1; min-width:0; overflow:hidden; }\n.power-logs .power-logs-json-cell .power-log-json { white-space:pre; }\n.power-log-message [data-log-token=url], .power-log-message [data-log-token=trace-id], .power-log-message [data-log-token=address] { color:#9cdcfe; }\n.theme-light .power-log-message [data-log-token=url], .theme-light .power-log-message [data-log-token=trace-id], .theme-light .power-log-message [data-log-token=address] { color:#005a9e; }\n.power-log-message [data-log-token=duration], .power-log-message [data-status-class=\"2\"] { color:#b5cea8; }\n.theme-light .power-log-message [data-log-token=duration], .theme-light .power-log-message [data-status-class=\"2\"] { color:#17642d; }\n.power-log-message [data-status-class=\"1\"], .power-log-message [data-status-class=\"3\"] { color:#9cdcfe; }\n.theme-light .power-log-message [data-status-class=\"1\"], .theme-light .power-log-message [data-status-class=\"3\"] { color:#005a9e; }\n.power-log-message [data-status-class=\"4\"] { color:#e3b56b; }\n.theme-light .power-log-message [data-status-class=\"4\"] { color:#8a4b00; }\n.power-log-message [data-status-class=\"5\"] { color:#f19b8d; }\n.theme-light .power-log-message [data-status-class=\"5\"] { color:#9e2b1a; }\n.power-logs[data-hide-resource-name=true] .power-log-row { grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(0,1fr); }\n.power-logs[data-hide-resource-name=true] .power-log-origin { display:none; }\n.power-logs .power-logs-control-label { display:block; flex:0 0 76px; width:76px; margin:0; }\n.power-logs .power-logs-query-error { font-size:12px; color:var(--colorError); }\n`;\n"],"mappings":";AAAA,IAAa,kBAAkB"}
|
|
1
|
+
{"version":3,"file":"power-logs.css.js","names":[],"sources":["../../src/renderer/power-logs.css.ts"],"sourcesContent":["export const powerLogsStyles = `\n.ConfirmDialog:has(.power-logs-confirmation) > .box { background:var(--contentColor); color:var(--textColorPrimary); min-width:min(360px,calc(100vw - 32px)); max-width:min(640px,calc(100vw - 32px)); }\n.ConfirmDialog:has(.power-logs-confirmation) .confirm-content { gap:12px; }\n.ConfirmDialog:has(.power-logs-confirmation) .confirm-content > .Icon { flex-shrink:0; margin:0; }\n.ConfirmDialog .power-logs-confirmation { display:block; min-width:0; overflow-wrap:anywhere; }\n.ConfirmDialog:has(.power-logs-confirmation) .confirm-buttons { background:var(--mainBackground); color:var(--textColorPrimary); }\n.ConfirmDialog .power-logs-confirm-label { display:inline-flex; align-items:center; gap:6px; }\n.ConfirmDialog:has(.power-logs-confirmation) .Button.power-logs-confirm-delete { background:var(--colorError); color:#fff !important; }\nbody:has(.power-logs[data-testid=\"power-logs-page\"]) .power-ai-launcher { display:none; }\n.power-logs { display:flex; flex-direction:column; height:100%; min-height:0; min-width:0; box-sizing:border-box; overflow:hidden; padding:12px; gap:6px; color:var(--textColorPrimary); container-type:inline-size; }\n.power-logs header, .power-logs-toolbar, .power-logs-filters, .power-logs-source { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }\n.power-logs header h1 { margin:0; font-size:16px; display:flex; align-items:center; gap:10px; }\n.power-logs header .power-logs-actions { margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }\n.power-logs :is(button,input,select,textarea), .power-logs .power-logs-options > summary { font:inherit; color:inherit; }\n.power-logs :is(.power-logs-filters > input,textarea) { background:var(--contentColor); border:1px solid var(--borderColor); border-radius:5px; padding:4px 8px; min-width:0; }\n.power-logs-filters > input { flex:1; min-width:180px; }\n.power-logs label { display:flex; align-items:center; gap:8px; }\n.power-logs button, .power-logs .power-logs-options > summary { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:28px; padding:3px 8px; border:1px solid var(--borderColor); border-radius:5px; background:var(--contentColor); cursor:pointer; box-shadow:none; }\n.power-logs button::before { content:none; }\n.power-logs :is(button:not(:disabled),.power-logs-options > summary):hover { color:var(--primary); border-color:var(--primary); }\n.power-logs button[aria-pressed=true], .power-logs button[aria-selected=true] { color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,var(--contentColor)); border-color:var(--primary); }\n.power-logs button:disabled { opacity:.45; cursor:default; }\n.power-logs :is(button,input,select,textarea):focus-visible, .power-logs .power-logs-options > summary:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }\n.power-logs .power-logs-filters > input:focus-visible, .power-logs textarea:focus-visible { outline:none; border-color:var(--primary); box-shadow:inset 0 0 0 1px var(--primary); }\n.power-logs .power-logs-muted { color:var(--textColorSecondary); font-size:12px; line-height:1.5; }\n.power-logs .power-logs-notice { padding:3px 8px; border:1px solid var(--borderColor); border-radius:4px; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex-shrink:0; }\n.power-logs .power-logs-error { color:var(--colorError,#e68b80); }\n.power-logs-tabs { display:flex; gap:4px; flex-shrink:0; }\n.power-logs header .power-logs-page-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }\n.power-logs-snapshot-option { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-width:0; }\n.power-logs-snapshot-option > .power-logs-option-text { flex:1; }\n.power-logs-option-text { display:flex; flex-direction:column; gap:3px; min-width:0; white-space:normal; overflow-wrap:anywhere; }\n.power-logs-option-text strong { font-weight:500; }\n.power-logs-option-text small { opacity:.85; font-size:11px; }\n.power-logs-source-option { display:flex; align-items:center; gap:10px; width:100%; min-width:0; white-space:normal; line-height:1.4; }\n.power-logs-source-option > :first-child { flex-shrink:0; opacity:.75; }\n.power-logs-source-option .power-logs-option-text { flex:1; }\n.power-logs-source-option strong, .power-logs-source-option small { white-space:normal; overflow:visible; overflow-wrap:anywhere; }\n.power-logs-source-check { display:inline-flex; width:16px; flex-shrink:0; }\n.power-logs-snapshot-option > button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; min-width:28px; min-height:28px; padding:0; border:0; border-radius:4px; background:transparent; color:inherit; cursor:pointer; }\n.power-logs-snapshot-option > button[data-capture-delete]:not(:disabled):hover { color:var(--colorError); background:color-mix(in srgb,var(--colorError) 12%,transparent); }\n.power-logs-snapshot-option > button[data-capture-persistent]:not(:disabled):hover, .power-logs-snapshot-option > button[aria-pressed=true] { color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); }\n.power-logs-snapshot-option > button:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }\n.power-logs-snapshot-option > button:disabled { opacity:.45; cursor:default; }\n.power-logs-level-label { color:var(--textColorSecondary); }\n.power-logs-level-label[data-level=debug] { color:var(--colorInfo); }\n.power-logs-level-label[data-level=info] { color:var(--primary); }\n.power-logs-level-label[data-level=warn] { color:var(--colorWarning); }\n.power-logs-level-label[data-level=error],.power-logs-level-label[data-level=fatal] { color:var(--colorError); }\n.Select__option--is-selected .power-logs-level-label { color:inherit; }\n.power-logs-workspace { position:relative; display:flex; flex:1; min-height:0; }\n.power-logs-viewer { display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; gap:4px; }\n.power-logs-stream { position:relative; flex:1; min-height:0; min-width:0; overflow:auto; border:1px solid var(--borderColor); border-radius:6px; background:var(--contentColor); }\n.power-log-row { min-height:0!important; position:absolute; left:0; right:0; width:100%; display:grid!important; grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(100px,180px) minmax(0,1fr); align-items:center; gap:8px!important; padding:0 12px!important; border:0!important; border-left:3px solid var(--textColorSecondary)!important; border-bottom:1px solid var(--borderFaintColor)!important; border-radius:0!important; text-align:left; background:transparent!important; font-family:var(--font-monospace,monospace)!important; font-size:12px!important; }\n.power-logs[data-compact=true] .power-log-row { --log-time-width:calc(8ch + 1px); --log-level-width:calc(var(--power-log-level-ch,7) * .909091ch + 1px); padding-inline:6px!important; gap:4px!important; font-size:11px!important; line-height:16px; }\n.power-logs[data-compact=true] table :is(td,th) { padding:1px 6px; font-size:11px; line-height:16px; }\n.power-logs[data-compact=true] .power-logs-cell { white-space:nowrap; }\n.power-log-row > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-log-row > span:last-child { white-space:pre; height:16px; line-height:16px; }\n.power-log-message { color:var(--textColorPrimary); }\n.power-log-message [data-log-token=http-method] { color:var(--primary); }\n.power-log-message [data-log-token=uuid] { color:#9cdcfe; }\n.theme-light .power-log-message [data-log-token=uuid] { color:#005a9e; }\n.power-log-row .power-log-level { font-size:10px; font-weight:600; text-transform:uppercase; }\n.power-log-row[data-level=warn] { border-left-color:var(--colorWarning,#d9a441)!important; }\n.power-log-row[data-level=error],.power-log-row[data-level=fatal] { border-left-color:var(--colorError,#d26860)!important; }\n.power-log-row[data-level=info] { border-left-color:var(--primary)!important; }\n.power-logs-detail { position:absolute; z-index:5; top:0; bottom:0; right:0; box-sizing:border-box; box-shadow:-4px 0 18px #0004; display:flex; flex-direction:column; align-items:stretch; gap:12px; width:460px; max-width:95%; padding:16px; background:var(--contentColor); border:1px solid var(--borderColor); border-radius:6px; overflow:auto; }\n.power-logs-detail header { justify-content:flex-end; }\n.power-logs-detail header > strong { margin-right:auto; }\n.power-logs-structured-heading { display:flex; align-items:center; gap:6px; }\n.power-logs .power-logs-detail-copy, .power-logs .power-logs-detail-close { flex-shrink:0; width:28px; padding:0; border-color:transparent; background:transparent; }\n.power-logs .power-logs-detail-copy:not(:disabled):hover, .power-logs .power-logs-detail-close:not(:disabled):hover { border-color:transparent; background:color-mix(in srgb,var(--primary) 10%,transparent); }\n.power-log-json { --json-key:#9cdcfe; --json-string:#ce9178; --json-number:#b5cea8; --json-literal:#c586c0; }\n.theme-light .power-log-json { --json-key:#005a9e; --json-string:#9e2b1a; --json-number:#17642d; --json-literal:#7a288c; }\n.power-log-json [data-token=key] { color:var(--json-key); }\n.power-log-json [data-token=string] { color:var(--json-string); }\n.power-log-json [data-token=number] { color:var(--json-number); }\n.power-log-json [data-token=literal] { color:var(--json-literal); }\n.power-logs pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.6; }\n.power-logs textarea { user-select:text; box-sizing:border-box; width:100%; height:56px; min-height:48px; max-height:120px; flex-shrink:0; resize:vertical; font-family:var(--font-monospace,monospace); }\n.power-logs-results { flex:1; min-height:0; overflow:auto; border:1px solid var(--borderColor); border-radius:6px; }\n.power-logs table { border-collapse:collapse; table-layout:fixed; font-size:12px; width:100%; min-width:0; }\n\n.power-logs th,.power-logs td { padding:6px 10px; text-align:left; border-bottom:1px solid var(--borderColor); max-width:400px; white-space:nowrap; vertical-align:top; }\n.power-logs .power-logs-cell { display:block; overflow:hidden; text-overflow:ellipsis; max-height:4.8em; }\n.power-logs .power-logs-json-cell { position:relative; display:flex; align-items:center; gap:4px; min-width:0; height:20px; max-height:20px; }\n.power-logs .power-logs-json-cell .power-log-json { flex:1; min-width:0; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; line-height:20px; }\n.power-logs .power-logs-json-copy { display:inline-flex; align-items:center; justify-content:center; flex:0 0 20px; width:20px; height:20px; min-height:0; padding:0; border-color:transparent; background:transparent; opacity:.6; }\n.power-logs .power-logs-json-copy:hover, .power-logs .power-logs-json-copy:focus-visible { opacity:1; background:color-mix(in srgb,var(--primary) 10%,transparent); }\n.power-logs .power-logs-json-copy-feedback { position:absolute; left:0; top:0; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }\n\n.power-logs tbody tr { cursor:pointer; }\n.power-logs tbody tr:hover, .power-logs tbody tr:focus-visible { background:color-mix(in srgb,var(--primary) 10%,var(--contentColor)); outline:none; }\n.power-logs td[data-column=message] { font-family:var(--font-monospace,monospace); font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; }\n.power-logs td[data-level=error], .power-logs td[data-level=fatal] { color:var(--colorError,#d26860); }\n.power-logs td[data-level=warn] { color:var(--colorWarning,#d9a441); }\n.power-logs th { position:sticky; top:0; background:var(--contentColor); }\n.power-logs dialog { position:fixed; inset:0; margin:auto; background:var(--mainBackground); color:var(--textColorPrimary); border:1px solid var(--borderColor); border-radius:8px; padding:24px; width:min(640px,85vw); max-height:80vh; overflow:auto; }\n.power-logs dialog::backdrop { background:#0007; }\n.power-logs-empty { padding:32px; text-align:center; color:var(--textColorSecondary); }\n\n.power-logs > :not(.power-logs-workspace):not(.power-logs-results) { flex-shrink:0; }\n.power-logs-target, .power-logs-caption { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-select { display:inline-block; min-width:0; max-width:360px; flex:1; }\n.power-logs-source .power-logs-select { flex:1; max-width:none; }\n.power-logs-select > div { width:100%; min-width:0; }\n.power-logs-filters .power-logs-select { flex:0 1 180px; }\n.power-logs-filters .power-logs-select[data-source-select] { flex:1 1 260px; max-width:420px; }\n\n.power-logs-capture { display:flex; }\n.power-logs-capture > button { color:var(--primary); }\n.power-logs-options { position:relative; }\n.power-logs-options > summary { list-style:none; }\n.power-logs-options > summary::-webkit-details-marker { display:none; }\n.power-logs .power-logs-options[open] > summary { color:var(--primary); border-color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,var(--contentColor)); }\n.power-logs-options > div { position:absolute; z-index:10; top:calc(100% + 6px); right:0; box-sizing:border-box; width:280px; max-width:calc(100vw - 32px); border-radius:6px; padding:12px; display:flex; flex-direction:column; gap:12px; background:var(--mainBackground); border:1px solid var(--borderColor); box-shadow:0 4px 18px #0005; }\n.power-logs-options label { white-space:nowrap; justify-content:space-between; gap:12px; }\n.power-logs-options .power-logs-select { min-width:130px; }\n.power-logs-select .Select__single-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-sql-tools button { min-height:24px; font-size:12px; }\n.power-logs-pagination { justify-content:flex-end; gap:8px; }\n.power-logs-pagination button { width:28px; padding:3px; }\n.power-logs-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }\n.power-logs-caption { flex:1; min-width:0; font-size:11px!important; }\n.power-logs .power-logs-collection-note { display:flex; align-items:center; gap:5px; min-width:0; max-width:55%; padding:1px 6px; font-size:11px; }\n.power-logs-collection-note > :first-child { color:var(--colorWarning,#d9a441); flex-shrink:0; }\n.power-logs-collection-note > :last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-status { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n.power-logs .power-logs-error { white-space:normal; overflow:visible; overflow-wrap:anywhere; }\n.power-logs-snapshot-notes { max-height:100px; overflow:auto; }\n@container(max-width:760px) { .power-logs-detail { width:min(420px,86%); padding:12px; gap:10px; } .power-logs-filters .power-logs-select { flex:1 1 130px; } .power-logs-filters > input { flex-basis:100%; } .power-log-row { grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(0,1fr); } .power-log-row .power-log-origin { display:none; } .power-logs header .power-logs-actions { gap:4px; } }\n.Select__option--is-selected .power-logs-snapshot-option > button { color:var(--freelens-power-accent-foreground,#fff); background:#0002; border:1px solid currentColor; }\n.Select__option--is-selected .power-logs-snapshot-option > button[data-capture-persistent]:not(:disabled):hover { color:var(--primary); background:var(--freelens-power-accent-foreground,#fff); border-color:var(--freelens-power-accent-foreground,#fff); }\n.Select__option--is-selected .power-logs-snapshot-option > button[data-capture-delete]:not(:disabled):hover { color:#a61b1b; background:#fff; border-color:#fff; }\n.power-logs-field-filters { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }\n.power-logs .power-logs-field-filters button { max-width:360px; min-height:24px; padding:2px 6px; font-size:11px; }\n.power-logs-field-filters button > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n.power-logs-field-filters button > :last-child { flex-shrink:0; }\n@keyframes power-log-json-actions-in { from { opacity:0; } to { opacity:1; } }\n.power-log-json-actions button { color:inherit; }\n.power-logs .power-log-json-actions button:hover, .power-logs .power-log-json-actions button:focus-visible { color:var(--primary); }\n.power-log-json-actions { animation:power-log-json-actions-in 120ms ease-out; }\n@media (prefers-reduced-motion:reduce) { .power-log-json-actions { animation:none; } }\n.power-logs .power-logs-json-cell .power-log-json-fields { flex:1; min-width:0; overflow:hidden; }\n.power-logs .power-logs-json-cell .power-log-json { white-space:pre; }\n.power-log-message [data-log-token=url], .power-log-message [data-log-token=trace-id], .power-log-message [data-log-token=address] { color:#9cdcfe; }\n.theme-light .power-log-message [data-log-token=url], .theme-light .power-log-message [data-log-token=trace-id], .theme-light .power-log-message [data-log-token=address] { color:#005a9e; }\n.power-log-message [data-log-token=duration], .power-log-message [data-status-class=\"2\"] { color:#b5cea8; }\n.theme-light .power-log-message [data-log-token=duration], .theme-light .power-log-message [data-status-class=\"2\"] { color:#17642d; }\n.power-log-message [data-status-class=\"1\"], .power-log-message [data-status-class=\"3\"] { color:#9cdcfe; }\n.theme-light .power-log-message [data-status-class=\"1\"], .theme-light .power-log-message [data-status-class=\"3\"] { color:#005a9e; }\n.power-log-message [data-status-class=\"4\"] { color:#e3b56b; }\n.theme-light .power-log-message [data-status-class=\"4\"] { color:#8a4b00; }\n.power-log-message [data-status-class=\"5\"] { color:#f19b8d; }\n.theme-light .power-log-message [data-status-class=\"5\"] { color:#9e2b1a; }\n.power-logs[data-hide-resource-name=true] .power-log-row { grid-template-columns:var(--log-time-width,calc(8ch + 4px)) var(--log-level-width,calc(var(--power-log-level-ch,7) * .833333ch + 4px)) minmax(0,1fr); }\n.power-logs[data-hide-resource-name=true] .power-log-origin { display:none; }\n.power-logs .power-logs-control-label { display:block; flex:0 0 76px; width:76px; margin:0; }\n.power-logs .power-logs-query-error { font-size:12px; color:var(--colorError); }\n`;\n"],"mappings":";AAAA,IAAa,kBAAkB"}
|
|
@@ -7,15 +7,15 @@ const require__global_external_react = require("./_virtual/_global-external_reac
|
|
|
7
7
|
const require_jsx_runtime = require("./_virtual/_global-external_react/jsx-runtime.js");
|
|
8
8
|
const require_native_tooltip = require("./native-tooltip.js");
|
|
9
9
|
const require_ai_diagnostic_handoff = require("./ai-diagnostic-handoff.js");
|
|
10
|
+
const require_power_log_field_filters = require("./src/common/power-log-field-filters.js");
|
|
11
|
+
const require_power_log_json_fields = require("./power-log-json-fields.js");
|
|
12
|
+
const require_power_log_json = require("./power-log-json.js");
|
|
10
13
|
const require_date_time = require("./src/common/date-time.js");
|
|
11
14
|
const require_diagnostic_explain_button = require("./diagnostic-explain-button.js");
|
|
12
|
-
const require_power_log_field_filters = require("./src/common/power-log-field-filters.js");
|
|
13
15
|
const require_power_log_json_filter_sql = require("./src/common/power-log-json-filter-sql.js");
|
|
14
16
|
const require_power_log_json_preset = require("./src/common/power-log-json-preset.js");
|
|
15
17
|
const require_power_log_sql_level = require("./src/common/power-log-sql-level.js");
|
|
16
18
|
const require_power_logs_ai = require("./src/common/power-logs-ai.js");
|
|
17
|
-
const require_power_log_json_fields = require("./power-log-json-fields.js");
|
|
18
|
-
const require_power_log_json = require("./power-log-json.js");
|
|
19
19
|
const require_power_log_message = require("./power-log-message.js");
|
|
20
20
|
const require_power_log_json_cell = require("./power-log-json-cell.js");
|
|
21
21
|
const require_power_log_sql_editor = require("./power-log-sql-editor.js");
|
|
@@ -978,28 +978,56 @@ function Workspace({ clusterId, contextId }) {
|
|
|
978
978
|
const capture = captures.find((capture) => capture.id === id);
|
|
979
979
|
if (!capture) return;
|
|
980
980
|
require_extensions.Renderer.Component.ConfirmDialog.open({
|
|
981
|
-
message: /* @__PURE__ */ require_jsx_runtime.jsxs(
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
981
|
+
message: /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
982
|
+
className: "power-logs-confirmation",
|
|
983
|
+
children: [
|
|
984
|
+
"Delete snapshot ",
|
|
985
|
+
/* @__PURE__ */ require_jsx_runtime.jsx("strong", { children: capture.target.name }),
|
|
986
|
+
"? This cannot be undone."
|
|
987
|
+
]
|
|
988
|
+
}),
|
|
989
|
+
labelOk: /* @__PURE__ */ require_jsx_runtime.jsxs("span", {
|
|
990
|
+
className: "power-logs-confirm-label",
|
|
991
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
992
|
+
"aria-hidden": "true",
|
|
993
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_extensions.Renderer.Component.Icon, {
|
|
994
|
+
material: "delete_outline",
|
|
995
|
+
size: 16
|
|
996
|
+
})
|
|
997
|
+
}), "Delete snapshot"]
|
|
998
|
+
}),
|
|
999
|
+
okButtonProps: { className: "ok power-logs-confirm-delete" },
|
|
987
1000
|
ok: () => deleteCapture(id)
|
|
988
1001
|
});
|
|
989
1002
|
};
|
|
990
1003
|
const confirmPersistentCapture = (capture) => {
|
|
991
1004
|
const persistent = !capture.persistent;
|
|
992
1005
|
require_extensions.Renderer.Component.ConfirmDialog.open({
|
|
993
|
-
message: persistent ? /* @__PURE__ */ require_jsx_runtime.jsxs(
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1006
|
+
message: persistent ? /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1007
|
+
className: "power-logs-confirmation",
|
|
1008
|
+
children: [
|
|
1009
|
+
"Keep snapshot ",
|
|
1010
|
+
/* @__PURE__ */ require_jsx_runtime.jsx("strong", { children: capture.target.name }),
|
|
1011
|
+
" until you delete it? It will survive restarts and will not expire automatically."
|
|
1012
|
+
]
|
|
1013
|
+
}) : /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1014
|
+
className: "power-logs-confirmation",
|
|
1015
|
+
children: [
|
|
1016
|
+
"Allow snapshot ",
|
|
1017
|
+
/* @__PURE__ */ require_jsx_runtime.jsx("strong", { children: capture.target.name }),
|
|
1018
|
+
" to expire? Its retention period will start again now."
|
|
1019
|
+
]
|
|
1020
|
+
}),
|
|
1021
|
+
labelOk: /* @__PURE__ */ require_jsx_runtime.jsxs("span", {
|
|
1022
|
+
className: "power-logs-confirm-label",
|
|
1023
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1024
|
+
"aria-hidden": "true",
|
|
1025
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_extensions.Renderer.Component.Icon, {
|
|
1026
|
+
svg: persistent ? "push_pin" : "push_off",
|
|
1027
|
+
size: 16
|
|
1028
|
+
})
|
|
1029
|
+
}), persistent ? "Keep snapshot" : "Allow expiration"]
|
|
1030
|
+
}),
|
|
1003
1031
|
ok: async () => {
|
|
1004
1032
|
if (!alive.current || deleting.current.has(capture.id) || queryRef.current || captureController.current) return;
|
|
1005
1033
|
deleting.current.add(capture.id);
|
|
@@ -1022,8 +1050,21 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1022
1050
|
});
|
|
1023
1051
|
};
|
|
1024
1052
|
const clearSavedSnapshots = () => require_extensions.Renderer.Component.ConfirmDialog.open({
|
|
1025
|
-
message:
|
|
1026
|
-
|
|
1053
|
+
message: /* @__PURE__ */ require_jsx_runtime.jsx("div", {
|
|
1054
|
+
className: "power-logs-confirmation",
|
|
1055
|
+
children: "Delete all saved snapshots from all clusters? Temporary snapshots will be kept. This cannot be undone."
|
|
1056
|
+
}),
|
|
1057
|
+
labelOk: /* @__PURE__ */ require_jsx_runtime.jsxs("span", {
|
|
1058
|
+
className: "power-logs-confirm-label",
|
|
1059
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1060
|
+
"aria-hidden": "true",
|
|
1061
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_extensions.Renderer.Component.Icon, {
|
|
1062
|
+
material: "delete_outline",
|
|
1063
|
+
size: 16
|
|
1064
|
+
})
|
|
1065
|
+
}), "Clear saved snapshots"]
|
|
1066
|
+
}),
|
|
1067
|
+
okButtonProps: { className: "ok power-logs-confirm-delete" },
|
|
1027
1068
|
ok: async () => {
|
|
1028
1069
|
if (queryRef.current || captureController.current || deleting.current.size) return;
|
|
1029
1070
|
deleting.current.add("clear-saved");
|
|
@@ -1062,6 +1103,16 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1062
1103
|
});
|
|
1063
1104
|
else setError("Open the Pod in the native resource view to use its Logs action");
|
|
1064
1105
|
};
|
|
1106
|
+
const errorNotice = error && /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1107
|
+
role: "alert",
|
|
1108
|
+
className: "power-logs-notice power-logs-error",
|
|
1109
|
+
children: [error, savedPoolFull && /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
1110
|
+
type: "button",
|
|
1111
|
+
disabled: deletingCount > 0 || !!queryId || capturePending,
|
|
1112
|
+
onClick: clearSavedSnapshots,
|
|
1113
|
+
children: "Clear saved snapshots"
|
|
1114
|
+
})]
|
|
1115
|
+
});
|
|
1065
1116
|
return /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1066
1117
|
className: "power-logs",
|
|
1067
1118
|
"data-testid": "power-logs-page",
|
|
@@ -1247,16 +1298,6 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1247
1298
|
]
|
|
1248
1299
|
})
|
|
1249
1300
|
}) : /* @__PURE__ */ require_jsx_runtime.jsx(SourcePicker, {}),
|
|
1250
|
-
error && /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1251
|
-
role: "alert",
|
|
1252
|
-
className: "power-logs-notice power-logs-error",
|
|
1253
|
-
children: [error, savedPoolFull && /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
1254
|
-
type: "button",
|
|
1255
|
-
disabled: deletingCount > 0 || !!queryId || capturePending,
|
|
1256
|
-
onClick: clearSavedSnapshots,
|
|
1257
|
-
children: "Clear saved snapshots"
|
|
1258
|
-
})]
|
|
1259
|
-
}),
|
|
1260
1301
|
tab === "live" ? /* @__PURE__ */ require_jsx_runtime.jsxs(require_jsx_runtime.Fragment, { children: [
|
|
1261
1302
|
/* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1262
1303
|
className: "power-logs-filters",
|
|
@@ -1363,6 +1404,7 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1363
1404
|
})
|
|
1364
1405
|
]
|
|
1365
1406
|
}),
|
|
1407
|
+
errorNotice,
|
|
1366
1408
|
/* @__PURE__ */ require_jsx_runtime.jsx(FieldFilters, {
|
|
1367
1409
|
filters: fieldFilters,
|
|
1368
1410
|
onRemove: (index) => setFieldFilters(fieldFilters.filter((_, item) => item !== index))
|
|
@@ -1461,7 +1503,7 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1461
1503
|
confirmPersistentCapture(item);
|
|
1462
1504
|
},
|
|
1463
1505
|
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_extensions.Renderer.Component.Icon, {
|
|
1464
|
-
|
|
1506
|
+
svg: item.persistent ? "push_off" : "push_pin",
|
|
1465
1507
|
size: 16
|
|
1466
1508
|
})
|
|
1467
1509
|
})
|
|
@@ -1589,6 +1631,7 @@ function Workspace({ clusterId, contextId }) {
|
|
|
1589
1631
|
onChange: setSql,
|
|
1590
1632
|
fitVersion: sqlFitVersion
|
|
1591
1633
|
}),
|
|
1634
|
+
errorNotice,
|
|
1592
1635
|
sqlError && /* @__PURE__ */ require_jsx_runtime.jsx("div", {
|
|
1593
1636
|
role: "alert",
|
|
1594
1637
|
className: "power-logs-notice power-logs-error power-logs-query-error",
|