1
|
|
|
import { PropTypes } from 'react'; |
2
|
|
|
|
3
|
|
|
export const ROW_HEIGHT = 5000; |
4
|
|
|
|
5
|
|
|
export const DEFAULT_PAGE_SIZE = 20; |
6
|
|
|
|
7
|
|
|
export const DEFAULT_RENDERED_RECORDS_VISIBLE = 200; |
8
|
|
|
|
9
|
|
|
export const BUFFER_MULTIPLIER = 1.5; |
10
|
|
|
export const DEFAULT_VIEWABLE_RECORDS = 25; |
11
|
|
|
|
12
|
|
|
export const SELECTION_MODES = { |
13
|
|
|
single: 'single', |
14
|
|
|
multi: 'multi', |
15
|
|
|
checkboxSingle: 'checkbox-single', |
16
|
|
|
checkboxMulti: 'checkbox-multi' |
17
|
|
|
}; |
18
|
|
|
|
19
|
|
|
export const SORT_DIRECTIONS = { |
20
|
|
|
ASCEND: 'ASC', |
21
|
|
|
DESCEND: 'DESC' |
22
|
|
|
}; |
23
|
|
|
|
24
|
|
|
export const SORT_METHODS = { |
25
|
|
|
LOCAL: 'LOCAL', |
26
|
|
|
REMOTE: 'REMOTE' |
27
|
|
|
}; |
28
|
|
|
|
29
|
|
|
export const FILTER_METHODS = { |
30
|
|
|
LOCAL: 'LOCAL', |
31
|
|
|
REMOTE: 'REMOTE' |
32
|
|
|
}; |
33
|
|
|
|
34
|
|
|
export const KEYBOARD_MAP = { |
35
|
|
|
ENTER: 13 |
36
|
|
|
}; |
37
|
|
|
|
38
|
|
|
export const GRID_TYPES = PropTypes.oneOf(['grid', 'tree']); |
39
|
|
|
|
40
|
|
|
/* |
41
|
|
|
* these constants can be overridden by applyGridConfig |
42
|
|
|
*/ |
43
|
|
|
|
44
|
|
|
export let CSS_PREFIX = 'react-grid'; |
45
|
|
|
|
46
|
|
|
export let CLASS_NAMES = { |
47
|
|
|
ACTIVE_CLASS: 'active', |
48
|
|
|
INACTIVE_CLASS: 'inactive', |
49
|
|
|
DRAG_HANDLE: 'drag-handle', |
50
|
|
|
SORT_HANDLE: 'sort-handle', |
51
|
|
|
SECONDARY_CLASS: 'secondary', |
52
|
|
|
CONTAINER: 'container', |
53
|
|
|
TABLE: 'table', |
54
|
|
|
TABLE_CONTAINER: 'table-container', |
55
|
|
|
HEADER: 'header', |
56
|
|
|
THEADER: 't-head', |
57
|
|
|
HEADER_HIDDEN: 'header-hidden', |
58
|
|
|
HEADER_FIXED: 'header-fixed', |
59
|
|
|
HEADER_FIXED_CONTAINER: 'header-fixed-container', |
60
|
|
|
HEADER_STUCK: 'header-stuck', |
61
|
|
|
HEADER_STUCK_BOTTOM: 'header-stuck-bottom', |
62
|
|
|
ROW: 'row', |
63
|
|
|
ROW_IS_DRAGGING: 'row-is-dragging', |
64
|
|
|
CELL: 'cell', |
65
|
|
|
CELL_TREE_ARROW: 'cell-tree-arrow', |
66
|
|
|
CELL_HANDNLE_CONTAINER: 'cell-handle-container', |
67
|
|
|
ROW_DRAG_HANDLE: 'row-drag-handle', |
68
|
|
|
PAGERTOOLBAR: 'pager-toolbar', |
69
|
|
|
EMPTY_ROW: 'empty-row', |
70
|
|
|
EDITED_CELL: 'edit', |
71
|
|
|
LOADING_BAR: 'loading-bar', |
72
|
|
|
DRAGGABLE_COLUMN: 'draggable-column', |
73
|
|
|
COLUMN: 'column', |
74
|
|
|
SORT_HANDLE_VISIBLE: 'sort-handle-visible', |
75
|
|
|
BUTTONS: { |
76
|
|
|
PAGER: 'page-buttons' |
77
|
|
|
}, |
78
|
|
|
SELECTION_MODEL: { |
79
|
|
|
CHECKBOX: 'checkbox', |
80
|
|
|
CHECKBOX_CONTAINER: 'checkbox-container' |
81
|
|
|
}, |
82
|
|
|
ERROR_HANDLER: { |
83
|
|
|
CONTAINER: 'error-container', |
84
|
|
|
MESSAGE: 'error-message' |
85
|
|
|
}, |
86
|
|
|
EDITOR: { |
87
|
|
|
INLINE: { |
88
|
|
|
CONTAINER: 'inline-editor', |
89
|
|
|
SHOWN: 'shown', |
90
|
|
|
HIDDEN: 'hidden', |
91
|
|
|
SAVE_BUTTON: 'save-button', |
92
|
|
|
CANCEL_BUTTON: 'cancel-button', |
93
|
|
|
BUTTON_CONTAINER: 'button-container', |
94
|
|
|
INPUT_WRAPPER: 'editor-wrapper' |
95
|
|
|
} |
96
|
|
|
}, |
97
|
|
|
GRID_ACTIONS: { |
98
|
|
|
CONTAINER: 'action-container', |
99
|
|
|
SELECTED_CLASS: 'action-menu-selected', |
100
|
|
|
NO_ACTIONS: 'no-actions', |
101
|
|
|
DISABLED: 'disabled', |
102
|
|
|
ICON: 'action-icon', |
103
|
|
|
MENU: { |
104
|
|
|
CONTAINER: 'action-menu-container', |
105
|
|
|
ITEM: 'action-menu-item' |
106
|
|
|
} |
107
|
|
|
}, |
108
|
|
|
FILTER_CONTAINER: { |
109
|
|
|
CONTAINER: 'filter-container', |
110
|
|
|
INPUT: 'filter-input', |
111
|
|
|
SEARCH_BUTTON: 'filter-search-button', |
112
|
|
|
MENU_BUTTON: 'filter-menu-button', |
113
|
|
|
CLEAR_BUTTON: 'filter-clear-button', |
114
|
|
|
BUTTON_CONTAINER: 'filter-button-container', |
115
|
|
|
MENU: { |
116
|
|
|
CONTAINER: 'advanced-filter-menu-container', |
117
|
|
|
TITLE: 'advanced-filter-menu-title', |
118
|
|
|
BUTTON: 'advanced-filter-menu-button', |
119
|
|
|
BUTTON_CONTAINER: 'advanced-filter-menu-button-container', |
120
|
|
|
FIELD: { |
121
|
|
|
CONTAINER: 'advanced-filter-menu-field-container', |
122
|
|
|
LABEL: 'advanced-filter-menu-field-label', |
123
|
|
|
INPUT: 'advanced-filter-menu-field-input' |
124
|
|
|
} |
125
|
|
|
} |
126
|
|
|
}, |
127
|
|
|
BULK_ACTIONS: { |
128
|
|
|
CONTAINER: 'bulkaction-container', |
129
|
|
|
DESCRIPTION: 'bulkaction-description', |
130
|
|
|
SHOWN: 'shown', |
131
|
|
|
HIDDEN: 'hidden' |
132
|
|
|
} |
133
|
|
|
|
134
|
|
|
}; |
135
|
|
|
|
136
|
|
|
export const applyGridConfig = (config = {})=> { |
137
|
|
|
Object.keys(config).forEach(k => { |
138
|
|
|
if (k === 'CLASS_NAMES') { |
139
|
|
|
CLASS_NAMES = { |
140
|
|
|
...CLASS_NAMES, |
141
|
|
|
...config[k] |
142
|
|
|
}; |
143
|
|
|
} |
144
|
|
|
else if (k === 'CSS_PREFIX') { |
145
|
|
|
CSS_PREFIX = config[k]; |
146
|
|
|
} |
147
|
|
|
}); |
148
|
|
|
}; |
149
|
|
|
|
150
|
|
|
export const gridConfig = () => ({ |
151
|
|
|
CLASS_NAMES, |
152
|
|
|
CSS_PREFIX |
153
|
|
|
}); |
154
|
|
|
|