es-grid-template 1.9.61 → 1.9.63

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 (34) hide show
  1. package/es/ali-table/Grid.js +1 -1
  2. package/es/ali-table/InternalTable.d.ts +2 -1
  3. package/es/ali-table/InternalTable.js +24 -43
  4. package/es/ali-table/base-table/styles.js +1 -1
  5. package/es/ali-table/base-table/table.d.ts +2 -2
  6. package/es/ali-table/base-table/utils.d.ts +2 -0
  7. package/es/ali-table/base-table/utils.js +12 -1
  8. package/es/ali-table/interfaces.d.ts +4 -0
  9. package/es/ali-table/internals.d.ts +2 -1
  10. package/es/ali-table/pipeline/features/columnCustom.d.ts +2 -0
  11. package/es/ali-table/pipeline/features/columnCustom.js +310 -24
  12. package/es/ali-table/utils/utility.d.ts +1 -0
  13. package/es/ali-table/utils/utility.js +43 -1
  14. package/es/grid-component/type.d.ts +2 -1
  15. package/es/group-component/hook/utils.d.ts +3 -3
  16. package/es/table-component/components/async-select/index.js +1 -1
  17. package/es/table-component/hook/utils.d.ts +1 -3
  18. package/lib/ali-table/Grid.js +1 -1
  19. package/lib/ali-table/InternalTable.d.ts +2 -1
  20. package/lib/ali-table/InternalTable.js +24 -43
  21. package/lib/ali-table/base-table/styles.js +1 -1
  22. package/lib/ali-table/base-table/table.d.ts +2 -2
  23. package/lib/ali-table/base-table/utils.d.ts +2 -0
  24. package/lib/ali-table/base-table/utils.js +13 -0
  25. package/lib/ali-table/interfaces.d.ts +4 -0
  26. package/lib/ali-table/internals.d.ts +2 -1
  27. package/lib/ali-table/pipeline/features/columnCustom.d.ts +2 -0
  28. package/lib/ali-table/pipeline/features/columnCustom.js +310 -24
  29. package/lib/ali-table/utils/utility.d.ts +1 -0
  30. package/lib/ali-table/utils/utility.js +45 -1
  31. package/lib/grid-component/type.d.ts +2 -1
  32. package/lib/table-component/components/async-select/index.js +1 -1
  33. package/lib/table-component/hook/utils.d.ts +1 -3
  34. package/package.json +1 -1
@@ -368,7 +368,7 @@ const Grid = /*#__PURE__*/React.forwardRef((props, ref) => {
368
368
  theme: theme,
369
369
  dataRowIds: dataRowIds,
370
370
  footerDataSource: footerDataSource
371
- })), (bottom || pagination && !infiniteScroll) && /*#__PURE__*/React.createElement("div", {
371
+ })), (bottom || toolbarItemsBottom && toolbarItemsBottom.length > 0 || pagination && !infiniteScroll) && /*#__PURE__*/React.createElement("div", {
372
372
  className: classNames(`${prefix}-grid-bottom`, {})
373
373
  }, bottom, toolbarItemsBottom && toolbarItemsBottom.length > 0 && /*#__PURE__*/React.createElement("div", {
374
374
  className: classNames('ui-rc-toolbar-bottom', {
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import './base-table/styles.scss';
3
3
  import type { TableProps } from "../grid-component/type";
4
- declare const InternalTable: <RecordType extends object>(props: TableProps<RecordType>) => JSX.Element;
4
+ import type { BaseRecord } from "./interfaces";
5
+ declare const InternalTable: <RecordType extends BaseRecord>(props: TableProps<RecordType>) => JSX.Element;
5
6
  export default InternalTable;
@@ -68,6 +68,7 @@ const InternalTable = props => {
68
68
  toolbarItems,
69
69
  defaultValue,
70
70
  commandSettings,
71
+ headerData,
71
72
  ...rest
72
73
  } = props;
73
74
  const tableRef = useRef(null);
@@ -314,51 +315,29 @@ const InternalTable = props => {
314
315
  type: changeType,
315
316
  newState,
316
317
  prevState,
317
- option,
318
- field,
319
- indexCol,
320
- indexRow,
321
- key
318
+ field
322
319
  } = args;
323
320
  if (changeType === 'blur') {
324
- const handleChangeCallback = callbackData => {
325
- const callbackRecord = callbackData;
326
- Object.entries(callbackRecord).forEach(([name, value]) => {
327
- setValue(name, value);
328
- });
329
- onSubmit(callbackRecord);
330
- };
331
- if (onHeaderCellChange) {
332
- if (onHeaderCellChange.length > 1) {
333
- onHeaderCellChange({
334
- field,
335
- indexCol,
336
- type: 'onChange',
337
- value: newState,
338
- option,
339
- indexRow,
340
- rowData: record,
341
- rowId: key,
342
- // rowsData: [...dataSource],
343
- rowsData: [...convertData],
344
- sumValue: []
345
- }, handleChangeCallback);
346
- } else {
347
- onHeaderCellChange({
348
- field,
349
- indexCol,
350
- type: 'onChange',
351
- option,
352
- value: newState,
353
- indexRow,
354
- rowData: record,
355
- rowId: key,
356
- rowsData: [...convertData],
357
- sumValue: []
358
- }, handleChangeCallback);
321
+ // const handleChangeCallback = (callbackData: RecordType[]) => {
322
+ // const callbackRecord = callbackData
359
323
 
360
- // onSubmit(record)
361
- }
324
+ // Object.entries(callbackRecord).forEach(
325
+ // ([name, value]: any) => {
326
+ // setValue(name, value)
327
+
328
+ // }
329
+ // )
330
+
331
+ // onSubmit(callbackRecord)
332
+
333
+ // }
334
+
335
+ if (onHeaderCellChange) {
336
+ const newObj = {
337
+ ...headerData,
338
+ [field]: newState
339
+ };
340
+ onHeaderCellChange(newObj);
362
341
  }
363
342
  }
364
343
  if (prevState && newState && prevState !== newState && changeType === 'enter') {
@@ -464,8 +443,10 @@ const InternalTable = props => {
464
443
  handleSubmit,
465
444
  onSubmit,
466
445
  triggerPaste,
446
+ headerEditAble,
467
447
  handleCellChange,
468
- handleHeaderCellChange
448
+ handleHeaderCellChange,
449
+ headerData
469
450
  })).use(features.paginationFeature({
470
451
  pagination
471
452
  }));
@@ -60,7 +60,7 @@ const outerBorderStyleMixin = css(["border-top:var(--cell-border-horizontal);bor
60
60
  export const StyleTableContainer = styled.div.withConfig({
61
61
  displayName: "StyleTableContainer",
62
62
  componentId: "es-grid-template__sc-ipj1ht-0"
63
- })(["--row-height:34px;--color:#333;--bgcolor:white;--body-hover-bgcolor:#f5f5f5;--body-hover-color:#333;--hover-bgcolor:var(--body-hover-bgcolor,#f5f5f5);--hover-color:var(--body-hover-color);--highlight-bgcolor:#eee;--header-row-height:34px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--border-color-select:#eb4619;--cell-border:1px solid var(--border-color);--cell-border-select:1px solid var(--border-color-select);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgcolor:#fafafa;&.", "{--bgcolor:#343e59;--footer-bgcolor:#2e3342;--header-bgcolor:#343e59;--hover-bgcolor:#232b43;--header-hover-bgcolor:#606164;--highlight-bgcolor:#eff2f5;--header-highlight-bgcolor:#191a1b;--hover-color:#dadde1;--color:#dadde1;--header-color:#dadde1;--lock-shadow:rgb(37 37 37 / 0.5) 0 0 6px 2px;--border-color:#4f5266;background-color:var(--bgcolor);}&.use-outer-border{", ";}&.", "{.", "{border-left:0;border-right:0;td,th{border-right:0;}td.first,th.first{border-left:0;}td.last,th.last{}thead tr.first th,tbody tr.first td{}tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 0px 0 0 var(--border-color),0px 0 0 0 var(--border-color);}}}&.has-footer tfoot tr.last td{}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{}}}&.", "{&.use-outer-border{border-bottom:var(--header-cell-border);}.", "{border-top:0;td,th{border-bottom:0;border-top:0;}td.lock-left{box-shadow:none;}td.first,th.first{}td.last,th.last{}thead tr.first th,tbody tr.first td{}&.has-footer tfoot tr td{border-bottom:0;border-top:0;}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{}}}&.", "{.", "{border:0;td,th{border-right:0;border-bottom:0;}td.lock-left{box-shadow:none;}td,th{border:0;}td.last,th.last{}thead tr.first th,tbody tr.first td{}&.has-footer tfoot tr td{border-bottom:0;border-top:0;}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{border-top:0;border:0;}}}.", "{padding:8px;}&.ui-rc-grid .ui-rc-pagination{background-color:var(--bgcolor);color:var(--color);padding:10px;background-color:var(--bgcolor);.ui-rc-pagination-prev{.anticon.anticon-left{color:var(--color);}}.ui-rc-pagination-disabled{.anticon.anticon-left{color:#7d7a7a;}}.ui-rc-pagination-next{.anticon.anticon-right{color:var(--color);}&.ui-rc-pagination-disabled{.anticon.anticon-right{color:#7d7a7a;}}}}&.auto-height{.ui-rc-grid-bottom{border-top:0;}}.ui-rc-grid-bottom{border-top:var(--cell-border-horizontal);}&.", "{&.ui-rc-grid{.ui-rc-toolbar-bottom{background-color:var(--footer-bgcolor);color:#ffffff;}}.ui-rc-grid-top-toolbar{border-color:var(--border-color);color:#ffffff;}.ui-rc-toolbar{.ui-rc-toolbar-selection-item{background-color:var(--footer-bgcolor);color:#ffffff;}}}"], Classes.tableThemeDark, outerBorderStyleMixin, Classes.gridHorizontal, Classes.tableWrapper, Classes.tableTop, Classes.gridVertical, Classes.tableWrapper, Classes.tableTop, Classes.gridNone, Classes.tableWrapper, Classes.tableTop, Classes.tableTop, Classes.tableThemeDark);
63
+ })(["--row-height:34px;--color:#333;--bgcolor:white;--body-hover-bgcolor:#f5f5f5;--body-hover-color:#333;--hover-bgcolor:var(--body-hover-bgcolor,#f5f5f5);--hover-color:var(--body-hover-color);--highlight-bgcolor:#eee;--header-row-height:34px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--border-color-select:#eb4619;--cell-border:1px solid var(--border-color);--cell-border-select:1px solid var(--border-color-select);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgcolor:#fafafa;&.", "{--bgcolor:#343e59;--footer-bgcolor:#2e3342;--header-bgcolor:#343e59;--hover-bgcolor:#232b43;--header-hover-bgcolor:#606164;--highlight-bgcolor:#eff2f5;--header-highlight-bgcolor:#191a1b;--hover-color:#dadde1;--color:#dadde1;--header-color:#dadde1;--lock-shadow:rgb(37 37 37 / 0.5) 0 0 6px 2px;--border-color:#4f5266;background-color:var(--bgcolor);}&.use-outer-border{", ";}&.", "{.", "{border-left:0;border-right:0;td,th{border-right:0;}td.first,th.first{border-left:0;}td.last,th.last{}thead tr.first th,tbody tr.first td{}tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 0px 0 0 var(--border-color),0px 0 0 0 var(--border-color);}}}&.has-footer tfoot tr.last td{}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{}}}&.", "{&.use-outer-border{border-bottom:var(--header-cell-border);}.", "{border-top:0;td,th{border-bottom:0;border-top:0;}td.lock-left{box-shadow:none;}td.first,th.first{}td.last,th.last{}thead tr.first th,tbody tr.first td{}&.has-footer tfoot tr td{border-bottom:0;border-top:0;}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{}}}&.", "{.", "{border:0;td,th{border-right:0;border-bottom:0;}td.lock-left{box-shadow:none;}td,th{border:0;}td.last,th.last{}thead tr.first th,tbody tr.first td{}&.has-footer tfoot tr td{border-bottom:0;border-top:0;}&.has-footer tbody tr.last td{}&.has-footer tfoot tr td{}&:not(.has-footer) tbody tr.last td{}&:has(.", ") thead tr.first th{border-top:0;border:0;}}}.", "{padding:8px;}&.ui-rc-grid .ui-rc-pagination{background-color:var(--bgcolor);color:var(--color);padding:10px;background-color:var(--bgcolor);.ui-rc-pagination-prev{.anticon.anticon-left{color:var(--color);}}.ui-rc-pagination-disabled{.anticon.anticon-left{color:#7d7a7a;}}.ui-rc-pagination-next{.anticon.anticon-right{color:var(--color);}&.ui-rc-pagination-disabled{.anticon.anticon-right{color:#7d7a7a;}}}}&.auto-height{.ui-rc-grid-bottom{border-top:0;}}.ui-rc-grid-bottom{border-top:var(--cell-border-horizontal);}.ui-rc-toolbar-bottom{.be-toolbar-item{.ui-rc-btn{font-size:12px;line-height:1.5}.toolbar-dropdown-button{font-size:12px;.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-color:#28c76f;}.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-color:#28c76f;.ui-rc-btn-icon{color:#28c76f;}}}}}.ui-rc-toolbar-bottom{position:relative;padding:.15rem 0.5rem;background-color:#ffffff;.toolbar-button{border-radius:3px;}.ui-rc-btn{border-radius:3px;height:28px;&.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-start-start-radius:0;border-end-start-radius:0;}&.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-start-end-radius:0;border-end-end-radius:0;}}}&.", "{&.ui-rc-grid{.ui-rc-toolbar-bottom{background-color:var(--footer-bgcolor);color:#ffffff;}}.ui-rc-grid-top-toolbar{border-color:var(--border-color);color:#ffffff;}.ui-rc-toolbar{.ui-rc-toolbar-selection-item{background-color:var(--footer-bgcolor);color:#ffffff;}}}"], Classes.tableThemeDark, outerBorderStyleMixin, Classes.gridHorizontal, Classes.tableWrapper, Classes.tableTop, Classes.gridVertical, Classes.tableWrapper, Classes.tableTop, Classes.gridNone, Classes.tableWrapper, Classes.tableTop, Classes.tableTop, Classes.tableThemeDark);
64
64
  export const StyledArtTableWrapper = styled.div.withConfig({
65
65
  displayName: "StyledArtTableWrapper",
66
66
  componentId: "es-grid-template__sc-ipj1ht-1"
@@ -6,8 +6,8 @@ import { TableDOMHelper } from './helpers/TableDOMUtils';
6
6
  import type { ResolvedUseVirtual, VerticalRenderRange, VirtualEnum } from './interfaces';
7
7
  import type { LoadingContentWrapperProps } from './loading';
8
8
  import type { BaseTableCSSVariables } from './styles';
9
- import type { CommandClick, ExpandedRowRender, IFormat, IFTheme, RenderExpandIcon, RowClassName } from '../../grid-component/type';
10
- export type PrimaryKey = string | ((row: any) => string);
9
+ import type { AnyObject, CommandClick, ExpandedRowRender, IFormat, IFTheme, RenderExpandIcon, RowClassName } from '../../grid-component/type';
10
+ export type PrimaryKey<RecordType = AnyObject> = keyof RecordType | ((row: RecordType) => keyof RecordType);
11
11
  export type ColumnResizeMode = 'onChange' | 'onEnd';
12
12
  export type ExpandableConfig<RecordType> = {
13
13
  expandedRowKeys?: readonly Key[];
@@ -1,4 +1,5 @@
1
1
  import { Subscription } from 'rxjs';
2
+ import { ColumnTable } from '../../grid-component';
2
3
  /** styled-components 类库的版本,ali-react-table 同时支持 v3 和 v5 */
3
4
  export declare const STYLED_VERSION: string;
4
5
  export declare const STYLED_REF_PROP: string;
@@ -19,3 +20,4 @@ export declare function syncScrollLeft(elements: HTMLElement[], callback: (scrol
19
20
  */
20
21
  export declare function shallowEqual<T>(objA: T, objB: T): boolean;
21
22
  export declare function getParentElement(element: any, selector: any): any;
23
+ export declare function getColumnsAtLevel(columns: ColumnTable[], level: number): ColumnTable[];
@@ -1,7 +1,6 @@
1
1
  import { asyncScheduler, BehaviorSubject, defer, fromEvent, Subscription } from 'rxjs';
2
2
  import { map, throttleTime } from 'rxjs/operators';
3
3
  import * as styledComponents from 'styled-components';
4
-
5
4
  /** styled-components 类库的版本,ali-react-table 同时支持 v3 和 v5 */
6
5
  export const STYLED_VERSION = styledComponents.createGlobalStyle != null ? 'v5' : 'v3';
7
6
  export const STYLED_REF_PROP = STYLED_VERSION === 'v3' ? 'innerRef' : 'ref';
@@ -151,4 +150,16 @@ export function getParentElement(element, selector) {
151
150
  }
152
151
  }
153
152
  return getParent(element, selector);
153
+ }
154
+ export function getColumnsAtLevel(columns, level) {
155
+ if (level === 0) {
156
+ return columns;
157
+ }
158
+ const result = [];
159
+ for (const column of columns) {
160
+ if (column.children?.length) {
161
+ result.push(...getColumnsAtLevel(column.children, level - 1));
162
+ }
163
+ }
164
+ return result;
154
165
  }
@@ -1,7 +1,11 @@
1
1
  import type { ReactElement, ReactNode } from 'react';
2
2
  import type React from 'react';
3
3
  import type { ColumnTemplate, CommandItem, EditType, FilterOperator, IColumnType, IFormat, ITextAlign, TypeFilter } from '../grid-component/type';
4
+ import type { PrimaryKey } from './base-table/table';
4
5
  export type CellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
6
+ export type BaseRecord = {
7
+ rowId: PrimaryKey;
8
+ };
5
9
  export type FilterState = {
6
10
  field: any;
7
11
  key: any;
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
+ import type { PrimaryKey } from './base-table/table';
2
3
  import type { ArtColumn } from './interfaces';
3
4
  declare function safeRenderHeader(column: ArtColumn): import("react").ReactNode;
4
5
  declare function safeRenderHeaderContent(column: ArtColumn, t?: any): any;
5
6
  declare function safeGetValue(column: ArtColumn, record: any, rowIndex: number): any;
6
- declare function safeGetRowKey(primaryKey: string | ((record: any) => string), record: any, rowIndex: number): string;
7
+ declare function safeGetRowKey(primaryKey: PrimaryKey, record: any, rowIndex: number): string;
7
8
  declare function safeGetCellProps(column: ArtColumn, record: any, rowIndex: number): import("./interfaces").CellProps;
8
9
  declare function safeRender(column: ArtColumn, record: any, rowIndex: number): any;
9
10
  export declare const internals: {
@@ -71,6 +71,8 @@ export interface ColumnFeatureOptions {
71
71
  handleCellChange: any;
72
72
  handleHeaderCellChange?: any;
73
73
  dataErrors?: any[];
74
+ headerData?: any;
75
+ headerEditAble?: boolean;
74
76
  }
75
77
  export declare function columnCustom(opts: ColumnFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
76
78
  export {};