pne-ui 4.3.0-rc.1 → 4.3.0-rc.2

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.
Files changed (41) hide show
  1. package/cjs/component/search-ui/SearchUI.d.ts +52 -19
  2. package/cjs/component/search-ui/SearchUI.js +80 -8
  3. package/cjs/component/search-ui/SearchUI.js.map +1 -1
  4. package/cjs/component/table/AbstractTable.d.ts +5 -0
  5. package/cjs/component/table/AbstractTable.js +16 -2
  6. package/cjs/component/table/AbstractTable.js.map +1 -1
  7. package/cjs/component/table/PneTableViewSelector.d.ts +30 -0
  8. package/cjs/component/table/PneTableViewSelector.js +81 -0
  9. package/cjs/component/table/PneTableViewSelector.js.map +1 -0
  10. package/cjs/component/table/useDelayedLoading.d.ts +1 -1
  11. package/cjs/component/table/useDelayedLoading.js +48 -20
  12. package/cjs/component/table/useDelayedLoading.js.map +1 -1
  13. package/cjs/component/table/useTable.d.ts +4 -0
  14. package/cjs/component/table/useTable.js +116 -32
  15. package/cjs/component/table/useTable.js.map +1 -1
  16. package/cjs/exports/search.d.ts +1 -1
  17. package/cjs/exports/search.js.map +1 -1
  18. package/cjs/exports/table.d.ts +1 -0
  19. package/cjs/exports/table.js +3 -1
  20. package/cjs/exports/table.js.map +1 -1
  21. package/esm/component/search-ui/SearchUI.d.ts +52 -19
  22. package/esm/component/search-ui/SearchUI.js +81 -9
  23. package/esm/component/search-ui/SearchUI.js.map +1 -1
  24. package/esm/component/table/AbstractTable.d.ts +5 -0
  25. package/esm/component/table/AbstractTable.js +16 -2
  26. package/esm/component/table/AbstractTable.js.map +1 -1
  27. package/esm/component/table/PneTableViewSelector.d.ts +30 -0
  28. package/esm/component/table/PneTableViewSelector.js +77 -0
  29. package/esm/component/table/PneTableViewSelector.js.map +1 -0
  30. package/esm/component/table/useDelayedLoading.d.ts +1 -1
  31. package/esm/component/table/useDelayedLoading.js +49 -21
  32. package/esm/component/table/useDelayedLoading.js.map +1 -1
  33. package/esm/component/table/useTable.d.ts +4 -0
  34. package/esm/component/table/useTable.js +116 -32
  35. package/esm/component/table/useTable.js.map +1 -1
  36. package/esm/exports/search.d.ts +1 -1
  37. package/esm/exports/search.js.map +1 -1
  38. package/esm/exports/table.d.ts +1 -0
  39. package/esm/exports/table.js +1 -0
  40. package/esm/exports/table.js.map +1 -1
  41. package/package.json +1 -1
@@ -2,7 +2,7 @@ import React, { Dispatch, SetStateAction } from 'react';
2
2
  import { SearchUIFiltersConfig } from './filters/SearchUIFilters';
3
3
  import { CriterionTypeEnum, ExactCriterionSearchLabelEnum, SearchCriteria, SearchUIConditions } from './filters/types';
4
4
  import { GetPagedOrderedSortedListRequest, Order } from '../../common';
5
- import { TableCreateHeaderType } from '../..';
5
+ import { PneTableViewOption, PneTableViewSelectorProps, TableCreateHeaderType } from '../..';
6
6
  import { UseTableParams } from '../table/useTable';
7
7
  /**
8
8
  * Параметры запроса поиска, отправляемые в обработчик данных таблицы.
@@ -14,7 +14,7 @@ export type SearchParams = Omit<SearchCriteria & GetPagedOrderedSortedListReques
14
14
  * Свойства компонента {@link SearchUI}.
15
15
  * @template D Тип строки данных, возвращаемых запросом поиска и отображаемых в таблице.
16
16
  */
17
- export type SearchUIProps<D extends object> = {
17
+ type SearchUICommonProps<D extends object> = {
18
18
  /**
19
19
  * Stable non-secret Selenium scope shared by the filters and results table.
20
20
  * Defaults to settingsContextName; set it explicitly when multiple instances may render together.
@@ -44,22 +44,6 @@ export type SearchUIProps<D extends object> = {
44
44
  * Внешнее управление состоянием фильтров. При изменении значения происходит синхронизация стора.
45
45
  */
46
46
  searchConditions?: Partial<SearchUIConditions>;
47
- /**
48
- * Функция загрузки данных по текущим параметрам поиска.
49
- */
50
- searchData: (searchParams: SearchParams) => Promise<D[]>;
51
- /**
52
- * Фабрика заголовка таблицы.
53
- */
54
- createTableHeader: TableCreateHeaderType;
55
- /**
56
- * Фабрика строки таблицы.
57
- * @param rowData Данные текущей строки.
58
- * @param index Индекс строки.
59
- * @param data Все текущие данные таблицы.
60
- * @param setData Сеттер для обновления данных таблицы.
61
- */
62
- createTableRow: (rowData: D, index: number, data: D[], setData: Dispatch<SetStateAction<D[]>>) => React.ReactElement;
63
47
  /**
64
48
  * Кастомизация поведения таблицы (пагинация, отображение, дублирование пагинатора).
65
49
  */
@@ -73,12 +57,60 @@ export type SearchUIProps<D extends object> = {
73
57
  */
74
58
  config?: SearchUIFiltersConfig;
75
59
  };
60
+ export type SearchUIDataSource<D extends object> = (searchParams: SearchParams) => Promise<D[]>;
61
+ export type SearchUITableRowFactory<D extends object> = (rowData: D, index: number, data: D[], setData: Dispatch<SetStateAction<D[]>>) => React.ReactElement;
62
+ export type SearchUIViewSort = 'preserve' | {
63
+ sortColumnIndex: number;
64
+ sortAsc: boolean;
65
+ };
66
+ export type SearchUIView<D extends object, TViewId extends string = string> = PneTableViewOption<TViewId> & {
67
+ /** Data source used only while this view is selected. */
68
+ searchData: SearchUIDataSource<D>;
69
+ /** Header rendered only while this view is selected. */
70
+ createTableHeader: TableCreateHeaderType;
71
+ /** Row renderer used only while this view is selected. */
72
+ createTableRow: SearchUITableRowFactory<D>;
73
+ /** Optional consumer-owned actions rendered while this view is selected. */
74
+ actions?: React.ReactNode;
75
+ /** Defaults to the common safe sort; preserving another view's sort must be explicit. */
76
+ sortOnActivate?: SearchUIViewSort;
77
+ };
78
+ type SearchUIViewsAccessibleName = {
79
+ 'aria-label': string;
80
+ 'aria-labelledby'?: never;
81
+ } | {
82
+ 'aria-label'?: never;
83
+ 'aria-labelledby': string;
84
+ };
85
+ type SearchUIViewsBaseConfig<TViewId extends string> = Omit<PneTableViewSelectorProps<TViewId>, 'actions' | 'aria-label' | 'aria-labelledby' | 'views'>;
86
+ export type SearchUIViewsConfig<D extends object, TViewId extends string = string> = SearchUIViewsBaseConfig<TViewId> & SearchUIViewsAccessibleName & {
87
+ views: readonly SearchUIView<D, TViewId>[];
88
+ /** Optional compatibility/layout wrapper around the library-owned selector. */
89
+ renderViewSelector?: (selector: React.ReactElement) => React.ReactNode;
90
+ };
91
+ type SearchUILegacyTableProps<D extends object> = {
92
+ tableViews?: never;
93
+ /** Function that loads rows for the current search and table state. */
94
+ searchData: SearchUIDataSource<D>;
95
+ /** Table header factory. */
96
+ createTableHeader: TableCreateHeaderType;
97
+ /** Table row factory. */
98
+ createTableRow: SearchUITableRowFactory<D>;
99
+ };
100
+ type SearchUIViewTableProps<D extends object, TViewId extends string> = {
101
+ /** Controlled generic table-view configuration. */
102
+ tableViews: SearchUIViewsConfig<D, TViewId>;
103
+ searchData?: never;
104
+ createTableHeader?: never;
105
+ createTableRow?: never;
106
+ };
107
+ export type SearchUIProps<D extends object, TViewId extends string = string> = SearchUICommonProps<D> & (SearchUILegacyTableProps<D> | SearchUIViewTableProps<D, TViewId>);
76
108
  /**
77
109
  * Высокоуровневый компонент поискового UI, объединяющий фильтры и таблицу с результатами.
78
110
  * @template D Тип строки данных, отображаемых в таблице.
79
111
  * @param props Свойства компонента.
80
112
  */
81
- export declare const SearchUI: <D extends object>(props: SearchUIProps<D>) => React.ReactElement;
113
+ export declare const SearchUI: <D extends object, TViewId extends string = string>(props: SearchUIProps<D, TViewId>) => React.ReactElement;
82
114
  /**
83
115
  * Преобразует внутреннее состояние фильтров и таблицы в параметры запроса для загрузки данных.
84
116
  * @param searchCriteria Текущее состояние критериев поиска.
@@ -91,3 +123,4 @@ export declare const createSearchParams: (searchCriteria: SearchCriteria, option
91
123
  order?: Order;
92
124
  sortIndex: number;
93
125
  }) => SearchParams;
126
+ export {};
@@ -19,25 +19,44 @@ const SearchUI = (props) => {
19
19
  };
20
20
  exports.SearchUI = SearchUI;
21
21
  const SearchUIContent = (props) => {
22
- const { autoTestId = props.settingsContextName, settingsContextName, possibleCriteria, predefinedCriteria, exactSearchLabels, initialSearchConditions, searchConditions, searchData, createTableHeader, createTableRow, tableParams, dataUseState, config, } = props;
22
+ const { autoTestId = props.settingsContextName, settingsContextName, possibleCriteria, predefinedCriteria, exactSearchLabels, initialSearchConditions, searchConditions, tableParams, dataUseState, config, } = props;
23
+ const resolvedTable = resolveSearchUITable(props);
23
24
  const searchCriteria = (0, store_1.useSearchUIFiltersStore)(store => store.appliedSearchCriteria);
24
25
  const filtersSettingsContextName = (0, store_1.useSearchUIFiltersStore)(store => store.settingsContextName);
25
26
  const filtersContextReady = filtersSettingsContextName === settingsContextName;
26
27
  // const [criteria, setCriteria] = useSearchCriteria()
27
- const [displayOptions, setDisplayOptions] = (0, react_1.useState)({
28
+ const defaultDisplayOptions = {
28
29
  ...initialDisplayOptions,
29
30
  ...tableParams?.displayOptions,
30
- });
31
- const fetchDataExtraDeps = (0, react_1.useMemo)(() => [searchCriteria, filtersContextReady], [searchCriteria, filtersContextReady]);
31
+ };
32
+ const [displayOptions, setDisplayOptions] = (0, react_1.useState)(defaultDisplayOptions);
33
+ const resolvedDisplayOptions = resolvedTable.viewId === undefined
34
+ || resolvedTable.sortOnActivate === 'preserve'
35
+ ? displayOptions
36
+ : {
37
+ ...defaultDisplayOptions,
38
+ pageSize: displayOptions.pageSize,
39
+ ...resolvedTable.sortOnActivate,
40
+ };
41
+ const fetchDataExtraDeps = (0, react_1.useMemo)(() => [searchCriteria, filtersContextReady, resolvedTable.viewId], [searchCriteria, filtersContextReady, resolvedTable.viewId]);
32
42
  const { loading, paginator, data, setData, sortIndex, setSortIndex, order, setOrder, onSortChange, } = (0, __1.useTable)({
33
43
  rowsPerPageOptions: tableParams?.rowsPerPageOptions,
34
44
  duplicatePagination: tableParams?.duplicatePagination,
35
45
  paginatorActiveActionSx: tableParams?.paginatorActiveActionSx,
36
- displayOptions: displayOptions,
46
+ displayOptions: resolvedDisplayOptions,
37
47
  onDisplayOptionsChange: setDisplayOptions,
38
48
  settingsContextName: settingsContextName,
39
49
  dataUseState: dataUseState,
40
50
  fetchDataExtraDeps: fetchDataExtraDeps,
51
+ resetDisplayOptions: resolvedTable.viewId === undefined
52
+ ? undefined
53
+ : resolvedTable.sortOnActivate === 'preserve'
54
+ ? 'preserve'
55
+ : {
56
+ sortColumnIndex: resolvedDisplayOptions.sortColumnIndex,
57
+ sortAsc: resolvedDisplayOptions.sortAsc,
58
+ },
59
+ resetKey: resolvedTable.viewId,
41
60
  fetchData: ({ page, pageSize, order, sortIndex }) => {
42
61
  if (!searchCriteria?.initialized || !filtersContextReady) {
43
62
  return Promise.resolve([]);
@@ -48,20 +67,73 @@ const SearchUIContent = (props) => {
48
67
  order,
49
68
  sortIndex,
50
69
  });
51
- return searchData(searchParams);
70
+ return resolvedTable.searchData(searchParams);
52
71
  },
53
72
  });
73
+ const tableViewSelector = props.tableViews
74
+ ? createTableViewSelector(props.tableViews, resolvedTable.viewId, resolvedTable.actions, autoTestId)
75
+ : undefined;
54
76
  return react_1.default.createElement(react_1.default.Fragment, null,
55
77
  react_1.default.createElement(SearchUIFilters_1.SearchUIFiltersContent, { autoTestId: autoTestId, settingsContextName: settingsContextName, possibleCriteria: possibleCriteria, predefinedCriteria: predefinedCriteria, exactSearchLabels: exactSearchLabels, initialSearchConditions: initialSearchConditions, searchConditions: searchConditions, onFiltersUpdate: ignoreAppliedSearchCriteria, config: config, searchLoading: loading }),
56
78
  react_1.default.createElement(material_1.Divider, null),
57
79
  react_1.default.createElement(material_1.Box, { sx: tableBoxSx },
58
- react_1.default.createElement(__1.PneTable, { autoTestId: autoTestId, data: data, createTableHeader: createTableHeader, sortOptions: {
80
+ react_1.default.createElement(__1.PneTable, { autoTestId: autoTestId, data: data, createTableHeader: resolvedTable.createTableHeader, sortOptions: {
59
81
  order,
60
82
  setOrder,
61
83
  sortIndex,
62
84
  setSortIndex,
63
85
  onSortChange,
64
- }, createRow: (item, index, arr) => createTableRow(item, index, arr, setData), paginator: paginator, loading: loading })));
86
+ }, createRow: (item, index, arr) => resolvedTable.createTableRow(item, index, arr, setData), paginator: paginator, loading: loading, loadingKey: resolvedTable.viewId, toolbar: tableViewSelector })));
87
+ };
88
+ const resolveSearchUITable = (props) => {
89
+ if (!props.tableViews) {
90
+ return {
91
+ searchData: props.searchData,
92
+ createTableHeader: props.createTableHeader,
93
+ createTableRow: props.createTableRow,
94
+ };
95
+ }
96
+ if (props.tableViews.views.length === 0) {
97
+ throw new Error('SearchUI: table views must not be empty');
98
+ }
99
+ const seenIds = new Set();
100
+ for (const view of props.tableViews.views) {
101
+ if (seenIds.has(view.id)) {
102
+ throw new Error(`SearchUI: duplicate table view ID "${view.id}"`);
103
+ }
104
+ seenIds.add(view.id);
105
+ }
106
+ let activeView = props.tableViews.views.find(view => view.id === props.tableViews.value);
107
+ if (!activeView) {
108
+ if (process.env.NODE_ENV !== 'production') {
109
+ throw new Error(`SearchUI: selected table view "${props.tableViews.value}" is not configured`);
110
+ }
111
+ activeView = props.tableViews.views[0];
112
+ }
113
+ return {
114
+ searchData: activeView.searchData,
115
+ createTableHeader: activeView.createTableHeader,
116
+ createTableRow: activeView.createTableRow,
117
+ actions: activeView.actions,
118
+ sortOnActivate: activeView.sortOnActivate,
119
+ viewId: activeView.id,
120
+ };
121
+ };
122
+ const createTableViewSelector = (config, value, actions, searchUIAutoTestId) => {
123
+ const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, autoTestId = searchUIAutoTestId, renderViewSelector, value: _configuredValue, views, ...selectorProps } = config;
124
+ const options = views.map(view => ({
125
+ id: view.id,
126
+ label: view.label,
127
+ disabled: view.disabled,
128
+ }));
129
+ let selector;
130
+ if (ariaLabel !== undefined) {
131
+ selector = react_1.default.createElement(__1.PneTableViewSelector, { ...selectorProps, "aria-label": ariaLabel, actions: actions, autoTestId: autoTestId, value: value, views: options });
132
+ }
133
+ else {
134
+ selector = react_1.default.createElement(__1.PneTableViewSelector, { ...selectorProps, "aria-labelledby": ariaLabelledBy, actions: actions, autoTestId: autoTestId, value: value, views: options });
135
+ }
136
+ return renderViewSelector ? react_1.default.createElement(react_1.default.Fragment, null, renderViewSelector(selector)) : selector;
65
137
  };
66
138
  const ignoreAppliedSearchCriteria = () => {
67
139
  // SearchUI reads the applied criteria from its instance-scoped filter store.
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUI.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUI.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchUI.js","sourceRoot":"","sources":["../../../src/component/search-ui/SearchUI.tsx"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export type TableProps<D> = {
26
26
  lastRow?: React.ReactElement;
27
27
  paginator?: PaginatorProps;
28
28
  loading?: boolean;
29
+ /** Identity that makes a structural loading transition visible immediately without remounting controls. */
30
+ loadingKey?: string | number;
29
31
  stickyHeader?: boolean;
30
32
  showNothingIsFoundRow?: boolean;
31
33
  /** Accessible name forwarded to the semantic table independently from autoTestId. */
@@ -36,6 +38,9 @@ export type TableProps<D> = {
36
38
  boxSx?: SxProps;
37
39
  noRowsMessage?: string;
38
40
  skeletonRowHeight?: number;
41
+ /** Optional controls rendered inside the table root before top pagination and table content. */
42
+ toolbar?: React.ReactNode;
43
+ toolbarSx?: SxProps;
39
44
  };
40
45
  export type TableSortOptions = {
41
46
  order: Order;
@@ -18,10 +18,11 @@ const AutoTestAttribute_1 = require("../AutoTestAttribute");
18
18
  const TABLE_AUTOTEST_ID = 'table';
19
19
  const TABLE_EMPTY_STATE_AUTOTEST_ID = 'empty-state';
20
20
  const TABLE_PAGINATION_AUTOTEST_ID = 'pagination';
21
+ const TABLE_TOOLBAR_AUTOTEST_ID = 'table-toolbar';
21
22
  const AbstractTable = (props) => {
22
- const { data, autoTestId, createTableHeader, sortOptions, createRow, lastRow = null, paginator, loading = false, stickyHeader = false, showNothingIsFoundRow = true, tableAriaLabel, tableAriaLabelledBy, tableSx = {}, boxSx = {}, noRowsMessage, skeletonRowHeight, } = props;
23
+ const { data, autoTestId, createTableHeader, sortOptions, createRow, lastRow = null, paginator, loading = false, loadingKey, stickyHeader = false, showNothingIsFoundRow = true, tableAriaLabel, tableAriaLabelledBy, tableSx = {}, boxSx = {}, noRowsMessage, skeletonRowHeight, toolbar, toolbarSx, } = props;
23
24
  const { t } = (0, react_i18next_1.useTranslation)();
24
- const showSkeleton = (0, useDelayedLoading_1.default)(loading);
25
+ const showSkeleton = (0, useDelayedLoading_1.default)(loading, loadingKey);
25
26
  const containerRef = (0, react_1.useRef)(null);
26
27
  const tableContainerRef = (0, react_1.useRef)(null);
27
28
  const lastRowHeightRef = (0, react_1.useRef)(undefined);
@@ -86,6 +87,18 @@ const AbstractTable = (props) => {
86
87
  const skeletonTableHeight = showSkeleton && actualSkeletonRowHeight && lastHeaderHeightRef.current > 0
87
88
  ? lastHeaderHeightRef.current + actualSkeletonRowHeight * skeletonRowCount
88
89
  : undefined;
90
+ const hasToolbar = toolbar !== undefined
91
+ && toolbar !== null
92
+ && typeof toolbar !== 'boolean';
93
+ const resolvedToolbarSx = [
94
+ {
95
+ alignItems: 'center',
96
+ display: 'flex',
97
+ justifyContent: 'flex-end',
98
+ marginBottom: '8px',
99
+ },
100
+ ...(Array.isArray(toolbarSx) ? toolbarSx : [toolbarSx]),
101
+ ];
89
102
  const SKELETON_COL_HIDDEN = 30;
90
103
  const SKELETON_COL_NARROW = 120;
91
104
  const skeletonCellContent = (row, col) => {
@@ -99,6 +112,7 @@ const AbstractTable = (props) => {
99
112
  return react_1.default.createElement(Skeleton_1.default, { variant: "rounded", width: width, height: skeletonItemHeight });
100
113
  };
101
114
  return react_1.default.createElement(Box_1.default, { ...(0, AutoTestAttribute_1.createAutoTestAttributes)(TABLE_AUTOTEST_ID, autoTestId), sx: { ...boxSx }, ref: containerRef },
115
+ hasToolbar ? react_1.default.createElement(Box_1.default, { ...(0, AutoTestAttribute_1.createAutoTestAttributes)(TABLE_TOOLBAR_AUTOTEST_ID), sx: resolvedToolbarSx }, toolbar) : null,
102
116
  paginator && paginator.duplicatePagination && getPneTablePagination('top'),
103
117
  react_1.default.createElement(TableContainer_1.default, { ref: tableContainerRef },
104
118
  react_1.default.createElement(Table_1.default, { "aria-busy": showSkeleton, "aria-label": tableAriaLabel, "aria-labelledby": tableAriaLabelledBy, stickyHeader: stickyHeader, sx: { ...tableSx, ...(skeletonTableHeight ? { height: skeletonTableHeight } : {}) } },
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { BoxProps } from '@mui/material';
3
+ export type PneTableViewOption<TViewId extends string = string> = {
4
+ id: TViewId;
5
+ label: ReactNode;
6
+ disabled?: boolean;
7
+ };
8
+ export type PneTableViewSelectorProps<TViewId extends string = string> = Omit<BoxProps, 'aria-label' | 'aria-labelledby' | 'children' | 'component' | 'onChange' | 'ref'> & ({
9
+ /** Accessible name applied to the semantic view group. */
10
+ 'aria-label': string;
11
+ 'aria-labelledby'?: never;
12
+ } | {
13
+ /** ID of the element that names the semantic view group. */
14
+ 'aria-label'?: never;
15
+ 'aria-labelledby': string;
16
+ }) & {
17
+ /** Stable, non-secret instance identifier used to scope Selenium locators. */
18
+ autoTestId?: string;
19
+ /** Disables view selection. Consumer-provided actions retain their own disabled state. */
20
+ disabled?: boolean;
21
+ /** Optional consumer-owned actions, such as table-view settings. */
22
+ actions?: ReactNode;
23
+ /** Selected stable view ID. */
24
+ value: TViewId;
25
+ /** Ordered application-defined views. */
26
+ views: readonly PneTableViewOption<TViewId>[];
27
+ /** Called only when the user selects a different non-null view ID. */
28
+ onChange: (value: TViewId) => void;
29
+ };
30
+ export declare const PneTableViewSelector: <TViewId extends string = string>(props: PneTableViewSelectorProps<TViewId> & React.RefAttributes<HTMLDivElement>) => React.ReactElement;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PneTableViewSelector = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const material_1 = require("@mui/material");
7
+ const AutoTestAttribute_1 = require("../AutoTestAttribute");
8
+ const TABLE_VIEWS_AUTOTEST_ID = 'table-views';
9
+ const TABLE_VIEW_AUTOTEST_ID = 'table-view';
10
+ const TABLE_VIEW_ACTIONS_AUTOTEST_ID = 'table-view-actions';
11
+ const rootSx = theme => ({
12
+ alignItems: 'center',
13
+ border: 1,
14
+ borderColor: theme.palette.divider,
15
+ borderRadius: '4px',
16
+ boxSizing: 'border-box',
17
+ display: 'flex',
18
+ gap: '4px',
19
+ height: '40px',
20
+ padding: '4px',
21
+ });
22
+ const groupSx = {
23
+ display: 'flex',
24
+ [`& .${material_1.toggleButtonGroupClasses.grouped}`]: {
25
+ border: '0 !important',
26
+ margin: 0,
27
+ },
28
+ };
29
+ const viewButtonSx = theme => ({
30
+ border: 0,
31
+ borderRadius: '4px !important',
32
+ flex: '1 1 0',
33
+ fontWeight: 'bold',
34
+ height: '32px',
35
+ letterSpacing: '0.46px',
36
+ lineHeight: '22px',
37
+ minWidth: 0,
38
+ textTransform: 'none',
39
+ [`&.${material_1.toggleButtonClasses.selected}`]: {
40
+ backgroundColor: theme.palette.action.selected,
41
+ color: theme.palette.text.secondary,
42
+ '&:hover': {
43
+ backgroundColor: theme.palette.action.selected,
44
+ },
45
+ },
46
+ [`&.${material_1.toggleButtonClasses.disabled}`]: {
47
+ border: 'none',
48
+ },
49
+ '&:hover': {
50
+ backgroundColor: theme.palette.action.selected,
51
+ borderRadius: '4px',
52
+ },
53
+ '.MuiToggleButtonGroup-root:hover &.Mui-selected:not(:hover):not(.Mui-disabled)': {
54
+ backgroundColor: 'transparent',
55
+ },
56
+ '&.Mui-focusVisible': {
57
+ outline: `2px solid ${theme.palette.primary.main}`,
58
+ outlineOffset: '-2px',
59
+ },
60
+ });
61
+ const PneTableViewSelectorInner = (props, ref) => {
62
+ const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, actions, autoTestId, disabled = false, onChange, sx, value, views, ...rootProps } = props;
63
+ const hasActions = actions !== undefined
64
+ && actions !== null
65
+ && typeof actions !== 'boolean';
66
+ const handleChange = (_event, nextValue) => {
67
+ if (nextValue !== null && nextValue !== value) {
68
+ onChange(nextValue);
69
+ }
70
+ };
71
+ return react_1.default.createElement(material_1.Box, { ...rootProps, ...(0, AutoTestAttribute_1.createAutoTestAttributes)(TABLE_VIEWS_AUTOTEST_ID, autoTestId), ref: ref, sx: [
72
+ rootSx,
73
+ ...(Array.isArray(sx) ? sx : [sx]),
74
+ ] },
75
+ react_1.default.createElement(material_1.ToggleButtonGroup, { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, disabled: disabled, exclusive: true, onChange: handleChange, sx: groupSx, value: value }, views.map(view => react_1.default.createElement(material_1.ToggleButton, { ...(0, AutoTestAttribute_1.createAutoTestAttributes)(TABLE_VIEW_AUTOTEST_ID, view.id), disabled: view.disabled, key: view.id, sx: viewButtonSx, value: view.id }, view.label))),
76
+ hasActions ? react_1.default.createElement(react_1.default.Fragment, null,
77
+ react_1.default.createElement(material_1.Divider, { orientation: 'vertical', sx: { height: '24px', mx: '-4px' } }),
78
+ react_1.default.createElement(material_1.Box, { ...(0, AutoTestAttribute_1.createAutoTestAttributes)(TABLE_VIEW_ACTIONS_AUTOTEST_ID), sx: { alignItems: 'center', display: 'flex', height: '32px' } }, actions)) : null);
79
+ };
80
+ exports.PneTableViewSelector = (0, react_1.forwardRef)(PneTableViewSelectorInner);
81
+ //# sourceMappingURL=PneTableViewSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneTableViewSelector.js","sourceRoot":"","sources":["../../../src/component/table/PneTableViewSelector.tsx"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@
5
5
  * skeleton. Последующие loading-состояния остаются отложенными, чтобы избежать мерцания
6
6
  * при быстрых refetch.
7
7
  */
8
- declare const useDelayedLoading: (loading: boolean) => boolean;
8
+ declare const useDelayedLoading: (loading: boolean, resetKey?: string | number) => boolean;
9
9
  export default useDelayedLoading;
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const react_1 = require("react");
4
4
  const DELAY_BEFORE_SHOWING = 300;
5
5
  const MIN_DISPLAY_DURATION = 500;
6
+ const createLoadingState = (loading, resetKey) => ({
7
+ resetKey,
8
+ showSkeleton: loading,
9
+ skeletonShownAt: loading ? Date.now() : null,
10
+ waitForStructuralLoading: resetKey !== undefined && !loading,
11
+ });
6
12
  /**
7
13
  * Хук стабилизации отображения состояния загрузки.
8
14
  *
@@ -10,41 +16,63 @@ const MIN_DISPLAY_DURATION = 500;
10
16
  * skeleton. Последующие loading-состояния остаются отложенными, чтобы избежать мерцания
11
17
  * при быстрых refetch.
12
18
  */
13
- const useDelayedLoading = (loading) => {
14
- const [showSkeleton, setShowSkeleton] = (0, react_1.useState)(loading);
15
- const isInitialLoadingRef = (0, react_1.useRef)(loading);
16
- const initialLoadingHandledRef = (0, react_1.useRef)(false);
17
- const skeletonShownAt = (0, react_1.useRef)(loading ? Date.now() : null);
19
+ const useDelayedLoading = (loading, resetKey) => {
20
+ const [state, setState] = (0, react_1.useState)(() => createLoadingState(loading, resetKey));
21
+ let renderState = state;
22
+ if (!Object.is(state.resetKey, resetKey)) {
23
+ renderState = createLoadingState(loading, resetKey);
24
+ setState(renderState);
25
+ }
26
+ else if (loading && state.waitForStructuralLoading) {
27
+ renderState = {
28
+ ...state,
29
+ showSkeleton: true,
30
+ skeletonShownAt: Date.now(),
31
+ waitForStructuralLoading: false,
32
+ };
33
+ setState(renderState);
34
+ }
18
35
  (0, react_1.useEffect)(() => {
19
36
  if (loading) {
20
- if (isInitialLoadingRef.current && !initialLoadingHandledRef.current) {
21
- initialLoadingHandledRef.current = true;
22
- setShowSkeleton(true);
23
- skeletonShownAt.current = skeletonShownAt.current ?? Date.now();
37
+ if (renderState.showSkeleton) {
24
38
  return undefined;
25
39
  }
26
40
  const timer = setTimeout(() => {
27
- setShowSkeleton(true);
28
- skeletonShownAt.current = Date.now();
41
+ setState(current => Object.is(current.resetKey, resetKey)
42
+ ? {
43
+ ...current,
44
+ showSkeleton: true,
45
+ skeletonShownAt: Date.now(),
46
+ }
47
+ : current);
29
48
  }, DELAY_BEFORE_SHOWING);
30
49
  return () => clearTimeout(timer);
31
50
  }
32
- initialLoadingHandledRef.current = true;
33
- if (skeletonShownAt.current) {
34
- const elapsed = Date.now() - skeletonShownAt.current;
51
+ if (renderState.skeletonShownAt) {
52
+ const elapsed = Date.now() - renderState.skeletonShownAt;
35
53
  if (elapsed < MIN_DISPLAY_DURATION) {
36
54
  const timer = setTimeout(() => {
37
- setShowSkeleton(false);
38
- skeletonShownAt.current = null;
55
+ setState(current => Object.is(current.resetKey, resetKey)
56
+ ? {
57
+ ...current,
58
+ showSkeleton: false,
59
+ skeletonShownAt: null,
60
+ }
61
+ : current);
39
62
  }, MIN_DISPLAY_DURATION - elapsed);
40
63
  return () => clearTimeout(timer);
41
64
  }
42
65
  }
43
- setShowSkeleton(false);
44
- skeletonShownAt.current = null;
66
+ if (renderState.showSkeleton) {
67
+ setState(current => ({
68
+ ...current,
69
+ showSkeleton: false,
70
+ skeletonShownAt: null,
71
+ }));
72
+ }
45
73
  return undefined;
46
- }, [loading]);
47
- return showSkeleton;
74
+ }, [loading, renderState.showSkeleton, renderState.skeletonShownAt, resetKey]);
75
+ return renderState.showSkeleton;
48
76
  };
49
77
  exports.default = useDelayedLoading;
50
78
  //# sourceMappingURL=useDelayedLoading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedLoading.js","sourceRoot":"","sources":["../../../src/component/table/useDelayedLoading.ts"],"names":[],"mappings":";;AAAA,iCAAkD;AAElD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAW,EAAE;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,mBAAmB,GAAG,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,IAAA,cAAM,EAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,mBAAmB,CAAC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;gBACnE,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChE,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAEzB,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;QAExC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;YACrD,IAAI,OAAO,GAAG,oBAAoB,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC1B,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;gBACnC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC;gBACnC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QAED,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"useDelayedLoading.js","sourceRoot":"","sources":["../../../src/component/table/useDelayedLoading.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,10 @@ export type UseTableParams<D> = {
20
20
  dataUseState?: [D[], Dispatch<SetStateAction<D[]>>];
21
21
  fetchData?: (args: FetchDataArgs) => Promise<D[]>;
22
22
  fetchDataExtraDeps?: unknown[];
23
+ /** Stable identity whose change resets page/sort and invalidates rows from the previous identity. */
24
+ resetKey?: string | number;
25
+ /** Sort defaults applied when resetKey changes, or an explicit request to keep the current sort. */
26
+ resetDisplayOptions?: 'preserve' | Pick<TableDisplayOptions, 'sortColumnIndex' | 'sortAsc'>;
23
27
  };
24
28
  interface IUseTableResult<D> {
25
29
  page: number;