@k8slens/extensions 6.0.1-git.b421e254db.0 → 6.0.1-git.c8fe453948.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.
Files changed (23) hide show
  1. package/dist/src/behaviours/pod-logs/download-logs.test.d.ts +5 -0
  2. package/dist/src/common/vars/package-json.injectable.d.ts +3 -0
  3. package/dist/src/extensions/extension-api.js +33 -11
  4. package/dist/src/extensions/renderer-api/theming.d.ts +7 -1
  5. package/dist/src/features/cluster/workload-overview.test.d.ts +5 -0
  6. package/dist/src/main/prometheus/helm.d.ts +3 -3
  7. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.d.ts +3 -3
  8. package/dist/src/renderer/components/+workloads-overview/overview-workload-status.d.ts +19 -1
  9. package/dist/src/renderer/components/+workloads-overview/workloads/workload-injection-token.d.ts +2 -1
  10. package/dist/src/renderer/components/chart/chart.d.ts +1 -0
  11. package/dist/src/renderer/components/dock/logs/controls.d.ts +1 -3
  12. package/dist/src/renderer/components/dock/logs/download-all-logs.injectable.d.ts +4 -0
  13. package/dist/src/renderer/components/dock/logs/download-logs-dropdown.d.ts +10 -0
  14. package/dist/src/renderer/components/dock/logs/download-logs.injectable.d.ts +2 -0
  15. package/dist/src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.d.ts +2 -0
  16. package/dist/src/renderer/components/dock/logs/logs-view-model.d.ts +6 -1
  17. package/dist/src/renderer/components/dropdown/dropdown.d.ts +11 -0
  18. package/dist/src/renderer/components/test-utils/get-application-builder.d.ts +1 -0
  19. package/dist/src/renderer/themes/active.injectable.d.ts +2 -0
  20. package/dist/src/renderer/themes/lens-dark.d.ts +2 -2
  21. package/dist/src/renderer/themes/lens-light.d.ts +2 -2
  22. package/dist/src/renderer/themes/store.d.ts +4 -4
  23. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ export {};
@@ -48,6 +48,8 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
48
48
  "version-commit": string;
49
49
  version: string;
50
50
  postversion: string;
51
+ "precreate-release-pr": string;
52
+ "create-release-pr": string;
51
53
  };
52
54
  config: {
53
55
  k8sProxyVersion: string;
@@ -224,6 +226,7 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
224
226
  "@material-ui/lab": string;
225
227
  "@pmmmwh/react-refresh-webpack-plugin": string;
226
228
  "@sentry/types": string;
229
+ "@swc/cli": string;
227
230
  "@swc/core": string;
228
231
  "@swc/jest": string;
229
232
  "@testing-library/dom": string;
@@ -31693,7 +31693,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31693
31693
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31694
31694
 
31695
31695
  "use strict";
31696
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ordering\": () => (/* binding */ Ordering),\n/* harmony export */ \"rectifyOrdering\": () => (/* binding */ rectifyOrdering),\n/* harmony export */ \"sortCharts\": () => (/* binding */ sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* binding */ sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* binding */ sortCompareChartVersions)\n/* harmony export */ });\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nvar Ordering;\n(function (Ordering) {\n Ordering[Ordering[\"LESS\"] = -1] = \"LESS\";\n Ordering[Ordering[\"EQUAL\"] = 0] = \"EQUAL\";\n Ordering[Ordering[\"GREATER\"] = 1] = \"GREATER\";\n})(Ordering || (Ordering = {}));\n/**\n * This function switches the direction of `ordering` if `direction` is `\"desc\"`\n * @param ordering The original ordering (assumed to be an \"asc\" ordering)\n * @param direction The new desired direction\n */\nfunction rectifyOrdering(ordering, direction) {\n if (direction === \"desc\") {\n return -ordering;\n }\n return ordering;\n}\n/**\n * An ascending sorting function\n * @param left An item from an array\n * @param right An item from an array\n * @returns The relative ordering in an ascending manner.\n * - Less if left < right\n * - Equal if left == right\n * - Greater if left > right\n */\nfunction sortCompare(left, right) {\n if (left < right) {\n return Ordering.LESS;\n }\n if (left === right) {\n return Ordering.EQUAL;\n }\n return Ordering.GREATER;\n}\nfunction sortCompareChartVersions(left, right) {\n if (left.__version && right.__version) {\n return semver__WEBPACK_IMPORTED_MODULE_0___default().compare(right.__version, left.__version);\n }\n if (!left.__version && right.__version) {\n return Ordering.GREATER;\n }\n if (left.__version && !right.__version) {\n return Ordering.LESS;\n }\n return sortCompare(left.version, right.version);\n}\nfunction sortCharts(charts) {\n const chartsWithVersion = Array.from(_iter__WEBPACK_IMPORTED_MODULE_1__.map(charts, chart => {\n const __version = (0,semver__WEBPACK_IMPORTED_MODULE_0__.coerce)(chart.version, { includePrerelease: true, loose: true });\n if (!__version) {\n _logger__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(`[HELM-SERVICE]: Version from helm chart is not loosely coercable to semver.`, { name: chart.name, version: chart.version, repo: chart.repo });\n }\n chart.__version = __version;\n return chart;\n }));\n return chartsWithVersion\n .sort(sortCompareChartVersions)\n .map(chart => (delete chart.__version, chart));\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/sort-compare.ts?");
31696
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ordering\": () => (/* binding */ Ordering),\n/* harmony export */ \"rectifyOrdering\": () => (/* binding */ rectifyOrdering),\n/* harmony export */ \"sortCharts\": () => (/* binding */ sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* binding */ sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* binding */ sortCompareChartVersions)\n/* harmony export */ });\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nvar Ordering;\n(function (Ordering) {\n Ordering[Ordering[\"LESS\"] = -1] = \"LESS\";\n Ordering[Ordering[\"EQUAL\"] = 0] = \"EQUAL\";\n Ordering[Ordering[\"GREATER\"] = 1] = \"GREATER\";\n})(Ordering || (Ordering = {}));\n/**\n * This function switches the direction of `ordering` if `direction` is `\"desc\"`\n * @param ordering The original ordering (assumed to be an \"asc\" ordering)\n * @param direction The new desired direction\n */\nfunction rectifyOrdering(ordering, direction) {\n if (direction === \"desc\") {\n return -ordering;\n }\n return ordering;\n}\n/**\n * An ascending sorting function\n * @param left An item from an array\n * @param right An item from an array\n * @returns The relative ordering in an ascending manner.\n * - Less if left < right\n * - Equal if left == right\n * - Greater if left > right\n */\nfunction sortCompare(left, right) {\n if (left < right) {\n return Ordering.LESS;\n }\n if (left === right) {\n return Ordering.EQUAL;\n }\n return Ordering.GREATER;\n}\nfunction sortCompareChartVersions(left, right) {\n if (left.__version && right.__version) {\n return semver__WEBPACK_IMPORTED_MODULE_0___default().compare(right.__version, left.__version);\n }\n if (!left.__version && right.__version) {\n return Ordering.GREATER;\n }\n if (left.__version && !right.__version) {\n return Ordering.LESS;\n }\n return sortCompare(left.version, right.version);\n}\nfunction sortCharts(charts) {\n const chartsWithVersion = Array.from(_iter__WEBPACK_IMPORTED_MODULE_1__.map(charts, chart => {\n const __version = (0,semver__WEBPACK_IMPORTED_MODULE_0__.coerce)(chart.version, { loose: true });\n if (!__version) {\n _logger__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(`[HELM-SERVICE]: Version from helm chart is not loosely coercable to semver.`, { name: chart.name, version: chart.version, repo: chart.repo });\n }\n chart.__version = __version;\n return chart;\n }));\n return chartsWithVersion\n .sort(sortCompareChartVersions)\n .map(chart => (delete chart.__version, chart));\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/sort-compare.ts?");
31697
31697
 
31698
31698
  /***/ }),
31699
31699
 
@@ -32342,7 +32342,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32342
32342
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32343
32343
 
32344
32344
  "use strict";
32345
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getActiveTheme\": () => (/* binding */ getActiveTheme)\n/* harmony export */ });\n/* harmony import */ var _renderer_themes_store_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../renderer/themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/* harmony import */ var _as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst themeStore = (0,_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__.asLegacyGlobalForExtensionApi)(_renderer_themes_store_injectable__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\nfunction getActiveTheme() {\n return themeStore.activeTheme;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/renderer-api/theming.ts?");
32345
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"activeTheme\": () => (/* binding */ activeTheme),\n/* harmony export */ \"getActiveTheme\": () => (/* binding */ getActiveTheme)\n/* harmony export */ });\n/* harmony import */ var _renderer_themes_active_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../renderer/themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/* harmony import */ var _as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst activeTheme = (0,_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__.asLegacyGlobalForExtensionApi)(_renderer_themes_active_injectable__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/**\n * @deprecated This hides the reactivity of active theme, use {@link activeTheme} instead\n */\nfunction getActiveTheme() {\n return activeTheme.get();\n}\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/renderer-api/theming.ts?");
32346
32346
 
32347
32347
  /***/ }),
32348
32348
 
@@ -33255,7 +33255,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33255
33255
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33256
33256
 
33257
33257
  "use strict";
33258
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Button\": () => (/* binding */ Button)\n/* harmony export */ });\n/* harmony import */ var _button_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button.scss */ \"./src/renderer/components/button/button.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../tooltip */ \"./src/renderer/components/tooltip/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst Button = (0,_tooltip__WEBPACK_IMPORTED_MODULE_3__.withTooltip)((props) => {\n const { waiting, label, primary, accent, plain, hidden, active, big, round, outlined, light, children, ...btnProps } = props;\n if (hidden)\n return null;\n btnProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Button\", btnProps.className, {\n waiting, primary, accent, plain, active, big, round, outlined, light,\n });\n // render as link\n if (props.href) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { ...btnProps },\n label,\n children));\n }\n // render as button\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"button\", { type: \"button\", ...btnProps },\n label,\n children));\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/button/button.tsx?");
33258
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Button\": () => (/* binding */ Button)\n/* harmony export */ });\n/* harmony import */ var _button_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button.scss */ \"./src/renderer/components/button/button.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../tooltip */ \"./src/renderer/components/tooltip/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst Button = (0,_tooltip__WEBPACK_IMPORTED_MODULE_3__.withTooltip)((props) => {\n const { waiting, label, primary, accent, plain, hidden, active, big, round, outlined, light, children, ...btnProps } = props;\n if (hidden)\n return null;\n btnProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Button\", btnProps.className, {\n waiting, primary, accent, plain, active, big, round, outlined, light,\n });\n // render as link\n if (props.href) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { ...btnProps },\n label,\n children));\n }\n // render as button\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"button\", { type: \"button\", ...btnProps, \"data-waiting\": typeof waiting === \"boolean\" ? String(waiting) : undefined },\n label,\n children));\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/button/button.tsx?");
33259
33259
 
33260
33260
  /***/ }),
33261
33261
 
@@ -33277,7 +33277,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33277
33277
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33278
33278
 
33279
33279
  "use strict";
33280
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BarChart\": () => (/* binding */ BarChart),\n/* harmony export */ \"cpuOptions\": () => (/* binding */ cpuOptions),\n/* harmony export */ \"memoryOptions\": () => (/* binding */ memoryOptions)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/merge */ \"./node_modules/lodash/merge.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! color */ \"./node_modules/color/index.js\");\n/* harmony import */ var color__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(color__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./chart */ \"./src/renderer/components/chart/chart.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _zebra_stripes_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./zebra-stripes.plugin */ \"./src/renderer/components/chart/zebra-stripes.plugin.ts\");\n/* harmony import */ var _resource_metrics_no_metrics__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../resource-metrics/no-metrics */ \"./src/renderer/components/resource-metrics/no-metrics.tsx\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _themes_store_injectable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\nconst getBarColor = ({ dataset }) => color__WEBPACK_IMPORTED_MODULE_3___default()(dataset === null || dataset === void 0 ? void 0 : dataset.borderColor).alpha(0.2).string();\nconst NonInjectedBarChart = (0,mobx_react__WEBPACK_IMPORTED_MODULE_11__.observer)(({ themeStore, name, data, className, timeLabelStep = 10, plugins, options: customOptions, ...settings }) => {\n var _a, _b;\n const { textColorPrimary, borderFaintColor, chartStripesColor } = themeStore.activeTheme.colors;\n const { datasets: rawDatasets = [], ...rest } = data;\n const datasets = rawDatasets\n .filter(set => { var _a; return (_a = set.data) === null || _a === void 0 ? void 0 : _a.length; })\n .map(item => ({\n type: _chart__WEBPACK_IMPORTED_MODULE_4__.ChartKind.BAR,\n borderWidth: { top: 3 },\n barPercentage: 1,\n categoryPercentage: 1,\n ...item,\n }));\n plugins !== null && plugins !== void 0 ? plugins : (plugins = [new _zebra_stripes_plugin__WEBPACK_IMPORTED_MODULE_6__.ZebraStripesPlugin({\n stripeColor: chartStripesColor,\n interval: (_b = (_a = datasets[0]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length,\n })]);\n if (datasets.length === 0) {\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_resource_metrics_no_metrics__WEBPACK_IMPORTED_MODULE_7__.NoMetrics, null);\n }\n const formatTimeLabels = (timestamp, index) => {\n const label = moment__WEBPACK_IMPORTED_MODULE_2___default()(parseInt(timestamp)).format(\"HH:mm\");\n const offset = \" \";\n if (index == 0)\n return offset + label;\n if (index == 60)\n return label + offset;\n return index % timeLabelStep == 0 ? label : \"\";\n };\n const barOptions = {\n maintainAspectRatio: false,\n responsive: true,\n scales: {\n xAxes: [{\n type: \"time\",\n offset: true,\n gridLines: {\n display: false,\n },\n stacked: true,\n ticks: {\n callback: formatTimeLabels,\n autoSkip: false,\n source: \"data\",\n backdropColor: \"white\",\n fontColor: textColorPrimary,\n fontSize: 11,\n maxRotation: 0,\n minRotation: 0,\n },\n bounds: \"data\",\n time: {\n unit: \"minute\",\n displayFormats: {\n minute: \"x\",\n },\n parser: timestamp => moment__WEBPACK_IMPORTED_MODULE_2___default().unix(parseInt(timestamp)),\n },\n }],\n yAxes: [{\n position: \"right\",\n gridLines: {\n color: borderFaintColor,\n drawBorder: false,\n tickMarkLength: 0,\n zeroLineWidth: 0,\n },\n ticks: {\n maxTicksLimit: 6,\n fontColor: textColorPrimary,\n fontSize: 11,\n padding: 8,\n min: 0,\n },\n }],\n },\n tooltips: {\n mode: \"index\",\n position: \"cursor\",\n callbacks: {\n title([tooltip]) {\n const xLabel = tooltip === null || tooltip === void 0 ? void 0 : tooltip.xLabel;\n const skipLabel = xLabel == null || new Date(xLabel).getTime() > Date.now();\n if (skipLabel)\n return \"\";\n return String(xLabel);\n },\n labelColor: ({ datasetIndex }) => (typeof datasetIndex === \"number\"\n ? {\n borderColor: \"darkgray\",\n backgroundColor: datasets[datasetIndex].borderColor,\n }\n : {\n borderColor: \"darkgray\",\n backgroundColor: \"gray\",\n }),\n },\n },\n animation: {\n duration: 0,\n },\n elements: {\n rectangle: {\n backgroundColor: getBarColor.bind(null),\n },\n },\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_chart__WEBPACK_IMPORTED_MODULE_4__.Chart, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.cssNames)(\"BarChart flex box grow column\", className), type: _chart__WEBPACK_IMPORTED_MODULE_4__.ChartKind.BAR, data: { datasets, ...rest }, options: lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(barOptions, customOptions), plugins: plugins, ...settings }));\n});\nconst BarChart = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__.withInjectables)(NonInjectedBarChart, {\n getProps: (di, props) => ({\n ...props,\n themeStore: di.inject(_themes_store_injectable__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n }),\n});\nconst tooltipCallbackWith = (precision) => (({ datasetIndex, index }, { datasets = [] }) => {\n if (typeof datasetIndex !== \"number\" || typeof index !== \"number\") {\n return \"\";\n }\n const { label, data } = datasets[datasetIndex];\n if (!label || !data) {\n return \"<unknown>\";\n }\n const value = data[index];\n assert__WEBPACK_IMPORTED_MODULE_8___default()((0,_utils__WEBPACK_IMPORTED_MODULE_5__.isObject)(value) && !Array.isArray(value) && typeof value.y === \"number\");\n return `${label}: ${(0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(parseInt(value.y.toString()), { precision })}`;\n});\n// Default options for all charts containing memory units (network, disk, memory, etc)\nconst memoryOptions = {\n scales: {\n yAxes: [{\n ticks: {\n callback: (value) => {\n if (typeof value == \"string\") {\n const float = parseFloat(value);\n if (float < 1) {\n return float.toFixed(3);\n }\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(parseInt(value));\n }\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(value);\n },\n stepSize: 1,\n },\n }],\n },\n tooltips: {\n callbacks: {\n label: tooltipCallbackWith(3),\n },\n },\n};\n// Default options for all charts with cpu units or other decimal numbers\nconst cpuOptions = {\n scales: {\n yAxes: [{\n ticks: {\n callback: (value) => {\n const float = parseFloat(`${value}`);\n if (float == 0)\n return \"0\";\n if (float < 10)\n return float.toFixed(3);\n if (float < 100)\n return float.toFixed(2);\n return float.toFixed(1);\n },\n },\n }],\n },\n tooltips: {\n callbacks: {\n label: tooltipCallbackWith(2),\n },\n },\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/bar-chart.tsx?");
33280
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BarChart\": () => (/* binding */ BarChart),\n/* harmony export */ \"cpuOptions\": () => (/* binding */ cpuOptions),\n/* harmony export */ \"memoryOptions\": () => (/* binding */ memoryOptions)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/merge */ \"./node_modules/lodash/merge.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! color */ \"./node_modules/color/index.js\");\n/* harmony import */ var color__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(color__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./chart */ \"./src/renderer/components/chart/chart.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _zebra_stripes_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./zebra-stripes.plugin */ \"./src/renderer/components/chart/zebra-stripes.plugin.ts\");\n/* harmony import */ var _resource_metrics_no_metrics__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../resource-metrics/no-metrics */ \"./src/renderer/components/resource-metrics/no-metrics.tsx\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\nconst getBarColor = ({ dataset }) => color__WEBPACK_IMPORTED_MODULE_3___default()(dataset === null || dataset === void 0 ? void 0 : dataset.borderColor).alpha(0.2).string();\nconst NonInjectedBarChart = (0,mobx_react__WEBPACK_IMPORTED_MODULE_11__.observer)(({ activeTheme, name, data, className, timeLabelStep = 10, plugins, options: customOptions, ...settings }) => {\n var _a, _b;\n const { textColorPrimary, borderFaintColor, chartStripesColor } = activeTheme.get().colors;\n const { datasets: rawDatasets = [], ...rest } = data;\n const datasets = rawDatasets\n .filter(set => { var _a; return (_a = set.data) === null || _a === void 0 ? void 0 : _a.length; })\n .map(item => ({\n type: _chart__WEBPACK_IMPORTED_MODULE_4__.ChartKind.BAR,\n borderWidth: { top: 3 },\n barPercentage: 1,\n categoryPercentage: 1,\n ...item,\n }));\n plugins !== null && plugins !== void 0 ? plugins : (plugins = [new _zebra_stripes_plugin__WEBPACK_IMPORTED_MODULE_6__.ZebraStripesPlugin({\n stripeColor: chartStripesColor,\n interval: (_b = (_a = datasets[0]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length,\n })]);\n if (datasets.length === 0) {\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_resource_metrics_no_metrics__WEBPACK_IMPORTED_MODULE_7__.NoMetrics, null);\n }\n const formatTimeLabels = (timestamp, index) => {\n const label = moment__WEBPACK_IMPORTED_MODULE_2___default()(parseInt(timestamp)).format(\"HH:mm\");\n const offset = \" \";\n if (index == 0)\n return offset + label;\n if (index == 60)\n return label + offset;\n return index % timeLabelStep == 0 ? label : \"\";\n };\n const barOptions = {\n maintainAspectRatio: false,\n responsive: true,\n scales: {\n xAxes: [{\n type: \"time\",\n offset: true,\n gridLines: {\n display: false,\n },\n stacked: true,\n ticks: {\n callback: formatTimeLabels,\n autoSkip: false,\n source: \"data\",\n backdropColor: \"white\",\n fontColor: textColorPrimary,\n fontSize: 11,\n maxRotation: 0,\n minRotation: 0,\n },\n bounds: \"data\",\n time: {\n unit: \"minute\",\n displayFormats: {\n minute: \"x\",\n },\n parser: timestamp => moment__WEBPACK_IMPORTED_MODULE_2___default().unix(parseInt(timestamp)),\n },\n }],\n yAxes: [{\n position: \"right\",\n gridLines: {\n color: borderFaintColor,\n drawBorder: false,\n tickMarkLength: 0,\n zeroLineWidth: 0,\n },\n ticks: {\n maxTicksLimit: 6,\n fontColor: textColorPrimary,\n fontSize: 11,\n padding: 8,\n min: 0,\n },\n }],\n },\n tooltips: {\n mode: \"index\",\n position: \"cursor\",\n callbacks: {\n title([tooltip]) {\n const xLabel = tooltip === null || tooltip === void 0 ? void 0 : tooltip.xLabel;\n const skipLabel = xLabel == null || new Date(xLabel).getTime() > Date.now();\n if (skipLabel)\n return \"\";\n return String(xLabel);\n },\n labelColor: ({ datasetIndex }) => (typeof datasetIndex === \"number\"\n ? {\n borderColor: \"darkgray\",\n backgroundColor: datasets[datasetIndex].borderColor,\n }\n : {\n borderColor: \"darkgray\",\n backgroundColor: \"gray\",\n }),\n },\n },\n animation: {\n duration: 0,\n },\n elements: {\n rectangle: {\n backgroundColor: getBarColor.bind(null),\n },\n },\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_chart__WEBPACK_IMPORTED_MODULE_4__.Chart, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.cssNames)(\"BarChart flex box grow column\", className), type: _chart__WEBPACK_IMPORTED_MODULE_4__.ChartKind.BAR, data: { datasets, ...rest }, options: lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(barOptions, customOptions), plugins: plugins, ...settings }));\n});\nconst BarChart = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_9__.withInjectables)(NonInjectedBarChart, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n }),\n});\nconst tooltipCallbackWith = (precision) => (({ datasetIndex, index }, { datasets = [] }) => {\n if (typeof datasetIndex !== \"number\" || typeof index !== \"number\") {\n return \"\";\n }\n const { label, data } = datasets[datasetIndex];\n if (!label || !data) {\n return \"<unknown>\";\n }\n const value = data[index];\n assert__WEBPACK_IMPORTED_MODULE_8___default()((0,_utils__WEBPACK_IMPORTED_MODULE_5__.isObject)(value) && !Array.isArray(value) && typeof value.y === \"number\");\n return `${label}: ${(0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(parseInt(value.y.toString()), { precision })}`;\n});\n// Default options for all charts containing memory units (network, disk, memory, etc)\nconst memoryOptions = {\n scales: {\n yAxes: [{\n ticks: {\n callback: (value) => {\n if (typeof value == \"string\") {\n const float = parseFloat(value);\n if (float < 1) {\n return float.toFixed(3);\n }\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(parseInt(value));\n }\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.bytesToUnits)(value);\n },\n stepSize: 1,\n },\n }],\n },\n tooltips: {\n callbacks: {\n label: tooltipCallbackWith(3),\n },\n },\n};\n// Default options for all charts with cpu units or other decimal numbers\nconst cpuOptions = {\n scales: {\n yAxes: [{\n ticks: {\n callback: (value) => {\n const float = parseFloat(`${value}`);\n if (float == 0)\n return \"0\";\n if (float < 10)\n return float.toFixed(3);\n if (float < 100)\n return float.toFixed(2);\n return float.toFixed(1);\n },\n },\n }],\n },\n tooltips: {\n callbacks: {\n label: tooltipCallbackWith(2),\n },\n },\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/bar-chart.tsx?");
33281
33281
 
33282
33282
  /***/ }),
33283
33283
 
@@ -33288,7 +33288,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33288
33288
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33289
33289
 
33290
33290
  "use strict";
33291
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Chart\": () => (/* binding */ Chart),\n/* harmony export */ \"ChartKind\": () => (/* binding */ ChartKind)\n/* harmony export */ });\n/* harmony import */ var _chart_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart.scss */ \"./src/renderer/components/chart/chart.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! chart.js */ \"./node_modules/chart.js/dist/Chart.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(chart_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _status_brick__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../status-brick */ \"./src/renderer/components/status-brick/index.ts\");\n/* harmony import */ var _badge__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../badge */ \"./src/renderer/components/badge/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nvar ChartKind;\n(function (ChartKind) {\n ChartKind[\"PIE\"] = \"pie\";\n ChartKind[\"BAR\"] = \"bar\";\n ChartKind[\"LINE\"] = \"line\";\n ChartKind[\"DOUGHNUT\"] = \"doughnut\";\n})(ChartKind || (ChartKind = {}));\nconst defaultProps = {\n type: ChartKind.DOUGHNUT,\n options: {},\n showChart: true,\n showLegend: true,\n legendPosition: \"bottom\",\n plugins: [],\n redraw: false,\n};\nclass Chart extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"canvas\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"chart\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n // ChartJS adds _meta field to any data object passed to it.\n // We clone new data prop into currentChartData to compare props and prevProps\n Object.defineProperty(this, \"currentChartData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n componentDidMount() {\n const { showChart } = this.props;\n if (showChart) {\n this.renderChart();\n }\n }\n componentDidUpdate() {\n var _a;\n const { showChart, redraw } = this.props;\n if (redraw) {\n (_a = this.chart) === null || _a === void 0 ? void 0 : _a.destroy();\n this.renderChart();\n }\n else if (showChart) {\n if (!this.chart) {\n this.renderChart();\n }\n else {\n this.updateChart();\n }\n }\n }\n memoizeDataProps() {\n const { data } = this.props;\n this.currentChartData = {\n ...data,\n datasets: data.datasets && data.datasets.map(set => {\n return {\n ...set,\n };\n }),\n };\n }\n updateChart() {\n var _a, _b, _c, _d;\n var _e, _f, _g;\n const { options } = this.props;\n if (!this.chart)\n return;\n this.chart.options = chart_js__WEBPACK_IMPORTED_MODULE_2___default().helpers.configMerge(this.chart.options, options);\n this.memoizeDataProps();\n const datasets = (_b = (_f = ((_a = (_e = this.chart.config).data) !== null && _a !== void 0 ? _a : (_e.data = {}))).datasets) !== null && _b !== void 0 ? _b : (_f.datasets = []);\n const nextDatasets = (_d = (_g = ((_c = this.currentChartData) !== null && _c !== void 0 ? _c : (this.currentChartData = {}))).datasets) !== null && _d !== void 0 ? _d : (_g.datasets = []);\n // Remove stale datasets if they're not available in nextDatasets\n if (datasets.length > nextDatasets.length) {\n const sets = [...datasets];\n sets.forEach(set => {\n if (!nextDatasets.find(next => next.id === set.id)) {\n (0,lodash__WEBPACK_IMPORTED_MODULE_3__.remove)(datasets, (item => item.id === set.id));\n }\n });\n }\n // Mutating inner chart datasets to enable seamless transitions\n nextDatasets.forEach((next, datasetIndex) => {\n var _a, _b;\n const index = datasets.findIndex(set => set.id === next.id);\n if (index !== -1) {\n const data = datasets[index].data = ((_a = datasets[index].data) !== null && _a !== void 0 ? _a : []).slice(); // \"Clean\" mobx observables data to use in ChartJS\n const nextData = (_b = next.data) !== null && _b !== void 0 ? _b : (next.data = []);\n data.splice(next.data.length);\n for (let dataIndex = 0; dataIndex < nextData.length; dataIndex += 1) {\n data[dataIndex] = nextData[dataIndex];\n }\n // Merge other fields\n const { data: _data, ...props } = next;\n datasets[index] = {\n ...datasets[index],\n ...props,\n };\n }\n else {\n datasets[datasetIndex] = next;\n }\n });\n this.chart.update();\n }\n renderLegend() {\n if (!this.props.showLegend)\n return null;\n const { data, legendColors } = this.props;\n const { labels, datasets } = data;\n const labelElem = (title, color, tooltip) => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_badge__WEBPACK_IMPORTED_MODULE_6__.Badge, { key: title, className: \"LegendBadge flex gaps align-center\", label: (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"flex items-center\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_status_brick__WEBPACK_IMPORTED_MODULE_5__.StatusBrick, { style: { backgroundColor: color }, className: \"flex-shrink-0\" }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"span\", null, title))), tooltip: tooltip, expandable: false }));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"legend flex wrap\" }, labels\n ? labels.map((label, index) => {\n var _a;\n const { backgroundColor = [] } = (_a = datasets === null || datasets === void 0 ? void 0 : datasets[0]) !== null && _a !== void 0 ? _a : {};\n const color = legendColors ? legendColors[index] : backgroundColor[index];\n return labelElem(label, color);\n })\n : datasets === null || datasets === void 0 ? void 0 : datasets.map(({ borderColor, label, tooltip }) => labelElem(label, borderColor, tooltip))));\n }\n renderChart() {\n const { type, options, plugins } = this.props;\n const canvas = this.canvas.current;\n if (!canvas) {\n return;\n }\n this.memoizeDataProps();\n this.chart = new (chart_js__WEBPACK_IMPORTED_MODULE_2___default())(canvas, {\n type,\n plugins,\n options: {\n ...options,\n legend: {\n display: false,\n },\n },\n data: this.currentChartData,\n });\n }\n render() {\n const { width, height, showChart, title, className } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Chart\", className) },\n title && react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chart-title\" }, title),\n showChart && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chart-container\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"canvas\", { ref: this.canvas, width: width, height: height }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chartjs-tooltip flex column\" }))),\n this.renderLegend())));\n }\n}\nObject.defineProperty(Chart, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/chart.tsx?");
33291
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Chart\": () => (/* binding */ Chart),\n/* harmony export */ \"ChartKind\": () => (/* binding */ ChartKind)\n/* harmony export */ });\n/* harmony import */ var _chart_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart.scss */ \"./src/renderer/components/chart/chart.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! chart.js */ \"./node_modules/chart.js/dist/Chart.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(chart_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _status_brick__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../status-brick */ \"./src/renderer/components/status-brick/index.ts\");\n/* harmony import */ var _badge__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../badge */ \"./src/renderer/components/badge/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nvar ChartKind;\n(function (ChartKind) {\n ChartKind[\"PIE\"] = \"pie\";\n ChartKind[\"BAR\"] = \"bar\";\n ChartKind[\"LINE\"] = \"line\";\n ChartKind[\"DOUGHNUT\"] = \"doughnut\";\n})(ChartKind || (ChartKind = {}));\nconst defaultProps = {\n type: ChartKind.DOUGHNUT,\n options: {},\n showChart: true,\n showLegend: true,\n legendPosition: \"bottom\",\n plugins: [],\n redraw: false,\n};\nclass Chart extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"canvas\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"chart\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n // ChartJS adds _meta field to any data object passed to it.\n // We clone new data prop into currentChartData to compare props and prevProps\n Object.defineProperty(this, \"currentChartData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n componentDidMount() {\n const { showChart } = this.props;\n if (showChart) {\n this.renderChart();\n }\n }\n componentDidUpdate() {\n var _a;\n const { showChart, redraw } = this.props;\n if (redraw) {\n (_a = this.chart) === null || _a === void 0 ? void 0 : _a.destroy();\n this.renderChart();\n }\n else if (showChart) {\n if (!this.chart) {\n this.renderChart();\n }\n else {\n this.updateChart();\n }\n }\n }\n memoizeDataProps() {\n const { data } = this.props;\n this.currentChartData = {\n ...data,\n datasets: data.datasets && data.datasets.map(set => {\n return {\n ...set,\n };\n }),\n };\n }\n updateChart() {\n var _a, _b, _c, _d;\n var _e, _f, _g;\n const { options } = this.props;\n if (!this.chart)\n return;\n this.chart.options = chart_js__WEBPACK_IMPORTED_MODULE_2___default().helpers.configMerge(this.chart.options, options);\n this.memoizeDataProps();\n const datasets = (_b = (_f = ((_a = (_e = this.chart.config).data) !== null && _a !== void 0 ? _a : (_e.data = {}))).datasets) !== null && _b !== void 0 ? _b : (_f.datasets = []);\n const nextDatasets = (_d = (_g = ((_c = this.currentChartData) !== null && _c !== void 0 ? _c : (this.currentChartData = {}))).datasets) !== null && _d !== void 0 ? _d : (_g.datasets = []);\n // Remove stale datasets if they're not available in nextDatasets\n if (datasets.length > nextDatasets.length) {\n const sets = [...datasets];\n sets.forEach(set => {\n if (!nextDatasets.find(next => next.id === set.id)) {\n (0,lodash__WEBPACK_IMPORTED_MODULE_3__.remove)(datasets, (item => item.id === set.id));\n }\n });\n }\n // Mutating inner chart datasets to enable seamless transitions\n nextDatasets.forEach((next, datasetIndex) => {\n var _a, _b;\n const index = datasets.findIndex(set => set.id === next.id);\n if (index !== -1) {\n const data = datasets[index].data = ((_a = datasets[index].data) !== null && _a !== void 0 ? _a : []).slice(); // \"Clean\" mobx observables data to use in ChartJS\n const nextData = (_b = next.data) !== null && _b !== void 0 ? _b : (next.data = []);\n data.splice(next.data.length);\n for (let dataIndex = 0; dataIndex < nextData.length; dataIndex += 1) {\n data[dataIndex] = nextData[dataIndex];\n }\n // Merge other fields\n const { data: _data, ...props } = next;\n datasets[index] = {\n ...datasets[index],\n ...props,\n };\n }\n else {\n datasets[datasetIndex] = next;\n }\n });\n this.chart.update();\n }\n renderLegend() {\n if (!this.props.showLegend)\n return null;\n const { data, legendColors } = this.props;\n const { labels, datasets } = data;\n const labelElem = (title, color, tooltip) => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_badge__WEBPACK_IMPORTED_MODULE_6__.Badge, { key: title, className: \"LegendBadge flex gaps align-center\", label: (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"flex items-center\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_status_brick__WEBPACK_IMPORTED_MODULE_5__.StatusBrick, { style: { backgroundColor: color }, className: \"flex-shrink-0\" }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"span\", null, title))), tooltip: tooltip, expandable: false }));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"legend flex wrap\" }, labels\n ? labels.map((label, index) => {\n var _a;\n const { backgroundColor = [] } = (_a = datasets === null || datasets === void 0 ? void 0 : datasets[0]) !== null && _a !== void 0 ? _a : {};\n const color = legendColors ? legendColors[index] : backgroundColor[index];\n return labelElem(label, color);\n })\n : datasets === null || datasets === void 0 ? void 0 : datasets.map(({ borderColor, label, tooltip }) => labelElem(label, borderColor, tooltip))));\n }\n renderChart() {\n const { type, options, plugins } = this.props;\n const canvas = this.canvas.current;\n if (!canvas) {\n return;\n }\n this.memoizeDataProps();\n this.chart = new (chart_js__WEBPACK_IMPORTED_MODULE_2___default())(canvas, {\n type,\n plugins,\n options: {\n ...options,\n legend: {\n display: false,\n },\n },\n data: this.currentChartData,\n });\n }\n render() {\n const { width, height, showChart, title, className, \"data-testid\": dataTestId } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Chart\", className), \"data-testid\": dataTestId },\n title && react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chart-title\" }, title),\n showChart && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chart-container\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"canvas\", { ref: this.canvas, width: width, height: height }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"chartjs-tooltip flex column\" }))),\n this.renderLegend()));\n }\n}\nObject.defineProperty(Chart, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/chart.tsx?");
33292
33292
 
33293
33293
  /***/ }),
33294
33294
 
@@ -33299,7 +33299,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33299
33299
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33300
33300
 
33301
33301
  "use strict";
33302
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PieChart\": () => (/* binding */ PieChart)\n/* harmony export */ });\n/* harmony import */ var _pie_chart_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pie-chart.scss */ \"./src/renderer/components/chart/pie-chart.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! chart.js */ \"./node_modules/chart.js/dist/Chart.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(chart_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./chart */ \"./src/renderer/components/chart/chart.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _themes_store_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\nfunction getCutout(length) {\n switch (length) {\n case 0:\n case 1:\n return 88;\n case 2:\n return 76;\n case 3:\n return 63;\n default:\n return 50;\n }\n}\nconst NonInjectedPieChart = (0,mobx_react__WEBPACK_IMPORTED_MODULE_7__.observer)(({ themeStore, data, className, options, showChart, ...chartProps }) => {\n var _a;\n const { contentColor } = themeStore.activeTheme.colors;\n const opts = {\n maintainAspectRatio: false,\n tooltips: {\n mode: \"index\",\n callbacks: {\n title: () => \"\",\n label: (tooltipItem, data) => {\n var _a, _b, _c, _d;\n const dataset = (_b = (_a = data.datasets) === null || _a === void 0 ? void 0 : _a[tooltipItem.datasetIndex]) !== null && _b !== void 0 ? _b : {};\n const datasetData = ((_c = dataset.data) !== null && _c !== void 0 ? _c : []);\n const total = datasetData.reduce((acc, cur) => acc + cur, 0);\n const percent = Math.round((datasetData[tooltipItem.index] / total) * 100);\n const percentLabel = isNaN(percent) ? \"N/A\" : `${percent}%`;\n const tooltipLabel = (_d = dataset.tooltipLabels) === null || _d === void 0 ? void 0 : _d[tooltipItem.index];\n let tooltip = `${dataset.label}: ${percentLabel}`;\n if (tooltipLabel) {\n if (typeof tooltipLabel === \"function\") {\n tooltip = tooltipLabel(percentLabel);\n }\n else {\n tooltip = tooltipLabel;\n }\n }\n return tooltip;\n },\n },\n filter: ({ datasetIndex, index }, { datasets = [] }) => {\n if (datasetIndex === undefined) {\n return false;\n }\n const { data = [] } = datasets[datasetIndex];\n if (datasets.length === 1)\n return true;\n return index !== data.length - 1;\n },\n position: \"cursor\",\n },\n elements: {\n arc: {\n borderWidth: 1,\n borderColor: contentColor,\n },\n },\n cutoutPercentage: getCutout((_a = data.datasets) === null || _a === void 0 ? void 0 : _a.length),\n responsive: true,\n ...options,\n };\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_chart__WEBPACK_IMPORTED_MODULE_3__.Chart, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"PieChart flex column align-center\", className), data: data, options: showChart ? {} : opts, showChart: showChart, ...chartProps }));\n});\nconst PieChart = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__.withInjectables)(NonInjectedPieChart, {\n getProps: (di, props) => ({\n ...props,\n themeStore: di.inject(_themes_store_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n }),\n});\n(chart_js__WEBPACK_IMPORTED_MODULE_2___default().Tooltip.positioners.cursor) = function (elements, position) {\n return position;\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/pie-chart.tsx?");
33302
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PieChart\": () => (/* binding */ PieChart)\n/* harmony export */ });\n/* harmony import */ var _pie_chart_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pie-chart.scss */ \"./src/renderer/components/chart/pie-chart.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! chart.js */ \"./node_modules/chart.js/dist/Chart.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(chart_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./chart */ \"./src/renderer/components/chart/chart.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\nfunction getCutout(length) {\n switch (length) {\n case 0:\n case 1:\n return 88;\n case 2:\n return 76;\n case 3:\n return 63;\n default:\n return 50;\n }\n}\nconst NonInjectedPieChart = (0,mobx_react__WEBPACK_IMPORTED_MODULE_7__.observer)(({ activeTheme, data, className, options, showChart, ...chartProps }) => {\n var _a;\n const { contentColor } = activeTheme.get().colors;\n const opts = {\n maintainAspectRatio: false,\n tooltips: {\n mode: \"index\",\n callbacks: {\n title: () => \"\",\n label: (tooltipItem, data) => {\n var _a, _b, _c, _d;\n const dataset = (_b = (_a = data.datasets) === null || _a === void 0 ? void 0 : _a[tooltipItem.datasetIndex]) !== null && _b !== void 0 ? _b : {};\n const datasetData = ((_c = dataset.data) !== null && _c !== void 0 ? _c : []);\n const total = datasetData.reduce((acc, cur) => acc + cur, 0);\n const percent = Math.round((datasetData[tooltipItem.index] / total) * 100);\n const percentLabel = isNaN(percent) ? \"N/A\" : `${percent}%`;\n const tooltipLabelCustomizer = (_d = dataset.tooltipLabels) === null || _d === void 0 ? void 0 : _d[tooltipItem.index];\n return tooltipLabelCustomizer\n ? tooltipLabelCustomizer(percentLabel)\n : `${dataset.label}: ${percentLabel}`;\n },\n },\n filter: ({ datasetIndex, index }, { datasets = [] }) => {\n if (datasetIndex === undefined) {\n return false;\n }\n const { data = [] } = datasets[datasetIndex];\n if (datasets.length === 1)\n return true;\n return index !== data.length - 1;\n },\n position: \"cursor\",\n },\n elements: {\n arc: {\n borderWidth: 1,\n borderColor: contentColor,\n },\n },\n cutoutPercentage: getCutout((_a = data.datasets) === null || _a === void 0 ? void 0 : _a.length),\n responsive: true,\n ...options,\n };\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_chart__WEBPACK_IMPORTED_MODULE_3__.Chart, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"PieChart flex column align-center\", className), data: data, options: showChart ? {} : opts, showChart: showChart, ...chartProps }));\n});\nconst PieChart = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__.withInjectables)(NonInjectedPieChart, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n }),\n});\n(chart_js__WEBPACK_IMPORTED_MODULE_2___default().Tooltip.positioners.cursor) = function (elements, position) {\n return position;\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/chart/pie-chart.tsx?");
33303
33303
 
33304
33304
  /***/ }),
33305
33305
 
@@ -33673,7 +33673,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33673
33673
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33674
33674
 
33675
33675
  "use strict";
33676
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dock_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dock/store */ \"./src/renderer/components/dock/dock/store.ts\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _dock_create_dock_tab_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dock/create-dock-tab.injectable */ \"./src/renderer/components/dock/dock/create-dock-tab.injectable.ts\");\n/* harmony import */ var _set_log_tab_data_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./set-log-tab-data.injectable */ \"./src/renderer/components/dock/logs/set-log-tab-data.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\nconst createLogsTab = ({ createDockTab, setLogTabData }) => (title, data) => {\n const id = `log-tab-${uuid__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()}`;\n (0,mobx__WEBPACK_IMPORTED_MODULE_5__.runInAction)(() => {\n createDockTab({\n id,\n title,\n kind: _dock_store__WEBPACK_IMPORTED_MODULE_1__.TabKind.POD_LOGS,\n }, false);\n setLogTabData(id, {\n showTimestamps: false,\n showPrevious: false,\n ...data,\n });\n });\n return id;\n};\nconst createLogsTabInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-logs-tab\",\n instantiate: (di) => createLogsTab({\n createDockTab: di.inject(_dock_create_dock_tab_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n setLogTabData: di.inject(_set_log_tab_data_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n }),\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createLogsTabInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/logs/create-logs-tab.injectable.ts?");
33676
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dock_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dock/store */ \"./src/renderer/components/dock/dock/store.ts\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _dock_create_dock_tab_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dock/create-dock-tab.injectable */ \"./src/renderer/components/dock/dock/create-dock-tab.injectable.ts\");\n/* harmony import */ var _set_log_tab_data_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./set-log-tab-data.injectable */ \"./src/renderer/components/dock/logs/set-log-tab-data.injectable.ts\");\n/* harmony import */ var _get_random_id_for_pod_logs_tab_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-random-id-for-pod-logs-tab.injectable */ \"./src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\nconst createLogsTab = ({ createDockTab, setLogTabData, getRandomId }) => (title, data) => {\n const id = `log-tab-${getRandomId()}`;\n (0,mobx__WEBPACK_IMPORTED_MODULE_5__.runInAction)(() => {\n createDockTab({\n id,\n title,\n kind: _dock_store__WEBPACK_IMPORTED_MODULE_1__.TabKind.POD_LOGS,\n }, false);\n setLogTabData(id, {\n showTimestamps: false,\n showPrevious: false,\n ...data,\n });\n });\n return id;\n};\nconst createLogsTabInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-logs-tab\",\n instantiate: (di) => createLogsTab({\n createDockTab: di.inject(_dock_create_dock_tab_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n setLogTabData: di.inject(_set_log_tab_data_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n getRandomId: di.inject(_get_random_id_for_pod_logs_tab_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n }),\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createLogsTabInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/logs/create-logs-tab.injectable.ts?");
33677
33677
 
33678
33678
  /***/ }),
33679
33679
 
@@ -33699,6 +33699,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33699
33699
 
33700
33700
  /***/ }),
33701
33701
 
33702
+ /***/ "./src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts":
33703
+ /*!****************************************************************************************!*\
33704
+ !*** ./src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts ***!
33705
+ \****************************************************************************************/
33706
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33707
+
33708
+ "use strict";
33709
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_utils_get_random_id_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/utils/get-random-id.injectable */ \"./src/common/utils/get-random-id.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst getRandomIdForPodLogsTabInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"get-random-id-for-pod-logs-tab\",\n instantiate: (di) => di.inject(_common_utils_get_random_id_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getRandomIdForPodLogsTabInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts?");
33710
+
33711
+ /***/ }),
33712
+
33702
33713
  /***/ "./src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts":
33703
33714
  /*!********************************************************************************!*\
33704
33715
  !*** ./src/renderer/components/dock/logs/is-logs-tab-data-valid.injectable.ts ***!
@@ -34113,7 +34124,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34113
34124
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34114
34125
 
34115
34126
  "use strict";
34116
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ItemListLayoutContent\": () => (/* binding */ ItemListLayoutContent)\n/* harmony export */ });\n/* harmony import */ var _item_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./item-list-layout.scss */ \"./src/renderer/components/item-object-list/item-list-layout.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react-lite/es/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table */ \"./src/renderer/components/table/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../add-remove-buttons */ \"./src/renderer/components/add-remove-buttons/index.ts\");\n/* harmony import */ var _no_items__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../no-items */ \"./src/renderer/components/no-items/index.ts\");\n/* harmony import */ var _spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../spinner */ \"./src/renderer/components/spinner/index.ts\");\n/* harmony import */ var _menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../menu/menu-actions */ \"./src/renderer/components/menu/menu-actions.tsx\");\n/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../menu */ \"./src/renderer/components/menu/index.ts\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../checkbox */ \"./src/renderer/components/checkbox/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _themes_store_injectable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/* harmony import */ var _page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./page-filters/store.injectable */ \"./src/renderer/components/item-object-list/page-filters/store.injectable.ts\");\n/* harmony import */ var _confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../confirm-dialog/open.injectable */ \"./src/renderer/components/confirm-dialog/open.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedItemListLayoutContent = class NonInjectedItemListLayoutContent extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_15__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get failedToLoad() {\n return this.props.store.failedLoading;\n }\n renderRow(item) {\n return this.getTableRow(item);\n }\n getTableRow(item) {\n const { isSelectable, renderTableHeader, renderTableContents, renderItemMenu, store, hasDetailsView, onDetails, copyClassNameFromHeadCells, customizeTableRowProps = () => ({}), detailsItem, } = this.props;\n const { isSelected } = store;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, { nowrap: true, searchItem: item, sortItem: item, selected: detailsItem && detailsItem.getId() === item.getId(), onClick: hasDetailsView ? (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => onDetails === null || onDetails === void 0 ? void 0 : onDetails(item)) : undefined, ...customizeTableRowProps(item) },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: isSelected(item), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelection(item)) })),\n renderTableContents(item).map((content, index) => {\n const cellProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isReactNode)(content)\n ? { children: content }\n : content;\n const headCell = renderTableHeader === null || renderTableHeader === void 0 ? void 0 : renderTableHeader[index];\n if (copyClassNameFromHeadCells && headCell) {\n cellProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(cellProps.className, headCell.className);\n }\n if (!headCell || this.showColumn(headCell)) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: index, ...cellProps });\n }\n return null;\n }),\n renderItemMenu && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.stopPropagation }, renderItemMenu(item, store))))));\n }\n getRow(uid) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { key: uid },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => {\n const item = this.props.getItems().find(item => item.getId() === uid);\n if (!item)\n return null;\n return this.getTableRow(item);\n })));\n }\n removeItemsDialog(selectedItems) {\n const { customizeRemoveDialog, store, openConfirmDialog } = this.props;\n const visibleMaxNamesCount = 5;\n const selectedNames = selectedItems.map(ns => ns.getName()).slice(0, visibleMaxNamesCount).join(\", \");\n const dialogCustomProps = customizeRemoveDialog ? customizeRemoveDialog(selectedItems) : {};\n const selectedCount = selectedItems.length;\n const tailCount = selectedCount > visibleMaxNamesCount\n ? selectedCount - visibleMaxNamesCount\n : 0;\n const tail = tailCount > 0\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n \", and \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, tailCount),\n \" more\"))\n : null;\n const message = selectedCount <= 1\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove item \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n \"?\"))\n : (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedCount),\n \" items \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n tail,\n \"?\"));\n const { removeSelectedItems, removeItems } = store;\n const onConfirm = typeof removeItems === \"function\"\n ? () => removeItems.apply(store, [selectedItems])\n : typeof removeSelectedItems === \"function\"\n ? removeSelectedItems.bind(store)\n : _utils__WEBPACK_IMPORTED_MODULE_3__.noop;\n openConfirmDialog({\n ok: onConfirm,\n labelOk: \"Remove\",\n message,\n ...dialogCustomProps,\n });\n }\n renderNoItems() {\n if (this.failedToLoad) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null, this.props.failedToLoadMessage);\n }\n if (!this.props.getIsReady()) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_spinner__WEBPACK_IMPORTED_MODULE_6__.Spinner, { center: true, \"data-testid\": this.props.spinnerTestId });\n }\n if (this.props.getFilters().length > 0) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null,\n \"No items found.\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { onClick: () => this.props.pageFiltersStore.reset(), className: \"contrast\" }, \"Reset filters?\"))));\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null);\n }\n renderItems() {\n if (this.props.virtual) {\n return null;\n }\n return this.props.getItems().map(item => this.getRow(item.getId()));\n }\n renderTableHeader() {\n const { customizeTableRowProps, renderTableHeader, isSelectable, isConfigurable, store } = this.props;\n if (!renderTableHeader) {\n return null;\n }\n const enabledItems = this.props.getItems().filter(item => !(customizeTableRowProps === null || customizeTableRowProps === void 0 ? void 0 : customizeTableRowProps(item).disabled));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, { showTopLine: true, nowrap: true },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: store.isSelectedAll(enabledItems), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelectionAll(enabledItems)) })))),\n renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (this.showColumn(cellProps) && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: (_a = cellProps.id) !== null && _a !== void 0 ? _a : index, ...cellProps })));\n }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" }, isConfigurable && this.renderColumnVisibilityMenu())));\n }\n render() {\n const { store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks, detailsItem, className, tableProps = {}, tableId, getItems, themeStore, } = this.props;\n const selectedItemId = detailsItem && detailsItem.getId();\n const classNames = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(className, \"box\", \"grow\", themeStore.activeTheme.type);\n const items = getItems();\n const selectedItems = store.pickOnlySelected(items);\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"items box grow flex column\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.Table, { tableId: tableId, virtual: virtual, selectable: hasDetailsView, sortable: sortingCallbacks, getTableRow: this.getRow, renderRow: virtual ? undefined : this.renderRow, items: items, selectedItemId: selectedItemId, noItems: this.renderNoItems(), className: classNames, ...tableProps },\n this.renderTableHeader(),\n this.renderItems()),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__.AddRemoveButtons, { onRemove: (store.removeItems || store.removeSelectedItems) && selectedItems.length > 0\n ? () => this.removeItemsDialog(selectedItems)\n : undefined, removeTooltip: `Remove selected items (${selectedItems.length})`, ...addRemoveButtons })))));\n }\n showColumn({ id: columnId, showWithColumn }) {\n const { tableId, isConfigurable } = this.props;\n return !isConfigurable || !tableId || !this.props.userStore.isTableColumnHidden(tableId, columnId, showWithColumn);\n }\n renderColumnVisibilityMenu() {\n const { renderTableHeader = [], tableId } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__.MenuActions, { id: \"menu-actions-for-item-object-list-content\", className: \"ItemListLayoutVisibilityMenu\", toolbar: false, autoCloseOnSelect: false }, renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (!cellProps.showWithColumn && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu__WEBPACK_IMPORTED_MODULE_8__.MenuItem, { key: index, className: \"input\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_9__.Checkbox, { label: (_a = cellProps.title) !== null && _a !== void 0 ? _a : `<${cellProps.className}>`, value: this.showColumn(cellProps), onChange: (tableId\n ? (() => cellProps.id && this.props.userStore.toggleTableColumnVisibility(tableId, cellProps.id))\n : undefined) }))));\n })));\n }\n};\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_15__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayoutContent.prototype, \"failedToLoad\", null);\nNonInjectedItemListLayoutContent = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_17__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayoutContent);\nconst ItemListLayoutContent = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__.withInjectables)(NonInjectedItemListLayoutContent, {\n getProps: (di, props) => ({\n ...props,\n themeStore: di.inject(_themes_store_injectable__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_12__[\"default\"]),\n pageFiltersStore: di.inject(_page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_13__[\"default\"]),\n openConfirmDialog: di.inject(_confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_14__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/item-object-list/content.tsx?");
34127
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ItemListLayoutContent\": () => (/* binding */ ItemListLayoutContent)\n/* harmony export */ });\n/* harmony import */ var _item_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./item-list-layout.scss */ \"./src/renderer/components/item-object-list/item-list-layout.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react-lite/es/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table */ \"./src/renderer/components/table/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../add-remove-buttons */ \"./src/renderer/components/add-remove-buttons/index.ts\");\n/* harmony import */ var _no_items__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../no-items */ \"./src/renderer/components/no-items/index.ts\");\n/* harmony import */ var _spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../spinner */ \"./src/renderer/components/spinner/index.ts\");\n/* harmony import */ var _menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../menu/menu-actions */ \"./src/renderer/components/menu/menu-actions.tsx\");\n/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../menu */ \"./src/renderer/components/menu/index.ts\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../checkbox */ \"./src/renderer/components/checkbox/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/* harmony import */ var _page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./page-filters/store.injectable */ \"./src/renderer/components/item-object-list/page-filters/store.injectable.ts\");\n/* harmony import */ var _confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../confirm-dialog/open.injectable */ \"./src/renderer/components/confirm-dialog/open.injectable.ts\");\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedItemListLayoutContent = class NonInjectedItemListLayoutContent extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_15__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get failedToLoad() {\n return this.props.store.failedLoading;\n }\n renderRow(item) {\n return this.getTableRow(item);\n }\n getTableRow(item) {\n const { isSelectable, renderTableHeader, renderTableContents, renderItemMenu, store, hasDetailsView, onDetails, copyClassNameFromHeadCells, customizeTableRowProps = () => ({}), detailsItem, } = this.props;\n const { isSelected } = store;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, { nowrap: true, searchItem: item, sortItem: item, selected: detailsItem && detailsItem.getId() === item.getId(), onClick: hasDetailsView ? (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => onDetails === null || onDetails === void 0 ? void 0 : onDetails(item)) : undefined, ...customizeTableRowProps(item) },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: isSelected(item), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelection(item)) })),\n renderTableContents(item).map((content, index) => {\n const cellProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isReactNode)(content)\n ? { children: content }\n : content;\n const headCell = renderTableHeader === null || renderTableHeader === void 0 ? void 0 : renderTableHeader[index];\n if (copyClassNameFromHeadCells && headCell) {\n cellProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(cellProps.className, headCell.className);\n }\n if (!headCell || this.showColumn(headCell)) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: index, ...cellProps });\n }\n return null;\n }),\n renderItemMenu && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.stopPropagation }, renderItemMenu(item, store))))));\n }\n getRow(uid) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { key: uid },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => {\n const item = this.props.getItems().find(item => item.getId() === uid);\n if (!item)\n return null;\n return this.getTableRow(item);\n })));\n }\n removeItemsDialog(selectedItems) {\n const { customizeRemoveDialog, store, openConfirmDialog } = this.props;\n const visibleMaxNamesCount = 5;\n const selectedNames = selectedItems.map(ns => ns.getName()).slice(0, visibleMaxNamesCount).join(\", \");\n const dialogCustomProps = customizeRemoveDialog ? customizeRemoveDialog(selectedItems) : {};\n const selectedCount = selectedItems.length;\n const tailCount = selectedCount > visibleMaxNamesCount\n ? selectedCount - visibleMaxNamesCount\n : 0;\n const tail = tailCount > 0\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n \", and \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, tailCount),\n \" more\"))\n : null;\n const message = selectedCount <= 1\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove item \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n \"?\"))\n : (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedCount),\n \" items \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n tail,\n \"?\"));\n const { removeSelectedItems, removeItems } = store;\n const onConfirm = typeof removeItems === \"function\"\n ? () => removeItems.apply(store, [selectedItems])\n : typeof removeSelectedItems === \"function\"\n ? removeSelectedItems.bind(store)\n : _utils__WEBPACK_IMPORTED_MODULE_3__.noop;\n openConfirmDialog({\n ok: onConfirm,\n labelOk: \"Remove\",\n message,\n ...dialogCustomProps,\n });\n }\n renderNoItems() {\n if (this.failedToLoad) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null, this.props.failedToLoadMessage);\n }\n if (!this.props.getIsReady()) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_spinner__WEBPACK_IMPORTED_MODULE_6__.Spinner, { center: true, \"data-testid\": this.props.spinnerTestId });\n }\n if (this.props.getFilters().length > 0) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null,\n \"No items found.\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { onClick: () => this.props.pageFiltersStore.reset(), className: \"contrast\" }, \"Reset filters?\"))));\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null);\n }\n renderItems() {\n if (this.props.virtual) {\n return null;\n }\n return this.props.getItems().map(item => this.getRow(item.getId()));\n }\n renderTableHeader() {\n const { customizeTableRowProps, renderTableHeader, isSelectable, isConfigurable, store } = this.props;\n if (!renderTableHeader) {\n return null;\n }\n const enabledItems = this.props.getItems().filter(item => !(customizeTableRowProps === null || customizeTableRowProps === void 0 ? void 0 : customizeTableRowProps(item).disabled));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, { showTopLine: true, nowrap: true },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: store.isSelectedAll(enabledItems), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelectionAll(enabledItems)) })))),\n renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (this.showColumn(cellProps) && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: (_a = cellProps.id) !== null && _a !== void 0 ? _a : index, ...cellProps })));\n }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" }, isConfigurable && this.renderColumnVisibilityMenu())));\n }\n render() {\n const { store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks, detailsItem, className, tableProps = {}, tableId, getItems, activeTheme, } = this.props;\n const selectedItemId = detailsItem && detailsItem.getId();\n const classNames = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(className, \"box\", \"grow\", activeTheme.get().type);\n const items = getItems();\n const selectedItems = store.pickOnlySelected(items);\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"items box grow flex column\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.Table, { tableId: tableId, virtual: virtual, selectable: hasDetailsView, sortable: sortingCallbacks, getTableRow: this.getRow, renderRow: virtual ? undefined : this.renderRow, items: items, selectedItemId: selectedItemId, noItems: this.renderNoItems(), className: classNames, ...tableProps },\n this.renderTableHeader(),\n this.renderItems()),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__.AddRemoveButtons, { onRemove: (store.removeItems || store.removeSelectedItems) && selectedItems.length > 0\n ? () => this.removeItemsDialog(selectedItems)\n : undefined, removeTooltip: `Remove selected items (${selectedItems.length})`, ...addRemoveButtons })))));\n }\n showColumn({ id: columnId, showWithColumn }) {\n const { tableId, isConfigurable } = this.props;\n return !isConfigurable || !tableId || !this.props.userStore.isTableColumnHidden(tableId, columnId, showWithColumn);\n }\n renderColumnVisibilityMenu() {\n const { renderTableHeader = [], tableId } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__.MenuActions, { id: \"menu-actions-for-item-object-list-content\", className: \"ItemListLayoutVisibilityMenu\", toolbar: false, autoCloseOnSelect: false }, renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (!cellProps.showWithColumn && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu__WEBPACK_IMPORTED_MODULE_8__.MenuItem, { key: index, className: \"input\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_9__.Checkbox, { label: (_a = cellProps.title) !== null && _a !== void 0 ? _a : `<${cellProps.className}>`, value: this.showColumn(cellProps), onChange: (tableId\n ? (() => cellProps.id && this.props.userStore.toggleTableColumnVisibility(tableId, cellProps.id))\n : undefined) }))));\n })));\n }\n};\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_15__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayoutContent.prototype, \"failedToLoad\", null);\nNonInjectedItemListLayoutContent = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_17__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayoutContent);\nconst ItemListLayoutContent = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__.withInjectables)(NonInjectedItemListLayoutContent, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__[\"default\"]),\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n pageFiltersStore: di.inject(_page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__[\"default\"]),\n openConfirmDialog: di.inject(_confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/item-object-list/content.tsx?");
34117
34128
 
34118
34129
  /***/ }),
34119
34130
 
@@ -34718,7 +34729,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34718
34729
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34719
34730
 
34720
34731
  "use strict";
34721
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MonacoEditor\": () => (/* binding */ MonacoEditor),\n/* harmony export */ \"createMonacoUri\": () => (/* binding */ createMonacoUri)\n/* harmony export */ });\n/* harmony import */ var _monaco_editor_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monaco-editor.module.scss */ \"./src/renderer/components/monaco-editor/monaco-editor.module.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var monaco_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! monaco-editor */ \"./node_modules/monaco-editor/esm/vs/editor/editor.main.js\");\n/* harmony import */ var _monaco_validators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./monaco-validators */ \"./src/renderer/components/monaco-editor/monaco-validators.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _themes_store_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nfunction createMonacoUri(id) {\n return monaco_editor__WEBPACK_IMPORTED_MODULE_2__.Uri.file(`/monaco-editor/${id}`);\n}\nconst monacoViewStates = new WeakMap();\nlet NonInjectedMonacoEditor = class NonInjectedMonacoEditor extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"staticId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: `editor-id#${Math.round(1e7 * Math.random())}`\n });\n Object.defineProperty(this, \"dispose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.disposer)()\n });\n Object.defineProperty(this, \"containerElem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"editor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"dimensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"unmounting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n // TODO: investigate how to replace with \"common/logger\"\n // currently leads for stucking UI forever & infinite loop.\n // e.g. happens on tab change/create, maybe some other cases too.\n Object.defineProperty(this, \"logger\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: console\n });\n // avoid excessive validations during typing\n Object.defineProperty(this, \"validateLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,lodash__WEBPACK_IMPORTED_MODULE_4__.debounce)(this.validate, 250)\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_9__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_5__.autoBind)(this);\n }\n get id() {\n var _a;\n return (_a = this.props.id) !== null && _a !== void 0 ? _a : this.staticId;\n }\n get theme() {\n var _a;\n return (_a = this.props.theme) !== null && _a !== void 0 ? _a : this.props.themeStore.activeTheme.monacoTheme;\n }\n get model() {\n const uri = createMonacoUri(this.id);\n const model = monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.getModel(uri);\n if (model) {\n return model; // already exists\n }\n const { language, value } = this.props;\n return monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.createModel(value, language, uri);\n }\n get options() {\n return (0,lodash__WEBPACK_IMPORTED_MODULE_4__.merge)({}, this.props.userStore.editorConfiguration, this.props.options);\n }\n get logMetadata() {\n return {\n editorId: this.id,\n model: this.model,\n };\n }\n /**\n * Monitor editor's dom container element box-size and sync with monaco's dimensions\n * @private\n */\n bindResizeObserver() {\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n this.setDimensions(width, height);\n }\n });\n const containerElem = this.editor.getContainerDomNode();\n resizeObserver.observe(containerElem);\n return () => resizeObserver.unobserve(containerElem);\n }\n onModelChange(model, oldModel) {\n var _a, _b;\n this.logger.info(\"[MONACO]: model change\", { model, oldModel }, this.logMetadata);\n if (oldModel) {\n this.saveViewState(oldModel);\n }\n this.editor.setModel(model);\n this.restoreViewState(model);\n this.editor.layout();\n this.editor.focus(); // keep focus in editor, e.g. when clicking between dock-tabs\n (_b = (_a = this.props).onModelChange) === null || _b === void 0 ? void 0 : _b.call(_a, model, oldModel);\n this.validateLazy();\n }\n /**\n * Save current view-model state in the editor.\n * This will allow restore cursor position, selected text, etc.\n */\n saveViewState(model) {\n var _a;\n const viewState = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.saveViewState();\n if (viewState) {\n monacoViewStates.set(model.uri, viewState);\n }\n }\n restoreViewState(model) {\n var _a;\n const viewState = monacoViewStates.get(model.uri);\n if (viewState) {\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.restoreViewState(viewState);\n }\n }\n componentDidMount() {\n try {\n this.createEditor();\n this.logger.info(`[MONACO]: editor did mount`, this.logMetadata);\n }\n catch (error) {\n this.logger.error(`[MONACO]: mounting failed: ${error}`, this.logMetadata);\n }\n }\n componentWillUnmount() {\n this.unmounting = true;\n this.saveViewState(this.model);\n if (this.editor) {\n this.dispose();\n this.editor.dispose();\n }\n }\n createEditor() {\n if (!this.containerElem || this.editor || this.unmounting) {\n return;\n }\n const { language, readOnly, value: defaultValue } = this.props;\n const { theme } = this;\n this.editor = monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.create(this.containerElem, {\n model: this.model,\n detectIndentation: false,\n value: defaultValue,\n language,\n theme,\n readOnly,\n ...this.options,\n });\n this.logger.info(`[MONACO]: editor created for language=${language}, theme=${theme}`, this.logMetadata);\n this.validateLazy(); // validate initial value\n this.restoreViewState(this.model); // restore previous state if any\n if (this.props.autoFocus) {\n this.editor.focus();\n }\n const onDidLayoutChangeDisposer = this.editor.onDidLayoutChange(layoutInfo => {\n var _a, _b;\n (_b = (_a = this.props).onDidLayoutChange) === null || _b === void 0 ? void 0 : _b.call(_a, layoutInfo);\n });\n const onValueChangeDisposer = this.editor.onDidChangeModelContent(event => {\n var _a, _b;\n const value = this.editor.getValue();\n (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value, event);\n this.validateLazy(value);\n });\n const onContentSizeChangeDisposer = this.editor.onDidContentSizeChange((params) => {\n var _a, _b;\n (_b = (_a = this.props).onDidContentSizeChange) === null || _b === void 0 ? void 0 : _b.call(_a, params);\n });\n this.dispose.push((0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.model, this.onModelChange), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.theme, theme => {\n if (theme) {\n monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.setTheme(theme);\n }\n }), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.props.value, value => this.setValue(value)), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.options, opts => this.editor.updateOptions(opts)), () => onDidLayoutChangeDisposer.dispose(), () => onValueChangeDisposer.dispose(), () => onContentSizeChangeDisposer.dispose(), this.bindResizeObserver());\n }\n setDimensions(width, height) {\n var _a;\n this.dimensions.width = width;\n this.dimensions.height = height;\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.layout({ width, height });\n }\n setValue(value = \"\") {\n if (value == this.getValue())\n return;\n this.editor.setValue(value);\n this.validate(value);\n }\n getValue(opts) {\n var _a, _b;\n return (_b = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getValue(opts)) !== null && _b !== void 0 ? _b : \"\";\n }\n focus() {\n var _a;\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.focus();\n }\n validate(value = this.getValue()) {\n var _a, _b;\n const validators = [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _monaco_validators__WEBPACK_IMPORTED_MODULE_3__.monacoValidators[this.props.language], // parsing syntax check\n ].filter(Boolean);\n for (const validate of validators) {\n try {\n validate(value);\n }\n catch (error) {\n (_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, error); // emit error outside\n }\n }\n }\n render() {\n const { className, style } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { \"data-test-id\": \"monaco-editor\", className: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.cssNames)(_monaco_editor_module_scss__WEBPACK_IMPORTED_MODULE_0__[\"default\"].MonacoEditor, className), style: style, ref: elem => this.containerElem = elem }));\n }\n};\nObject.defineProperty(NonInjectedMonacoEditor, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n language: \"yaml\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable.ref,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"containerElem\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable.ref,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"editor\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"dimensions\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"unmounting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"id\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"theme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"model\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"options\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"logMetadata\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Number, Number]),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedMonacoEditor.prototype, \"setDimensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedMonacoEditor.prototype, \"validate\", null);\nNonInjectedMonacoEditor = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_10__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedMonacoEditor);\nconst MonacoEditor = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__.withInjectables)(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((props, ref) => react__WEBPACK_IMPORTED_MODULE_1__.createElement(NonInjectedMonacoEditor, { innerRef: ref, ...props })), {\n getProps: (di, props) => ({\n ...props,\n themeStore: di.inject(_themes_store_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/monaco-editor/monaco-editor.tsx?");
34732
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MonacoEditor\": () => (/* binding */ MonacoEditor),\n/* harmony export */ \"createMonacoUri\": () => (/* binding */ createMonacoUri)\n/* harmony export */ });\n/* harmony import */ var _monaco_editor_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monaco-editor.module.scss */ \"./src/renderer/components/monaco-editor/monaco-editor.module.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var monaco_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! monaco-editor */ \"./node_modules/monaco-editor/esm/vs/editor/editor.main.js\");\n/* harmony import */ var _monaco_validators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./monaco-validators */ \"./src/renderer/components/monaco-editor/monaco-validators.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nfunction createMonacoUri(id) {\n return monaco_editor__WEBPACK_IMPORTED_MODULE_2__.Uri.file(`/monaco-editor/${id}`);\n}\nconst monacoViewStates = new WeakMap();\nlet NonInjectedMonacoEditor = class NonInjectedMonacoEditor extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"staticId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: `editor-id#${Math.round(1e7 * Math.random())}`\n });\n Object.defineProperty(this, \"dispose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.disposer)()\n });\n Object.defineProperty(this, \"containerElem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"editor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"dimensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"unmounting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n // TODO: investigate how to replace with \"common/logger\"\n // currently leads for stucking UI forever & infinite loop.\n // e.g. happens on tab change/create, maybe some other cases too.\n Object.defineProperty(this, \"logger\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: console\n });\n // avoid excessive validations during typing\n Object.defineProperty(this, \"validateLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,lodash__WEBPACK_IMPORTED_MODULE_4__.debounce)(this.validate, 250)\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_9__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_5__.autoBind)(this);\n }\n get id() {\n var _a;\n return (_a = this.props.id) !== null && _a !== void 0 ? _a : this.staticId;\n }\n get theme() {\n var _a;\n return (_a = this.props.theme) !== null && _a !== void 0 ? _a : this.props.activeTheme.get().monacoTheme;\n }\n get model() {\n const uri = createMonacoUri(this.id);\n const model = monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.getModel(uri);\n if (model) {\n return model; // already exists\n }\n const { language, value } = this.props;\n return monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.createModel(value, language, uri);\n }\n get options() {\n return (0,lodash__WEBPACK_IMPORTED_MODULE_4__.merge)({}, this.props.userStore.editorConfiguration, this.props.options);\n }\n get logMetadata() {\n return {\n editorId: this.id,\n model: this.model,\n };\n }\n /**\n * Monitor editor's dom container element box-size and sync with monaco's dimensions\n * @private\n */\n bindResizeObserver() {\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n this.setDimensions(width, height);\n }\n });\n const containerElem = this.editor.getContainerDomNode();\n resizeObserver.observe(containerElem);\n return () => resizeObserver.unobserve(containerElem);\n }\n onModelChange(model, oldModel) {\n var _a, _b;\n this.logger.info(\"[MONACO]: model change\", { model, oldModel }, this.logMetadata);\n if (oldModel) {\n this.saveViewState(oldModel);\n }\n this.editor.setModel(model);\n this.restoreViewState(model);\n this.editor.layout();\n this.editor.focus(); // keep focus in editor, e.g. when clicking between dock-tabs\n (_b = (_a = this.props).onModelChange) === null || _b === void 0 ? void 0 : _b.call(_a, model, oldModel);\n this.validateLazy();\n }\n /**\n * Save current view-model state in the editor.\n * This will allow restore cursor position, selected text, etc.\n */\n saveViewState(model) {\n var _a;\n const viewState = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.saveViewState();\n if (viewState) {\n monacoViewStates.set(model.uri, viewState);\n }\n }\n restoreViewState(model) {\n var _a;\n const viewState = monacoViewStates.get(model.uri);\n if (viewState) {\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.restoreViewState(viewState);\n }\n }\n componentDidMount() {\n try {\n this.createEditor();\n this.logger.info(`[MONACO]: editor did mount`, this.logMetadata);\n }\n catch (error) {\n this.logger.error(`[MONACO]: mounting failed: ${error}`, this.logMetadata);\n }\n }\n componentWillUnmount() {\n this.unmounting = true;\n this.saveViewState(this.model);\n if (this.editor) {\n this.dispose();\n this.editor.dispose();\n }\n }\n createEditor() {\n if (!this.containerElem || this.editor || this.unmounting) {\n return;\n }\n const { language, readOnly, value: defaultValue } = this.props;\n const { theme } = this;\n this.editor = monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.create(this.containerElem, {\n model: this.model,\n detectIndentation: false,\n value: defaultValue,\n language,\n theme,\n readOnly,\n ...this.options,\n });\n this.logger.info(`[MONACO]: editor created for language=${language}, theme=${theme}`, this.logMetadata);\n this.validateLazy(); // validate initial value\n this.restoreViewState(this.model); // restore previous state if any\n if (this.props.autoFocus) {\n this.editor.focus();\n }\n const onDidLayoutChangeDisposer = this.editor.onDidLayoutChange(layoutInfo => {\n var _a, _b;\n (_b = (_a = this.props).onDidLayoutChange) === null || _b === void 0 ? void 0 : _b.call(_a, layoutInfo);\n });\n const onValueChangeDisposer = this.editor.onDidChangeModelContent(event => {\n var _a, _b;\n const value = this.editor.getValue();\n (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value, event);\n this.validateLazy(value);\n });\n const onContentSizeChangeDisposer = this.editor.onDidContentSizeChange((params) => {\n var _a, _b;\n (_b = (_a = this.props).onDidContentSizeChange) === null || _b === void 0 ? void 0 : _b.call(_a, params);\n });\n this.dispose.push((0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.model, this.onModelChange), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.theme, theme => {\n if (theme) {\n monaco_editor__WEBPACK_IMPORTED_MODULE_2__.editor.setTheme(theme);\n }\n }), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.props.value, value => this.setValue(value)), (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.options, opts => this.editor.updateOptions(opts)), () => onDidLayoutChangeDisposer.dispose(), () => onValueChangeDisposer.dispose(), () => onContentSizeChangeDisposer.dispose(), this.bindResizeObserver());\n }\n setDimensions(width, height) {\n var _a;\n this.dimensions.width = width;\n this.dimensions.height = height;\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.layout({ width, height });\n }\n setValue(value = \"\") {\n if (value == this.getValue())\n return;\n this.editor.setValue(value);\n this.validate(value);\n }\n getValue(opts) {\n var _a, _b;\n return (_b = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getValue(opts)) !== null && _b !== void 0 ? _b : \"\";\n }\n focus() {\n var _a;\n (_a = this.editor) === null || _a === void 0 ? void 0 : _a.focus();\n }\n validate(value = this.getValue()) {\n var _a, _b;\n const validators = [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _monaco_validators__WEBPACK_IMPORTED_MODULE_3__.monacoValidators[this.props.language], // parsing syntax check\n ].filter(Boolean);\n for (const validate of validators) {\n try {\n validate(value);\n }\n catch (error) {\n (_b = (_a = this.props).onError) === null || _b === void 0 ? void 0 : _b.call(_a, error); // emit error outside\n }\n }\n }\n render() {\n const { className, style } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { \"data-test-id\": \"monaco-editor\", className: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.cssNames)(_monaco_editor_module_scss__WEBPACK_IMPORTED_MODULE_0__[\"default\"].MonacoEditor, className), style: style, ref: elem => this.containerElem = elem }));\n }\n};\nObject.defineProperty(NonInjectedMonacoEditor, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n language: \"yaml\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable.ref,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"containerElem\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable.ref,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"editor\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"dimensions\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.observable,\n __metadata(\"design:type\", Object)\n], NonInjectedMonacoEditor.prototype, \"unmounting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"id\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"theme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"model\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"options\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedMonacoEditor.prototype, \"logMetadata\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Number, Number]),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedMonacoEditor.prototype, \"setDimensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_9__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedMonacoEditor.prototype, \"validate\", null);\nNonInjectedMonacoEditor = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_10__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedMonacoEditor);\nconst MonacoEditor = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_6__.withInjectables)(react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((props, ref) => react__WEBPACK_IMPORTED_MODULE_1__.createElement(NonInjectedMonacoEditor, { innerRef: ref, ...props })), {\n getProps: (di, props) => ({\n ...props,\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/monaco-editor/monaco-editor.tsx?");
34722
34733
 
34723
34734
  /***/ }),
34724
34735
 
@@ -34938,7 +34949,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34938
34949
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34939
34950
 
34940
34951
  "use strict";
34941
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Select\": () => (/* binding */ Select),\n/* harmony export */ \"onMultiSelectFor\": () => (/* binding */ onMultiSelectFor)\n/* harmony export */ });\n/* harmony import */ var _select_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select.scss */ \"./src/renderer/components/select/select.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/index-a7690a33.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/Select-54ac8379.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/react-select.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _themes_store_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../themes/store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n// Wrapper for \"react-select\" component\n// API docs: https://react-select.com/\n\n\n\n\n\n\n\n\nconst { Menu } = react_select__WEBPACK_IMPORTED_MODULE_5__.c;\nfunction isGroup(optionOrGroup) {\n return Array.isArray(optionOrGroup.options);\n}\nconst defaultFilter = (0,react_select__WEBPACK_IMPORTED_MODULE_6__.c)({\n stringify(option) {\n if (typeof option.value === \"symbol\") {\n return option.label;\n }\n return `${option.label} ${option.value}`;\n },\n});\nfunction onMultiSelectFor(collection) {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_7__.action)((newValue, meta) => {\n switch (meta.action) {\n case \"clear\":\n collection.clear();\n break;\n case \"deselect-option\":\n case \"remove-value\":\n case \"pop-value\":\n if (meta.option) {\n collection.delete(meta.option.value);\n }\n break;\n case \"select-option\":\n if (meta.option) {\n collection.add(meta.option.value);\n }\n break;\n }\n });\n}\nlet NonInjectedSelect = class NonInjectedSelect extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_7__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.autoBind)(this);\n }\n get themeClass() {\n const themeName = this.props.themeName || this.props.themeStore.activeTheme.type;\n return `theme-${themeName}`;\n }\n onKeyDown(evt) {\n var _a, _b;\n (_b = (_a = this.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, evt);\n if (evt.nativeEvent.code === \"Escape\") {\n evt.stopPropagation(); // don't close the <Dialog/>\n }\n }\n filterSelectedMultiValue(values, options) {\n if (!values) {\n return null;\n }\n return options\n .flatMap(option => (isGroup(option)\n ? option.options\n : option))\n .filter(option => values.includes(option.value));\n }\n findSelectedSingleValue(value, options) {\n if (value === null) {\n return null;\n }\n for (const optionOrGroup of options) {\n if (isGroup(optionOrGroup)) {\n for (const option of optionOrGroup.options) {\n if (option.value === value) {\n return option;\n }\n }\n }\n else if (optionOrGroup.value === value) {\n return optionOrGroup;\n }\n }\n return null;\n }\n findSelectedPropsValue(value, options, isMulti) {\n if (isMulti) {\n return this.filterSelectedMultiValue(value, options);\n }\n return this.findSelectedSingleValue(value, options);\n }\n render() {\n const { className, menuClass, components: { Menu: WrappedMenu = Menu, ...components } = {}, styles, value = null, options, isMulti, id: inputId, onChange, ...props } = this.props;\n const convertedOptions = options.map(option => (typeof option === \"string\"\n ? {\n value: option,\n label: option,\n }\n : option));\n if (options.length > 0 && !(options === null || options === void 0 ? void 0 : options[0]).label) {\n console.warn(\"[SELECT]: will not display any label in dropdown\");\n }\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { ...props, styles: {\n menuPortal: styles => ({\n ...styles,\n zIndex: \"auto\",\n }),\n ...styles,\n }, instanceId: inputId, inputId: inputId, filterOption: defaultFilter, isMulti: isMulti, options: convertedOptions, value: this.findSelectedPropsValue(value, convertedOptions, isMulti), onKeyDown: this.onKeyDown, className: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Select\", this.themeClass, className), classNamePrefix: \"Select\", onChange: (0,mobx__WEBPACK_IMPORTED_MODULE_7__.action)(onChange), components: {\n ...components,\n Menu: ({ className, ...props }) => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(WrappedMenu, { ...props, className: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(menuClass, this.themeClass, className, {\n [`${inputId}-options`]: !!inputId,\n }) })),\n } }));\n }\n};\nObject.defineProperty(NonInjectedSelect, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n menuPortalTarget: document.body,\n menuPlacement: \"auto\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedSelect.prototype, \"themeClass\", null);\nNonInjectedSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_9__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedSelect);\nconst Select = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__.withInjectables)(NonInjectedSelect, {\n getProps: (di, props) => ({\n ...props,\n themeStore: di.inject(_themes_store_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/select/select.tsx?");
34952
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Select\": () => (/* binding */ Select),\n/* harmony export */ \"onMultiSelectFor\": () => (/* binding */ onMultiSelectFor)\n/* harmony export */ });\n/* harmony import */ var _select_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select.scss */ \"./src/renderer/components/select/select.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/index-a7690a33.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/Select-54ac8379.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/react-select.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n// Wrapper for \"react-select\" component\n// API docs: https://react-select.com/\n\n\n\n\n\n\n\n\nconst { Menu } = react_select__WEBPACK_IMPORTED_MODULE_5__.c;\nfunction isGroup(optionOrGroup) {\n return Array.isArray(optionOrGroup.options);\n}\nconst defaultFilter = (0,react_select__WEBPACK_IMPORTED_MODULE_6__.c)({\n stringify(option) {\n if (typeof option.value === \"symbol\") {\n return option.label;\n }\n return `${option.label} ${option.value}`;\n },\n});\nfunction onMultiSelectFor(collection) {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_7__.action)((newValue, meta) => {\n switch (meta.action) {\n case \"clear\":\n collection.clear();\n break;\n case \"deselect-option\":\n case \"remove-value\":\n case \"pop-value\":\n if (meta.option) {\n collection.delete(meta.option.value);\n }\n break;\n case \"select-option\":\n if (meta.option) {\n collection.add(meta.option.value);\n }\n break;\n }\n });\n}\nlet NonInjectedSelect = class NonInjectedSelect extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_7__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.autoBind)(this);\n }\n get themeClass() {\n const themeName = this.props.themeName || this.props.activeTheme.get().type;\n return `theme-${themeName}`;\n }\n onKeyDown(evt) {\n var _a, _b;\n (_b = (_a = this.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, evt);\n if (evt.nativeEvent.code === \"Escape\") {\n evt.stopPropagation(); // don't close the <Dialog/>\n }\n }\n filterSelectedMultiValue(values, options) {\n if (!values) {\n return null;\n }\n return options\n .flatMap(option => (isGroup(option)\n ? option.options\n : option))\n .filter(option => values.includes(option.value));\n }\n findSelectedSingleValue(value, options) {\n if (value === null) {\n return null;\n }\n for (const optionOrGroup of options) {\n if (isGroup(optionOrGroup)) {\n for (const option of optionOrGroup.options) {\n if (option.value === value) {\n return option;\n }\n }\n }\n else if (optionOrGroup.value === value) {\n return optionOrGroup;\n }\n }\n return null;\n }\n findSelectedPropsValue(value, options, isMulti) {\n if (isMulti) {\n return this.filterSelectedMultiValue(value, options);\n }\n return this.findSelectedSingleValue(value, options);\n }\n render() {\n const { className, menuClass, components: { Menu: WrappedMenu = Menu, ...components } = {}, styles, value = null, options, isMulti, id: inputId, onChange, ...props } = this.props;\n const convertedOptions = options.map(option => (typeof option === \"string\"\n ? {\n value: option,\n label: option,\n }\n : option));\n if (options.length > 0 && !(options === null || options === void 0 ? void 0 : options[0]).label) {\n console.warn(\"[SELECT]: will not display any label in dropdown\");\n }\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { ...props, styles: {\n menuPortal: styles => ({\n ...styles,\n zIndex: \"auto\",\n }),\n ...styles,\n }, instanceId: inputId, inputId: inputId, filterOption: defaultFilter, isMulti: isMulti, options: convertedOptions, value: this.findSelectedPropsValue(value, convertedOptions, isMulti), onKeyDown: this.onKeyDown, className: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Select\", this.themeClass, className), classNamePrefix: \"Select\", onChange: (0,mobx__WEBPACK_IMPORTED_MODULE_7__.action)(onChange), components: {\n ...components,\n Menu: ({ className, ...props }) => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(WrappedMenu, { ...props, className: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(menuClass, this.themeClass, className, {\n [`${inputId}-options`]: !!inputId,\n }) })),\n } }));\n }\n};\nObject.defineProperty(NonInjectedSelect, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n menuPortalTarget: document.body,\n menuPlacement: \"auto\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedSelect.prototype, \"themeClass\", null);\nNonInjectedSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_9__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedSelect);\nconst Select = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__.withInjectables)(NonInjectedSelect, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/select/select.tsx?");
34942
34953
 
34943
34954
  /***/ }),
34944
34955
 
@@ -35514,6 +35525,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35514
35525
 
35515
35526
  /***/ }),
35516
35527
 
35528
+ /***/ "./src/renderer/themes/active.injectable.ts":
35529
+ /*!**************************************************!*\
35530
+ !*** ./src/renderer/themes/active.injectable.ts ***!
35531
+ \**************************************************/
35532
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35533
+
35534
+ "use strict";
35535
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _store_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store.injectable */ \"./src/renderer/themes/store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst activeThemeInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"active-theme\",\n instantiate: (di) => {\n const store = di.inject(_store_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return (0,mobx__WEBPACK_IMPORTED_MODULE_2__.computed)(() => store.activeTheme);\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (activeThemeInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/themes/active.injectable.ts?");
35536
+
35537
+ /***/ }),
35538
+
35517
35539
  /***/ "./src/renderer/themes/lens-dark.ts":
35518
35540
  /*!******************************************!*\
35519
35541
  !*** ./src/renderer/themes/lens-dark.ts ***!
@@ -40109,7 +40131,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
40109
40131
  /***/ ((module) => {
40110
40132
 
40111
40133
  "use strict";
40112
- eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.0.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-build-version\":\"yarn run ts-node build/set_build_version.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.0\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"9.0.3\",\"@ogre-tools/injectable\":\"9.0.3\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"9.0.3\",\"@ogre-tools/injectable-extension-for-mobx\":\"9.0.3\",\"@ogre-tools/injectable-react\":\"9.0.3\",\"@sentry/electron\":\"^3.0.7\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.0.18\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.1\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.2\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^6.14.17\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.2.0\",\"react-virtualized-auto-sizer\":\"^1.0.6\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.0.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.1\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.8.1\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/core\":\"^1.2.242\",\"@swc/jest\":\"^0.2.22\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.184\",\"@types/marked\":\"^4.0.3\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.55\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.18\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.10\",\"@types/sharp\":\"^0.30.5\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^4.0.5\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.35.1\",\"@typescript-eslint/parser\":\"^5.35.1\",\"adr\":\"^1.4.1\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.3.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.0.13\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.5\",\"esbuild-loader\":\"^2.19.0\",\"eslint\":\"^8.22.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"^7.31.0\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-fetch-mock\":\"^3.0.3\",\"jest-mock-extended\":\"^2.0.7\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.19\",\"playwright\":\"^1.24.2\",\"postcss\":\"^8.4.16\",\"postcss-loader\":\"^6.2.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.0\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.3\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.54.5\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.30.7\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.3.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.10\",\"typedoc-plugin-markdown\":\"^3.13.1\",\"typescript\":\"^4.7.4\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.10.0\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40134
+ eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.0.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-build-version\":\"yarn run ts-node build/set_build_version.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\",\"precreate-release-pr\":\"npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs\",\"create-release-pr\":\"node ./scripts/create-release-pr.mjs\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.0\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"9.0.3\",\"@ogre-tools/injectable\":\"9.0.3\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"9.0.3\",\"@ogre-tools/injectable-extension-for-mobx\":\"9.0.3\",\"@ogre-tools/injectable-react\":\"9.0.3\",\"@sentry/electron\":\"^3.0.7\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.0.19\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.1\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.2\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^6.14.17\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.2.0\",\"react-virtualized-auto-sizer\":\"^1.0.6\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.0.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.1\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.8.1\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.2.242\",\"@swc/jest\":\"^0.2.22\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.184\",\"@types/marked\":\"^4.0.6\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.55\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.18\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.12\",\"@types/sharp\":\"^0.30.5\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^4.0.5\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.35.1\",\"@typescript-eslint/parser\":\"^5.35.1\",\"adr\":\"^1.4.1\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.3.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.0.13\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.5\",\"esbuild-loader\":\"^2.19.0\",\"eslint\":\"^8.23.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.30.1\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-fetch-mock\":\"^3.0.3\",\"jest-mock-extended\":\"^2.0.7\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.19\",\"playwright\":\"^1.25.1\",\"postcss\":\"^8.4.16\",\"postcss-loader\":\"^6.2.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.0\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.3\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.54.5\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.30.7\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.3.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.11\",\"typedoc-plugin-markdown\":\"^3.13.1\",\"typescript\":\"^4.7.4\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.10.0\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40113
40135
 
40114
40136
  /***/ }),
40115
40137
 
@@ -2,4 +2,10 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- export declare function getActiveTheme(): import("../../renderer/themes/store").Theme;
5
+ import type { LensTheme } from "../../renderer/themes/store";
6
+ export declare const activeTheme: import("mobx").IComputedValue<LensTheme>;
7
+ /**
8
+ * @deprecated This hides the reactivity of active theme, use {@link activeTheme} instead
9
+ */
10
+ export declare function getActiveTheme(): LensTheme;
11
+ export type { LensTheme };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ export {};
@@ -2,13 +2,13 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import { PrometheusLens } from "./lens";
6
5
  import type { CoreV1Api } from "@kubernetes/client-node";
7
- import type { PrometheusService } from "./provider-registry";
8
- export declare class PrometheusHelm extends PrometheusLens {
6
+ import { PrometheusProvider, type PrometheusService } from "./provider-registry";
7
+ export declare class PrometheusHelm extends PrometheusProvider {
9
8
  readonly id: string;
10
9
  readonly name: string;
11
10
  readonly rateAccuracy: string;
12
11
  readonly isConfigurable: boolean;
13
12
  getPrometheusService(client: CoreV1Api): Promise<PrometheusService>;
13
+ getQuery(opts: Record<string, string>, queryName: string): string;
14
14
  }
@@ -1,7 +1,7 @@
1
- import type { IObservableValue } from "mobx";
1
+ import type { IComputedValue, IObservableValue } from "mobx";
2
2
  import type { TargetHelmRelease } from "../target-helm-release.injectable";
3
3
  import type { CallForHelmRelease } from "./call-for-helm-release/call-for-helm-release.injectable";
4
- import type { ThemeStore } from "../../../../themes/store";
4
+ import type { LensTheme } from "../../../../themes/store";
5
5
  import type { CallForHelmReleaseConfiguration } from "./call-for-helm-release-configuration/call-for-helm-release-configuration.injectable";
6
6
  import type { GetResourceDetailsUrl } from "./get-resource-details-url.injectable";
7
7
  import type { CallForHelmReleaseUpdate } from "../../update-release/call-for-helm-release-update/call-for-helm-release-update.injectable";
@@ -25,7 +25,7 @@ export interface ConfigurationInput {
25
25
  interface Dependencies {
26
26
  callForHelmRelease: CallForHelmRelease;
27
27
  targetRelease: TargetHelmRelease;
28
- themeStore: ThemeStore;
28
+ activeTheme: IComputedValue<LensTheme>;
29
29
  callForHelmReleaseConfiguration: CallForHelmReleaseConfiguration;
30
30
  getResourceDetailsUrl: GetResourceDetailsUrl;
31
31
  updateRelease: CallForHelmReleaseUpdate;
@@ -4,7 +4,25 @@
4
4
  */
5
5
  import "./overview-workload-status.scss";
6
6
  import React from "react";
7
+ import type { PascalCase } from "type-fest";
8
+ import type { Workload } from "./workloads/workload-injection-token";
9
+ export declare type LowercaseOrPascalCase<T extends string> = Lowercase<T> | PascalCase<T>;
10
+ export declare type WorkloadStatus = Partial<Record<LowercaseOrPascalCase<keyof typeof statusBackgroundColorMapping>, number>>;
7
11
  export interface OverviewWorkloadStatusProps {
8
- status: Partial<Record<string, number>>;
12
+ workload: Workload;
9
13
  }
14
+ declare const statusBackgroundColorMapping: {
15
+ readonly running: "colorOk";
16
+ readonly scheduled: "colorOk";
17
+ readonly pending: "colorWarning";
18
+ readonly suspended: "colorWarning";
19
+ readonly evicted: "colorError";
20
+ readonly succeeded: "colorSuccess";
21
+ readonly failed: "colorError";
22
+ readonly terminated: "colorTerminated";
23
+ readonly terminating: "colorTerminated";
24
+ readonly unknown: "colorVague";
25
+ readonly complete: "colorSuccess";
26
+ };
10
27
  export declare const OverviewWorkloadStatus: React.FunctionComponent<OverviewWorkloadStatusProps>;
28
+ export {};
@@ -1,9 +1,10 @@
1
1
  import type { IComputedValue } from "mobx";
2
+ import type { WorkloadStatus } from "../overview-workload-status";
2
3
  export interface Workload {
3
4
  resourceName: string;
4
5
  open: () => void;
5
6
  amountOfItems: IComputedValue<number>;
6
- status: IComputedValue<Partial<Record<string, number>>>;
7
+ status: IComputedValue<WorkloadStatus>;
7
8
  title: string;
8
9
  orderNumber: number;
9
10
  }
@@ -27,6 +27,7 @@ export interface ChartProps {
27
27
  redraw?: boolean;
28
28
  title?: string;
29
29
  className?: string;
30
+ "data-testid"?: string;
30
31
  }
31
32
  export declare enum ChartKind {
32
33
  PIE = "pie",
@@ -2,10 +2,8 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import "./controls.scss";
6
- import React from "react";
7
5
  import type { LogTabViewModel } from "./logs-view-model";
8
6
  export interface LogControlsProps {
9
7
  model: LogTabViewModel;
10
8
  }
11
- export declare const LogControls: React.FunctionComponent<LogControlsProps>;
9
+ export declare const LogControls: ({ model }: LogControlsProps) => JSX.Element | null;
@@ -0,0 +1,4 @@
1
+ import type { PodLogsQuery } from "../../../../common/k8s-api/endpoints";
2
+ import type { ResourceDescriptor } from "../../../../common/k8s-api/kube-api";
3
+ declare const downloadAllLogsInjectable: import("@ogre-tools/injectable").Injectable<(params: ResourceDescriptor, query: PodLogsQuery) => Promise<void>, unknown, void>;
4
+ export default downloadAllLogsInjectable;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ interface DownloadLogsDropdownProps {
6
+ downloadVisibleLogs: () => void;
7
+ downloadAllLogs: () => Promise<void> | undefined;
8
+ }
9
+ export declare function DownloadLogsDropdown({ downloadAllLogs, downloadVisibleLogs }: DownloadLogsDropdownProps): JSX.Element;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const downloadLogsInjectable: import("@ogre-tools/injectable").Injectable<(filename: string, logs: string[]) => void, unknown, void>;
2
+ export default downloadLogsInjectable;
@@ -0,0 +1,2 @@
1
+ declare const getRandomIdForPodLogsTabInjectable: import("@ogre-tools/injectable").Injectable<() => string, unknown, void>;
2
+ export default getRandomIdForPodLogsTabInjectable;
@@ -6,10 +6,11 @@ import type { LogTabData } from "./tab-store";
6
6
  import type { IComputedValue } from "mobx";
7
7
  import type { TabId } from "../dock/store";
8
8
  import type { SearchStore } from "../../../search-store/search-store";
9
- import type { Pod } from "../../../../common/k8s-api/endpoints";
9
+ import type { Pod, PodLogsQuery } from "../../../../common/k8s-api/endpoints";
10
10
  import type { GetPodById } from "../../+workloads-pods/get-pod-by-id.injectable";
11
11
  import type { GetPodsByOwnerId } from "../../+workloads-pods/get-pods-by-owner-id.injectable";
12
12
  import type { LoadLogs } from "./load-logs.injectable";
13
+ import type { ResourceDescriptor } from "../../../../common/k8s-api/kube-api";
13
14
  export interface LogTabViewModelDependencies {
14
15
  getLogs: (tabId: TabId) => string[];
15
16
  getLogsWithoutTimestamps: (tabId: TabId) => string[];
@@ -23,6 +24,8 @@ export interface LogTabViewModelDependencies {
23
24
  getPodById: GetPodById;
24
25
  getPodsByOwnerId: GetPodsByOwnerId;
25
26
  areLogsPresent: (tabId: TabId) => boolean;
27
+ downloadLogs: (filename: string, logs: string[]) => void;
28
+ downloadAllLogs: (params: ResourceDescriptor, query: PodLogsQuery) => Promise<void>;
26
29
  searchStore: SearchStore;
27
30
  }
28
31
  export declare class LogTabViewModel {
@@ -42,4 +45,6 @@ export declare class LogTabViewModel {
42
45
  reloadLogs: () => Promise<void>;
43
46
  renameTab: (title: string) => void;
44
47
  stopLoadingLogs: () => void;
48
+ downloadLogs: () => void;
49
+ downloadAllLogs: () => Promise<void> | undefined;
45
50
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ import type { HTMLAttributes } from "react";
6
+ import React from "react";
7
+ interface DropdownProps extends HTMLAttributes<HTMLDivElement> {
8
+ contentForToggle: React.ReactNode;
9
+ }
10
+ export declare function Dropdown(props: DropdownProps): JSX.Element;
11
+ export {};
@@ -65,6 +65,7 @@ export interface ApplicationBuilder {
65
65
  helmCharts: {
66
66
  navigate: NavigateToHelmCharts;
67
67
  };
68
+ navigateWith: (token: Injectable<() => void, any, void>) => void;
68
69
  select: {
69
70
  openMenu: (id: string) => {
70
71
  selectOption: (labelText: string) => void;
@@ -0,0 +1,2 @@
1
+ declare const activeThemeInjectable: import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<import("./store").LensTheme>, unknown, void>;
2
+ export default activeThemeInjectable;
@@ -2,6 +2,6 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import type { Theme } from "./store";
6
- declare const lensDarkTheme: Theme;
5
+ import type { LensTheme } from "./store";
6
+ declare const lensDarkTheme: LensTheme;
7
7
  export default lensDarkTheme;
@@ -2,6 +2,6 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import type { Theme } from "./store";
6
- declare const lensLightTheme: Theme;
5
+ import type { LensTheme } from "./store";
6
+ declare const lensLightTheme: LensTheme;
7
7
  export default lensLightTheme;
@@ -5,7 +5,7 @@
5
5
  import type { MonacoTheme } from "../components/monaco-editor";
6
6
  import type { IpcRenderer } from "electron";
7
7
  export declare type ThemeId = string;
8
- export interface Theme {
8
+ export interface LensTheme {
9
9
  name: string;
10
10
  type: "dark" | "light";
11
11
  colors: Record<string, string>;
@@ -30,13 +30,13 @@ export declare class ThemeStore {
30
30
  private get activeThemeId();
31
31
  private get terminalThemeId();
32
32
  private readonly defaultTheme;
33
- get activeTheme(): Theme;
33
+ get activeTheme(): LensTheme;
34
34
  private get terminalColors();
35
35
  get xtermColors(): Record<string, string>;
36
- get themes(): import("type-fest/source/readonly-deep").ReadonlyMapDeep<string, Theme>;
36
+ get themes(): import("type-fest/source/readonly-deep").ReadonlyMapDeep<string, LensTheme>;
37
37
  constructor(dependencies: Dependencies);
38
38
  init(): Promise<void>;
39
- getThemeById(themeId: ThemeId): Theme | undefined;
39
+ getThemeById(themeId: ThemeId): LensTheme | undefined;
40
40
  protected applyActiveTheme(): void;
41
41
  }
42
42
  export {};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "6.0.1-git.b421e254db.0",
5
+ "version": "6.0.1-git.c8fe453948.0",
6
6
  "copyright": "© 2022 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",