diff --git a/package-lock.json b/package-lock.json index f02b483e4a..ae6fa9dc8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4095,6 +4095,10 @@ "resolved": "packages/utility-features/startable-stoppable", "link": true }, + "node_modules/@k8slens/table-tokens": { + "resolved": "packages/table", + "link": true + }, "node_modules/@k8slens/test-utils": { "resolved": "packages/utility-features/test-utils", "link": true @@ -36561,6 +36565,17 @@ "rimraf": "^4.4.1" } }, + "packages/table": { + "version": "6.5.0-alpha.7", + "license": "MIT", + "devDependencies": { + "@k8slens/webpack": "^6.5.0-alpha.8", + "rimraf": "^4.4.1" + }, + "peerDependencies": { + "@ogre-tools/injectable": "^16.1.0" + } + }, "packages/technical-features/application/agnostic": { "name": "@k8slens/application", "version": "6.5.0-alpha.8", diff --git a/packages/table/README.md b/packages/table/README.md new file mode 100644 index 0000000000..e66efd11b8 --- /dev/null +++ b/packages/table/README.md @@ -0,0 +1,3 @@ +# Description + +The package exports tokens needed for external table configuration. diff --git a/packages/table/index.ts b/packages/table/index.ts new file mode 100644 index 0000000000..dccb3f7fa1 --- /dev/null +++ b/packages/table/index.ts @@ -0,0 +1,30 @@ +import React from "react"; +import { getInjectionToken } from "@ogre-tools/injectable"; +import type { KubeObject } from "@k8slens/kube-object/src/kube-object"; +import type { + BaseKubeObjectListLayoutColumn, + GeneralKubeObjectListLayoutColumn, + SpecificKubeListLayoutColumn, +} from "@k8slens/list-layout/src/kube-list-layout-column"; + +export interface TableDataContextValue { + columns?: ( + | BaseKubeObjectListLayoutColumn + | SpecificKubeListLayoutColumn + | GeneralKubeObjectListLayoutColumn + )[]; +} + +export const TableDataContext = React.createContext({ + columns: [], +}); + +export type CreateTableState = (context: TableDataContextValue, props: Props) => any; + +export const createTableStateInjectionToken = getInjectionToken>({ + id: "create-table-state-injection-token", +}); + +export const tableComponentInjectionToken = getInjectionToken>({ + id: "table-component-injection-token", +}); diff --git a/packages/table/package.json b/packages/table/package.json new file mode 100644 index 0000000000..5e8d5db658 --- /dev/null +++ b/packages/table/package.json @@ -0,0 +1,28 @@ +{ + "name": "@k8slens/table-tokens", + "version": "6.5.0-alpha.7", + "description": "Injection token exporter for table components", + "license": "MIT", + "type": "commonjs", + "private": false, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "clean": "rimraf dist/", + "build": "lens-webpack-build" + }, + "devDependencies": { + "@k8slens/webpack": "^6.5.0-alpha.8", + "rimraf": "^4.4.1" + }, + "peerDependencies": { + "@ogre-tools/injectable": "^16.1.0" + } +} diff --git a/packages/table/tsconfig.json b/packages/table/tsconfig.json new file mode 100644 index 0000000000..1819203dc1 --- /dev/null +++ b/packages/table/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@k8slens/typescript/config/base.json", + "include": ["**/*.ts"] +} diff --git a/packages/table/webpack.config.js b/packages/table/webpack.config.js new file mode 100644 index 0000000000..3183f30179 --- /dev/null +++ b/packages/table/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForNode;