neue Homepage auf react basis

This commit is contained in:
2026-08-07 21:39:30 +02:00
parent 164bdd19ad
commit ee89442c04
52191 changed files with 1230242 additions and 58 deletions
@@ -0,0 +1,3 @@
import type { GridSlotsComponent } from "../../../models/index.mjs";
export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noColumnsOverlay' | 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
export type GridLoadingOverlayVariant = 'circular-progress' | 'linear-progress' | 'skeleton';
@@ -0,0 +1,3 @@
import type { GridSlotsComponent } from "../../../models/index.js";
export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noColumnsOverlay' | 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
export type GridLoadingOverlayVariant = 'circular-progress' | 'linear-progress' | 'skeleton';
@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
@@ -0,0 +1 @@
export {};
@@ -0,0 +1 @@
export type { GridLoadingOverlayVariant } from "./gridOverlaysInterfaces.mjs";
@@ -0,0 +1 @@
export type { GridLoadingOverlayVariant } from "./gridOverlaysInterfaces.js";
@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
@@ -0,0 +1 @@
export {};
@@ -0,0 +1,12 @@
import type * as React from 'react';
import type { GridApiCommunity } from "../../../models/api/gridApiCommunity.mjs";
import type { DataGridProcessedProps } from "../../../models/props/DataGridProps.mjs";
import type { GridOverlayType, GridLoadingOverlayVariant } from "./gridOverlaysInterfaces.mjs";
/**
* Uses the grid state to determine which overlay to display.
* Returns the active overlay type and the active loading overlay variant.
*/
export declare const useGridOverlays: (apiRef: React.RefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'slotProps'>) => {
overlayType: NonNullable<GridOverlayType>;
loadingOverlayVariant: GridLoadingOverlayVariant | null;
};
@@ -0,0 +1,12 @@
import type * as React from 'react';
import type { GridApiCommunity } from "../../../models/api/gridApiCommunity.js";
import type { DataGridProcessedProps } from "../../../models/props/DataGridProps.js";
import type { GridOverlayType, GridLoadingOverlayVariant } from "./gridOverlaysInterfaces.js";
/**
* Uses the grid state to determine which overlay to display.
* Returns the active overlay type and the active loading overlay variant.
*/
export declare const useGridOverlays: (apiRef: React.RefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'slotProps'>) => {
overlayType: NonNullable<GridOverlayType>;
loadingOverlayVariant: GridLoadingOverlayVariant | null;
};
@@ -0,0 +1,52 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useGridOverlays = void 0;
var _utils = require("../../utils");
var _filter = require("../filter");
var _rows = require("../rows");
var _gridRowsSelector = require("../rows/gridRowsSelector");
var _columns = require("../columns");
var _pivoting = require("../pivoting");
/**
* Uses the grid state to determine which overlay to display.
* Returns the active overlay type and the active loading overlay variant.
*/
const useGridOverlays = (apiRef, props) => {
const totalRowCount = (0, _utils.useGridSelector)(apiRef, _rows.gridRowCountSelector);
const visibleRowCount = (0, _utils.useGridSelector)(apiRef, _filter.gridExpandedRowCountSelector);
const pinnedRowsCount = (0, _utils.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsCountSelector);
const visibleColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisibleColumnDefinitionsSelector);
const noRows = totalRowCount === 0 && pinnedRowsCount === 0;
const loading = (0, _utils.useGridSelector)(apiRef, _rows.gridRowsLoadingSelector);
const pivotActive = (0, _utils.useGridSelector)(apiRef, _pivoting.gridPivotActiveSelector);
const showNoRowsOverlay = !loading && noRows;
const showNoResultsOverlay = !loading && totalRowCount > 0 && visibleRowCount === 0;
const showNoColumnsOverlay = !loading && visibleColumns.length === 0;
const showEmptyPivotOverlay = showNoRowsOverlay && pivotActive;
let overlayType = null;
let loadingOverlayVariant = null;
if (showNoRowsOverlay) {
overlayType = 'noRowsOverlay';
}
if (showNoColumnsOverlay) {
overlayType = 'noColumnsOverlay';
}
if (showEmptyPivotOverlay) {
overlayType = 'emptyPivotOverlay';
}
if (showNoResultsOverlay) {
overlayType = 'noResultsOverlay';
}
if (loading) {
overlayType = 'loadingOverlay';
loadingOverlayVariant = props.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] ?? (noRows ? 'skeleton' : 'linear-progress');
}
return {
overlayType: overlayType,
loadingOverlayVariant
};
};
exports.useGridOverlays = useGridOverlays;
@@ -0,0 +1,45 @@
import { useGridSelector } from "../../utils/index.mjs";
import { gridExpandedRowCountSelector } from "../filter/index.mjs";
import { gridRowCountSelector, gridRowsLoadingSelector } from "../rows/index.mjs";
import { gridPinnedRowsCountSelector } from "../rows/gridRowsSelector.mjs";
import { gridVisibleColumnDefinitionsSelector } from "../columns/index.mjs";
import { gridPivotActiveSelector } from "../pivoting/index.mjs";
/**
* Uses the grid state to determine which overlay to display.
* Returns the active overlay type and the active loading overlay variant.
*/
export const useGridOverlays = (apiRef, props) => {
const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);
const visibleRowCount = useGridSelector(apiRef, gridExpandedRowCountSelector);
const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
const noRows = totalRowCount === 0 && pinnedRowsCount === 0;
const loading = useGridSelector(apiRef, gridRowsLoadingSelector);
const pivotActive = useGridSelector(apiRef, gridPivotActiveSelector);
const showNoRowsOverlay = !loading && noRows;
const showNoResultsOverlay = !loading && totalRowCount > 0 && visibleRowCount === 0;
const showNoColumnsOverlay = !loading && visibleColumns.length === 0;
const showEmptyPivotOverlay = showNoRowsOverlay && pivotActive;
let overlayType = null;
let loadingOverlayVariant = null;
if (showNoRowsOverlay) {
overlayType = 'noRowsOverlay';
}
if (showNoColumnsOverlay) {
overlayType = 'noColumnsOverlay';
}
if (showEmptyPivotOverlay) {
overlayType = 'emptyPivotOverlay';
}
if (showNoResultsOverlay) {
overlayType = 'noResultsOverlay';
}
if (loading) {
overlayType = 'loadingOverlay';
loadingOverlayVariant = props.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] ?? (noRows ? 'skeleton' : 'linear-progress');
}
return {
overlayType: overlayType,
loadingOverlayVariant
};
};