@uxf/data-grid
Advanced tools
Comparing version 11.3.0 to 11.4.0
@@ -17,86 +17,19 @@ const { globSync } = require("fast-glob"); | ||
function generateSchemaFile(gridName, schemaRelativeImport) { | ||
function generateSchemaFile(gridName, schema, schemaRelativeImport) { | ||
return `import { Schema } from "@uxf/data-grid"; | ||
import json from "${schemaRelativeImport}"; | ||
export const dataGridSchema_${camelize(gridName)}: Schema<any> = json as any;`; | ||
type DataGrid_${camelize(gridName)} = { | ||
columns: { | ||
${schema.columns.map((column) => `"${column.name}": "${column.type}",`).join("\n ")} | ||
}, | ||
filters: { | ||
${schema.filters.map((filter) => `"${filter.name}": "${filter.type}",`).join("\n ")} | ||
} | ||
} | ||
function generateUseDataGridControl(gridName) { | ||
return `import { useDataGridControl, UseDataGridControlConfig } from "@uxf/data-grid/use-data-grid-control"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
export function useDataGridControl_${camelize(gridName)}(config: Omit<UseDataGridControlConfig, "schema">) { | ||
return useDataGridControl({ | ||
schema, | ||
...config, | ||
}); | ||
export const dataGridSchema_${camelize(gridName)}: Schema<DataGrid_${camelize(gridName)}> = json as any;`; | ||
} | ||
`; | ||
} | ||
function generateUseDataGridFetching(gridName, isLoaderRequired) { | ||
return `import { Loader } from "@uxf/data-grid/types/core"; | ||
import { useDataGridFetching, UseDataGridFetchingConfig } from "@uxf/data-grid/use-data-grid-fetching"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
export function useDataGridFetching_${camelize(gridName)}( | ||
config: Omit<UseDataGridFetchingConfig, "gridName" | "loader" | "schema"> & { loader${ | ||
isLoaderRequired ? "" : "?" | ||
}: Loader }, | ||
) { | ||
return useDataGridFetching({ gridName: "${gridName}", schema, ...config }); | ||
} | ||
`; | ||
} | ||
function generateDataGridFile(gridName, isLoaderRequired) { | ||
return `import { Nullish } from "@uxf/core/types"; | ||
import { DataGrid, DataGridProps, DataGridUserConfig, Loader, Request } from "@uxf/data-grid"; | ||
import { useDataGridControl } from "@uxf/data-grid/use-data-grid-control"; | ||
import { useDataGridFetching } from "@uxf/data-grid/use-data-grid-fetching"; | ||
import React from "react"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
type Props = Omit< | ||
DataGridProps<any, any>, | ||
"gridName" | "schema" | "state" | "actions" | "data" | "isLoading" | "onReload" | ||
> & { | ||
loader${isLoaderRequired ? "" : "?"}: Loader; | ||
initialUserConfig?: DataGridUserConfig | Nullish; | ||
initialState?: Request | string | Nullish; | ||
}; | ||
export function DataGrid_${camelize(gridName)}(props: Props) { | ||
const { state, actions } = useDataGridControl({ | ||
schema, | ||
initialState: props.initialState, | ||
initialUserConfig: props.initialUserConfig, | ||
}); | ||
const { data, error, onReload, isLoading } = useDataGridFetching({ | ||
gridName: "${gridName}", | ||
schema, | ||
state, | ||
loader: props.loader, | ||
}); | ||
return ( | ||
<DataGrid<any> | ||
state={state} | ||
actions={actions} | ||
data={data} | ||
isLoading={isLoading} | ||
error={error} | ||
onReload={onReload} | ||
{...props} | ||
gridName="admin-club" | ||
schema={schema} | ||
/> | ||
); | ||
} | ||
`; | ||
} | ||
function generate(jsonSchema, filename, outputDirectory, isLoaderRequired) { | ||
function generate(schema, filename, outputDirectory) { | ||
const gridName = parse(filename).name; | ||
@@ -109,8 +42,4 @@ const generatedPath = join(process.cwd(), outputDirectory, gridName); | ||
generatedSchemaFilename, | ||
generateSchemaFile(gridName, relative(dirname(generatedSchemaFilename), filename)), | ||
generateSchemaFile(gridName, schema, relative(dirname(generatedSchemaFilename), filename)), | ||
); | ||
// writeFile(`${generatedPath}/data-grid.tsx`, generateDataGridFile(gridName, isLoaderRequired)); | ||
// writeFile(`${generatedPath}/use-data-grid-control.ts`, generateUseDataGridControl(gridName)); | ||
// writeFile(`${generatedPath}/use-data-grid-fetching.ts`, generateUseDataGridFetching(gridName, isLoaderRequired)); | ||
} | ||
@@ -121,3 +50,3 @@ | ||
.map((path) => process.cwd() + "/" + path) | ||
.forEach((filename) => generate(readFileSync(filename), filename, outputDirectory, requiredLoader)); | ||
.forEach((filename) => generate(JSON.parse(readFileSync(filename)), filename, outputDirectory, requiredLoader)); | ||
}; |
import { Nullish } from "@uxf/core/types"; | ||
import { Reducer } from "react"; | ||
import { Request } from "../types/api"; | ||
import { Schema } from "../types/schema"; | ||
import { BaseGridType, Schema } from "../types/schema"; | ||
import { DataGridState, DataGridUserConfig } from "../types/state"; | ||
export declare const getInitialState: (schema: Schema<any>, init?: Request | string | Nullish, initialUserConfig?: DataGridUserConfig | Nullish) => DataGridState; | ||
export declare const reducer: Reducer<DataGridState, any>; | ||
export declare const debugReducer: Reducer<DataGridState, any>; | ||
export declare function getInitialState<GridType extends BaseGridType>(schema: Schema<GridType>, init?: Request | string | Nullish, initialUserConfig?: DataGridUserConfig<GridType> | Nullish): DataGridState<GridType>; | ||
export declare const reducer: Reducer<DataGridState<any>, any>; | ||
export declare const debugReducer: Reducer<DataGridState<any>, any>; |
@@ -6,3 +6,3 @@ "use strict"; | ||
const utils_1 = require("../utils"); | ||
const getInitialState = (schema, init, initialUserConfig) => { | ||
function getInitialState(schema, init, initialUserConfig) { | ||
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r; | ||
@@ -27,3 +27,3 @@ const initialState = (0, is_nil_1.isNil)(init) ? {} : typeof init === "string" ? (_a = (0, utils_1.decodeFilter)(init)) !== null && _a !== void 0 ? _a : {} : init; | ||
}; | ||
}; | ||
} | ||
exports.getInitialState = getInitialState; | ||
@@ -30,0 +30,0 @@ // eslint-disable-next-line complexity |
@@ -41,2 +41,10 @@ "use strict"; | ||
schema: schema_1.schema, | ||
initialUserConfig: { | ||
columns: { | ||
id: { minWidth: 50 }, | ||
text: { minWidth: 300 }, | ||
mail: { minWidth: 300 }, | ||
tel: { minWidth: 300 }, | ||
}, | ||
}, | ||
}); | ||
@@ -43,0 +51,0 @@ const { isLoading, error, data, onReload } = (0, use_data_grid_fetching_1.useDataGridFetching)({ |
{ | ||
"name": "@uxf/data-grid", | ||
"version": "11.3.0", | ||
"version": "11.4.0", | ||
"description": "UXF DataGrid", | ||
@@ -34,3 +34,3 @@ "homepage": "https://gitlab.com/uxf-npm/data-grid#readme", | ||
"dependencies": { | ||
"@uxf/ui": "11.3.0", | ||
"@uxf/ui": "11.4.0", | ||
"dayjs": "1.11.10", | ||
@@ -37,0 +37,0 @@ "fast-glob": "^3.3.2", |
import { Column } from "react-data-grid"; | ||
import { DataGridState } from "../../types"; | ||
import { TableProps } from "../types"; | ||
export declare function useReactDataGridColumns(props: TableProps<any>, state: DataGridState): Column<any>[]; | ||
export declare function useReactDataGridColumns(props: TableProps<any>, state: DataGridState<any>): Column<any>[]; |
import { RequestFilter } from "./api"; | ||
import { DataGridSort } from "./schema"; | ||
import { BaseGridType, DataGridSort } from "./schema"; | ||
export type GridRequest = { | ||
@@ -16,10 +16,10 @@ f: RequestFilter[]; | ||
} | ||
export interface DataGridUserConfig { | ||
columns?: Record<string, ColumnConfig>; | ||
export interface DataGridUserConfig<GridType extends BaseGridType> { | ||
columns?: Partial<Record<keyof GridType["columns"], ColumnConfig>>; | ||
perPage?: number; | ||
} | ||
export interface DataGridState { | ||
export interface DataGridState<GridType extends BaseGridType> { | ||
request: GridRequest; | ||
selectedRows?: any[]; | ||
userConfig: DataGridUserConfig; | ||
userConfig: DataGridUserConfig<GridType>; | ||
tabRequests: { | ||
@@ -26,0 +26,0 @@ [tab: string]: GridRequest; |
import { Nullish } from "@uxf/core/types"; | ||
import { Request } from "../types/api"; | ||
import { Schema } from "../types/schema"; | ||
import { BaseGridType, Schema } from "../types/schema"; | ||
import { DataGridUserConfig } from "../types/state"; | ||
export interface UseDataGridControlConfig { | ||
schema: Schema<any>; | ||
export interface UseDataGridControlConfig<GridType extends BaseGridType> { | ||
schema: Schema<GridType>; | ||
initialState?: Request | string | Nullish; | ||
isDebug?: boolean; | ||
initialUserConfig?: DataGridUserConfig | Nullish; | ||
initialUserConfig?: DataGridUserConfig<GridType> | Nullish; | ||
} | ||
export declare function useDataGridControl(config: UseDataGridControlConfig): { | ||
state: import("../types/state").DataGridState; | ||
export declare function useDataGridControl<T extends BaseGridType>(config: UseDataGridControlConfig<T>): { | ||
state: import("../types/state").DataGridState<any>; | ||
actions: { | ||
@@ -14,0 +14,0 @@ changePage: (page: number) => void; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
171516
3823
+ Added@uxf/ui@11.4.0(transitive)
- Removed@uxf/ui@11.3.0(transitive)
Updated@uxf/ui@11.4.0