@k8slens/extensions 5.5.0-git.dbe45a2b40.0 → 5.5.0-git.e0df7e9d20.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/catalog/catalog-entity.d.ts +11 -1
- package/dist/src/{extensions/__tests__/extension-compatibility.test.d.ts → common/k8s-api/__tests__/kube-object.store.test.d.ts} +0 -0
- package/dist/src/common/k8s-api/kube-object.store.d.ts +11 -9
- package/dist/src/common/user-store/preferences-helpers.d.ts +0 -1
- package/dist/src/common/user-store/user-store.d.ts +0 -1
- package/dist/src/common/utils/index.d.ts +1 -0
- package/dist/src/common/utils/readonly.d.ts +6 -0
- package/dist/src/common/utils/type-narrowing.d.ts +5 -0
- package/dist/src/extensions/__tests__/is-compatible-extension.test.d.ts +5 -0
- package/dist/src/extensions/common-api/registrations.d.ts +2 -1
- package/dist/src/extensions/extension-api.js +539 -627
- package/dist/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.d.ts +2 -2
- package/dist/src/extensions/lens-extension.d.ts +9 -0
- package/dist/src/extensions/lens-renderer-extension.d.ts +3 -1
- package/dist/src/extensions/renderer-api/components.d.ts +7 -1
- package/dist/src/main/app-updater.d.ts +1 -1
- package/dist/src/main/menu/menu.d.ts +1 -6
- package/dist/src/main/tray/tray.d.ts +1 -1
- package/dist/src/renderer/catalog/normalize-menu-item.injectable.d.ts +10 -0
- package/dist/src/renderer/components/+catalog/catalog-entity-drawer-menu.d.ts +2 -9
- package/dist/src/renderer/components/+extensions/attempt-install-by-info.injectable.d.ts +9 -0
- package/dist/src/renderer/components/+extensions/confirm-uninstall-extension.injectable.d.ts +5 -0
- package/dist/src/renderer/components/+extensions/install-from-input/install-from-input.d.ts +1 -1
- package/dist/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.d.ts +1 -1
- package/dist/src/renderer/components/+user-management/+cluster-role-bindings/details.d.ts +2 -9
- package/dist/src/renderer/components/+user-management/+role-bindings/details.d.ts +2 -8
- package/dist/src/renderer/components/+workloads-cronjobs/cron-job-menu.d.ts +8 -1
- package/dist/src/renderer/components/+workloads-deployments/deployment-menu.d.ts +8 -1
- package/dist/src/renderer/components/animate/animate.d.ts +2 -0
- package/dist/src/renderer/components/confirm-dialog/confirm-dialog.d.ts +1 -12
- package/dist/src/renderer/components/confirm-dialog/confirm.injectable.d.ts +5 -0
- package/dist/src/renderer/components/confirm-dialog/open.injectable.d.ts +5 -0
- package/dist/src/renderer/components/confirm-dialog/state.injectable.d.ts +4 -0
- package/dist/src/renderer/components/confirm-dialog/with-confirm.injectable.d.ts +9 -0
- package/dist/src/renderer/components/hotbar/hotbar-icon.d.ts +2 -1
- package/dist/src/renderer/components/icon/icon.d.ts +38 -1
- package/dist/src/renderer/components/item-object-list/content.d.ts +1 -14
- package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/get-kube-object-menu-items.d.ts +1 -1
- package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kube-object-menu/dependencies/static-kube-object-menu-items.d.ts +31 -0
- package/dist/src/renderer/components/kube-object-menu/{dependencies/kube-object-menu-items/kube-object-menu-registration.d.ts → kube-object-menu-registration.d.ts} +1 -1
- package/dist/src/renderer/components/kube-object-menu/kube-object-menu.d.ts +2 -1
- package/dist/src/renderer/components/kube-object-menu/on-context-menu-open.injectable.d.ts +6 -0
- package/dist/src/renderer/components/layout/sidebar-cluster.d.ts +1 -2
- package/dist/src/renderer/components/menu/menu-actions.d.ts +13 -13
- package/dist/src/renderer/components/menu/menu.d.ts +1 -0
- package/dist/src/renderer/components/switch/switcher.d.ts +1 -1
- package/dist/src/renderer/kube-object/handler.d.ts +36 -0
- package/dist/src/renderer/kube-object/handlers.injectable.d.ts +4 -0
- package/dist/src/renderer/kube-object/static-handlers.d.ts +6 -0
- package/dist/src/renderer/navigation/helpers.d.ts +3 -0
- package/dist/src/renderer/navigation/navigate.injectable.d.ts +5 -0
- package/dist/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.d.ts +2 -2
- package/dist/src/renderer/theme.store.d.ts +5 -7
- package/package.json +1 -2
- package/dist/src/extensions/extension-compatibility.d.ts +0 -9
- package/dist/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.d.ts +0 -19
- package/dist/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.d.ts +0 -3
- package/dist/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.d.ts +0 -7
- package/dist/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.d.ts +0 -3
- package/dist/src/renderer/components/+workloads-statefulsets/stateful-set-menu.d.ts +0 -3
- package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/static-kube-object-menu-items.d.ts +0 -40
package/dist/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.d.ts
CHANGED
|
@@ -2,10 +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
|
-
import { SemVer } from "semver";
|
|
5
|
+
import { type SemVer } from "semver";
|
|
6
6
|
import type { LensExtensionManifest } from "../../lens-extension";
|
|
7
7
|
interface Dependencies {
|
|
8
8
|
appSemVer: SemVer;
|
|
9
9
|
}
|
|
10
|
-
export declare const isCompatibleExtension: ({ appSemVer
|
|
10
|
+
export declare const isCompatibleExtension: ({ appSemVer }: Dependencies) => (manifest: LensExtensionManifest) => boolean;
|
|
11
11
|
export {};
|
|
@@ -15,6 +15,15 @@ export interface LensExtensionManifest extends PackageJson {
|
|
|
15
15
|
version: string;
|
|
16
16
|
main?: string;
|
|
17
17
|
renderer?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Supported Lens version engine by extension could be defined in `manifest.engines.lens`
|
|
20
|
+
* Only MAJOR.MINOR version is taken in consideration.
|
|
21
|
+
*/
|
|
22
|
+
engines: {
|
|
23
|
+
lens: string;
|
|
24
|
+
npm?: string;
|
|
25
|
+
node?: string;
|
|
26
|
+
};
|
|
18
27
|
}
|
|
19
28
|
export declare const Disposers: unique symbol;
|
|
20
29
|
export declare class LensExtension {
|
|
@@ -17,9 +17,10 @@ import type { AppPreferenceRegistration } from "../renderer/components/+preferen
|
|
|
17
17
|
import type { AdditionalCategoryColumnRegistration } from "../renderer/components/+catalog/custom-category-columns";
|
|
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
|
-
import type { KubeObjectMenuRegistration } from "../renderer/components/kube-object-menu/
|
|
20
|
+
import type { KubeObjectMenuRegistration } from "../renderer/components/kube-object-menu/kube-object-menu-registration";
|
|
21
21
|
import type { WorkloadsOverviewDetailRegistration } from "../renderer/components/+workloads-overview/workloads-overview-detail-registration";
|
|
22
22
|
import type { KubeObjectStatusRegistration } from "../renderer/components/kube-object-status-icon/kube-object-status-registration";
|
|
23
|
+
import type { KubeObjectHandlerRegistration } from "../renderer/kube-object/handler";
|
|
23
24
|
export declare class LensRendererExtension extends LensExtension {
|
|
24
25
|
globalPages: registries.PageRegistration[];
|
|
25
26
|
clusterPages: registries.PageRegistration[];
|
|
@@ -38,6 +39,7 @@ export declare class LensRendererExtension extends LensExtension {
|
|
|
38
39
|
topBarItems: TopBarRegistration[];
|
|
39
40
|
additionalCategoryColumns: AdditionalCategoryColumnRegistration[];
|
|
40
41
|
customCategoryViews: CustomCategoryViewRegistration[];
|
|
42
|
+
kubeObjectHandlers: KubeObjectHandlerRegistration[];
|
|
41
43
|
navigate<P extends object>(pageId?: string, params?: P): Promise<void>;
|
|
42
44
|
/**
|
|
43
45
|
* Defines if extension is enabled for a given cluster. This method is only
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { ConfirmDialogBooleanParams, ConfirmDialogParams, ConfirmDialogProps } from "../../renderer/components/confirm-dialog";
|
|
1
3
|
export * from "../../renderer/components/layout/main-layout";
|
|
2
4
|
export * from "../../renderer/components/layout/setting-layout";
|
|
3
5
|
export * from "../../renderer/components/layout/page-layout";
|
|
@@ -12,6 +14,11 @@ export * from "../../renderer/components/switch";
|
|
|
12
14
|
export * from "../../renderer/components/input/input";
|
|
13
15
|
export declare const CommandOverlay: import("../../renderer/components/command-palette/command-overlay.injectable").CommandOverlay;
|
|
14
16
|
export type { CategoryColumnRegistration, AdditionalCategoryColumnRegistration, } from "../../renderer/components/+catalog/custom-category-columns";
|
|
17
|
+
export type { ConfirmDialogBooleanParams, ConfirmDialogParams, ConfirmDialogProps, };
|
|
18
|
+
export declare const ConfirmDialog: import("react").FunctionComponent<ConfirmDialogProps> & {
|
|
19
|
+
open: import("../../renderer/components/confirm-dialog/open.injectable").OpenConfirmDialog;
|
|
20
|
+
confirm: import("../../renderer/components/confirm-dialog/confirm.injectable").Confirm;
|
|
21
|
+
};
|
|
15
22
|
export * from "../../renderer/components/icon";
|
|
16
23
|
export * from "../../renderer/components/tooltip";
|
|
17
24
|
export * from "../../renderer/components/tabs";
|
|
@@ -19,7 +26,6 @@ export * from "../../renderer/components/table";
|
|
|
19
26
|
export * from "../../renderer/components/badge";
|
|
20
27
|
export * from "../../renderer/components/drawer";
|
|
21
28
|
export * from "../../renderer/components/dialog";
|
|
22
|
-
export * from "../../renderer/components/confirm-dialog";
|
|
23
29
|
export * from "../../renderer/components/line-progress";
|
|
24
30
|
export * from "../../renderer/components/menu";
|
|
25
31
|
export * from "../../renderer/components/notifications";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export declare function isAutoUpdateEnabled(): boolean;
|
|
6
6
|
/**
|
|
7
7
|
* starts the automatic update checking
|
|
8
|
-
* @param interval milliseconds between interval to check on, defaults to
|
|
8
|
+
* @param interval milliseconds between interval to check on, defaults to 2h
|
|
9
9
|
*/
|
|
10
10
|
export declare const startUpdateChecking: (interval?: any) => void;
|
|
11
11
|
export declare function checkForUpdates(): Promise<void>;
|
|
@@ -1,11 +1,6 @@
|
|
|
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 { BrowserWindow } from "electron";
|
|
6
1
|
import type { IComputedValue } from "mobx";
|
|
7
2
|
import type { MenuItemOpts } from "./application-menu-items.injectable";
|
|
8
3
|
export declare type MenuTopId = "mac" | "file" | "edit" | "view" | "help";
|
|
9
4
|
export declare function initMenu(applicationMenuItems: IComputedValue<MenuItemOpts[]>): import("mobx").IReactionDisposer;
|
|
10
|
-
export declare function showAbout(
|
|
5
|
+
export declare function showAbout(): void;
|
|
11
6
|
export declare function buildMenu(applicationMenuItems: MenuItemOpts[]): void;
|
|
@@ -8,4 +8,4 @@ import type { WindowManager } from "../window-manager";
|
|
|
8
8
|
import type { Disposer } from "../../common/utils";
|
|
9
9
|
import type { TrayMenuRegistration } from "./tray-menu-registration";
|
|
10
10
|
export declare let tray: Tray;
|
|
11
|
-
export declare function initTray(windowManager: WindowManager, trayMenuItems: IComputedValue<TrayMenuRegistration[]>, navigateToPreferences: () => void):
|
|
11
|
+
export declare function initTray(windowManager: WindowManager, trayMenuItems: IComputedValue<TrayMenuRegistration[]>, navigateToPreferences: () => void): Disposer;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { CatalogEntityContextMenu } from "../api/catalog-entity";
|
|
3
|
+
export interface NormalizedCatalogEntityContextMenu {
|
|
4
|
+
title: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare type NormalizeCatalogEntityContextMenu = (menuItem: CatalogEntityContextMenu) => NormalizedCatalogEntityContextMenu;
|
|
9
|
+
declare const normalizeCatalogEntityContextMenuInjectable: import("@ogre-tools/injectable").Injectable<NormalizeCatalogEntityContextMenu, unknown, void>;
|
|
10
|
+
export default normalizeCatalogEntityContextMenuInjectable;
|
|
@@ -4,15 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import type { MenuActionsProps } from "../menu/menu-actions";
|
|
7
|
-
import type { CatalogEntity
|
|
7
|
+
import type { CatalogEntity } from "../../api/catalog-entity";
|
|
8
8
|
export interface CatalogEntityDrawerMenuProps<T extends CatalogEntity> extends MenuActionsProps {
|
|
9
9
|
entity: T;
|
|
10
10
|
}
|
|
11
|
-
export declare
|
|
12
|
-
private contextMenu;
|
|
13
|
-
constructor(props: CatalogEntityDrawerMenuProps<T>);
|
|
14
|
-
componentDidMount(): void;
|
|
15
|
-
onMenuItemClick(menuItem: CatalogEntityContextMenu): void;
|
|
16
|
-
getMenuItems(entity: T): React.ReactChild[];
|
|
17
|
-
render(): JSX.Element;
|
|
18
|
-
}
|
|
11
|
+
export declare const CatalogEntityDrawerMenu: <Entity extends CatalogEntity<import("../../../common/catalog").CatalogEntityMetadata, import("../../../common/catalog").CatalogEntityStatus, import("../../../common/catalog").CatalogEntitySpec>>(props: CatalogEntityDrawerMenuProps<Entity>) => React.ReactElement;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
export interface ExtensionInfo {
|
|
3
|
+
name: string;
|
|
4
|
+
version?: string;
|
|
5
|
+
requireConfirmation?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare type AttemptInstallByInfo = (info: ExtensionInfo) => Promise<void>;
|
|
8
|
+
declare const attemptInstallByInfoInjectable: import("@ogre-tools/injectable").Injectable<AttemptInstallByInfo, unknown, void>;
|
|
9
|
+
export default attemptInstallByInfoInjectable;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { InstalledExtension } from "../../../extensions/extension-discovery/extension-discovery";
|
|
3
|
+
export declare type ConfirmUninstallExtension = (ext: InstalledExtension) => Promise<void>;
|
|
4
|
+
declare const confirmUninstallExtensionInjectable: import("@ogre-tools/injectable").Injectable<ConfirmUninstallExtension, unknown, void>;
|
|
5
|
+
export default confirmUninstallExtensionInjectable;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ExtendableDisposer } from "../../../../common/utils";
|
|
6
6
|
import type { InstallRequest } from "../attempt-install/install-request";
|
|
7
|
-
import type { ExtensionInfo } from "../attempt-install-by-info
|
|
7
|
+
import type { ExtensionInfo } from "../attempt-install-by-info.injectable";
|
|
8
8
|
import type { ExtensionInstallationStateStore } from "../../../../extensions/extension-installation-state-store/extension-installation-state-store";
|
|
9
9
|
interface Dependencies {
|
|
10
10
|
attemptInstall: (request: InstallRequest, disposer?: ExtendableDisposer) => Promise<void>;
|
|
@@ -13,7 +13,7 @@ export declare class NamespaceSelectFilterModel {
|
|
|
13
13
|
isSelected: (namespace: string | string[]) => boolean;
|
|
14
14
|
selectSingle: (namespace: string) => void;
|
|
15
15
|
selectAll: () => void;
|
|
16
|
-
onChange: ([
|
|
16
|
+
onChange: ([selected]: SelectOption<string>[]) => void;
|
|
17
17
|
onClick: () => void;
|
|
18
18
|
private isMultiSelection;
|
|
19
19
|
onKeyDown: (event: React.KeyboardEvent) => void;
|
|
@@ -4,15 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import "./details.scss";
|
|
6
6
|
import React from "react";
|
|
7
|
-
import type { ClusterRoleBinding
|
|
8
|
-
import { ObservableHashSet } from "../../../utils";
|
|
7
|
+
import type { ClusterRoleBinding } from "../../../../common/k8s-api/endpoints";
|
|
9
8
|
import type { KubeObjectDetailsProps } from "../../kube-object-details";
|
|
10
9
|
export interface ClusterRoleBindingDetailsProps extends KubeObjectDetailsProps<ClusterRoleBinding> {
|
|
11
10
|
}
|
|
12
|
-
export declare
|
|
13
|
-
selectedSubjects: ObservableHashSet<ClusterRoleBindingSubject>;
|
|
14
|
-
constructor(props: ClusterRoleBindingDetailsProps);
|
|
15
|
-
componentDidMount(): Promise<void>;
|
|
16
|
-
removeSelectedSubjects(): void;
|
|
17
|
-
render(): JSX.Element;
|
|
18
|
-
}
|
|
11
|
+
export declare const ClusterRoleBindingDetails: React.FunctionComponent<ClusterRoleBindingDetailsProps>;
|
|
@@ -4,14 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import "./details.scss";
|
|
6
6
|
import React from "react";
|
|
7
|
-
import type { RoleBinding
|
|
7
|
+
import type { RoleBinding } from "../../../../common/k8s-api/endpoints";
|
|
8
8
|
import type { KubeObjectDetailsProps } from "../../kube-object-details";
|
|
9
|
-
import { ObservableHashSet } from "../../../../common/utils/hash-set";
|
|
10
9
|
export interface RoleBindingDetailsProps extends KubeObjectDetailsProps<RoleBinding> {
|
|
11
10
|
}
|
|
12
|
-
export declare
|
|
13
|
-
selectedSubjects: ObservableHashSet<RoleBindingSubject>;
|
|
14
|
-
componentDidMount(): Promise<void>;
|
|
15
|
-
removeSelectedSubjects: () => void;
|
|
16
|
-
render(): JSX.Element;
|
|
17
|
-
}
|
|
11
|
+
export declare const RoleBindingDetails: React.FunctionComponent<RoleBindingDetailsProps>;
|
|
@@ -1,3 +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
|
+
import React from "react";
|
|
1
6
|
import type { KubeObjectMenuProps } from "../kube-object-menu";
|
|
2
7
|
import type { CronJob } from "../../../common/k8s-api/endpoints";
|
|
3
|
-
export
|
|
8
|
+
export interface CronJobMenuProps extends KubeObjectMenuProps<CronJob> {
|
|
9
|
+
}
|
|
10
|
+
export declare const CronJobMenu: React.FunctionComponent<CronJobMenuProps>;
|
|
@@ -1,3 +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
|
+
import React from "react";
|
|
1
6
|
import type { KubeObjectMenuProps } from "../kube-object-menu";
|
|
2
7
|
import type { Deployment } from "../../../common/k8s-api/endpoints";
|
|
3
|
-
export
|
|
8
|
+
export interface DeploymentMenuProps extends KubeObjectMenuProps<Deployment> {
|
|
9
|
+
}
|
|
10
|
+
export declare const DeploymentMenu: React.FunctionComponent<DeploymentMenuProps>;
|
|
@@ -22,7 +22,9 @@ export declare class Animate extends React.Component<AnimateProps> {
|
|
|
22
22
|
};
|
|
23
23
|
constructor(props: AnimateProps);
|
|
24
24
|
get contentElem(): React.ReactElement<React.HTMLAttributes<any>, string | React.JSXElementConstructor<any>>;
|
|
25
|
+
private toggle;
|
|
25
26
|
componentDidMount(): void;
|
|
27
|
+
componentDidUpdate(prevProps: Readonly<AnimateProps>): void;
|
|
26
28
|
enter(): void;
|
|
27
29
|
leave(): void;
|
|
28
30
|
resetAfterLeaveDuration(): void;
|
|
@@ -21,15 +21,4 @@ export interface ConfirmDialogBooleanParams {
|
|
|
21
21
|
okButtonProps?: Partial<ButtonProps>;
|
|
22
22
|
cancelButtonProps?: Partial<ButtonProps>;
|
|
23
23
|
}
|
|
24
|
-
export declare
|
|
25
|
-
isSaving: boolean;
|
|
26
|
-
constructor(props: ConfirmDialogProps);
|
|
27
|
-
static open(params: ConfirmDialogParams): void;
|
|
28
|
-
static confirm(params: ConfirmDialogBooleanParams): Promise<boolean>;
|
|
29
|
-
static defaultParams: Partial<ConfirmDialogParams>;
|
|
30
|
-
get params(): ConfirmDialogParams;
|
|
31
|
-
ok: () => Promise<void>;
|
|
32
|
-
onClose: () => void;
|
|
33
|
-
close: () => Promise<void>;
|
|
34
|
-
render(): JSX.Element;
|
|
35
|
-
}
|
|
24
|
+
export declare const ConfirmDialog: React.FunctionComponent<ConfirmDialogProps>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { ConfirmDialogBooleanParams } from "./confirm-dialog";
|
|
3
|
+
export declare type Confirm = (params: ConfirmDialogBooleanParams) => Promise<boolean>;
|
|
4
|
+
declare const confirmInjectable: import("@ogre-tools/injectable").Injectable<Confirm, unknown, void>;
|
|
5
|
+
export default confirmInjectable;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { ConfirmDialogParams } from "./confirm-dialog";
|
|
3
|
+
export declare type OpenConfirmDialog = (params: ConfirmDialogParams) => void;
|
|
4
|
+
declare const openConfirmDialogInjectable: import("@ogre-tools/injectable").Injectable<OpenConfirmDialog, unknown, void>;
|
|
5
|
+
export default openConfirmDialogInjectable;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { ConfirmDialogParams } from ".";
|
|
3
|
+
declare const confirmDialogStateInjectable: import("@ogre-tools/injectable").Injectable<import("mobx").IObservableValue<ConfirmDialogParams>, unknown, void>;
|
|
4
|
+
export default confirmDialogStateInjectable;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
3
|
+
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
6
|
+
import type { ConfirmDialogParams } from "./confirm-dialog";
|
|
7
|
+
export declare type WithConfirmation = (params: ConfirmDialogParams) => () => void;
|
|
8
|
+
declare const withConfirmationInjectable: import("@ogre-tools/injectable").Injectable<WithConfirmation, unknown, void>;
|
|
9
|
+
export default withConfirmationInjectable;
|
|
@@ -2,6 +2,7 @@
|
|
|
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 React from "react";
|
|
5
6
|
import type { CatalogEntityContextMenu } from "../../../common/catalog";
|
|
6
7
|
import type { AvatarProps } from "../avatar";
|
|
7
8
|
export interface HotbarIconProps extends AvatarProps {
|
|
@@ -14,4 +15,4 @@ export interface HotbarIconProps extends AvatarProps {
|
|
|
14
15
|
disabled?: boolean;
|
|
15
16
|
tooltip?: string;
|
|
16
17
|
}
|
|
17
|
-
export declare const HotbarIcon:
|
|
18
|
+
export declare const HotbarIcon: React.FunctionComponent<HotbarIconProps>;
|
|
@@ -6,21 +6,58 @@ import "./icon.scss";
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import type { LocationDescriptor } from "history";
|
|
8
8
|
import type { TooltipDecoratorProps } from "../tooltip";
|
|
9
|
-
export interface
|
|
9
|
+
export interface BaseIconProps {
|
|
10
|
+
/**
|
|
11
|
+
* One of the names from https://material.io/icons/
|
|
12
|
+
*/
|
|
10
13
|
material?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Either an SVG data URL or one of the following strings
|
|
16
|
+
*/
|
|
11
17
|
svg?: string;
|
|
18
|
+
/**
|
|
19
|
+
* render icon as NavLink from react-router-dom
|
|
20
|
+
*/
|
|
12
21
|
link?: LocationDescriptor;
|
|
22
|
+
/**
|
|
23
|
+
* render icon as hyperlink
|
|
24
|
+
*/
|
|
13
25
|
href?: string;
|
|
26
|
+
/**
|
|
27
|
+
* The icon size (css units)
|
|
28
|
+
*/
|
|
14
29
|
size?: string | number;
|
|
30
|
+
/**
|
|
31
|
+
* A pre-defined icon-size
|
|
32
|
+
*/
|
|
15
33
|
small?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* A pre-defined icon-size
|
|
36
|
+
*/
|
|
16
37
|
smallest?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A pre-defined icon-size
|
|
40
|
+
*/
|
|
17
41
|
big?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* apply active-state styles
|
|
44
|
+
*/
|
|
18
45
|
active?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* indicates that icon is interactive and highlight it on focus/hover
|
|
48
|
+
*/
|
|
19
49
|
interactive?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Allow focus to the icon to show `.active` styles. Only applicable if {@link IconProps.interactive} is `true`.
|
|
52
|
+
*
|
|
53
|
+
* @default true
|
|
54
|
+
*/
|
|
20
55
|
focusable?: boolean;
|
|
21
56
|
sticker?: boolean;
|
|
22
57
|
disabled?: boolean;
|
|
23
58
|
}
|
|
59
|
+
export interface IconProps extends React.HTMLAttributes<any>, TooltipDecoratorProps, BaseIconProps {
|
|
60
|
+
}
|
|
24
61
|
export declare class Icon extends React.PureComponent<IconProps> {
|
|
25
62
|
private readonly ref;
|
|
26
63
|
static defaultProps: IconProps;
|
|
@@ -40,17 +40,4 @@ export interface ItemListLayoutContentProps<I extends ItemObject> {
|
|
|
40
40
|
*/
|
|
41
41
|
failedToLoadMessage?: React.ReactNode;
|
|
42
42
|
}
|
|
43
|
-
export declare
|
|
44
|
-
constructor(props: ItemListLayoutContentProps<I>);
|
|
45
|
-
get failedToLoad(): boolean;
|
|
46
|
-
renderRow(item: I): JSX.Element;
|
|
47
|
-
getTableRow(item: I): JSX.Element;
|
|
48
|
-
getRow(uid: string): JSX.Element;
|
|
49
|
-
removeItemsDialog(selectedItems: I[]): void;
|
|
50
|
-
renderNoItems(): JSX.Element;
|
|
51
|
-
renderItems(): JSX.Element[];
|
|
52
|
-
renderTableHeader(): JSX.Element;
|
|
53
|
-
render(): JSX.Element;
|
|
54
|
-
showColumn({ id: columnId, showWithColumn }: TableCellProps): boolean;
|
|
55
|
-
renderColumnVisibilityMenu(): JSX.Element;
|
|
56
|
-
}
|
|
43
|
+
export declare const ItemListLayoutContent: <I extends ItemObject>(props: ItemListLayoutContentProps<I>) => React.ReactElement;
|
|
@@ -4,5 +4,5 @@ interface Dependencies {
|
|
|
4
4
|
extensions: LensRendererExtension[];
|
|
5
5
|
kubeObject: KubeObject;
|
|
6
6
|
}
|
|
7
|
-
export declare const getKubeObjectMenuItems: ({ extensions, kubeObject, }: Dependencies) => (typeof import("../../../+user-management/+service-accounts/service-account-menu").ServiceAccountMenu | typeof import("../../../+workloads-
|
|
7
|
+
export declare const getKubeObjectMenuItems: ({ extensions, kubeObject, }: Dependencies) => (typeof import("../../../+user-management/+service-accounts/service-account-menu").ServiceAccountMenu | typeof import("../../../+workloads-replicasets/replica-set-menu").ReplicaSetMenu | import("react").ComponentType<import("../../kube-object-menu-registration").KubeObjectMenuItemProps>)[];
|
|
8
8
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
/// <reference types="@ogre-tools/injectable" />
|
|
3
3
|
import type { KubeObject } from "../../../../../common/k8s-api/kube-object";
|
|
4
|
-
declare const kubeObjectMenuItemsInjectable: import("@ogre-tools/injectable").Injectable<(typeof import("../../../+user-management/+service-accounts/service-account-menu").ServiceAccountMenu | typeof import("../../../+workloads-
|
|
4
|
+
declare const kubeObjectMenuItemsInjectable: import("@ogre-tools/injectable").Injectable<(typeof import("../../../+user-management/+service-accounts/service-account-menu").ServiceAccountMenu | typeof import("../../../+workloads-replicasets/replica-set-menu").ReplicaSetMenu | import("react").ComponentType<import("../../kube-object-menu-registration").KubeObjectMenuItemProps>)[], unknown, {
|
|
5
5
|
kubeObject: KubeObject;
|
|
6
6
|
}>;
|
|
7
7
|
export default kubeObjectMenuItemsInjectable;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { ServiceAccountMenu } from "../../+user-management/+service-accounts/service-account-menu";
|
|
6
|
+
import { ReplicaSetMenu } from "../../+workloads-replicasets/replica-set-menu";
|
|
7
|
+
export declare const staticKubeObjectMenuItems: ({
|
|
8
|
+
kind: string;
|
|
9
|
+
apiVersions: string[];
|
|
10
|
+
components: {
|
|
11
|
+
MenuItem: typeof ServiceAccountMenu;
|
|
12
|
+
};
|
|
13
|
+
} | {
|
|
14
|
+
kind: string;
|
|
15
|
+
apiVersions: string[];
|
|
16
|
+
components: {
|
|
17
|
+
MenuItem: import("react").FunctionComponent<import("../../+workloads-cronjobs/cron-job-menu").CronJobMenuProps>;
|
|
18
|
+
};
|
|
19
|
+
} | {
|
|
20
|
+
kind: string;
|
|
21
|
+
apiVersions: string[];
|
|
22
|
+
components: {
|
|
23
|
+
MenuItem: import("react").FunctionComponent<import("../../+workloads-deployments/deployment-menu").DeploymentMenuProps>;
|
|
24
|
+
};
|
|
25
|
+
} | {
|
|
26
|
+
kind: string;
|
|
27
|
+
apiVersions: string[];
|
|
28
|
+
components: {
|
|
29
|
+
MenuItem: typeof ReplicaSetMenu;
|
|
30
|
+
};
|
|
31
|
+
})[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
4
4
|
*/
|
|
5
5
|
import type React from "react";
|
|
6
|
-
import type { KubeObject } from "
|
|
6
|
+
import type { KubeObject } from "../../../common/k8s-api/kube-object";
|
|
7
7
|
export interface KubeObjectMenuItemProps {
|
|
8
8
|
object: KubeObject;
|
|
9
9
|
toolbar?: boolean;
|
|
@@ -2,6 +2,7 @@
|
|
|
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 React from "react";
|
|
5
6
|
import type { KubeObject } from "../../../common/k8s-api/kube-object";
|
|
6
7
|
import type { MenuActionsProps } from "../menu";
|
|
7
8
|
export interface KubeObjectMenuProps<TKubeObject extends KubeObject> extends MenuActionsProps {
|
|
@@ -9,4 +10,4 @@ export interface KubeObjectMenuProps<TKubeObject extends KubeObject> extends Men
|
|
|
9
10
|
editable?: boolean;
|
|
10
11
|
removable?: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare
|
|
13
|
+
export declare const KubeObjectMenu: <T extends KubeObject<import("../../../common/k8s-api/kube-object").KubeObjectMetadata, any, any>>(props: KubeObjectMenuProps<T>) => React.ReactElement;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="@ogre-tools/injectable" />
|
|
2
|
+
import type { KubeObject } from "../../../common/k8s-api/kube-object";
|
|
3
|
+
import type { KubeObjectOnContextMenuOpenContext } from "../../kube-object/handler";
|
|
4
|
+
export declare type OnKubeObjectContextMenuOpen = (obj: KubeObject, ctx: KubeObjectOnContextMenuOpenContext) => void;
|
|
5
|
+
declare const onKubeObjectContextMenuOpenInjectable: import("@ogre-tools/injectable").Injectable<OnKubeObjectContextMenuOpen, unknown, void>;
|
|
6
|
+
export default onKubeObjectContextMenuOpenInjectable;
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import type { CatalogEntity } from "../../api/catalog-entity";
|
|
7
|
-
interface SidebarClusterProps {
|
|
7
|
+
export interface SidebarClusterProps {
|
|
8
8
|
clusterEntity: CatalogEntity;
|
|
9
9
|
}
|
|
10
10
|
export declare const SidebarCluster: React.FunctionComponent<SidebarClusterProps>;
|
|
11
|
-
export {};
|
|
@@ -11,18 +11,18 @@ export interface MenuActionsProps extends Partial<MenuProps> {
|
|
|
11
11
|
toolbar?: boolean;
|
|
12
12
|
autoCloseOnSelect?: boolean;
|
|
13
13
|
triggerIcon?: string | IconProps | React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Provide your own remove `<MenuItem>` as part of the `children` passed to this component
|
|
16
|
+
*/
|
|
14
17
|
removeConfirmationMessage?: React.ReactNode | (() => React.ReactNode);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
constructor(props: MenuActionsProps);
|
|
25
|
-
remove(): void;
|
|
26
|
-
renderTriggerIcon(): JSX.Element;
|
|
27
|
-
render(): JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated Provide your own update `<MenuItem>` as part of the `children` passed to this component
|
|
20
|
+
*/
|
|
21
|
+
updateAction?: () => void | Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Provide your own remove `<MenuItem>` as part of the `children` passed to this component
|
|
24
|
+
*/
|
|
25
|
+
removeAction?: () => void | Promise<void>;
|
|
26
|
+
onOpen?: () => void;
|
|
28
27
|
}
|
|
28
|
+
export declare const MenuActions: React.FunctionComponent<MenuActionsProps>;
|
|
@@ -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, "id" | "name" | "prefix" | "defaultValue" | "key" | "value" | "
|
|
16
|
+
export declare const Switcher: React.ComponentType<Pick<SwitcherProps, "id" | "name" | "prefix" | "defaultValue" | "key" | "value" | "className" | "form" | "slot" | "style" | "title" | "size" | "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" | "color" | "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 {};
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { RequireAtLeastOne } from "type-fest";
|
|
6
|
+
import type { KubeObject } from "../../common/k8s-api/kube-object";
|
|
7
|
+
import type { BaseIconProps } from "../components/icon";
|
|
8
|
+
export interface KubeObjectContextMenuItem {
|
|
9
|
+
/**
|
|
10
|
+
* If the type is `string` then it is shorthand for {@link BaseIconProps.material}
|
|
11
|
+
*
|
|
12
|
+
* This is required because this item can be either rendered as a context menu or as a toolbar in
|
|
13
|
+
* the kube object details page.
|
|
14
|
+
*/
|
|
15
|
+
icon: string | BaseIconProps;
|
|
16
|
+
/**
|
|
17
|
+
* The title text for the menu item or the hover text for the icon.
|
|
18
|
+
*/
|
|
19
|
+
title: string;
|
|
20
|
+
/**
|
|
21
|
+
* The action when clicked
|
|
22
|
+
*/
|
|
23
|
+
onClick: (obj: KubeObject) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface KubeObjectOnContextMenuOpenContext {
|
|
26
|
+
menuItems: KubeObjectContextMenuItem[];
|
|
27
|
+
navigate: (location: string) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare type KubeObjectOnContextMenuOpen = (ctx: KubeObjectOnContextMenuOpenContext) => void;
|
|
30
|
+
export interface KubeObjectHandlers {
|
|
31
|
+
onContextMenuOpen: KubeObjectOnContextMenuOpen;
|
|
32
|
+
}
|
|
33
|
+
export declare type KubeObjectHandlerRegistration = {
|
|
34
|
+
apiVersions: string[];
|
|
35
|
+
kind: string;
|
|
36
|
+
} & RequireAtLeastOne<KubeObjectHandlers>;
|