slickgrid-react 4.0.2 → 4.2.0

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 (45) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/components/slickgrid-react.js +4 -3
  3. package/dist/cjs/components/slickgrid-react.js.map +1 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/models/index.js +0 -1
  6. package/dist/cjs/models/index.js.map +1 -1
  7. package/dist/esm/components/slickgrid-react.js +5 -4
  8. package/dist/esm/components/slickgrid-react.js.map +1 -1
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/models/index.js +0 -1
  11. package/dist/esm/models/index.js.map +1 -1
  12. package/dist/types/components/slickgrid-react.d.ts.map +1 -1
  13. package/dist/types/index.d.ts +2 -2
  14. package/dist/types/index.d.ts.map +1 -1
  15. package/dist/types/models/index.d.ts +0 -1
  16. package/dist/types/models/index.d.ts.map +1 -1
  17. package/dist/types/models/slickgridReactInstance.interface.d.ts +1 -2
  18. package/dist/types/models/slickgridReactInstance.interface.d.ts.map +1 -1
  19. package/package.json +33 -28
  20. package/src/slickgrid-react/components/slickgrid-react.tsx +1600 -0
  21. package/src/slickgrid-react/components/slickgridEventAggregator.ts +12 -0
  22. package/src/slickgrid-react/components/slickgridReactProps.ts +195 -0
  23. package/src/slickgrid-react/constants.ts +89 -0
  24. package/src/slickgrid-react/global-grid-options.ts +262 -0
  25. package/src/slickgrid-react/index.ts +28 -0
  26. package/src/slickgrid-react/models/gridOption.interface.ts +7 -0
  27. package/src/slickgrid-react/models/index.ts +3 -0
  28. package/src/slickgrid-react/models/reactComponentOutput.interface.ts +7 -0
  29. package/src/slickgrid-react/models/slickgridReactInstance.interface.ts +70 -0
  30. package/src/slickgrid-react/services/container.service.ts +13 -0
  31. package/src/slickgrid-react/services/index.ts +4 -0
  32. package/src/slickgrid-react/services/reactUtil.service.ts +26 -0
  33. package/src/slickgrid-react/services/singletons.ts +7 -0
  34. package/src/slickgrid-react/services/translater.service.ts +36 -0
  35. package/src/slickgrid-react/services/utilities.ts +18 -0
  36. package/src/slickgrid-react/slickgrid-config.ts +10 -0
  37. package/.gitbook.yaml +0 -5
  38. package/dist/cjs/models/slickGrid.interface.js +0 -3
  39. package/dist/cjs/models/slickGrid.interface.js.map +0 -1
  40. package/dist/esm/models/slickGrid.interface.js +0 -2
  41. package/dist/esm/models/slickGrid.interface.js.map +0 -1
  42. package/dist/types/models/slickGrid.interface.d.ts +0 -7
  43. package/dist/types/models/slickGrid.interface.d.ts.map +0 -1
  44. package/global.d.ts +0 -2
  45. package/tsconfig.json +0 -44
@@ -0,0 +1,12 @@
1
+ import { EventSubscription } from '@slickgrid-universal/common';
2
+
3
+ /**
4
+ * A class that will be used for internal communication of parent-child
5
+ *
6
+ * All methods are abstract for typings purposes only
7
+ */
8
+ export abstract class SlickgridEventAggregator {
9
+ abstract publish(event: string, data: any): void;
10
+
11
+ abstract subscribe(event: string, callback: (data: any) => void): EventSubscription;
12
+ }
@@ -0,0 +1,195 @@
1
+ import {
2
+ BackendUtilityService,
3
+ CollectionService,
4
+ Column,
5
+ ContainerService,
6
+ ExtensionList,
7
+ ExtensionService,
8
+ ExtensionUtility,
9
+ FilterService,
10
+ GridOption,
11
+ GridEventService,
12
+ GridService,
13
+ GridStateService,
14
+ GroupingAndColspanService,
15
+ Pagination,
16
+ PaginationService,
17
+ ResizerService,
18
+ RxJsFacade,
19
+ SharedService,
20
+ SlickControlList,
21
+ SlickDataView,
22
+ SlickPluginList,
23
+ SortService,
24
+ TranslaterService,
25
+ TreeDataService,
26
+ SlickGridEventData,
27
+ OnActiveCellChangedEventArgs,
28
+ DragRowMove,
29
+ OnAddNewRowEventArgs,
30
+ OnAutosizeColumnsEventArgs,
31
+ OnBeforeAppendCellEventArgs,
32
+ OnBeforeCellEditorDestroyEventArgs,
33
+ OnBeforeColumnsResizeEventArgs,
34
+ OnBeforeEditCellEventArgs,
35
+ OnBeforeFooterRowCellDestroyEventArgs,
36
+ OnBeforeHeaderCellDestroyEventArgs,
37
+ OnBeforeHeaderRowCellDestroyEventArgs,
38
+ OnBeforeSetColumnsEventArgs,
39
+ OnCellChangeEventArgs,
40
+ OnCellCssStylesChangedEventArgs,
41
+ OnClickEventArgs,
42
+ OnColumnsDragEventArgs,
43
+ OnColumnsReorderedEventArgs,
44
+ OnColumnsResizeDblClickEventArgs,
45
+ OnColumnsResizedEventArgs,
46
+ OnCompositeEditorChangeEventArgs,
47
+ OnDblClickEventArgs,
48
+ OnFooterClickEventArgs,
49
+ OnFooterContextMenuEventArgs,
50
+ OnFooterRowCellRenderedEventArgs,
51
+ OnHeaderCellRenderedEventArgs,
52
+ OnHeaderClickEventArgs,
53
+ OnHeaderContextMenuEventArgs,
54
+ OnHeaderMouseEventArgs,
55
+ OnHeaderRowCellRenderedEventArgs,
56
+ OnKeyDownEventArgs,
57
+ OnRenderedEventArgs,
58
+ OnScrollEventArgs,
59
+ OnSelectedRowsChangedEventArgs,
60
+ OnSetOptionsEventArgs,
61
+ OnValidationErrorEventArgs,
62
+ SingleColumnSort,
63
+ OnGroupCollapsedEventArgs,
64
+ OnGroupExpandedEventArgs,
65
+ OnRowCountChangedEventArgs,
66
+ OnRowsChangedEventArgs,
67
+ OnRowsOrCountChangedEventArgs,
68
+ OnSetItemsCalledEventArgs,
69
+ PagingInfo,
70
+ } from '@slickgrid-universal/common';
71
+ import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
72
+ import { SlickgridReactInstance } from '../models';
73
+ import { ReactUtilService } from '../services';
74
+
75
+ export interface SlickgridReactProps {
76
+ header?: JSX.Element;
77
+ footer?: JSX.Element;
78
+ reactUtilService: ReactUtilService;
79
+ containerService: ContainerService;
80
+ translaterService: TranslaterService;
81
+ externalServices?: {
82
+ backendUtilityService?: BackendUtilityService,
83
+ collectionService?: CollectionService,
84
+ eventPubSubService?: EventPubSubService,
85
+ extensionService?: ExtensionService,
86
+ extensionUtility?: ExtensionUtility,
87
+ filterService?: FilterService,
88
+ gridEventService?: GridEventService,
89
+ gridService?: GridService,
90
+ gridStateService?: GridStateService,
91
+ groupingAndColspanService?: GroupingAndColspanService,
92
+ paginationService?: PaginationService,
93
+ resizerService?: ResizerService,
94
+ rxjs?: RxJsFacade,
95
+ sharedService?: SharedService,
96
+ sortService?: SortService,
97
+ treeDataService?: TreeDataService,
98
+ }
99
+ customDataView?: SlickDataView;
100
+ dataset: any[];
101
+ datasetHierarchical?: any[] | null;
102
+ extensions?: ExtensionList<SlickControlList | SlickPluginList>;
103
+ gridId: string;
104
+ gridOptions?: GridOption;
105
+ columnDefinitions: Column[];
106
+ instances?: SlickgridReactInstance;
107
+ paginationOptions?: Pagination;
108
+
109
+ // Custom Events list
110
+ // ---------------------
111
+
112
+ // Slick Grid events
113
+ onActiveCellChanged?: (e: CustomEvent<{ eventData: any; args: OnActiveCellChangedEventArgs; }>) => void;
114
+ onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
115
+ onAddNewRow?: (e: CustomEvent<{ eventData: any; args: OnAddNewRowEventArgs; }>) => void;
116
+ onAutosizeColumns?: (e: CustomEvent<{ eventData: any; args: OnAutosizeColumnsEventArgs; }>) => void;
117
+ onBeforeAppendCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeAppendCellEventArgs; }>) => void;
118
+ onBeforeSearchChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs; }>) => void;
119
+ onBeforeCellEditorDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeCellEditorDestroyEventArgs; }>) => void;
120
+ onBeforeColumnsResize?: (e: CustomEvent<{ eventData: any; args: OnBeforeColumnsResizeEventArgs; }>) => void;
121
+ onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
122
+ onBeforeEditCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeEditCellEventArgs; }>) => void;
123
+ onBeforeHeaderCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderCellDestroyEventArgs; }>) => void;
124
+ onBeforeHeaderRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderRowCellDestroyEventArgs; }>) => void;
125
+ onBeforeFooterRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeFooterRowCellDestroyEventArgs; }>) => void;
126
+ onBeforeSetColumns?: (e: CustomEvent<{ eventData: any; args: OnBeforeSetColumnsEventArgs; }>) => void;
127
+ onBeforeSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort; }>) => void;
128
+ onCellChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs; }>) => void;
129
+ onCellCssStylesChanged?: (e: CustomEvent<{ eventData: any; args: OnCellCssStylesChangedEventArgs; }>) => void;
130
+ onClick?: (e: CustomEvent<{ eventData: any; args: OnClickEventArgs; }>) => void;
131
+ onColumnsDrag?: (e: CustomEvent<{ eventData: any; args: OnColumnsDragEventArgs; }>) => void;
132
+ onColumnsReordered?: (e: CustomEvent<{ eventData: any; args: OnColumnsReorderedEventArgs; }>) => void;
133
+ onColumnsResized?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizedEventArgs; }>) => void;
134
+ onColumnsResizeDblClick?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizeDblClickEventArgs; }>) => void;
135
+ onCompositeEditorChange?: (e: CustomEvent<{ eventData: any; args: OnCompositeEditorChangeEventArgs; }>) => void;
136
+ onContextMenu?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
137
+ onDrag?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
138
+ onDragEnd?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
139
+ onDragInit?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
140
+ onDragStart?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
141
+ onDblClick?: (e: CustomEvent<{ eventData: any; args: OnDblClickEventArgs; }>) => void;
142
+ onFooterContextMenu?: (e: CustomEvent<{ eventData: any; args: OnFooterContextMenuEventArgs; }>) => void;
143
+ onFooterRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnFooterRowCellRenderedEventArgs; }>) => void;
144
+ onHeaderCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderCellRenderedEventArgs; }>) => void;
145
+ onFooterClick?: (e: CustomEvent<{ eventData: any; args: OnFooterClickEventArgs; }>) => void;
146
+ onHeaderClick?: (e: CustomEvent<{ eventData: any; args: OnHeaderClickEventArgs; }>) => void;
147
+ onHeaderContextMenu?: (e: CustomEvent<{ eventData: any; args: OnHeaderContextMenuEventArgs; }>) => void;
148
+ onHeaderMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
149
+ onHeaderMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
150
+ onHeaderRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderRowCellRenderedEventArgs; }>) => void;
151
+ onHeaderRowMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
152
+ onHeaderRowMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
153
+ onKeyDown?: (e: CustomEvent<{ eventData: any; args: OnKeyDownEventArgs; }>) => void;
154
+ onMouseEnter?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
155
+ onMouseLeave?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
156
+ onValidationError?: (e: CustomEvent<{ eventData: any; args: OnValidationErrorEventArgs; }>) => void;
157
+ onViewportChanged?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
158
+ onRendered?: (e: CustomEvent<{ eventData: any; args: OnRenderedEventArgs; }>) => void;
159
+ onSelectedRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnSelectedRowsChangedEventArgs; }>) => void;
160
+ onSetOptions?: (e: CustomEvent<{ eventData: any; args: OnSetOptionsEventArgs; }>) => void;
161
+ onScroll?: (e: CustomEvent<{ eventData: any; args: OnScrollEventArgs; }>) => void;
162
+ onSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort; }>) => void;
163
+
164
+ // Slick DataView events
165
+ onBeforePagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo; }>) => void;
166
+ onGroupExpanded?: (e: CustomEvent<{ eventData: any; args: OnGroupExpandedEventArgs; }>) => void;
167
+ onGroupCollapsed?: (e: CustomEvent<{ eventData: any; args: OnGroupCollapsedEventArgs; }>) => void;
168
+ onPagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo; }>) => void;
169
+ onRowCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowCountChangedEventArgs; }>) => void;
170
+ onRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsChangedEventArgs; }>) => void;
171
+ onRowsOrCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsOrCountChangedEventArgs; }>) => void;
172
+ onSetItemsCalled?: (e: CustomEvent<{ eventData: any; args: OnSetItemsCalledEventArgs; }>) => void;
173
+
174
+
175
+ // Slickgrid-React events
176
+ onAfterExportToExcel?: (e: CustomEvent<any>) => void;
177
+ onBeforePaginationChange?: (e: CustomEvent<any>) => void;
178
+ onBeforeExportToExcel?: (e: CustomEvent<any>) => void;
179
+ onBeforeFilterChange?: (e: CustomEvent<any>) => void;
180
+ onBeforeFilterClear?: (e: CustomEvent<any>) => void;
181
+ onBeforeSortChange?: (e: CustomEvent<any>) => void;
182
+ onBeforeToggleTreeCollapse?: (e: CustomEvent<any>) => void;
183
+ onFilterChanged?: (e: CustomEvent<any>) => void;
184
+ onFilterCleared?: (e: CustomEvent<any>) => void;
185
+ onItemDeleted?: (e: CustomEvent<any>) => void;
186
+ onGridStateChanged?: (e: CustomEvent<any>) => void;
187
+ onPaginationChanged?: (e: CustomEvent<any>) => void;
188
+ onReactGridCreated?: (e: CustomEvent<any>) => void;
189
+ onSelectedRowIdsChanged?: (e: CustomEvent<any>) => void;
190
+ onSortChanged?: (e: CustomEvent<any>) => void;
191
+ onToggleTreeCollapsed?: (e: CustomEvent<any>) => void;
192
+ onTreeItemToggled?: (e: CustomEvent<any>) => void;
193
+ onTreeFullToggleEnd?: (e: CustomEvent<any>) => void;
194
+ onTreeFullToggleStart?: (e: CustomEvent<any>) => void;
195
+ }
@@ -0,0 +1,89 @@
1
+ import { Locale } from '@slickgrid-universal/common';
2
+
3
+ export class Constants {
4
+ // English Locale texts when using only 1 Locale instead of I18N
5
+ static readonly locales: Locale = {
6
+ TEXT_ALL_SELECTED: 'All Selected',
7
+ TEXT_ALL_X_RECORDS_SELECTED: 'All {{x}} records selected',
8
+ TEXT_APPLY_MASS_UPDATE: 'Apply Mass Update',
9
+ TEXT_APPLY_TO_SELECTION: 'Update Selection',
10
+ TEXT_CANCEL: 'Cancel',
11
+ TEXT_CLEAR_ALL_FILTERS: 'Clear all Filters',
12
+ TEXT_CLEAR_ALL_GROUPING: 'Clear all Grouping',
13
+ TEXT_CLEAR_ALL_SORTING: 'Clear all Sorting',
14
+ TEXT_CLEAR_PINNING: 'Unfreeze Columns/Rows',
15
+ TEXT_CLONE: 'Clone',
16
+ TEXT_COLLAPSE_ALL_GROUPS: 'Collapse all Groups',
17
+ TEXT_CONTAINS: 'Contains',
18
+ TEXT_COLUMNS: 'Columns',
19
+ TEXT_COLUMN_RESIZE_BY_CONTENT: 'Resize by Content',
20
+ TEXT_COMMANDS: 'Commands',
21
+ TEXT_COPY: 'Copy',
22
+ TEXT_EQUALS: 'Equals',
23
+ TEXT_EQUAL_TO: 'Equal to',
24
+ TEXT_ENDS_WITH: 'Ends With',
25
+ TEXT_ERROR_EDITABLE_GRID_REQUIRED: 'Your grid must be editable in order to use the Composite Editor Modal.',
26
+ TEXT_ERROR_ENABLE_CELL_NAVIGATION_REQUIRED: 'Composite Editor requires the flag "enableCellNavigation" to be set to True in your Grid Options.',
27
+ TEXT_ERROR_NO_CHANGES_DETECTED: 'Sorry we could not detect any changes.',
28
+ TEXT_ERROR_NO_EDITOR_FOUND: 'We could not find any Editor in your Column Definition.',
29
+ TEXT_ERROR_NO_RECORD_FOUND: 'No records selected for edit or clone operation.',
30
+ TEXT_ERROR_ROW_NOT_EDITABLE: 'Current row is not editable.',
31
+ TEXT_ERROR_ROW_SELECTION_REQUIRED: 'You must select some rows before trying to apply new value(s).',
32
+ TEXT_EXPAND_ALL_GROUPS: 'Expand all Groups',
33
+ TEXT_EXPORT_TO_CSV: 'Export in CSV format',
34
+ TEXT_EXPORT_TO_TEXT_FORMAT: 'Export in Text format (Tab delimited)',
35
+ TEXT_EXPORT_TO_EXCEL: 'Export to Excel',
36
+ TEXT_EXPORT_TO_TAB_DELIMITED: 'Export in Text format (Tab delimited)',
37
+ TEXT_FORCE_FIT_COLUMNS: 'Force fit columns',
38
+ TEXT_FREEZE_COLUMNS: 'Freeze Columns',
39
+ TEXT_GREATER_THAN: 'Greater than',
40
+ TEXT_GREATER_THAN_OR_EQUAL_TO: 'Greater than or equal to',
41
+ TEXT_GROUP_BY: 'Group By',
42
+ TEXT_HIDE_COLUMN: 'Hide Column',
43
+ TEXT_ITEMS: 'items',
44
+ TEXT_ITEMS_PER_PAGE: 'items per page',
45
+ TEXT_ITEMS_SELECTED: 'items selected',
46
+ TEXT_OF: 'of',
47
+ TEXT_OK: 'OK',
48
+ TEXT_LAST_UPDATE: 'Last Update',
49
+ TEXT_LESS_THAN: 'Less than',
50
+ TEXT_LESS_THAN_OR_EQUAL_TO: 'Less than or equal to',
51
+ TEXT_NO_ELEMENTS_FOUND: 'Aucun élément trouvé',
52
+ TEXT_NOT_CONTAINS: 'Not contains',
53
+ TEXT_NOT_EQUAL_TO: 'Not equal to',
54
+ TEXT_PAGE: 'Page',
55
+ TEXT_REFRESH_DATASET: 'Refresh Dataset',
56
+ TEXT_REMOVE_FILTER: 'Remove Filter',
57
+ TEXT_REMOVE_SORT: 'Remove Sort',
58
+ TEXT_SAVE: 'Save',
59
+ TEXT_SELECT_ALL: 'Select All',
60
+ TEXT_SYNCHRONOUS_RESIZE: 'Synchronous resize',
61
+ TEXT_SORT_ASCENDING: 'Sort Ascending',
62
+ TEXT_SORT_DESCENDING: 'Sort Descending',
63
+ TEXT_STARTS_WITH: 'Starts With',
64
+ TEXT_TOGGLE_FILTER_ROW: 'Toggle Filter Row',
65
+ TEXT_TOGGLE_PRE_HEADER_ROW: 'Toggle Pre-Header Row',
66
+ TEXT_X_OF_Y_SELECTED: '# of % selected',
67
+ TEXT_X_OF_Y_MASS_SELECTED: '{{x}} of {{y}} selected',
68
+ };
69
+
70
+ static readonly VALIDATION_REQUIRED_FIELD = 'Field is required';
71
+ static readonly VALIDATION_EDITOR_VALID_NUMBER = 'Please enter a valid number';
72
+ static readonly VALIDATION_EDITOR_VALID_INTEGER = 'Please enter a valid integer number';
73
+ static readonly VALIDATION_EDITOR_INTEGER_BETWEEN = 'Please enter a valid integer number between {{minValue}} and {{maxValue}}';
74
+ static readonly VALIDATION_EDITOR_INTEGER_MAX = 'Please enter a valid integer number that is lower than {{maxValue}}';
75
+ static readonly VALIDATION_EDITOR_INTEGER_MAX_INCLUSIVE = 'Please enter a valid integer number that is lower than or equal to {{maxValue}}';
76
+ static readonly VALIDATION_EDITOR_INTEGER_MIN = 'Please enter a valid integer number that is greater than {{minValue}}';
77
+ static readonly VALIDATION_EDITOR_INTEGER_MIN_INCLUSIVE = 'Please enter a valid integer number that is greater than or equal to {{minValue}}';
78
+ static readonly VALIDATION_EDITOR_NUMBER_BETWEEN = 'Please enter a valid number between {{minValue}} and {{maxValue}}';
79
+ static readonly VALIDATION_EDITOR_NUMBER_MAX = 'Please enter a valid number that is lower than {{maxValue}}';
80
+ static readonly VALIDATION_EDITOR_NUMBER_MAX_INCLUSIVE = 'Please enter a valid number that is lower than or equal to {{maxValue}}';
81
+ static readonly VALIDATION_EDITOR_NUMBER_MIN = 'Please enter a valid number that is greater than {{minValue}}';
82
+ static readonly VALIDATION_EDITOR_NUMBER_MIN_INCLUSIVE = 'Please enter a valid number that is greater than or equal to {{minValue}}';
83
+ static readonly VALIDATION_EDITOR_DECIMAL_BETWEEN = 'Please enter a valid number with a maximum of {{maxDecimal}} decimals';
84
+ static readonly VALIDATION_EDITOR_TEXT_LENGTH_BETWEEN = 'Please make sure your text length is between {{minLength}} and {{maxLength}} characters';
85
+ static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH = 'Please make sure your text is less than {{maxLength}} characters';
86
+ static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH_INCLUSIVE = 'Please make sure your text is less than or equal to {{maxLength}} characters';
87
+ static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH = 'Please make sure your text is more than {{minLength}} character(s)';
88
+ static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH_INCLUSIVE = 'Please make sure your text is at least {{minLength}} character(s)';
89
+ }
@@ -0,0 +1,262 @@
1
+ import { Column, DelimiterType, EventNamingStyle, FileType, Filters, OperatorType, TreeDataOption } from '@slickgrid-universal/common';
2
+ import { GridOption } from './models/index';
3
+
4
+ /**
5
+ * Default Options that can be passed to the Slickgrid-React
6
+ */
7
+ export const GlobalGridOptions: Partial<GridOption> = {
8
+ alwaysShowVerticalScroll: true,
9
+ autoEdit: false,
10
+ asyncEditorLoading: false,
11
+ autoFitColumnsOnFirstLoad: true,
12
+ autoResize: {
13
+ applyResizeToContainer: true,
14
+ calculateAvailableSizeBy: 'window',
15
+ bottomPadding: 20,
16
+ minHeight: 180,
17
+ minWidth: 300,
18
+ rightPadding: 0
19
+ },
20
+ cellHighlightCssClass: 'slick-cell-modified',
21
+ checkboxSelector: {
22
+ cssClass: 'slick-cell-checkboxsel',
23
+ width: 40
24
+ },
25
+ cellMenu: {
26
+ autoAdjustDrop: true,
27
+ autoAlignSide: true,
28
+ hideCloseButton: true,
29
+ hideCommandSection: false,
30
+ hideOptionSection: false,
31
+ },
32
+ columnGroupSeparator: ' - ',
33
+ columnPicker: {
34
+ hideForceFitButton: false,
35
+ hideSyncResizeButton: true,
36
+ headerColumnValueExtractor: pickerHeaderColumnValueExtractor
37
+ },
38
+ compositeEditorOptions: {
39
+ labels: {
40
+ cancelButtonKey: 'CANCEL',
41
+ cloneButtonKey: 'CLONE',
42
+ resetEditorButtonTooltipKey: 'RESET_INPUT_VALUE',
43
+ resetFormButtonKey: 'RESET_FORM',
44
+ massSelectionButtonKey: 'APPLY_TO_SELECTION',
45
+ massSelectionStatusKey: 'X_OF_Y_MASS_SELECTED',
46
+ massUpdateButtonKey: 'APPLY_MASS_UPDATE',
47
+ massUpdateStatusKey: 'ALL_X_RECORDS_SELECTED',
48
+ saveButtonKey: 'SAVE',
49
+ },
50
+ resetEditorButtonCssClass: 'fa fa-repeat',
51
+ resetFormButtonIconCssClass: 'fa fa-repeat'
52
+ },
53
+ contextMenu: {
54
+ autoAdjustDrop: true,
55
+ autoAlignSide: true,
56
+ hideCloseButton: true,
57
+ hideClearAllGrouping: false,
58
+ hideCollapseAllGroups: false,
59
+ hideCommandSection: false,
60
+ hideCopyCellValueCommand: false,
61
+ hideExpandAllGroups: false,
62
+ hideExportCsvCommand: false,
63
+ hideExportExcelCommand: false,
64
+ hideExportTextDelimitedCommand: true,
65
+ hideMenuOnScroll: true,
66
+ hideOptionSection: false,
67
+ iconCollapseAllGroupsCommand: 'fa fa-compress',
68
+ iconExpandAllGroupsCommand: 'fa fa-expand',
69
+ iconClearGroupingCommand: 'fa fa-times',
70
+ iconCopyCellValueCommand: 'fa fa-clone',
71
+ iconExportCsvCommand: 'fa fa-download',
72
+ iconExportExcelCommand: 'fa fa-file-excel-o text-success',
73
+ iconExportTextDelimitedCommand: 'fa fa-download',
74
+ width: 200,
75
+ },
76
+ customFooterOptions: {
77
+ dateFormat: 'YYYY-MM-DD, hh:mm a',
78
+ hideRowSelectionCount: false,
79
+ hideTotalItemCount: false,
80
+ hideLastUpdateTimestamp: true,
81
+ footerHeight: 25,
82
+ leftContainerClass: 'col-xs-12 col-sm-5',
83
+ rightContainerClass: 'col-xs-6 col-sm-7',
84
+ metricSeparator: '|',
85
+ metricTexts: {
86
+ items: 'items',
87
+ itemsKey: 'ITEMS',
88
+ of: 'of',
89
+ ofKey: 'OF',
90
+ itemsSelected: 'items selected',
91
+ itemsSelectedKey: 'ITEMS_SELECTED'
92
+ }
93
+ },
94
+ dataView: {
95
+ // when enabled, this will preserve the row selection even after filtering/sorting/grouping
96
+ syncGridSelection: {
97
+ preserveHidden: false,
98
+ preserveHiddenOnSelectionChange: true
99
+ },
100
+ syncGridSelectionWithBackendService: false, // but disable it when using backend services
101
+ },
102
+ datasetIdPropertyName: 'id',
103
+ defaultFilter: Filters.input,
104
+ defaultBackendServiceFilterTypingDebounce: 500,
105
+ defaultColumnSortFieldId: 'id',
106
+ defaultFilterPlaceholder: '🔎︎', // magnifying glass icon
107
+ defaultFilterRangeOperator: OperatorType.rangeInclusive,
108
+ editable: false,
109
+ editorTypingDebounce: 450,
110
+ filterTypingDebounce: 0,
111
+ enableEmptyDataWarningMessage: true,
112
+ enableFilterTrimWhiteSpace: false, // do we want to trim white spaces on all Filters?
113
+ emptyDataWarning: {
114
+ className: 'slick-empty-data-warning',
115
+ message: 'No data to display.',
116
+ messageKey: 'EMPTY_DATA_WARNING_MESSAGE',
117
+ hideFrozenLeftWarning: false,
118
+ hideFrozenRightWarning: false,
119
+ leftViewportMarginLeft: '40%',
120
+ rightViewportMarginLeft: '40%',
121
+ frozenLeftViewportMarginLeft: '0px',
122
+ frozenRightViewportMarginLeft: '40%',
123
+ },
124
+ enableAutoResize: true,
125
+ enableAutoSizeColumns: true,
126
+ enableCellNavigation: false,
127
+ enableColumnPicker: true,
128
+ enableColumnReorder: true,
129
+ enableColumnResizeOnDoubleClick: true,
130
+ enableContextMenu: true,
131
+ enableExcelExport: false,
132
+ enableTextExport: false,
133
+ enableGridMenu: true,
134
+ enableHeaderMenu: true,
135
+ enableMouseHoverHighlightRow: true,
136
+ enableSorting: true,
137
+ enableTextSelectionOnCells: true,
138
+ eventNamingStyle: EventNamingStyle.camelCase,
139
+ explicitInitialization: true,
140
+ excelExportOptions: {
141
+ addGroupIndentation: true,
142
+ exportWithFormatter: false,
143
+ filename: 'export',
144
+ format: FileType.xlsx,
145
+ groupingColumnHeaderTitle: 'Group By',
146
+ groupCollapsedSymbol: '⮞',
147
+ groupExpandedSymbol: '⮟',
148
+ groupingAggregatorRowText: '',
149
+ sanitizeDataExport: false,
150
+ },
151
+ textExportOptions: {
152
+ delimiter: DelimiterType.comma,
153
+ exportWithFormatter: false,
154
+ filename: 'export',
155
+ format: FileType.csv,
156
+ groupingColumnHeaderTitle: 'Group By',
157
+ groupingAggregatorRowText: '',
158
+ sanitizeDataExport: false,
159
+ useUtf8WithBom: true
160
+ },
161
+ forceFitColumns: false,
162
+ frozenHeaderWidthCalcDifferential: 1,
163
+ gridMenu: {
164
+ commandLabels: {
165
+ clearAllFiltersCommandKey: 'CLEAR_ALL_FILTERS',
166
+ clearAllSortingCommandKey: 'CLEAR_ALL_SORTING',
167
+ clearFrozenColumnsCommandKey: 'CLEAR_PINNING',
168
+ exportCsvCommandKey: 'EXPORT_TO_CSV',
169
+ exportExcelCommandKey: 'EXPORT_TO_EXCEL',
170
+ exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',
171
+ refreshDatasetCommandKey: 'REFRESH_DATASET',
172
+ toggleFilterCommandKey: 'TOGGLE_FILTER_ROW',
173
+ togglePreHeaderCommandKey: 'TOGGLE_PRE_HEADER_ROW',
174
+ },
175
+ hideClearAllFiltersCommand: false,
176
+ hideClearAllSortingCommand: false,
177
+ hideClearFrozenColumnsCommand: true, // opt-in command
178
+ hideExportCsvCommand: false,
179
+ hideExportExcelCommand: false,
180
+ hideExportTextDelimitedCommand: true,
181
+ hideForceFitButton: false,
182
+ hideRefreshDatasetCommand: false,
183
+ hideSyncResizeButton: true,
184
+ hideToggleFilterCommand: false,
185
+ hideTogglePreHeaderCommand: false,
186
+ iconCssClass: 'fa fa-bars',
187
+ iconClearAllFiltersCommand: 'fa fa-filter',
188
+ iconClearAllSortingCommand: 'fa fa-unsorted',
189
+ iconClearFrozenColumnsCommand: 'fa fa-times',
190
+ iconExportCsvCommand: 'fa fa-download',
191
+ iconExportExcelCommand: 'fa fa-file-excel-o',
192
+ iconExportTextDelimitedCommand: 'fa fa-download',
193
+ iconRefreshDatasetCommand: 'fa fa-refresh',
194
+ iconToggleFilterCommand: 'fa fa-random',
195
+ iconTogglePreHeaderCommand: 'fa fa-random',
196
+ menuWidth: 16,
197
+ resizeOnShowHeaderRow: true,
198
+ headerColumnValueExtractor: pickerHeaderColumnValueExtractor
199
+ },
200
+ headerMenu: {
201
+ autoAlign: true,
202
+ autoAlignOffset: 12,
203
+ minWidth: 140,
204
+ iconClearFilterCommand: 'fa fa-filter',
205
+ iconClearSortCommand: 'fa fa-unsorted',
206
+ iconFreezeColumns: 'fa fa-thumb-tack',
207
+ iconSortAscCommand: 'fa fa-sort-amount-asc',
208
+ iconSortDescCommand: 'fa fa-sort-amount-desc',
209
+ iconColumnHideCommand: 'fa fa-times',
210
+ iconColumnResizeByContentCommand: 'fa fa-arrows-h',
211
+ hideColumnResizeByContentCommand: false,
212
+ hideColumnHideCommand: false,
213
+ hideClearFilterCommand: false,
214
+ hideClearSortCommand: false,
215
+ hideFreezeColumnsCommand: true, // opt-in command
216
+ hideSortCommands: false
217
+ },
218
+ multiColumnSort: true,
219
+ numberedMultiColumnSort: true,
220
+ tristateMultiColumnSort: false,
221
+ sortColNumberInSeparateSpan: true,
222
+ suppressActiveCellChangeOnEdit: false,
223
+ pagination: {
224
+ pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],
225
+ pageSize: 25,
226
+ totalItems: 0
227
+ },
228
+ headerRowHeight: 35,
229
+ rowHeight: 35,
230
+ topPanelHeight: 30,
231
+ translationNamespaceSeparator: ':',
232
+ resetFilterSearchValueAfterOnBeforeCancellation: true,
233
+ resizeByContentOnlyOnFirstLoad: true,
234
+ resizeByContentOptions: {
235
+ alwaysRecalculateColumnWidth: false,
236
+ cellCharWidthInPx: 7.8,
237
+ cellPaddingWidthInPx: 14,
238
+ defaultRatioForStringType: 0.88,
239
+ formatterPaddingWidthInPx: 0,
240
+ maxItemToInspectCellContentWidth: 1000,
241
+ maxItemToInspectSingleColumnWidthByContent: 5000,
242
+ widthToRemoveFromExceededWidthReadjustment: 50,
243
+ },
244
+ treeDataOptions: {
245
+ exportIndentMarginLeft: 5,
246
+ exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',
247
+ } as unknown as TreeDataOption
248
+ };
249
+
250
+ /**
251
+ * Value Extractor for both ColumnPicker & GridMenu Picker
252
+ * when using Column Header Grouping, we'll prefix the column group title
253
+ * else we'll simply return the column name title
254
+ */
255
+ function pickerHeaderColumnValueExtractor(column: Column, gridOptions?: GridOption) {
256
+ const headerGroup = column?.columnGroup || '';
257
+ const columnGroupSeparator = gridOptions?.columnGroupSeparator ?? ' - ';
258
+ if (headerGroup) {
259
+ return headerGroup + columnGroupSeparator + column.name;
260
+ }
261
+ return column?.name ?? '';
262
+ }
@@ -0,0 +1,28 @@
1
+ import 'regenerator-runtime/runtime.js';
2
+ export * from '@slickgrid-universal/common';
3
+
4
+ import { SlickgridReact } from './components/slickgrid-react';
5
+ import { SlickgridEventAggregator } from './components/slickgridEventAggregator';
6
+ import { SlickgridConfig } from './slickgrid-config';
7
+
8
+ import {
9
+ SlickgridReactInstance,
10
+ SlickgridReactComponentOutput,
11
+ GridOption,
12
+ } from './models/index';
13
+
14
+ // expose all public classes
15
+ export {
16
+ ReactUtilService,
17
+ TranslaterService,
18
+ disposeAllSubscriptions
19
+ } from './services/index';
20
+
21
+ export {
22
+ SlickgridEventAggregator,
23
+ SlickgridReactInstance,
24
+ SlickgridReactComponentOutput,
25
+ GridOption,
26
+ SlickgridReact,
27
+ SlickgridConfig
28
+ };
@@ -0,0 +1,7 @@
1
+ import { GridOption as UniversalGridOption } from '@slickgrid-universal/common';
2
+ import * as i18next from 'i18next';
3
+
4
+ export interface GridOption extends UniversalGridOption {
5
+ /** I18N translation service instance */
6
+ i18n?: i18next.i18n;
7
+ }
@@ -0,0 +1,3 @@
1
+ export * from './slickgridReactInstance.interface';
2
+ export * from './reactComponentOutput.interface';
3
+ export * from './gridOption.interface';
@@ -0,0 +1,7 @@
1
+ import React, { ReactInstance } from 'react';
2
+
3
+ export interface SlickgridReactComponentOutput {
4
+ componentInstance?: ReactInstance;
5
+ componentElement?: React.CElement<any, React.Component<any, any, any>>;
6
+ domElement?: Element | Text | null;
7
+ }
@@ -0,0 +1,70 @@
1
+ import {
2
+ BackendService,
3
+ ExtensionService,
4
+ FilterService,
5
+ GridEventService,
6
+ GridService,
7
+ GridStateService,
8
+ GroupingAndColspanService,
9
+ PaginationService,
10
+ ResizerService,
11
+ SlickDataView,
12
+ SlickGrid,
13
+ SortService,
14
+ TreeDataService
15
+ } from '@slickgrid-universal/common';
16
+ import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
17
+
18
+ export interface SlickgridReactInstance {
19
+ element: HTMLDivElement;
20
+
21
+ /** Slick DataView object */
22
+ dataView: SlickDataView;
23
+
24
+ /** Slick Grid object */
25
+ slickGrid: SlickGrid;
26
+
27
+ // --
28
+ // Methods
29
+ /** Dispose of the grid and optionally empty the DOM element grid container as well */
30
+ dispose: (emptyDomElementContainer?: boolean) => void;
31
+
32
+ // --
33
+ // Services
34
+
35
+ /** Backend Service, when available */
36
+ backendService?: BackendService;
37
+
38
+ /** EventPubSub Service instance that is used internal by the lib and could be used externally to subscribe to Slickgrid-React events */
39
+ eventPubSubService?: EventPubSubService;
40
+
41
+ /** Extension (Plugins & Controls) Service */
42
+ extensionService: ExtensionService;
43
+
44
+ /** Filter Service */
45
+ filterService: FilterService;
46
+
47
+ /** Grid Service (grid extra functionalities) */
48
+ gridService: GridService;
49
+
50
+ /** Grid Events Service */
51
+ gridEventService: GridEventService;
52
+
53
+ /** Grid State Service */
54
+ gridStateService: GridStateService;
55
+
56
+ /** Grouping (and colspan) Service */
57
+ groupingService: GroupingAndColspanService;
58
+
59
+ /** Pagination Service (allows you to programmatically go to first/last page, etc...) */
60
+ paginationService?: PaginationService;
61
+
62
+ /** Resizer Service (including auto-resize) */
63
+ resizerService: ResizerService;
64
+
65
+ /** Sort Service */
66
+ sortService: SortService;
67
+
68
+ /** Tree Data View Service */
69
+ treeDataService: TreeDataService;
70
+ }