react-table-edit 1.3.6 → 1.3.8

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.
@@ -0,0 +1,9 @@
1
+ import { IFTableEditButton, IFTableEditPaging, IFTableEditToolbar } from ".";
2
+ export declare const handleAdd: (dataSource: any[], tableElement: any, columnFistEdit: any, changeDataSource: (data: any[], haveNew?: boolean) => void, pagingSetting: {
3
+ setCurrentPage?: (page: number) => void;
4
+ pageSize?: number;
5
+ } | undefined, setItemFocus: (item: string) => void, focusNewElement: (column: any, value: string, index: number, onLoad: boolean) => void) => void;
6
+ export declare const handleDuplicate: (dataSource: any[], itemFocus: string, fieldKey: string | undefined, defaultValue: any, fieldUniKey: string[], changeDataSource: (data: any[]) => void, tableElement: any, totalCount: number, toolbarSetting?: IFTableEditToolbar, buttonSetting?: IFTableEditButton, editDisable?: boolean, addDisable?: boolean, onDuplicate?: (newData: any, index: number) => void) => Promise<void>;
7
+ export declare const handleInsertAfter: (dataSource: any[], itemFocus: string, defaultValue: any, changeDataSource: (data: any[]) => void, tableElement: any, totalCount: number, pagingClient?: boolean, pagingSetting?: IFTableEditPaging, toolbarSetting?: IFTableEditToolbar, buttonSetting?: IFTableEditButton, editDisable?: boolean, addDisable?: boolean) => void;
8
+ export declare const handleInsertBefore: (dataSource: any[], itemFocus: string, defaultValue: any, changeDataSource: (data: any[]) => void, pagingClient?: boolean, pagingSetting?: IFTableEditPaging, toolbarSetting?: IFTableEditToolbar, buttonSetting?: IFTableEditButton, editDisable?: boolean, addDisable?: boolean) => void;
9
+ export declare const handleDeleteAll: (t: any, messageBoxConfirmDelete: (t: any, callback: () => void, message: string) => void, setItemFocus: (item: string) => void, changeDataSource: (data: any[], haveNew?: boolean) => void, editDisable?: boolean, addDisable?: boolean, toolbarSetting?: IFTableEditToolbar, buttonSetting?: IFTableEditButton) => void;
@@ -4,8 +4,9 @@ type IFDataProps = {
4
4
  commandItems: ICommandItem[];
5
5
  rowData: any;
6
6
  indexRow: number;
7
- indexFocus?: number;
8
- setIndexFocus: Dispatch<SetStateAction<number | undefined>>;
7
+ currentItem: string;
8
+ itemFocus?: string;
9
+ setItemFocus: Dispatch<SetStateAction<string>>;
9
10
  handleCommandClick: any;
10
11
  };
11
12
  declare const CommandElement: (props: IFDataProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { IColumnTable, IFTableEditFormat } from ".";
3
+ interface FooterColProps {
4
+ col: IColumnTable;
5
+ indexCol: number;
6
+ dataSource: any[];
7
+ objWidthFix: {
8
+ [key: number]: number;
9
+ };
10
+ formatSetting?: IFTableEditFormat;
11
+ }
12
+ declare const FooterCol: React.FC<FooterColProps>;
13
+ export default FooterCol;
@@ -1,5 +1,5 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
- import { IHeaderColumnTable } from '.';
2
+ import { IHeaderColumnTable } from '../table';
3
3
  import 'react-resizable/css/styles.css';
4
4
  type IFDataProps = {
5
5
  selectEnable: boolean;
@@ -82,9 +82,9 @@ export type IColumnTable = {
82
82
  formSettings?: ISettingFormElement;
83
83
  columns?: IColumnTable[];
84
84
  disablePaste?: boolean;
85
- validate?: (value: any, row: any) => boolean;
85
+ validate?: (value: any, row: any) => string | undefined;
86
86
  disabledCondition?: (row: any) => boolean;
87
- callback?: (value: any, indexRow: number) => void;
87
+ callback?: (value: any, indexRow: number, item: any) => void;
88
88
  template?: (row: any, indexRow: number) => JSX.Element | string | number | undefined;
89
89
  editTypeCondition?: (row: any) => string;
90
90
  onPaste?: (dataRow: any, dataPaste: any) => void;
@@ -142,16 +142,18 @@ export type IFTableEditProps = {
142
142
  addDisable?: boolean;
143
143
  haveSum?: boolean;
144
144
  disableAutoKey?: boolean;
145
+ isTree?: boolean;
146
+ fieldChildren?: string;
145
147
  formatSetting?: IFTableEditFormat;
146
148
  pagingSetting?: IFTableEditPaging;
147
149
  buttonSetting?: IFTableEditButton;
148
150
  toolbarSetting?: IFTableEditToolbar;
149
151
  searchSetting?: IFTableEditSearchSetting;
150
152
  selectedItem?: any;
153
+ setDataSource?: any;
151
154
  setSelectedItem?: Dispatch<SetStateAction<any>>;
152
155
  commandClick?: (data: any) => void;
153
156
  handleSelect?: (data: any) => void;
154
- setDataSource?: (data: any[]) => void;
155
157
  dataSourceChange?: (data: any[]) => void;
156
158
  rowChange?: (row: any, indexRow: number, field: string) => void;
157
159
  onDuplicate?: (newData: any, index: number) => void;
@@ -0,0 +1,31 @@
1
+ import { KeyboardEvent } from "react";
2
+ import { IFTableEditPaging } from ".";
3
+ export interface KeyHandlerParams {
4
+ row: any;
5
+ dataSource: any[];
6
+ itemFocus: string;
7
+ parents: string;
8
+ indexRow: number;
9
+ indexCol: number;
10
+ contentColumns: any[];
11
+ idElement: string;
12
+ pagingClient?: boolean;
13
+ totalCount: number;
14
+ columnLastEdit: number;
15
+ moveIndexRowToNewPage: () => void;
16
+ editDisable?: boolean;
17
+ addDisable?: boolean;
18
+ handleDuplicate: () => void;
19
+ pagingSetting?: IFTableEditPaging;
20
+ focusNewElement: (col: number, parent: string, row?: number, forceFocus?: boolean) => void;
21
+ setItemFocus: (newParents: string) => void;
22
+ getNewParents: (parent: string, index: number) => string;
23
+ fieldChildren?: string;
24
+ }
25
+ export declare const handleArrowRight: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
26
+ export declare const handleArrowLeft: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
27
+ export declare const handleArrowUp: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
28
+ export declare const handleArrowDown: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
29
+ export declare const handleTab: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
30
+ export declare const handleEnter: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
31
+ export declare const handleCtrlD: (e: KeyboardEvent<any>, params: KeyHandlerParams) => string | undefined;
@@ -1,7 +1,6 @@
1
- import { IFTableEditButton, IFTableEditToolbar } from "./type";
2
1
  export type IFToolbarOptions = {
3
2
  align: 'left' | 'right' | 'center';
4
3
  template: any;
5
4
  };
6
- declare const renderToolbarBottom: (t: any, handleAdd: any, handleDuplicate: any, handleInsertBefore: any, handleInsertAfter: any, handleDeleteAll: any, dataSource: any[], headerColumns: any[], indexFocus: number, setOpenPopupSetupColumn: any, editDisable?: boolean, buttonSetting?: IFTableEditButton, addDisable?: boolean, toolbarSetting?: IFTableEditToolbar) => import("react/jsx-runtime").JSX.Element;
7
- export default renderToolbarBottom;
5
+ declare const ToolbarBottom: ({ handleAdd, handleDuplicate, handleInsertBefore, handleInsertAfter, handleDeleteAll, setOpenPopupSetupColumn, itemFocus, editDisable, addDisable, buttonSetting, toolbarSetting, headerColumns, t }: any) => import("react/jsx-runtime").JSX.Element;
6
+ export default ToolbarBottom;
@@ -2,5 +2,8 @@ export type IFToolbarOptions = {
2
2
  align: 'left' | 'right' | 'center';
3
3
  template: any;
4
4
  };
5
- declare const renderToolbarTop: (toolbarTopOption: IFToolbarOptions[]) => import("react/jsx-runtime").JSX.Element;
6
- export default renderToolbarTop;
5
+ type IFDataProps = {
6
+ toolbarTopOption?: IFToolbarOptions[];
7
+ };
8
+ declare const RenderToolbarTop: ({ toolbarTopOption }: IFDataProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default RenderToolbarTop;
@@ -0,0 +1,12 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { ICommandItem } from '../table';
3
+ type IFDataProps = {
4
+ commandItems: ICommandItem[];
5
+ rowData: any;
6
+ indexRow: number;
7
+ indexFocus?: number;
8
+ setIndexFocus: Dispatch<SetStateAction<number | undefined>>;
9
+ handleCommandClick: any;
10
+ };
11
+ declare const CommandElement: (props: IFDataProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default CommandElement;
@@ -15,3 +15,9 @@ export declare const generateUUID: () => string;
15
15
  export declare const formartNumberic: (str: string | number, decimalSeparator: string, thousandSeparator: string, fraction?: number, isDone?: boolean, haveNegative?: boolean) => string;
16
16
  export declare const roundNumber: (num: number, fraction: number) => number;
17
17
  export declare const formatDateTime: (data: any, format?: string) => string;
18
+ export declare const FindNodeByPath: (tree: any[], path: string) => {
19
+ parent: any[];
20
+ lastIndex: number | undefined;
21
+ firstIndex: number;
22
+ node: any;
23
+ } | null;
package/dist/index.d.ts CHANGED
@@ -37,7 +37,7 @@ type IFTableSelectFormat = {
37
37
  prefixNegative?: string;
38
38
  suffixNegative?: string;
39
39
  };
40
- type Props$1 = {
40
+ type Props = {
41
41
  id?: string;
42
42
  value: any;
43
43
  options: any[];
@@ -68,7 +68,7 @@ type Props$1 = {
68
68
  footerComponent?: () => JSX.Element;
69
69
  onChange: (val: any) => void;
70
70
  };
71
- declare const SelectTable: React__default.ForwardRefExoticComponent<Props$1 & React__default.RefAttributes<unknown>>;
71
+ declare const SelectTable: React__default.ForwardRefExoticComponent<Props & React__default.RefAttributes<unknown>>;
72
72
 
73
73
  type ITextAlign = 'center' | 'left' | 'right';
74
74
  type IEditType = 'text' | 'numeric' | 'datetime' | 'selectTree' | 'date' | 'select' | 'checkbox' | 'form' | 'color';
@@ -150,9 +150,9 @@ type IColumnTable = {
150
150
  formSettings?: ISettingFormElement;
151
151
  columns?: IColumnTable[];
152
152
  disablePaste?: boolean;
153
- validate?: (value: any, row: any) => boolean;
153
+ validate?: (value: any, row: any) => string | undefined;
154
154
  disabledCondition?: (row: any) => boolean;
155
- callback?: (value: any, indexRow: number) => void;
155
+ callback?: (value: any, indexRow: number, item: any) => void;
156
156
  template?: (row: any, indexRow: number) => JSX.Element | string | number | undefined;
157
157
  editTypeCondition?: (row: any) => string;
158
158
  onPaste?: (dataRow: any, dataPaste: any) => void;
@@ -210,16 +210,18 @@ type IFTableEditProps = {
210
210
  addDisable?: boolean;
211
211
  haveSum?: boolean;
212
212
  disableAutoKey?: boolean;
213
+ isTree?: boolean;
214
+ fieldChildren?: string;
213
215
  formatSetting?: IFTableEditFormat;
214
216
  pagingSetting?: IFTableEditPaging;
215
217
  buttonSetting?: IFTableEditButton;
216
218
  toolbarSetting?: IFTableEditToolbar;
217
219
  searchSetting?: IFTableEditSearchSetting;
218
220
  selectedItem?: any;
221
+ setDataSource?: any;
219
222
  setSelectedItem?: Dispatch<SetStateAction<any>>;
220
223
  commandClick?: (data: any) => void;
221
224
  handleSelect?: (data: any) => void;
222
- setDataSource?: (data: any[]) => void;
223
225
  dataSourceChange?: (data: any[]) => void;
224
226
  rowChange?: (row: any, indexRow: number, field: string) => void;
225
227
  onDuplicate?: (newData: any, index: number) => void;
@@ -278,6 +280,12 @@ declare const generateUUID: () => string;
278
280
  declare const formartNumberic: (str: string | number, decimalSeparator: string, thousandSeparator: string, fraction?: number, isDone?: boolean, haveNegative?: boolean) => string;
279
281
  declare const roundNumber: (num: number, fraction: number) => number;
280
282
  declare const formatDateTime: (data: any, format?: string) => string;
283
+ declare const FindNodeByPath: (tree: any[], path: string) => {
284
+ parent: any[];
285
+ lastIndex: number | undefined;
286
+ firstIndex: number;
287
+ node: any;
288
+ } | null;
281
289
 
282
290
  type IFDataProps$1 = {
283
291
  buttonWidth?: number;
@@ -291,61 +299,6 @@ type IFDataProps$1 = {
291
299
  };
292
300
  declare const TabsMenuComponent: ({ buttonWidth, tabParent, tabChild, resourceCodeParent, resources, resourceCode, windowSize, renderModal }: IFDataProps$1) => react_jsx_runtime.JSX.Element;
293
301
 
294
- type IFColumnSelectTableTree = {
295
- field: string;
296
- headerText: string;
297
- visible?: boolean;
298
- textAlign?: 'left' | 'right' | 'center';
299
- type?: 'text' | 'numeric' | 'date' | 'datetime';
300
- template?: any;
301
- typeCondition?: any;
302
- fraction?: number;
303
- width?: number;
304
- maxWidth?: number;
305
- minWidth?: number;
306
- };
307
- type IFTableTreeSelectFormat = {
308
- dateFormat?: string;
309
- decimalSeparator?: string;
310
- thousandSeparator?: string;
311
- colorNegative?: string;
312
- prefixNegative?: string;
313
- suffixNegative?: string;
314
- };
315
- type Props = {
316
- id?: string;
317
- component?: any;
318
- footerComponent?: any;
319
- fieldValue?: string;
320
- fieldLabel?: string;
321
- onChange: any;
322
- textAlign?: 'left' | 'right' | 'center';
323
- placeholder?: string;
324
- invalid?: any;
325
- loadOptions?: any;
326
- menuWidth?: number;
327
- width?: number;
328
- rowData?: any;
329
- value: any;
330
- onKeyDown?: any;
331
- formatOptionLabel?: any;
332
- handleAdd?: any;
333
- options: any[];
334
- isMulti?: boolean;
335
- noHeader?: boolean;
336
- maxHeight?: number;
337
- columns?: IFColumnSelectTableTree[];
338
- fieldChildren?: string;
339
- isClearable?: boolean;
340
- isDisabled?: boolean;
341
- showFooter?: boolean;
342
- selectChilds?: boolean;
343
- formatSetting?: IFTableTreeSelectFormat;
344
- onOpenMenu?: any;
345
- onPaste?: any;
346
- };
347
- declare const SelectTableTree: React__default.ForwardRefExoticComponent<Props & React__default.RefAttributes<unknown>>;
348
-
349
302
  interface IFDataStyleSetting {
350
303
  color: string;
351
304
  backgroundColor: string;
@@ -429,4 +382,4 @@ interface IFPropsDetail {
429
382
  }
430
383
  declare const ImportExcelComponent: (props: IFPropsDetail) => react_jsx_runtime.JSX.Element;
431
384
 
432
- export { ExportExcelComponent, type FromItemsField, type IColumnTable, type ICommandItem, type IFColumnSelectTable, type IFColumnSelectTableTree, type IFCurrentPage, type IFCurrentPageConfig, type IFPageSize, type IFPropsDetail, type IFTableEditButton, type IFTableEditFormat, type IFTableEditPaging, type IFTableEditProps, type IFTableEditSearchSetting, type IFTableEditToolbar, type IFTableSelectFormat, type IFTableTreeSelectFormat, type IFToolbarOptions, type IHeaderColumnTable, type ISettingFormElement, type ISettingNumericElement, type ISettingSelectElement, ImportExcelComponent, InputStyleComponent, SelectTable, SelectTableTree, TabsMenuComponent, checkDecimalSeparator, checkThousandSeparator, TableEdit as default, formartNumberic, formatDateTime, generateUUID, isNullOrUndefined, messageBoxConfirm, messageBoxConfirm2, messageBoxConfirmDelete, messageBoxError, messageHtmlBoxConfirm, messageHtmlBoxError, notificationError, notificationSuccess, roundNumber, useOnClickOutside };
385
+ export { ExportExcelComponent, FindNodeByPath, type FromItemsField, type IColumnTable, type ICommandItem, type IFColumnSelectTable, type IFCurrentPage, type IFCurrentPageConfig, type IFPageSize, type IFPropsDetail, type IFTableEditButton, type IFTableEditFormat, type IFTableEditPaging, type IFTableEditProps, type IFTableEditSearchSetting, type IFTableEditToolbar, type IFTableSelectFormat, type IFToolbarOptions, type IHeaderColumnTable, type ISettingFormElement, type ISettingNumericElement, type ISettingSelectElement, ImportExcelComponent, InputStyleComponent, SelectTable, TabsMenuComponent, checkDecimalSeparator, checkThousandSeparator, TableEdit as default, formartNumberic, formatDateTime, generateUUID, isNullOrUndefined, messageBoxConfirm, messageBoxConfirm2, messageBoxConfirmDelete, messageBoxError, messageHtmlBoxConfirm, messageHtmlBoxError, notificationError, notificationSuccess, roundNumber, useOnClickOutside };