@k8slens/extensions 5.4.1-git.d72ebac5f3.0 → 5.4.1-git.e59cb04d5a.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/k8s-api/api-manager.d.ts +3 -3
- package/dist/src/extensions/common-api/registrations.d.ts +1 -1
- package/dist/src/extensions/extension-api.js +26 -26
- package/dist/src/extensions/lens-renderer-extension.d.ts +4 -2
- package/dist/src/extensions/registries/index.d.ts +0 -2
- package/dist/src/renderer/components/+workloads-overview/detail-components.injectable.d.ts +4 -0
- package/dist/src/renderer/components/+workloads-overview/workloads-overview-detail-registration.d.ts +13 -0
- package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-icon.d.ts +4 -5
- package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-icon.test.d.ts +1 -0
- package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-registration.d.ts +11 -0
- package/dist/src/renderer/components/kube-object-status-icon/status-registrations.injectable.d.ts +3 -0
- package/dist/src/renderer/components/kube-object-status-icon/statuses-for-kube-object.injectable.d.ts +4 -0
- package/dist/src/renderer/components/select/select.test.d.ts +1 -0
- package/dist/src/renderer/components/switch/switcher.d.ts +1 -1
- package/dist/src/renderer/initializers/index.d.ts +0 -1
- package/package.json +1 -1
- package/dist/src/extensions/registries/kube-object-status-registry.d.ts +0 -15
- package/dist/src/extensions/registries/workloads-overview-detail-registry.d.ts +0 -19
- package/dist/src/renderer/initializers/workloads-overview-detail-registry.d.ts +0 -5
|
@@ -12,10 +12,10 @@ export declare class ApiManager {
|
|
|
12
12
|
constructor();
|
|
13
13
|
getApi(pathOrCallback: string | ((api: KubeApi<KubeObject>) => boolean)): KubeApi<KubeObject<import("./kube-object").KubeObjectMetadata, any, any>>;
|
|
14
14
|
getApiByKind(kind: string, apiVersion: string): KubeApi<KubeObject<import("./kube-object").KubeObjectMetadata, any, any>>;
|
|
15
|
-
registerApi(apiBase: string, api: KubeApi<
|
|
16
|
-
protected resolveApi
|
|
15
|
+
registerApi<K extends KubeObject>(apiBase: string, api: KubeApi<K>): void;
|
|
16
|
+
protected resolveApi(api?: string | KubeApi<KubeObject>): KubeApi<KubeObject> | undefined;
|
|
17
17
|
unregisterApi(api: string | KubeApi<KubeObject>): void;
|
|
18
|
-
registerStore(store: KubeObjectStore<
|
|
18
|
+
registerStore<K extends KubeObject>(store: KubeObjectStore<K>, apis?: KubeApi<K>[]): void;
|
|
19
19
|
getStore<S extends KubeObjectStore<KubeObject>>(api: string | KubeApi<KubeObject>): S | undefined;
|
|
20
20
|
lookupApiLink(ref: IKubeObjectRef, parentObject?: KubeObject): string;
|
|
21
21
|
}
|
|
@@ -6,7 +6,7 @@ export type { StatusBarRegistration } from "../../renderer/components/status-bar
|
|
|
6
6
|
export type { KubeObjectMenuRegistration, KubeObjectMenuComponents } from "../../renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-registration";
|
|
7
7
|
export type { AppPreferenceRegistration, AppPreferenceComponents } from "../../renderer/components/+preferences/app-preferences/app-preference-registration";
|
|
8
8
|
export type { KubeObjectDetailRegistration, KubeObjectDetailComponents } from "../registries/kube-object-detail-registry";
|
|
9
|
-
export type { KubeObjectStatusRegistration } from "
|
|
9
|
+
export type { KubeObjectStatusRegistration } from "../../renderer/components/kube-object-status-icon/kube-object-status-registration";
|
|
10
10
|
export type { PageRegistration, RegisteredPage, PageParams, PageComponentProps, PageComponents, PageTarget } from "../registries/page-registry";
|
|
11
11
|
export type { ClusterPageMenuRegistration, ClusterPageMenuComponents } from "../registries/page-menu-registry";
|
|
12
12
|
export type { ProtocolHandlerRegistration, RouteParams as ProtocolRouteParams, RouteHandler as ProtocolRouteHandler } from "../registries/protocol-handler";
|
|
@@ -34229,7 +34229,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
34229
34229
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
34230
34230
|
|
|
34231
34231
|
"use strict";
|
|
34232
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ExtensionLoader\": () => (/* binding */ ExtensionLoader)\n/* harmony export */ });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _registries__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../registries */ \"./src/extensions/registries/index.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _renderer_ipc__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../renderer/ipc */ \"./src/renderer/ipc/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 */\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\nconst logModule = \"[EXTENSIONS-LOADER]\";\n/**\n * Loads installed extensions to the Lens application\n */\nclass ExtensionLoader {\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"extensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n Object.defineProperty(this, \"instances\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n /**\n * This is the set of extensions that don't come with either\n * - Main.LensExtension when running in the main process\n * - Renderer.LensExtension when running in the renderer process\n */\n Object.defineProperty(this, \"nonInstancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.set()\n });\n /**\n * This is updated by the `observe` in the constructor. DO NOT write directly to it\n */\n Object.defineProperty(this, \"instancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n // emits event \"remove\" of type LensExtension when the extension is removed\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new events__WEBPACK_IMPORTED_MODULE_1__.EventEmitter()\n });\n Object.defineProperty(this, \"isLoaded\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"loadOnClusterManagerRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(`${logModule}: load on main renderer (cluster manager)`);\n return this.autoInitExtensions(async (extension) => {\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_7__.GlobalPageRegistry.getInstance().add(extension.globalPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.EntitySettingRegistry.getInstance().add(extension.entitySettings),\n _registries__WEBPACK_IMPORTED_MODULE_7__.CatalogEntityDetailRegistry.getInstance().add(extension.catalogEntityDetailItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object.defineProperty(this, \"loadOnClusterRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (getCluster) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(`${logModule}: load on cluster renderer (dashboard)`);\n this.autoInitExtensions(async (extension) => {\n // getCluster must be a callback, as the entity might be available only after an extension has been loaded\n if ((await extension.isEnabledForCluster(getCluster())) === false) {\n return [];\n }\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_7__.ClusterPageRegistry.getInstance().add(extension.clusterPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.ClusterPageMenuRegistry.getInstance().add(extension.clusterPageMenus, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.KubeObjectDetailRegistry.getInstance().add(extension.kubeObjectDetailItems),\n _registries__WEBPACK_IMPORTED_MODULE_7__.KubeObjectStatusRegistry.getInstance().add(extension.kubeObjectStatusTexts),\n _registries__WEBPACK_IMPORTED_MODULE_7__.WorkloadsOverviewDetailRegistry.getInstance().add(extension.kubeWorkloadsOverviewItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.makeObservable)(this);\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.observe)(this.instances, change => {\n switch (change.type) {\n case \"add\":\n if (this.instancesByName.has(change.newValue.name)) {\n throw new TypeError(\"Extension names must be unique\");\n }\n this.instancesByName.set(change.newValue.name, change.newValue);\n break;\n case \"delete\":\n this.instancesByName.delete(change.oldValue.name);\n break;\n case \"update\":\n throw new Error(\"Extension instances shouldn't be updated\");\n }\n });\n }\n get whenLoaded() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_10__.when)(() => this.isLoaded);\n }\n get enabledExtensionInstances() {\n return [...this.instances.values()].filter(extension => extension.isEnabled);\n }\n get userExtensions() {\n const extensions = this.toJSON();\n extensions.forEach((ext, extId) => {\n if (ext.isBundled) {\n extensions.delete(extId);\n }\n });\n return extensions;\n }\n /**\n * Get the extension instance by its manifest name\n * @param name The name of the extension\n * @returns one of the following:\n * - the instance of `Main.LensExtension` on the main process if created\n * - the instance of `Renderer.LensExtension` on the renderer process if created\n * - `null` if no class definition is provided for the current process\n * - `undefined` if the name is not known about\n */\n getInstanceByName(name) {\n if (this.nonInstancesByName.has(name)) {\n return null;\n }\n return this.instancesByName.get(name);\n }\n // Transform userExtensions to a state object for storing into ExtensionsStore\n get storeState() {\n return Object.fromEntries(Array.from(this.userExtensions)\n .map(([extId, extension]) => [extId, {\n enabled: extension.isEnabled,\n name: extension.manifest.name,\n }]));\n }\n async init() {\n if (electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer) {\n await this.initRenderer();\n }\n else {\n await this.initMain();\n }\n await Promise.all([this.whenLoaded]);\n // broadcasting extensions between main/renderer processes\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.toJSON(), () => this.broadcastExtensions(), {\n fireImmediately: true,\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.storeState, (state) => {\n this.dependencies.updateExtensionsState(state);\n });\n }\n initExtensions(extensions) {\n this.extensions.replace(extensions);\n }\n addExtension(extension) {\n this.extensions.set(extension.id, extension);\n }\n removeInstance(lensExtensionId) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`${logModule} deleting extension instance ${lensExtensionId}`);\n const instance = this.instances.get(lensExtensionId);\n if (!instance) {\n return;\n }\n try {\n instance.disable();\n this.events.emit(\"remove\", instance);\n this.instances.delete(lensExtensionId);\n this.nonInstancesByName.delete(instance.name);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: deactivation extension error`, { lensExtensionId, error });\n }\n }\n removeExtension(lensExtensionId) {\n this.removeInstance(lensExtensionId);\n if (!this.extensions.delete(lensExtensionId)) {\n throw new Error(`Can't remove extension ${lensExtensionId}, doesn't exist.`);\n }\n }\n setIsEnabled(lensExtensionId, isEnabled) {\n this.extensions.get(lensExtensionId).isEnabled = isEnabled;\n }\n async initMain() {\n this.isLoaded = true;\n this.loadOnMain();\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcMainHandle)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel, () => {\n return Array.from(this.toJSON());\n });\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcMainOn)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromRendererChannel, (event, extensions) => {\n this.syncExtensions(extensions);\n });\n }\n async initRenderer() {\n const extensionListHandler = (extensions) => {\n this.isLoaded = true;\n this.syncExtensions(extensions);\n const receivedExtensionIds = extensions.map(([lensExtensionId]) => lensExtensionId);\n // Remove deleted extensions in renderer side only\n this.extensions.forEach((_, lensExtensionId) => {\n if (!receivedExtensionIds.includes(lensExtensionId)) {\n this.removeExtension(lensExtensionId);\n }\n });\n };\n (0,_renderer_ipc__WEBPACK_IMPORTED_MODULE_9__.requestExtensionLoaderInitialState)().then(extensionListHandler);\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcRendererOn)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel, (event, extensions) => {\n extensionListHandler(extensions);\n });\n }\n broadcastExtensions() {\n const channel = electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer\n ? _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromRendererChannel\n : _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel;\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.broadcastMessage)(channel, Array.from(this.extensions));\n }\n syncExtensions(extensions) {\n extensions.forEach(([lensExtensionId, extension]) => {\n if (!(0,lodash__WEBPACK_IMPORTED_MODULE_2__.isEqual)(this.extensions.get(lensExtensionId), extension)) {\n this.extensions.set(lensExtensionId, extension);\n }\n });\n }\n loadOnMain() {\n this.autoInitExtensions(() => Promise.resolve([]));\n }\n async loadExtensions(installedExtensions, register) {\n // Steps of the function:\n // 1. require and call .activate for each Extension\n // 2. Wait until every extension's onActivate has been resolved\n // 3. Call .enable for each extension\n // 4. Return ExtensionLoading[]\n const extensions = [...installedExtensions.entries()]\n .map(([extId, extension]) => {\n const alreadyInit = this.instances.has(extId) || this.nonInstancesByName.has(extension.manifest.name);\n if (extension.isCompatible && extension.isEnabled && !alreadyInit) {\n try {\n const LensExtensionClass = this.requireExtension(extension);\n if (!LensExtensionClass) {\n this.nonInstancesByName.add(extension.manifest.name);\n return null;\n }\n const instance = this.dependencies.createExtensionInstance(LensExtensionClass, extension);\n this.instances.set(extId, instance);\n return {\n instance,\n installedExtension: extension,\n activated: instance.activate(),\n };\n }\n catch (err) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: error loading extension`, { ext: extension, err });\n }\n }\n else if (!extension.isEnabled && alreadyInit) {\n this.removeInstance(extId);\n }\n return null;\n })\n // Remove null values\n .filter(extension => Boolean(extension));\n // We first need to wait until each extension's `onActivate` is resolved or rejected,\n // as this might register new catalog categories. Afterwards we can safely .enable the extension.\n await Promise.all(extensions.map(extension => \n // If extension activation fails, log error\n extension.activated.catch((error) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: activation extension error`, { ext: extension.installedExtension, error });\n })));\n // Return ExtensionLoading[]\n return extensions.map(extension => {\n const loaded = extension.instance.enable(register).catch((err) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: failed to enable`, { ext: extension, err });\n });\n return {\n isBundled: extension.installedExtension.isBundled,\n loaded,\n };\n });\n }\n autoInitExtensions(register) {\n // Setup reaction to load extensions on JSON changes\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.toJSON(), installedExtensions => this.loadExtensions(installedExtensions, register));\n // Load initial extensions\n return this.loadExtensions(this.toJSON(), register);\n }\n requireExtension(extension) {\n const entryPointName = electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer ? \"renderer\" : \"main\";\n const extRelativePath = extension.manifest[entryPointName];\n if (!extRelativePath) {\n return null;\n }\n const extAbsolutePath = path__WEBPACK_IMPORTED_MODULE_3___default().resolve(path__WEBPACK_IMPORTED_MODULE_3___default().join(path__WEBPACK_IMPORTED_MODULE_3___default().dirname(extension.manifestPath), extRelativePath));\n try {\n return require(extAbsolutePath).default;\n }\n catch (error) {\n if (electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer) {\n console.error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error.stack || error}`, extension);\n }\n else {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error}`, { extension });\n }\n }\n return null;\n }\n getExtension(extId) {\n return this.extensions.get(extId);\n }\n getInstanceById(extId) {\n return this.instances.get(extId);\n }\n toJSON() {\n return (0,_common_utils__WEBPACK_IMPORTED_MODULE_5__.toJS)(this.extensions);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.observable,\n __metadata(\"design:type\", Object)\n], ExtensionLoader.prototype, \"isLoaded\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"enabledExtensionInstances\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Map),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"userExtensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"storeState\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ExtensionLoader.prototype, \"init\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], ExtensionLoader.prototype, \"removeInstance\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/extension-loader/extension-loader.ts?");
|
|
34232
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ExtensionLoader\": () => (/* binding */ ExtensionLoader)\n/* harmony export */ });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _registries__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../registries */ \"./src/extensions/registries/index.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _renderer_ipc__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../renderer/ipc */ \"./src/renderer/ipc/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 */\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\nconst logModule = \"[EXTENSIONS-LOADER]\";\n/**\n * Loads installed extensions to the Lens application\n */\nclass ExtensionLoader {\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"extensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n Object.defineProperty(this, \"instances\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n /**\n * This is the set of extensions that don't come with either\n * - Main.LensExtension when running in the main process\n * - Renderer.LensExtension when running in the renderer process\n */\n Object.defineProperty(this, \"nonInstancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.set()\n });\n /**\n * This is updated by the `observe` in the constructor. DO NOT write directly to it\n */\n Object.defineProperty(this, \"instancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_10__.observable.map()\n });\n // emits event \"remove\" of type LensExtension when the extension is removed\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new events__WEBPACK_IMPORTED_MODULE_1__.EventEmitter()\n });\n Object.defineProperty(this, \"isLoaded\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"loadOnClusterManagerRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(`${logModule}: load on main renderer (cluster manager)`);\n return this.autoInitExtensions(async (extension) => {\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_7__.GlobalPageRegistry.getInstance().add(extension.globalPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.EntitySettingRegistry.getInstance().add(extension.entitySettings),\n _registries__WEBPACK_IMPORTED_MODULE_7__.CatalogEntityDetailRegistry.getInstance().add(extension.catalogEntityDetailItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object.defineProperty(this, \"loadOnClusterRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (getCluster) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(`${logModule}: load on cluster renderer (dashboard)`);\n this.autoInitExtensions(async (extension) => {\n // getCluster must be a callback, as the entity might be available only after an extension has been loaded\n if ((await extension.isEnabledForCluster(getCluster())) === false) {\n return [];\n }\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_7__.ClusterPageRegistry.getInstance().add(extension.clusterPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.ClusterPageMenuRegistry.getInstance().add(extension.clusterPageMenus, extension),\n _registries__WEBPACK_IMPORTED_MODULE_7__.KubeObjectDetailRegistry.getInstance().add(extension.kubeObjectDetailItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.makeObservable)(this);\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.observe)(this.instances, change => {\n switch (change.type) {\n case \"add\":\n if (this.instancesByName.has(change.newValue.name)) {\n throw new TypeError(\"Extension names must be unique\");\n }\n this.instancesByName.set(change.newValue.name, change.newValue);\n break;\n case \"delete\":\n this.instancesByName.delete(change.oldValue.name);\n break;\n case \"update\":\n throw new Error(\"Extension instances shouldn't be updated\");\n }\n });\n }\n get whenLoaded() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_10__.when)(() => this.isLoaded);\n }\n get enabledExtensionInstances() {\n return [...this.instances.values()].filter(extension => extension.isEnabled);\n }\n get userExtensions() {\n const extensions = this.toJSON();\n extensions.forEach((ext, extId) => {\n if (ext.isBundled) {\n extensions.delete(extId);\n }\n });\n return extensions;\n }\n /**\n * Get the extension instance by its manifest name\n * @param name The name of the extension\n * @returns one of the following:\n * - the instance of `Main.LensExtension` on the main process if created\n * - the instance of `Renderer.LensExtension` on the renderer process if created\n * - `null` if no class definition is provided for the current process\n * - `undefined` if the name is not known about\n */\n getInstanceByName(name) {\n if (this.nonInstancesByName.has(name)) {\n return null;\n }\n return this.instancesByName.get(name);\n }\n // Transform userExtensions to a state object for storing into ExtensionsStore\n get storeState() {\n return Object.fromEntries(Array.from(this.userExtensions)\n .map(([extId, extension]) => [extId, {\n enabled: extension.isEnabled,\n name: extension.manifest.name,\n }]));\n }\n async init() {\n if (electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer) {\n await this.initRenderer();\n }\n else {\n await this.initMain();\n }\n await Promise.all([this.whenLoaded]);\n // broadcasting extensions between main/renderer processes\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.toJSON(), () => this.broadcastExtensions(), {\n fireImmediately: true,\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.storeState, (state) => {\n this.dependencies.updateExtensionsState(state);\n });\n }\n initExtensions(extensions) {\n this.extensions.replace(extensions);\n }\n addExtension(extension) {\n this.extensions.set(extension.id, extension);\n }\n removeInstance(lensExtensionId) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`${logModule} deleting extension instance ${lensExtensionId}`);\n const instance = this.instances.get(lensExtensionId);\n if (!instance) {\n return;\n }\n try {\n instance.disable();\n this.events.emit(\"remove\", instance);\n this.instances.delete(lensExtensionId);\n this.nonInstancesByName.delete(instance.name);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: deactivation extension error`, { lensExtensionId, error });\n }\n }\n removeExtension(lensExtensionId) {\n this.removeInstance(lensExtensionId);\n if (!this.extensions.delete(lensExtensionId)) {\n throw new Error(`Can't remove extension ${lensExtensionId}, doesn't exist.`);\n }\n }\n setIsEnabled(lensExtensionId, isEnabled) {\n this.extensions.get(lensExtensionId).isEnabled = isEnabled;\n }\n async initMain() {\n this.isLoaded = true;\n this.loadOnMain();\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcMainHandle)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel, () => {\n return Array.from(this.toJSON());\n });\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcMainOn)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromRendererChannel, (event, extensions) => {\n this.syncExtensions(extensions);\n });\n }\n async initRenderer() {\n const extensionListHandler = (extensions) => {\n this.isLoaded = true;\n this.syncExtensions(extensions);\n const receivedExtensionIds = extensions.map(([lensExtensionId]) => lensExtensionId);\n // Remove deleted extensions in renderer side only\n this.extensions.forEach((_, lensExtensionId) => {\n if (!receivedExtensionIds.includes(lensExtensionId)) {\n this.removeExtension(lensExtensionId);\n }\n });\n };\n (0,_renderer_ipc__WEBPACK_IMPORTED_MODULE_9__.requestExtensionLoaderInitialState)().then(extensionListHandler);\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.ipcRendererOn)(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel, (event, extensions) => {\n extensionListHandler(extensions);\n });\n }\n broadcastExtensions() {\n const channel = electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer\n ? _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromRendererChannel\n : _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_8__.extensionLoaderFromMainChannel;\n (0,_common_ipc__WEBPACK_IMPORTED_MODULE_4__.broadcastMessage)(channel, Array.from(this.extensions));\n }\n syncExtensions(extensions) {\n extensions.forEach(([lensExtensionId, extension]) => {\n if (!(0,lodash__WEBPACK_IMPORTED_MODULE_2__.isEqual)(this.extensions.get(lensExtensionId), extension)) {\n this.extensions.set(lensExtensionId, extension);\n }\n });\n }\n loadOnMain() {\n this.autoInitExtensions(() => Promise.resolve([]));\n }\n async loadExtensions(installedExtensions, register) {\n // Steps of the function:\n // 1. require and call .activate for each Extension\n // 2. Wait until every extension's onActivate has been resolved\n // 3. Call .enable for each extension\n // 4. Return ExtensionLoading[]\n const extensions = [...installedExtensions.entries()]\n .map(([extId, extension]) => {\n const alreadyInit = this.instances.has(extId) || this.nonInstancesByName.has(extension.manifest.name);\n if (extension.isCompatible && extension.isEnabled && !alreadyInit) {\n try {\n const LensExtensionClass = this.requireExtension(extension);\n if (!LensExtensionClass) {\n this.nonInstancesByName.add(extension.manifest.name);\n return null;\n }\n const instance = this.dependencies.createExtensionInstance(LensExtensionClass, extension);\n this.instances.set(extId, instance);\n return {\n instance,\n installedExtension: extension,\n activated: instance.activate(),\n };\n }\n catch (err) {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: error loading extension`, { ext: extension, err });\n }\n }\n else if (!extension.isEnabled && alreadyInit) {\n this.removeInstance(extId);\n }\n return null;\n })\n // Remove null values\n .filter(extension => Boolean(extension));\n // We first need to wait until each extension's `onActivate` is resolved or rejected,\n // as this might register new catalog categories. Afterwards we can safely .enable the extension.\n await Promise.all(extensions.map(extension => \n // If extension activation fails, log error\n extension.activated.catch((error) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: activation extension error`, { ext: extension.installedExtension, error });\n })));\n // Return ExtensionLoading[]\n return extensions.map(extension => {\n const loaded = extension.instance.enable(register).catch((err) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: failed to enable`, { ext: extension, err });\n });\n return {\n isBundled: extension.installedExtension.isBundled,\n loaded,\n };\n });\n }\n autoInitExtensions(register) {\n // Setup reaction to load extensions on JSON changes\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.toJSON(), installedExtensions => this.loadExtensions(installedExtensions, register));\n // Load initial extensions\n return this.loadExtensions(this.toJSON(), register);\n }\n requireExtension(extension) {\n const entryPointName = electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer ? \"renderer\" : \"main\";\n const extRelativePath = extension.manifest[entryPointName];\n if (!extRelativePath) {\n return null;\n }\n const extAbsolutePath = path__WEBPACK_IMPORTED_MODULE_3___default().resolve(path__WEBPACK_IMPORTED_MODULE_3___default().join(path__WEBPACK_IMPORTED_MODULE_3___default().dirname(extension.manifestPath), extRelativePath));\n try {\n return require(extAbsolutePath).default;\n }\n catch (error) {\n if (electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer) {\n console.error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error.stack || error}`, extension);\n }\n else {\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error}`, { extension });\n }\n }\n return null;\n }\n getExtension(extId) {\n return this.extensions.get(extId);\n }\n getInstanceById(extId) {\n return this.instances.get(extId);\n }\n toJSON() {\n return (0,_common_utils__WEBPACK_IMPORTED_MODULE_5__.toJS)(this.extensions);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.observable,\n __metadata(\"design:type\", Object)\n], ExtensionLoader.prototype, \"isLoaded\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"enabledExtensionInstances\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Map),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"userExtensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"storeState\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ExtensionLoader.prototype, \"init\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_10__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], ExtensionLoader.prototype, \"removeInstance\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/extension-loader/extension-loader.ts?");
|
|
34233
34233
|
|
|
34234
34234
|
/***/ }),
|
|
34235
34235
|
|
|
@@ -34460,7 +34460,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
34460
34460
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
34461
34461
|
|
|
34462
34462
|
"use strict";
|
|
34463
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterPageRegistry\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.ClusterPageRegistry),\n/* harmony export */ \"GlobalPageRegistry\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.GlobalPageRegistry),\n/* harmony export */ \"getExtensionPageUrl\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.getExtensionPageUrl),\n/* harmony export */ \"ClusterPageMenuRegistry\": () => (/* reexport safe */ _page_menu_registry__WEBPACK_IMPORTED_MODULE_1__.ClusterPageMenuRegistry),\n/* harmony export */ \"KubeObjectDetailRegistry\": () => (/* reexport safe */ _kube_object_detail_registry__WEBPACK_IMPORTED_MODULE_2__.KubeObjectDetailRegistry),\n/* harmony export */ \"
|
|
34463
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterPageRegistry\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.ClusterPageRegistry),\n/* harmony export */ \"GlobalPageRegistry\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.GlobalPageRegistry),\n/* harmony export */ \"getExtensionPageUrl\": () => (/* reexport safe */ _page_registry__WEBPACK_IMPORTED_MODULE_0__.getExtensionPageUrl),\n/* harmony export */ \"ClusterPageMenuRegistry\": () => (/* reexport safe */ _page_menu_registry__WEBPACK_IMPORTED_MODULE_1__.ClusterPageMenuRegistry),\n/* harmony export */ \"KubeObjectDetailRegistry\": () => (/* reexport safe */ _kube_object_detail_registry__WEBPACK_IMPORTED_MODULE_2__.KubeObjectDetailRegistry),\n/* harmony export */ \"EntitySettingRegistry\": () => (/* reexport safe */ _entity_setting_registry__WEBPACK_IMPORTED_MODULE_3__.EntitySettingRegistry),\n/* harmony export */ \"CatalogEntityDetailRegistry\": () => (/* reexport safe */ _catalog_entity_detail_registry__WEBPACK_IMPORTED_MODULE_4__.CatalogEntityDetailRegistry)\n/* harmony export */ });\n/* harmony import */ var _page_registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./page-registry */ \"./src/extensions/registries/page-registry.ts\");\n/* harmony import */ var _page_menu_registry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./page-menu-registry */ \"./src/extensions/registries/page-menu-registry.ts\");\n/* harmony import */ var _kube_object_detail_registry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kube-object-detail-registry */ \"./src/extensions/registries/kube-object-detail-registry.ts\");\n/* harmony import */ var _entity_setting_registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./entity-setting-registry */ \"./src/extensions/registries/entity-setting-registry.ts\");\n/* harmony import */ var _catalog_entity_detail_registry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./catalog-entity-detail-registry */ \"./src/extensions/registries/catalog-entity-detail-registry.ts\");\n/* harmony import */ var _protocol_handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./protocol-handler */ \"./src/extensions/registries/protocol-handler.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// All registries managed by extensions api\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/registries/index.ts?");
|
|
34464
34464
|
|
|
34465
34465
|
/***/ }),
|
|
34466
34466
|
|
|
@@ -34475,17 +34475,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
34475
34475
|
|
|
34476
34476
|
/***/ }),
|
|
34477
34477
|
|
|
34478
|
-
/***/ "./src/extensions/registries/kube-object-status-registry.ts":
|
|
34479
|
-
/*!******************************************************************!*\
|
|
34480
|
-
!*** ./src/extensions/registries/kube-object-status-registry.ts ***!
|
|
34481
|
-
\******************************************************************/
|
|
34482
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
34483
|
-
|
|
34484
|
-
"use strict";
|
|
34485
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeObjectStatusRegistry\": () => (/* binding */ KubeObjectStatusRegistry)\n/* harmony export */ });\n/* harmony import */ var _base_registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-registry */ \"./src/extensions/registries/base-registry.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\nclass KubeObjectStatusRegistry extends _base_registry__WEBPACK_IMPORTED_MODULE_0__.BaseRegistry {\n getItemsForKind(kind, apiVersion) {\n return this.getItems()\n .filter((item) => (item.kind === kind\n && item.apiVersions.includes(apiVersion)));\n }\n getItemsForObject(src) {\n return this.getItemsForKind(src.kind, src.apiVersion)\n .map(item => item.resolve(src))\n .filter(Boolean);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/registries/kube-object-status-registry.ts?");
|
|
34486
|
-
|
|
34487
|
-
/***/ }),
|
|
34488
|
-
|
|
34489
34478
|
/***/ "./src/extensions/registries/page-menu-registry.ts":
|
|
34490
34479
|
/*!*********************************************************!*\
|
|
34491
34480
|
!*** ./src/extensions/registries/page-menu-registry.ts ***!
|
|
@@ -34519,17 +34508,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright (c) OpenLen
|
|
|
34519
34508
|
|
|
34520
34509
|
/***/ }),
|
|
34521
34510
|
|
|
34522
|
-
/***/ "./src/extensions/registries/workloads-overview-detail-registry.ts":
|
|
34523
|
-
/*!*************************************************************************!*\
|
|
34524
|
-
!*** ./src/extensions/registries/workloads-overview-detail-registry.ts ***!
|
|
34525
|
-
\*************************************************************************/
|
|
34526
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
34527
|
-
|
|
34528
|
-
"use strict";
|
|
34529
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"WorkloadsOverviewDetailRegistry\": () => (/* binding */ WorkloadsOverviewDetailRegistry)\n/* harmony export */ });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _base_registry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base-registry */ \"./src/extensions/registries/base-registry.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\nclass WorkloadsOverviewDetailRegistry extends _base_registry__WEBPACK_IMPORTED_MODULE_1__.BaseRegistry {\n getItems() {\n return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.orderBy)(super.getItems(), \"priority\", \"desc\");\n }\n getRegisteredItem(item) {\n const { priority = 50, ...rest } = item;\n return { priority, ...rest };\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/registries/workloads-overview-detail-registry.ts?");
|
|
34530
|
-
|
|
34531
|
-
/***/ }),
|
|
34532
|
-
|
|
34533
34511
|
/***/ "./src/extensions/renderer-api/catalog.ts":
|
|
34534
34512
|
/*!************************************************!*\
|
|
34535
34513
|
!*** ./src/extensions/renderer-api/catalog.ts ***!
|
|
@@ -36396,7 +36374,29 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
36396
36374
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36397
36375
|
|
|
36398
36376
|
"use strict";
|
|
36399
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeObjectStatusIcon\": () => (/* binding */ KubeObjectStatusIcon)\n/* harmony export */ });\n/* harmony import */ var _kube_object_status_icon_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-object-status-icon.scss */ \"./src/renderer/components/kube-object-status-icon/kube-object-status-icon.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../..//extensions/renderer-api/k8s-api */ \"./src/extensions/renderer-api/k8s-api.ts\");\n/* harmony import */ var
|
|
36377
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeObjectStatusIcon\": () => (/* binding */ KubeObjectStatusIcon)\n/* harmony export */ });\n/* harmony import */ var _kube_object_status_icon_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-object-status-icon.scss */ \"./src/renderer/components/kube-object-status-icon/kube-object-status-icon.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../..//extensions/renderer-api/k8s-api */ \"./src/extensions/renderer-api/k8s-api.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 _statuses_for_kube_object_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./statuses-for-kube-object.injectable */ \"./src/renderer/components/kube-object-status-icon/statuses-for-kube-object.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\nfunction statusClassName(level) {\n switch (level) {\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.INFO:\n return \"info\";\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.WARNING:\n return \"warning\";\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.CRITICAL:\n return \"error\";\n }\n}\nfunction statusTitle(level) {\n switch (level) {\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.INFO:\n return \"Info\";\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.WARNING:\n return \"Warning\";\n case _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.CRITICAL:\n return \"Critical\";\n }\n}\nfunction getAge(timestamp) {\n return timestamp\n ? (0,_utils__WEBPACK_IMPORTED_MODULE_3__.formatDuration)(Date.now() - new Date(timestamp).getTime(), true)\n : \"\";\n}\n/**\n * This function returns the class level for corresponding to the highest status level\n * and the statuses split by their levels.\n * @param src a list of status items\n */\nfunction splitByLevel(src) {\n var _a, _b, _c, _d;\n const parts = new Map(Object.values(_extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel).map(v => [v, []]));\n src.forEach(status => parts.get(status.level).push(status));\n const criticals = parts.get(_extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.CRITICAL);\n const warnings = parts.get(_extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.WARNING);\n const infos = parts.get(_extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.INFO);\n const maxLevel = statusClassName((_d = (_b = (_a = criticals[0]) === null || _a === void 0 ? void 0 : _a.level) !== null && _b !== void 0 ? _b : (_c = warnings[0]) === null || _c === void 0 ? void 0 : _c.level) !== null && _d !== void 0 ? _d : infos[0].level);\n return { maxLevel, criticals, warnings, infos };\n}\nclass NonInjectedKubeObjectStatusIcon extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n renderStatuses(statuses, level) {\n const filteredStatuses = statuses.filter((item) => item.level == level);\n return filteredStatuses.length > 0 && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"level\", statusClassName(level)) },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"span\", { className: \"title\" }, statusTitle(level)),\n filteredStatuses.map((status, index) => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { key: `kube-resource-status-${level}-${index}`, className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"status\", \"msg\") },\n \"- \",\n status.text,\n \" \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"span\", { className: \"age\" },\n \" \\u00B7 \",\n getAge(status.timestamp)))))));\n }\n render() {\n const statuses = this.props.statuses;\n if (statuses.length === 0) {\n return null;\n }\n const { maxLevel, criticals, warnings, infos } = splitByLevel(statuses);\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { material: maxLevel, className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"KubeObjectStatusIcon\", maxLevel), tooltip: {\n children: (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"KubeObjectStatusTooltip\" },\n this.renderStatuses(criticals, _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.CRITICAL),\n this.renderStatuses(warnings, _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.WARNING),\n this.renderStatuses(infos, _extensions_renderer_api_k8s_api__WEBPACK_IMPORTED_MODULE_4__.KubeObjectStatusLevel.INFO))),\n } }));\n }\n}\nconst KubeObjectStatusIcon = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__.withInjectables)(NonInjectedKubeObjectStatusIcon, {\n getProps: (di, props) => ({\n statuses: di.inject(_statuses_for_kube_object_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"], props.object),\n ...props,\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx?");
|
|
36378
|
+
|
|
36379
|
+
/***/ }),
|
|
36380
|
+
|
|
36381
|
+
/***/ "./src/renderer/components/kube-object-status-icon/status-registrations.injectable.ts":
|
|
36382
|
+
/*!********************************************************************************************!*\
|
|
36383
|
+
!*** ./src/renderer/components/kube-object-status-icon/status-registrations.injectable.ts ***!
|
|
36384
|
+
\********************************************************************************************/
|
|
36385
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36386
|
+
|
|
36387
|
+
"use strict";
|
|
36388
|
+
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 _extensions_renderer_extensions_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../extensions/renderer-extensions.injectable */ \"./src/extensions/renderer-extensions.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 statusRegistrationsInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"status-registrations\",\n instantiate: (di) => {\n const extensions = di.inject(_extensions_renderer_extensions_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return (0,mobx__WEBPACK_IMPORTED_MODULE_2__.computed)(() => extensions.get().flatMap((extension) => extension.kubeObjectStatusTexts));\n },\n lifecycle: _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.lifecycleEnum.singleton,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (statusRegistrationsInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/kube-object-status-icon/status-registrations.injectable.ts?");
|
|
36389
|
+
|
|
36390
|
+
/***/ }),
|
|
36391
|
+
|
|
36392
|
+
/***/ "./src/renderer/components/kube-object-status-icon/statuses-for-kube-object.injectable.ts":
|
|
36393
|
+
/*!************************************************************************************************!*\
|
|
36394
|
+
!*** ./src/renderer/components/kube-object-status-icon/statuses-for-kube-object.injectable.ts ***!
|
|
36395
|
+
\************************************************************************************************/
|
|
36396
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36397
|
+
|
|
36398
|
+
"use strict";
|
|
36399
|
+
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 _status_registrations_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./status-registrations.injectable */ \"./src/renderer/components/kube-object-status-icon/status-registrations.injectable.ts\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/fp */ \"./node_modules/lodash/fp.js\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_fp__WEBPACK_IMPORTED_MODULE_2__);\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 statusesForKubeObjectInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"statuses-for-kube-object\",\n instantiate: (di, kubeObject) => di\n .inject(_status_registrations_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"])\n .get()\n .filter(toKubeObjectRelated(kubeObject))\n .map(toStatus(kubeObject))\n .filter(Boolean),\n lifecycle: _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.lifecycleEnum.transient,\n});\nconst toKubeObjectRelated = (kubeObject) => (0,lodash_fp__WEBPACK_IMPORTED_MODULE_2__.conforms)({\n kind: (0,lodash_fp__WEBPACK_IMPORTED_MODULE_2__.eq)(kubeObject.kind),\n apiVersions: (0,lodash_fp__WEBPACK_IMPORTED_MODULE_2__.includes)(kubeObject.apiVersion),\n});\nconst toStatus = (kubeObject) => (item) => item.resolve(kubeObject);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (statusesForKubeObjectInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/kube-object-status-icon/statuses-for-kube-object.injectable.ts?");
|
|
36400
36400
|
|
|
36401
36401
|
/***/ }),
|
|
36402
36402
|
|
|
@@ -36759,7 +36759,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
36759
36759
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36760
36760
|
|
|
36761
36761
|
"use strict";
|
|
36762
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Select\": () => (/* binding */ Select)\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_6__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __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-75b02bac.browser.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/react-select.browser.esm.js\");\n/* harmony import */ var react_select_creatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-select/creatable */ \"./node_modules/react-select/creatable/dist/react-select.browser.esm.js\");\n/* harmony import */ var _theme_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/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 */\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__.F;\nlet Select = class Select extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"styles\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n menuPortal: styles => ({\n ...styles,\n zIndex: \"auto\",\n }),\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.makeObservable)(this);\n }\n get themeClass() {\n const themeName = this.props.themeName || _theme_store__WEBPACK_IMPORTED_MODULE_3__.ThemeStore.getInstance().activeTheme.type;\n return `theme-${themeName}`;\n }\n isValidOption(opt) {\n return typeof opt === \"object\" && opt.value !== undefined;\n }\n get selectedOption() {\n const { value, isMulti } = this.props;\n if (isMulti) {\n return this.options.filter(opt => {\n const values = value ? [].concat(value) : [];\n return values.includes(opt) || values.includes(opt.value);\n });\n }\n return this.options.find(opt => opt === value || opt.value === value);\n }\n get options() {\n const { autoConvertOptions, options } = this.props;\n if (autoConvertOptions && Array.isArray(options)) {\n return options.map(opt => {\n return this.isValidOption(opt) ? opt : { value: opt, label: String(opt) };\n });\n }\n return options;\n }\n onChange(value, meta) {\n if (this.props.onChange) {\n this.props.onChange(value, meta);\n }\n }\n onKeyDown(evt) {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(evt);\n }\n const escapeKey = evt.nativeEvent.code === \"Escape\";\n if (escapeKey)\n evt.stopPropagation(); // don't close the <Dialog/>\n }\n render() {\n var _a;\n const { className, menuClass, isCreatable, autoConvertOptions, value, options, components = {}, ...props } = this.props;\n const WrappedMenu = (_a = components.Menu) !== null && _a !== void 0 ? _a : Menu;\n const selectProps = {\n ...props,\n styles: this.styles,\n value: autoConvertOptions ? this.selectedOption : value,\n options: autoConvertOptions ? this.options : options,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Select\", this.themeClass, className),\n classNamePrefix: \"Select\",\n components: {\n ...components,\n Menu: props => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(WrappedMenu, { ...props, className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(menuClass, this.themeClass, props.className) })),\n },\n };\n return isCreatable\n ? react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select_creatable__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { ...selectProps })\n : react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { ...selectProps });\n }\n};\nObject.defineProperty(Select, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n autoConvertOptions: true,\n menuPortalTarget: document.body,\n menuPlacement: \"auto\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"themeClass\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"selectedOption\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"options\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_4__.boundMethod,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object]),\n __metadata(\"design:returntype\", void 0)\n], Select.prototype, \"onChange\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_4__.boundMethod,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Select.prototype, \"onKeyDown\", null);\nSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], Select);\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/select/select.tsx?");
|
|
36762
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Select\": () => (/* binding */ Select)\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_6__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __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-75b02bac.browser.esm.js\");\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-select */ \"./node_modules/react-select/dist/react-select.browser.esm.js\");\n/* harmony import */ var react_select_creatable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-select/creatable */ \"./node_modules/react-select/creatable/dist/react-select.browser.esm.js\");\n/* harmony import */ var _theme_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/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 */\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__.F;\nlet Select = class Select extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"styles\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n menuPortal: styles => ({\n ...styles,\n zIndex: \"auto\",\n }),\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.makeObservable)(this);\n }\n get themeClass() {\n const themeName = this.props.themeName || _theme_store__WEBPACK_IMPORTED_MODULE_3__.ThemeStore.getInstance().activeTheme.type;\n return `theme-${themeName}`;\n }\n isValidOption(opt) {\n return typeof opt === \"object\" && opt.value !== undefined;\n }\n get selectedOption() {\n const { value, isMulti } = this.props;\n if (isMulti) {\n return this.options.filter(opt => {\n const values = value ? [].concat(value) : [];\n return values.includes(opt) || values.includes(opt.value);\n });\n }\n return this.options.find(opt => opt === value || opt.value === value) || null;\n }\n get options() {\n const { autoConvertOptions, options } = this.props;\n if (autoConvertOptions && Array.isArray(options)) {\n return options.map(opt => {\n return this.isValidOption(opt) ? opt : { value: opt, label: String(opt) };\n });\n }\n return options;\n }\n onChange(value, meta) {\n if (this.props.onChange) {\n this.props.onChange(value, meta);\n }\n }\n onKeyDown(evt) {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(evt);\n }\n const escapeKey = evt.nativeEvent.code === \"Escape\";\n if (escapeKey)\n evt.stopPropagation(); // don't close the <Dialog/>\n }\n render() {\n var _a;\n const { className, menuClass, isCreatable, autoConvertOptions, value, options, components = {}, ...props } = this.props;\n const WrappedMenu = (_a = components.Menu) !== null && _a !== void 0 ? _a : Menu;\n const selectProps = {\n ...props,\n styles: this.styles,\n value: autoConvertOptions ? this.selectedOption : value,\n options: autoConvertOptions ? this.options : options,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Select\", this.themeClass, className),\n classNamePrefix: \"Select\",\n components: {\n ...components,\n Menu: props => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(WrappedMenu, { ...props, className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(menuClass, this.themeClass, props.className) })),\n },\n };\n return isCreatable\n ? react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select_creatable__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { ...selectProps })\n : react__WEBPACK_IMPORTED_MODULE_1__.createElement(react_select__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { ...selectProps });\n }\n};\nObject.defineProperty(Select, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n autoConvertOptions: true,\n menuPortalTarget: document.body,\n menuPlacement: \"auto\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"themeClass\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"selectedOption\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], Select.prototype, \"options\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_4__.boundMethod,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object]),\n __metadata(\"design:returntype\", void 0)\n], Select.prototype, \"onChange\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_4__.boundMethod,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Select.prototype, \"onKeyDown\", null);\nSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], Select);\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/select/select.tsx?");
|
|
36763
36763
|
|
|
36764
36764
|
/***/ }),
|
|
36765
36765
|
|
|
@@ -18,17 +18,19 @@ import type { AdditionalCategoryColumnRegistration } from "../renderer/component
|
|
|
18
18
|
import type { CustomCategoryViewRegistration } from "../renderer/components/+catalog/custom-views";
|
|
19
19
|
import type { StatusBarRegistration } from "../renderer/components/status-bar/status-bar-registration";
|
|
20
20
|
import type { KubeObjectMenuRegistration } from "../renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-registration";
|
|
21
|
+
import type { WorkloadsOverviewDetailRegistration } from "../renderer/components/+workloads-overview/workloads-overview-detail-registration";
|
|
22
|
+
import type { KubeObjectStatusRegistration } from "../renderer/components/kube-object-status-icon/kube-object-status-registration";
|
|
21
23
|
export declare class LensRendererExtension extends LensExtension {
|
|
22
24
|
globalPages: registries.PageRegistration[];
|
|
23
25
|
clusterPages: registries.PageRegistration[];
|
|
24
26
|
clusterPageMenus: registries.ClusterPageMenuRegistration[];
|
|
25
|
-
kubeObjectStatusTexts:
|
|
27
|
+
kubeObjectStatusTexts: KubeObjectStatusRegistration[];
|
|
26
28
|
appPreferences: AppPreferenceRegistration[];
|
|
27
29
|
entitySettings: registries.EntitySettingRegistration[];
|
|
28
30
|
statusBarItems: StatusBarRegistration[];
|
|
29
31
|
kubeObjectDetailItems: registries.KubeObjectDetailRegistration[];
|
|
30
32
|
kubeObjectMenuItems: KubeObjectMenuRegistration[];
|
|
31
|
-
kubeWorkloadsOverviewItems:
|
|
33
|
+
kubeWorkloadsOverviewItems: WorkloadsOverviewDetailRegistration[];
|
|
32
34
|
commands: CommandRegistration[];
|
|
33
35
|
welcomeMenus: WelcomeMenuRegistration[];
|
|
34
36
|
welcomeBanners: WelcomeBannerRegistration[];
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
export * from "./page-registry";
|
|
6
6
|
export * from "./page-menu-registry";
|
|
7
7
|
export * from "./kube-object-detail-registry";
|
|
8
|
-
export * from "./kube-object-status-registry";
|
|
9
8
|
export * from "./entity-setting-registry";
|
|
10
9
|
export * from "./catalog-entity-detail-registry";
|
|
11
|
-
export * from "./workloads-overview-detail-registry";
|
|
12
10
|
export * from "./protocol-handler";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
3
|
+
declare const detailComponentsInjectable: import("@ogre-tools/injectable").NormalInjectable<import("mobx").IComputedValue<import("react").ComponentType<{}>[]>, unknown>;
|
|
4
|
+
export default detailComponentsInjectable;
|
package/dist/src/renderer/components/+workloads-overview/workloads-overview-detail-registration.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
4
|
+
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
5
|
+
*/
|
|
6
|
+
interface WorkloadsOverviewDetailComponents {
|
|
7
|
+
Details: React.ComponentType<{}>;
|
|
8
|
+
}
|
|
9
|
+
export interface WorkloadsOverviewDetailRegistration {
|
|
10
|
+
components: WorkloadsOverviewDetailComponents;
|
|
11
|
+
priority?: number;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import "./kube-object-status-icon.scss";
|
|
6
6
|
import React from "react";
|
|
7
|
-
import { KubeObject
|
|
7
|
+
import { KubeObject } from "../../..//extensions/renderer-api/k8s-api";
|
|
8
8
|
export interface KubeObjectStatusIconProps {
|
|
9
9
|
object: KubeObject;
|
|
10
10
|
}
|
|
11
|
-
export declare
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
11
|
+
export declare const KubeObjectStatusIcon: React.ForwardRefExoticComponent<KubeObjectStatusIconProps & React.RefAttributes<any> & {
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}>;
|
package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-icon.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-registration.d.ts
ADDED
|
@@ -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 { KubeObject } from "../../../common/k8s-api/kube-object";
|
|
6
|
+
import type { KubeObjectStatus } from "../../../extensions/renderer-api/kube-object-status";
|
|
7
|
+
export interface KubeObjectStatusRegistration {
|
|
8
|
+
kind: string;
|
|
9
|
+
apiVersions: string[];
|
|
10
|
+
resolve: (object: KubeObject) => KubeObjectStatus;
|
|
11
|
+
}
|
package/dist/src/renderer/components/kube-object-status-icon/status-registrations.injectable.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
declare const statusRegistrationsInjectable: import("@ogre-tools/injectable").NormalInjectable<import("mobx").IComputedValue<import("./kube-object-status-registration").KubeObjectStatusRegistration[]>, unknown>;
|
|
3
|
+
export default statusRegistrationsInjectable;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { KubeObject } from "../../../common/k8s-api/kube-object";
|
|
3
|
+
declare const statusesForKubeObjectInjectable: import("@ogre-tools/injectable").NormalInjectable<import("../../../extensions/renderer-api/kube-object-status").KubeObjectStatus[], KubeObject<import("../../../common/k8s-api/kube-object").KubeObjectMetadata, any, any>>;
|
|
4
|
+
export default statusesForKubeObjectInjectable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "@testing-library/jest-dom/extend-expect";
|
|
@@ -13,5 +13,5 @@ export interface SwitcherProps extends SwitchProps {
|
|
|
13
13
|
/**
|
|
14
14
|
* @deprecated Use <Switch/> instead from "../switch.tsx".
|
|
15
15
|
*/
|
|
16
|
-
export declare const Switcher: React.ComponentType<Pick<SwitcherProps, "
|
|
16
|
+
export declare const Switcher: React.ComponentType<Pick<SwitcherProps, "name" | "id" | "title" | "value" | "size" | "key" | "prefix" | "defaultValue" | "form" | "slot" | "style" | "className" | "color" | "ref" | "action" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "placeholder" | "readOnly" | "required" | "type" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "icon" | "inputProps" | "innerRef" | "checkedIcon" | "disableFocusRipple" | "edge" | "buttonRef" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "onFocusVisible" | "TouchRippleProps" | "inputRef"> & import("@material-ui/core/styles").StyledComponentProps<"track" | "checked" | "root" | "thumb" | "focusVisible" | "switchBase">>;
|
|
17
17
|
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": "5.4.1-git.
|
|
5
|
+
"version": "5.4.1-git.e59cb04d5a.0",
|
|
6
6
|
"copyright": "© 2021 OpenLens Authors",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "dist/src/extensions/extension-api.js",
|
|
@@ -1,15 +0,0 @@
|
|
|
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 { KubeObject, KubeObjectStatus } from "../renderer-api/k8s-api";
|
|
6
|
-
import { BaseRegistry } from "./base-registry";
|
|
7
|
-
export interface KubeObjectStatusRegistration {
|
|
8
|
-
kind: string;
|
|
9
|
-
apiVersions: string[];
|
|
10
|
-
resolve: (object: KubeObject) => KubeObjectStatus;
|
|
11
|
-
}
|
|
12
|
-
export declare class KubeObjectStatusRegistry extends BaseRegistry<KubeObjectStatusRegistration> {
|
|
13
|
-
getItemsForKind(kind: string, apiVersion: string): KubeObjectStatusRegistration[];
|
|
14
|
-
getItemsForObject(src: KubeObject): KubeObjectStatus[];
|
|
15
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
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 React from "react";
|
|
6
|
-
import { BaseRegistry } from "./base-registry";
|
|
7
|
-
export interface WorkloadsOverviewDetailComponents {
|
|
8
|
-
Details: React.ComponentType<{}>;
|
|
9
|
-
}
|
|
10
|
-
export interface WorkloadsOverviewDetailRegistration {
|
|
11
|
-
components: WorkloadsOverviewDetailComponents;
|
|
12
|
-
priority?: number;
|
|
13
|
-
}
|
|
14
|
-
declare type RegisteredWorkloadsOverviewDetail = Required<WorkloadsOverviewDetailRegistration>;
|
|
15
|
-
export declare class WorkloadsOverviewDetailRegistry extends BaseRegistry<WorkloadsOverviewDetailRegistration, RegisteredWorkloadsOverviewDetail> {
|
|
16
|
-
getItems(): Required<WorkloadsOverviewDetailRegistration>[];
|
|
17
|
-
protected getRegisteredItem(item: WorkloadsOverviewDetailRegistration): RegisteredWorkloadsOverviewDetail;
|
|
18
|
-
}
|
|
19
|
-
export {};
|