slickgrid-react 9.11.0 → 9.13.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.
- package/README.md +9 -9
- package/dist/components/slickgridReactProps.d.ts +10 -2
- package/dist/components/slickgridReactProps.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/extensions/slickRowDetailView.js +1 -1
- package/dist/extensions/slickRowDetailView.js.map +1 -1
- package/dist/global-grid-options.js +20 -0
- package/dist/global-grid-options.js.map +1 -1
- package/dist/i18n/en/translation.json +1 -0
- package/dist/i18n/fr/translation.json +1 -0
- package/dist/models/gridOption.interface.d.ts +2 -2
- package/dist/models/gridOption.interface.js.map +1 -1
- package/package.json +10 -10
- package/src/assets/locales/en/translation.json +1 -0
- package/src/assets/locales/fr/translation.json +1 -0
- package/src/components/slickgridReactProps.ts +5 -2
- package/src/constants.ts +1 -0
- package/src/extensions/slickRowDetailView.ts +3 -1
- package/src/global-grid-options.ts +20 -0
- package/src/models/gridOption.interface.ts +3 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <a href="https://react.dev/" rel="nofollow"><img alt="React" src="https://ghiscoding.github.io/slickgrid-react-demos/assets/react-logo-DuD1bc7a.png" width="
|
|
1
|
+
# <a href="https://react.dev/" rel="nofollow"><img alt="React" src="https://ghiscoding.github.io/slickgrid-react-demos/assets/react-logo-DuD1bc7a.png" width="80"></a> Slickgrid-React
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](http://www.typescriptlang.org/)
|
|
@@ -85,15 +85,15 @@ export default function Example() {
|
|
|
85
85
|
|
|
86
86
|
### Versions Compatibility
|
|
87
87
|
|
|
88
|
-
> **Note**
|
|
88
|
+
> **Note** Please be aware that only the latest major version of Slickgrid-React will be supported and receive bug fixes.
|
|
89
89
|
|
|
90
|
-
| Slickgrid-React | React
|
|
91
|
-
|
|
92
|
-
| 9.x
|
|
93
|
-
| 5.x
|
|
94
|
-
| 4.x
|
|
95
|
-
| 3.x
|
|
96
|
-
| 2.x
|
|
90
|
+
| Slickgrid-React | React | Migration Guide | Notes | Date |
|
|
91
|
+
|:---------------:| --------- | --------------- | ----- | ---- |
|
|
92
|
+
| 9.x | React 19+ | [Migration 9.x](https://ghiscoding.gitbook.io/slickgrid-react/migrations/migration-to-9.x) | ESM-Only, requires Slickgrid-Universal [9.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v9.0.0) | 2025-05-10 |
|
|
93
|
+
| 5.x | React 18+ | [Migration 5.x](https://ghiscoding.gitbook.io/slickgrid-react/migrations/migration-to-5.x) | Modern UI / Dark Mode, requires Slickgrid-Universal [5.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v5.0.0) | 2024-05-10 |
|
|
94
|
+
| 4.x | | [Migration 4.x](https://ghiscoding.gitbook.io/slickgrid-react/migrations/migration-to-4.x) | merge SlickGrid into Slickgrid-Universal,<br> requires Slickgrid-Universal [4.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v4.0.2) | 2023-12-15 |
|
|
95
|
+
| 3.x | | [Migration 3.x](https://ghiscoding.gitbook.io/slickgrid-react/migrations/migration-to-3.x) | removal of jQuery (now uses browser native code),<br> requires Slickgrid-Universal [3.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v3.0.0) | 2023-05-29 |
|
|
96
|
+
| 2.x | React 18+ | [Migration 2.x](https://ghiscoding.gitbook.io/slickgrid-react/migrations/migration-to-2.x) | removal of jQueryUI, requires Slickgrid-Universal [2.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v2.0.0) | 2022-12-08 |
|
|
97
97
|
|
|
98
98
|
### Styling Themes
|
|
99
99
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Column, ColumnSort, ContainerService, CurrentFilter, CurrentSorter, DragRowMove, ExportTextDownloadOption, ExtensionList, GridMenuCommandItemCallbackArgs, GridMenuEventWithElementCallbackArgs, GridOption, GridSize, GridStateChange, HeaderButtonOnCommandArgs, HeaderMenuCommandItemCallbackArgs, MenuCommandItemCallbackArgs, MenuFromCellCallbackArgs, MenuOptionItemCallbackArgs, OnActiveCellChangedEventArgs, OnAddNewRowEventArgs, OnAutosizeColumnsEventArgs, OnBeforeAppendCellEventArgs, OnBeforeCellEditorDestroyEventArgs, OnBeforeColumnsResizeEventArgs, OnBeforeEditCellEventArgs, OnBeforeFooterRowCellDestroyEventArgs, OnBeforeHeaderCellDestroyEventArgs, OnBeforeHeaderRowCellDestroyEventArgs, OnBeforeSetColumnsEventArgs, OnCellChangeEventArgs, OnCellCssStylesChangedEventArgs, OnClickEventArgs, OnColumnsChangedArgs, OnColumnsDragEventArgs, OnColumnsReorderedEventArgs, OnColumnsResizeDblClickEventArgs, OnColumnsResizedEventArgs, OnCompositeEditorChangeEventArgs, OnDblClickEventArgs, OnDragReplaceCellsEventArgs, OnFooterClickEventArgs, OnFooterContextMenuEventArgs, OnFooterRowCellRenderedEventArgs, OnGroupCollapsedEventArgs, OnGroupExpandedEventArgs, OnHeaderCellRenderedEventArgs, OnHeaderClickEventArgs, OnHeaderContextMenuEventArgs, OnHeaderMouseEventArgs, OnHeaderRowCellRenderedEventArgs, OnKeyDownEventArgs, OnRenderedEventArgs, OnRowCountChangedEventArgs, OnRowsChangedEventArgs, OnRowsOrCountChangedEventArgs, OnScrollEventArgs, OnSelectedRowIdsChangedEventArgs, OnSelectedRowsChangedEventArgs, OnSetItemsCalledEventArgs, OnSetOptionsEventArgs, OnValidationErrorEventArgs, Pagination, PaginationMetadata, PagingInfo, ReactRegularEventHandler, ReactSlickEventHandler, SingleColumnSort, SlickControlList, SlickDataView, SlickGrid, SlickPluginList, SlickRange, TreeToggleStateChange } from '@slickgrid-universal/common';
|
|
1
|
+
import type { Column, ColumnSort, ContainerService, CurrentFilter, CurrentSorter, DragRowMove, ExportTextDownloadOption, ExtensionList, GridMenuCommandItemCallbackArgs, GridMenuEventWithElementCallbackArgs, GridOption, GridSize, GridStateChange, HeaderButtonOnCommandArgs, HeaderMenuCommandItemCallbackArgs, MenuCommandItemCallbackArgs, MenuFromCellCallbackArgs, MenuOptionItemCallbackArgs, OnActiveCellChangedEventArgs, OnAddNewRowEventArgs, OnAutosizeColumnsEventArgs, OnBeforeAppendCellEventArgs, OnBeforeCellEditorDestroyEventArgs, OnBeforeColumnsResizeEventArgs, OnBeforeEditCellEventArgs, OnBeforeFooterRowCellDestroyEventArgs, OnBeforeHeaderCellDestroyEventArgs, OnBeforeHeaderRowCellDestroyEventArgs, OnBeforeSetColumnsEventArgs, OnCellChangeEventArgs, OnCellCssStylesChangedEventArgs, OnClickEventArgs, OnColumnsChangedArgs, OnColumnsDragEventArgs, OnColumnsReorderedEventArgs, OnColumnsResizeDblClickEventArgs, OnColumnsResizedEventArgs, OnCompositeEditorChangeEventArgs, OnDblClickEventArgs, OnDragReplaceCellsEventArgs, OnFooterClickEventArgs, OnFooterContextMenuEventArgs, OnFooterRowCellRenderedEventArgs, OnGroupCollapsedEventArgs, OnGroupExpandedEventArgs, OnHeaderCellRenderedEventArgs, OnHeaderClickEventArgs, OnHeaderContextMenuEventArgs, OnHeaderMouseEventArgs, OnHeaderRowCellRenderedEventArgs, OnKeyDownEventArgs, OnRenderedEventArgs, OnRowCountChangedEventArgs, OnRowsChangedEventArgs, OnRowsOrCountChangedEventArgs, OnScrollEventArgs, OnSearchChangeEventArgs, OnSelectedRowIdsChangedEventArgs, OnSelectedRowsChangedEventArgs, OnSetItemsCalledEventArgs, OnSetOptionsEventArgs, OnValidationErrorEventArgs, Pagination, PaginationMetadata, PagingInfo, ReactRegularEventHandler, ReactSlickEventHandler, SingleColumnSort, SlickControlList, SlickDataView, SlickGrid, SlickPluginList, SlickRange, TreeToggleStateChange } from '@slickgrid-universal/common';
|
|
2
2
|
import type { SlickgridReactInstance } from '../models/index.js';
|
|
3
3
|
import type { TranslaterI18NextService } from '../services/translaterI18Next.service.js';
|
|
4
4
|
export interface SlickgridReactProps {
|
|
@@ -22,7 +22,6 @@ export interface SlickgridReactProps {
|
|
|
22
22
|
onAddNewRow?: ReactSlickEventHandler<OnAddNewRowEventArgs>;
|
|
23
23
|
onAutosizeColumns?: ReactSlickEventHandler<OnAutosizeColumnsEventArgs>;
|
|
24
24
|
onBeforeAppendCell?: ReactSlickEventHandler<OnBeforeAppendCellEventArgs>;
|
|
25
|
-
onBeforeSearchChange?: ReactSlickEventHandler<OnCellChangeEventArgs, boolean | void>;
|
|
26
25
|
onBeforeCellEditorDestroy?: ReactSlickEventHandler<OnBeforeCellEditorDestroyEventArgs>;
|
|
27
26
|
onBeforeColumnsResize?: ReactSlickEventHandler<OnBeforeColumnsResizeEventArgs>;
|
|
28
27
|
onBeforeDestroy?: ReactSlickEventHandler<{
|
|
@@ -113,14 +112,23 @@ export interface SlickgridReactProps {
|
|
|
113
112
|
onAfterExportToExcel?: ReactRegularEventHandler<{
|
|
114
113
|
filename: string;
|
|
115
114
|
mimeType: string;
|
|
115
|
+
} | {
|
|
116
|
+
error: any;
|
|
116
117
|
}>;
|
|
117
118
|
onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;
|
|
119
|
+
onAfterExportToPdf?: ReactRegularEventHandler<{
|
|
120
|
+
filename: string;
|
|
121
|
+
} | {
|
|
122
|
+
error: any;
|
|
123
|
+
}>;
|
|
124
|
+
onBeforeExportToPdf?: ReactRegularEventHandler<boolean>;
|
|
118
125
|
onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;
|
|
119
126
|
onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;
|
|
120
127
|
onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;
|
|
121
128
|
onBeforeFilterClear?: ReactRegularEventHandler<{
|
|
122
129
|
columnId: string;
|
|
123
130
|
} | boolean>;
|
|
131
|
+
onBeforeSearchChange?: ReactRegularEventHandler<OnSearchChangeEventArgs, boolean | void>;
|
|
124
132
|
onBeforeSortChange?: ReactRegularEventHandler<Array<ColumnSort & {
|
|
125
133
|
clearSortTriggered?: boolean;
|
|
126
134
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slickgridReactProps.js","sourceRoot":"","sources":["../../src/components/slickgridReactProps.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Column,\n ColumnSort,\n ContainerService,\n CurrentFilter,\n CurrentSorter,\n DragRowMove,\n ExportTextDownloadOption,\n ExtensionList,\n GridMenuCommandItemCallbackArgs,\n GridMenuEventWithElementCallbackArgs,\n GridOption,\n GridSize,\n GridStateChange,\n HeaderButtonOnCommandArgs,\n HeaderMenuCommandItemCallbackArgs,\n MenuCommandItemCallbackArgs,\n MenuFromCellCallbackArgs,\n MenuOptionItemCallbackArgs,\n OnActiveCellChangedEventArgs,\n OnAddNewRowEventArgs,\n OnAutosizeColumnsEventArgs,\n OnBeforeAppendCellEventArgs,\n OnBeforeCellEditorDestroyEventArgs,\n OnBeforeColumnsResizeEventArgs,\n OnBeforeEditCellEventArgs,\n OnBeforeFooterRowCellDestroyEventArgs,\n OnBeforeHeaderCellDestroyEventArgs,\n OnBeforeHeaderRowCellDestroyEventArgs,\n OnBeforeSetColumnsEventArgs,\n OnCellChangeEventArgs,\n OnCellCssStylesChangedEventArgs,\n OnClickEventArgs,\n OnColumnsChangedArgs,\n OnColumnsDragEventArgs,\n OnColumnsReorderedEventArgs,\n OnColumnsResizeDblClickEventArgs,\n OnColumnsResizedEventArgs,\n OnCompositeEditorChangeEventArgs,\n OnDblClickEventArgs,\n OnDragReplaceCellsEventArgs,\n OnFooterClickEventArgs,\n OnFooterContextMenuEventArgs,\n OnFooterRowCellRenderedEventArgs,\n OnGroupCollapsedEventArgs,\n OnGroupExpandedEventArgs,\n OnHeaderCellRenderedEventArgs,\n OnHeaderClickEventArgs,\n OnHeaderContextMenuEventArgs,\n OnHeaderMouseEventArgs,\n OnHeaderRowCellRenderedEventArgs,\n OnKeyDownEventArgs,\n OnRenderedEventArgs,\n OnRowCountChangedEventArgs,\n OnRowsChangedEventArgs,\n OnRowsOrCountChangedEventArgs,\n OnScrollEventArgs,\n OnSelectedRowIdsChangedEventArgs,\n OnSelectedRowsChangedEventArgs,\n OnSetItemsCalledEventArgs,\n OnSetOptionsEventArgs,\n OnValidationErrorEventArgs,\n Pagination,\n PaginationMetadata,\n PagingInfo,\n ReactRegularEventHandler,\n ReactSlickEventHandler,\n SingleColumnSort,\n SlickControlList,\n SlickDataView,\n SlickGrid,\n SlickPluginList,\n SlickRange,\n TreeToggleStateChange,\n} from '@slickgrid-universal/common';\nimport type { SlickgridReactInstance } from '../models/index.js';\nimport type { TranslaterI18NextService } from '../services/translaterI18Next.service.js';\n\nexport interface SlickgridReactProps {\n header?: React.ReactElement;\n footer?: React.ReactElement;\n containerService: ContainerService;\n translaterService?: TranslaterI18NextService;\n customDataView?: SlickDataView;\n dataset: any[];\n datasetHierarchical?: any[] | null;\n extensions?: ExtensionList<SlickControlList | SlickPluginList>;\n gridId: string;\n options?: GridOption;\n columns: Column[];\n instances?: SlickgridReactInstance;\n paginationOptions?: Pagination;\n\n // Custom Events list\n // ---------------------\n\n // Slick Grid events\n onActiveCellChanged?: ReactSlickEventHandler<OnActiveCellChangedEventArgs>;\n onActiveCellPositionChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onAddNewRow?: ReactSlickEventHandler<OnAddNewRowEventArgs>;\n onAutosizeColumns?: ReactSlickEventHandler<OnAutosizeColumnsEventArgs>;\n onBeforeAppendCell?: ReactSlickEventHandler<OnBeforeAppendCellEventArgs>;\n onBeforeSearchChange?: ReactSlickEventHandler<OnCellChangeEventArgs, boolean | void>;\n onBeforeCellEditorDestroy?: ReactSlickEventHandler<OnBeforeCellEditorDestroyEventArgs>;\n onBeforeColumnsResize?: ReactSlickEventHandler<OnBeforeColumnsResizeEventArgs>;\n onBeforeDestroy?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onBeforeEditCell?: ReactSlickEventHandler<OnBeforeEditCellEventArgs>;\n onBeforeHeaderCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderCellDestroyEventArgs>;\n onBeforeHeaderRowCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderRowCellDestroyEventArgs>;\n onBeforeFooterRowCellDestroy?: ReactSlickEventHandler<OnBeforeFooterRowCellDestroyEventArgs>;\n onBeforeSetColumns?: ReactSlickEventHandler<OnBeforeSetColumnsEventArgs>;\n onBeforeSort?: ReactSlickEventHandler<SingleColumnSort, boolean | void>;\n onCellChange?: ReactSlickEventHandler<OnCellChangeEventArgs>;\n onCellCssStylesChanged?: ReactSlickEventHandler<OnCellCssStylesChangedEventArgs>;\n onClick?: ReactSlickEventHandler<OnClickEventArgs>;\n onColumnsDrag?: ReactSlickEventHandler<OnColumnsDragEventArgs>;\n onColumnsReordered?: ReactSlickEventHandler<OnColumnsReorderedEventArgs>;\n onColumnsResized?: ReactSlickEventHandler<OnColumnsResizedEventArgs>;\n onColumnsResizeDblClick?: ReactSlickEventHandler<OnColumnsResizeDblClickEventArgs>;\n onCompositeEditorChange?: ReactSlickEventHandler<OnCompositeEditorChangeEventArgs>;\n onContextMenu?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onDrag?: ReactSlickEventHandler<DragRowMove>;\n onDragEnd?: ReactSlickEventHandler<DragRowMove>;\n onDragInit?: ReactSlickEventHandler<DragRowMove>;\n onDragStart?: ReactSlickEventHandler<DragRowMove>;\n onDragReplaceCells?: ReactSlickEventHandler<OnDragReplaceCellsEventArgs>;\n onDblClick?: ReactSlickEventHandler<OnDblClickEventArgs>;\n onFooterContextMenu?: ReactSlickEventHandler<OnFooterContextMenuEventArgs>;\n onFooterRowCellRendered?: ReactSlickEventHandler<OnFooterRowCellRenderedEventArgs>;\n onHeaderCellRendered?: ReactSlickEventHandler<OnHeaderCellRenderedEventArgs>;\n onFooterClick?: ReactSlickEventHandler<OnFooterClickEventArgs>;\n onHeaderClick?: ReactSlickEventHandler<OnHeaderClickEventArgs>;\n onHeaderContextMenu?: ReactSlickEventHandler<OnHeaderContextMenuEventArgs>;\n onHeaderMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderRowCellRendered?: ReactSlickEventHandler<OnHeaderRowCellRenderedEventArgs>;\n onHeaderRowMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderRowMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onKeyDown?: ReactSlickEventHandler<OnKeyDownEventArgs>;\n onMouseEnter?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onMouseLeave?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onValidationError?: ReactSlickEventHandler<OnValidationErrorEventArgs>;\n onViewportChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onRendered?: ReactSlickEventHandler<OnRenderedEventArgs>;\n onSelectedRowsChanged?: ReactSlickEventHandler<OnSelectedRowsChangedEventArgs>;\n onSetOptions?: ReactSlickEventHandler<OnSetOptionsEventArgs>;\n onScroll?: ReactSlickEventHandler<OnScrollEventArgs>;\n onSort?: ReactSlickEventHandler<SingleColumnSort>;\n\n // Slick DataView events\n onBeforePagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;\n onGroupExpanded?: ReactSlickEventHandler<OnGroupExpandedEventArgs>;\n onGroupCollapsed?: ReactSlickEventHandler<OnGroupCollapsedEventArgs>;\n onPagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;\n onRowCountChanged?: ReactSlickEventHandler<OnRowCountChangedEventArgs>;\n onRowsChanged?: ReactSlickEventHandler<OnRowsChangedEventArgs>;\n onRowsOrCountChanged?: ReactSlickEventHandler<OnRowsOrCountChangedEventArgs>;\n onSelectedRowIdsChanged?: ReactSlickEventHandler<OnSelectedRowIdsChangedEventArgs>;\n onSetItemsCalled?: ReactSlickEventHandler<OnSetItemsCalledEventArgs>;\n\n // other Slick Events\n onAfterMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onBeforeMenuClose?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onBeforeMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;\n onCommand?: ReactSlickEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;\n onGridMenuColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;\n onMenuClose?: ReactSlickEventHandler<GridMenuEventWithElementCallbackArgs>;\n onCopyCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onCopyCancelled?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onPasteCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onBeforePasteCell?: ReactSlickEventHandler<{ cell: number; row: number; item: any; columnDef: Column; value: any }>;\n\n // Slickgrid-React or Slickgrid-Universal events\n onAfterExportToExcel?: ReactRegularEventHandler<{ filename: string; mimeType: string }>;\n onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;\n onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;\n onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;\n onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;\n onBeforeFilterClear?: ReactRegularEventHandler<{ columnId: string } | boolean>;\n onBeforeSortChange?: ReactRegularEventHandler<Array<ColumnSort & { clearSortTriggered?: boolean }>>;\n onContextMenuClearGrouping?: ReactRegularEventHandler<void>;\n onContextMenuCollapseAllGroups?: ReactRegularEventHandler<void>;\n onContextMenuExpandAllGroups?: ReactRegularEventHandler<void>;\n onAfterGridDestroyed?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;\n onBeforeGridDestroy?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;\n onOptionSelected?: ReactRegularEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;\n onColumnPickerColumnsChanged?: ReactRegularEventHandler<OnColumnsChangedArgs>;\n onGridMenuMenuClose?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuBeforeMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuAfterMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuClearAllPinning?: ReactRegularEventHandler<void>;\n onGridMenuClearAllFilters?: ReactRegularEventHandler<void>;\n onGridMenuClearAllSorting?: ReactRegularEventHandler<void>;\n onGridMenuCommand?: ReactRegularEventHandler<GridMenuCommandItemCallbackArgs>;\n onHeaderButtonCommand?: ReactRegularEventHandler<HeaderButtonOnCommandArgs>;\n onHeaderMenuCommand?: ReactRegularEventHandler<MenuCommandItemCallbackArgs>;\n onHeaderMenuColumnResizeByContent?: ReactRegularEventHandler<{ columnId: string }>;\n onHeaderMenuBeforeMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;\n onHeaderMenuAfterMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;\n onHideColumns?: ReactRegularEventHandler<{ columns: Column[]; hiddenColumn: Column[] }>;\n onItemsAdded?: ReactRegularEventHandler<any[]>;\n onItemsDeleted?: ReactRegularEventHandler<any[]>;\n onItemsUpdated?: ReactRegularEventHandler<any[]>;\n onItemsUpserted?: ReactRegularEventHandler<any[]>;\n onFullResizeByContentRequested?: ReactRegularEventHandler<{ caller: string }>;\n onGridStateChanged?: ReactRegularEventHandler<GridStateChange>;\n onBeforePaginationChange?: ReactRegularEventHandler<PaginationMetadata, boolean | void>;\n onPaginationChanged?: ReactRegularEventHandler<PaginationMetadata>;\n onPaginationRefreshed?: ReactRegularEventHandler<PaginationMetadata>;\n onPaginationVisibilityChanged?: ReactRegularEventHandler<{ visible: boolean }>;\n onPaginationSetCursorBased?: ReactRegularEventHandler<{ isCursorBased: boolean }>;\n onGridBeforeResize?: ReactRegularEventHandler<void>;\n onGridAfterResize?: ReactRegularEventHandler<GridSize | undefined>;\n onBeforeResizeByContent?: ReactRegularEventHandler<void>;\n onAfterResizeByContent?: ReactRegularEventHandler<{\n readItemCount: number;\n calculateColumnWidths: { [x: string]: number | undefined; [x: number]: number | undefined };\n }>;\n onSortCleared?: ReactRegularEventHandler<boolean>;\n onFilterChanged?: ReactRegularEventHandler<CurrentFilter[]>;\n onFilterCleared?: ReactRegularEventHandler<boolean>;\n onReactGridCreated?: ReactRegularEventHandler<any>;\n onSortChanged?: ReactRegularEventHandler<CurrentSorter[]>;\n onTreeItemToggled?: ReactRegularEventHandler<TreeToggleStateChange>;\n onTreeFullToggleEnd?: ReactRegularEventHandler<TreeToggleStateChange>;\n onTreeFullToggleStart?: ReactRegularEventHandler<TreeToggleStateChange>;\n onLanguageChange?: ReactRegularEventHandler<string>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"slickgridReactProps.js","sourceRoot":"","sources":["../../src/components/slickgridReactProps.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Column,\n ColumnSort,\n ContainerService,\n CurrentFilter,\n CurrentSorter,\n DragRowMove,\n ExportTextDownloadOption,\n ExtensionList,\n GridMenuCommandItemCallbackArgs,\n GridMenuEventWithElementCallbackArgs,\n GridOption,\n GridSize,\n GridStateChange,\n HeaderButtonOnCommandArgs,\n HeaderMenuCommandItemCallbackArgs,\n MenuCommandItemCallbackArgs,\n MenuFromCellCallbackArgs,\n MenuOptionItemCallbackArgs,\n OnActiveCellChangedEventArgs,\n OnAddNewRowEventArgs,\n OnAutosizeColumnsEventArgs,\n OnBeforeAppendCellEventArgs,\n OnBeforeCellEditorDestroyEventArgs,\n OnBeforeColumnsResizeEventArgs,\n OnBeforeEditCellEventArgs,\n OnBeforeFooterRowCellDestroyEventArgs,\n OnBeforeHeaderCellDestroyEventArgs,\n OnBeforeHeaderRowCellDestroyEventArgs,\n OnBeforeSetColumnsEventArgs,\n OnCellChangeEventArgs,\n OnCellCssStylesChangedEventArgs,\n OnClickEventArgs,\n OnColumnsChangedArgs,\n OnColumnsDragEventArgs,\n OnColumnsReorderedEventArgs,\n OnColumnsResizeDblClickEventArgs,\n OnColumnsResizedEventArgs,\n OnCompositeEditorChangeEventArgs,\n OnDblClickEventArgs,\n OnDragReplaceCellsEventArgs,\n OnFooterClickEventArgs,\n OnFooterContextMenuEventArgs,\n OnFooterRowCellRenderedEventArgs,\n OnGroupCollapsedEventArgs,\n OnGroupExpandedEventArgs,\n OnHeaderCellRenderedEventArgs,\n OnHeaderClickEventArgs,\n OnHeaderContextMenuEventArgs,\n OnHeaderMouseEventArgs,\n OnHeaderRowCellRenderedEventArgs,\n OnKeyDownEventArgs,\n OnRenderedEventArgs,\n OnRowCountChangedEventArgs,\n OnRowsChangedEventArgs,\n OnRowsOrCountChangedEventArgs,\n OnScrollEventArgs,\n OnSearchChangeEventArgs,\n OnSelectedRowIdsChangedEventArgs,\n OnSelectedRowsChangedEventArgs,\n OnSetItemsCalledEventArgs,\n OnSetOptionsEventArgs,\n OnValidationErrorEventArgs,\n Pagination,\n PaginationMetadata,\n PagingInfo,\n ReactRegularEventHandler,\n ReactSlickEventHandler,\n SingleColumnSort,\n SlickControlList,\n SlickDataView,\n SlickGrid,\n SlickPluginList,\n SlickRange,\n TreeToggleStateChange,\n} from '@slickgrid-universal/common';\nimport type { SlickgridReactInstance } from '../models/index.js';\nimport type { TranslaterI18NextService } from '../services/translaterI18Next.service.js';\n\nexport interface SlickgridReactProps {\n header?: React.ReactElement;\n footer?: React.ReactElement;\n containerService: ContainerService;\n translaterService?: TranslaterI18NextService;\n customDataView?: SlickDataView;\n dataset: any[];\n datasetHierarchical?: any[] | null;\n extensions?: ExtensionList<SlickControlList | SlickPluginList>;\n gridId: string;\n options?: GridOption;\n columns: Column[];\n instances?: SlickgridReactInstance;\n paginationOptions?: Pagination;\n\n // Custom Events list\n // ---------------------\n\n // Slick Grid events\n onActiveCellChanged?: ReactSlickEventHandler<OnActiveCellChangedEventArgs>;\n onActiveCellPositionChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onAddNewRow?: ReactSlickEventHandler<OnAddNewRowEventArgs>;\n onAutosizeColumns?: ReactSlickEventHandler<OnAutosizeColumnsEventArgs>;\n onBeforeAppendCell?: ReactSlickEventHandler<OnBeforeAppendCellEventArgs>;\n onBeforeCellEditorDestroy?: ReactSlickEventHandler<OnBeforeCellEditorDestroyEventArgs>;\n onBeforeColumnsResize?: ReactSlickEventHandler<OnBeforeColumnsResizeEventArgs>;\n onBeforeDestroy?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onBeforeEditCell?: ReactSlickEventHandler<OnBeforeEditCellEventArgs>;\n onBeforeHeaderCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderCellDestroyEventArgs>;\n onBeforeHeaderRowCellDestroy?: ReactSlickEventHandler<OnBeforeHeaderRowCellDestroyEventArgs>;\n onBeforeFooterRowCellDestroy?: ReactSlickEventHandler<OnBeforeFooterRowCellDestroyEventArgs>;\n onBeforeSetColumns?: ReactSlickEventHandler<OnBeforeSetColumnsEventArgs>;\n onBeforeSort?: ReactSlickEventHandler<SingleColumnSort, boolean | void>;\n onCellChange?: ReactSlickEventHandler<OnCellChangeEventArgs>;\n onCellCssStylesChanged?: ReactSlickEventHandler<OnCellCssStylesChangedEventArgs>;\n onClick?: ReactSlickEventHandler<OnClickEventArgs>;\n onColumnsDrag?: ReactSlickEventHandler<OnColumnsDragEventArgs>;\n onColumnsReordered?: ReactSlickEventHandler<OnColumnsReorderedEventArgs>;\n onColumnsResized?: ReactSlickEventHandler<OnColumnsResizedEventArgs>;\n onColumnsResizeDblClick?: ReactSlickEventHandler<OnColumnsResizeDblClickEventArgs>;\n onCompositeEditorChange?: ReactSlickEventHandler<OnCompositeEditorChangeEventArgs>;\n onContextMenu?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onDrag?: ReactSlickEventHandler<DragRowMove>;\n onDragEnd?: ReactSlickEventHandler<DragRowMove>;\n onDragInit?: ReactSlickEventHandler<DragRowMove>;\n onDragStart?: ReactSlickEventHandler<DragRowMove>;\n onDragReplaceCells?: ReactSlickEventHandler<OnDragReplaceCellsEventArgs>;\n onDblClick?: ReactSlickEventHandler<OnDblClickEventArgs>;\n onFooterContextMenu?: ReactSlickEventHandler<OnFooterContextMenuEventArgs>;\n onFooterRowCellRendered?: ReactSlickEventHandler<OnFooterRowCellRenderedEventArgs>;\n onHeaderCellRendered?: ReactSlickEventHandler<OnHeaderCellRenderedEventArgs>;\n onFooterClick?: ReactSlickEventHandler<OnFooterClickEventArgs>;\n onHeaderClick?: ReactSlickEventHandler<OnHeaderClickEventArgs>;\n onHeaderContextMenu?: ReactSlickEventHandler<OnHeaderContextMenuEventArgs>;\n onHeaderMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderRowCellRendered?: ReactSlickEventHandler<OnHeaderRowCellRenderedEventArgs>;\n onHeaderRowMouseEnter?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onHeaderRowMouseLeave?: ReactSlickEventHandler<OnHeaderMouseEventArgs>;\n onKeyDown?: ReactSlickEventHandler<OnKeyDownEventArgs>;\n onMouseEnter?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onMouseLeave?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onValidationError?: ReactSlickEventHandler<OnValidationErrorEventArgs>;\n onViewportChanged?: ReactSlickEventHandler<{ grid: SlickGrid }>;\n onRendered?: ReactSlickEventHandler<OnRenderedEventArgs>;\n onSelectedRowsChanged?: ReactSlickEventHandler<OnSelectedRowsChangedEventArgs>;\n onSetOptions?: ReactSlickEventHandler<OnSetOptionsEventArgs>;\n onScroll?: ReactSlickEventHandler<OnScrollEventArgs>;\n onSort?: ReactSlickEventHandler<SingleColumnSort>;\n\n // Slick DataView events\n onBeforePagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;\n onGroupExpanded?: ReactSlickEventHandler<OnGroupExpandedEventArgs>;\n onGroupCollapsed?: ReactSlickEventHandler<OnGroupCollapsedEventArgs>;\n onPagingInfoChanged?: ReactSlickEventHandler<PagingInfo>;\n onRowCountChanged?: ReactSlickEventHandler<OnRowCountChangedEventArgs>;\n onRowsChanged?: ReactSlickEventHandler<OnRowsChangedEventArgs>;\n onRowsOrCountChanged?: ReactSlickEventHandler<OnRowsOrCountChangedEventArgs>;\n onSelectedRowIdsChanged?: ReactSlickEventHandler<OnSelectedRowIdsChangedEventArgs>;\n onSetItemsCalled?: ReactSlickEventHandler<OnSetItemsCalledEventArgs>;\n\n // other Slick Events\n onAfterMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onBeforeMenuClose?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onBeforeMenuShow?: ReactSlickEventHandler<MenuFromCellCallbackArgs>;\n onColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;\n onCommand?: ReactSlickEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;\n onGridMenuColumnsChanged?: ReactSlickEventHandler<OnColumnsChangedArgs>;\n onMenuClose?: ReactSlickEventHandler<GridMenuEventWithElementCallbackArgs>;\n onCopyCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onCopyCancelled?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onPasteCells?: ReactSlickEventHandler<{ ranges: SlickRange[] }>;\n onBeforePasteCell?: ReactSlickEventHandler<{ cell: number; row: number; item: any; columnDef: Column; value: any }>;\n\n // Slickgrid-React or Slickgrid-Universal events\n onAfterExportToExcel?: ReactRegularEventHandler<{ filename: string; mimeType: string } | { error: any }>;\n onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;\n onAfterExportToPdf?: ReactRegularEventHandler<{ filename: string } | { error: any }>;\n onBeforeExportToPdf?: ReactRegularEventHandler<boolean>;\n onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;\n onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;\n onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;\n onBeforeFilterClear?: ReactRegularEventHandler<{ columnId: string } | boolean>;\n onBeforeSearchChange?: ReactRegularEventHandler<OnSearchChangeEventArgs, boolean | void>;\n onBeforeSortChange?: ReactRegularEventHandler<Array<ColumnSort & { clearSortTriggered?: boolean }>>;\n onContextMenuClearGrouping?: ReactRegularEventHandler<void>;\n onContextMenuCollapseAllGroups?: ReactRegularEventHandler<void>;\n onContextMenuExpandAllGroups?: ReactRegularEventHandler<void>;\n onAfterGridDestroyed?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;\n onBeforeGridDestroy?: ReactRegularEventHandler<MenuFromCellCallbackArgs>;\n onOptionSelected?: ReactRegularEventHandler<MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs>;\n onColumnPickerColumnsChanged?: ReactRegularEventHandler<OnColumnsChangedArgs>;\n onGridMenuMenuClose?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuBeforeMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuAfterMenuShow?: ReactRegularEventHandler<GridMenuEventWithElementCallbackArgs>;\n onGridMenuClearAllPinning?: ReactRegularEventHandler<void>;\n onGridMenuClearAllFilters?: ReactRegularEventHandler<void>;\n onGridMenuClearAllSorting?: ReactRegularEventHandler<void>;\n onGridMenuCommand?: ReactRegularEventHandler<GridMenuCommandItemCallbackArgs>;\n onHeaderButtonCommand?: ReactRegularEventHandler<HeaderButtonOnCommandArgs>;\n onHeaderMenuCommand?: ReactRegularEventHandler<MenuCommandItemCallbackArgs>;\n onHeaderMenuColumnResizeByContent?: ReactRegularEventHandler<{ columnId: string }>;\n onHeaderMenuBeforeMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;\n onHeaderMenuAfterMenuShow?: ReactRegularEventHandler<HeaderMenuCommandItemCallbackArgs>;\n onHideColumns?: ReactRegularEventHandler<{ columns: Column[]; hiddenColumn: Column[] }>;\n onItemsAdded?: ReactRegularEventHandler<any[]>;\n onItemsDeleted?: ReactRegularEventHandler<any[]>;\n onItemsUpdated?: ReactRegularEventHandler<any[]>;\n onItemsUpserted?: ReactRegularEventHandler<any[]>;\n onFullResizeByContentRequested?: ReactRegularEventHandler<{ caller: string }>;\n onGridStateChanged?: ReactRegularEventHandler<GridStateChange>;\n onBeforePaginationChange?: ReactRegularEventHandler<PaginationMetadata, boolean | void>;\n onPaginationChanged?: ReactRegularEventHandler<PaginationMetadata>;\n onPaginationRefreshed?: ReactRegularEventHandler<PaginationMetadata>;\n onPaginationVisibilityChanged?: ReactRegularEventHandler<{ visible: boolean }>;\n onPaginationSetCursorBased?: ReactRegularEventHandler<{ isCursorBased: boolean }>;\n onGridBeforeResize?: ReactRegularEventHandler<void>;\n onGridAfterResize?: ReactRegularEventHandler<GridSize | undefined>;\n onBeforeResizeByContent?: ReactRegularEventHandler<void>;\n onAfterResizeByContent?: ReactRegularEventHandler<{\n readItemCount: number;\n calculateColumnWidths: { [x: string]: number | undefined; [x: number]: number | undefined };\n }>;\n onSortCleared?: ReactRegularEventHandler<boolean>;\n onFilterChanged?: ReactRegularEventHandler<CurrentFilter[]>;\n onFilterCleared?: ReactRegularEventHandler<boolean>;\n onReactGridCreated?: ReactRegularEventHandler<any>;\n onSortChanged?: ReactRegularEventHandler<CurrentSorter[]>;\n onTreeItemToggled?: ReactRegularEventHandler<TreeToggleStateChange>;\n onTreeFullToggleEnd?: ReactRegularEventHandler<TreeToggleStateChange>;\n onTreeFullToggleStart?: ReactRegularEventHandler<TreeToggleStateChange>;\n onLanguageChange?: ReactRegularEventHandler<string>;\n}\n"]}
|
package/dist/constants.js
CHANGED
|
@@ -31,6 +31,7 @@ export class Constants {
|
|
|
31
31
|
TEXT_EXPORT_TO_CSV: 'Export in CSV format',
|
|
32
32
|
TEXT_EXPORT_TO_TEXT_FORMAT: 'Export in Text format (Tab delimited)',
|
|
33
33
|
TEXT_EXPORT_TO_EXCEL: 'Export to Excel',
|
|
34
|
+
TEXT_EXPORT_TO_PDF: 'Export to PDF',
|
|
34
35
|
TEXT_EXPORT_TO_TAB_DELIMITED: 'Export in Text format (Tab delimited)',
|
|
35
36
|
TEXT_FORCE_FIT_COLUMNS: 'Force fit columns',
|
|
36
37
|
TEXT_FREEZE_COLUMNS: 'Freeze Columns',
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Locale } from '@slickgrid-universal/common';\n\nexport class Constants {\n // English Locale texts when using only 1 Locale instead of I18N\n static readonly locales: Locale = {\n TEXT_ALL_SELECTED: 'All Selected',\n TEXT_ALL_X_RECORDS_SELECTED: 'All {{x}} records selected',\n TEXT_APPLY_MASS_UPDATE: 'Apply Mass Update',\n TEXT_APPLY_TO_SELECTION: 'Update Selection',\n TEXT_CANCEL: 'Cancel',\n TEXT_CLEAR_ALL_FILTERS: 'Clear all Filters',\n TEXT_CLEAR_ALL_GROUPING: 'Clear all Grouping',\n TEXT_CLEAR_ALL_SORTING: 'Clear all Sorting',\n TEXT_CLEAR_PINNING: 'Unfreeze Columns/Rows',\n TEXT_CLONE: 'Clone',\n TEXT_COLLAPSE_ALL_GROUPS: 'Collapse all Groups',\n TEXT_CONTAINS: 'Contains',\n TEXT_COLUMNS: 'Columns',\n TEXT_COLUMN_RESIZE_BY_CONTENT: 'Resize by Content',\n TEXT_COMMANDS: 'Commands',\n TEXT_COPY: 'Copy',\n TEXT_EQUALS: 'Equals',\n TEXT_EQUAL_TO: 'Equal to',\n TEXT_ENDS_WITH: 'Ends With',\n TEXT_ERROR_EDITABLE_GRID_REQUIRED: 'Your grid must be editable in order to use the Composite Editor Modal.',\n TEXT_ERROR_ENABLE_CELL_NAVIGATION_REQUIRED:\n 'Composite Editor requires the flag \"enableCellNavigation\" to be set to True in your Grid Options.',\n TEXT_ERROR_NO_CHANGES_DETECTED: 'Sorry we could not detect any changes.',\n TEXT_ERROR_NO_EDITOR_FOUND: 'We could not find any Editor in your Column Definition.',\n TEXT_ERROR_NO_RECORD_FOUND: 'No records selected for edit or clone operation.',\n TEXT_ERROR_ROW_NOT_EDITABLE: 'Current row is not editable.',\n TEXT_ERROR_ROW_SELECTION_REQUIRED: 'You must select some rows before trying to apply new value(s).',\n TEXT_EXPAND_ALL_GROUPS: 'Expand all Groups',\n TEXT_EXPORT_TO_CSV: 'Export in CSV format',\n TEXT_EXPORT_TO_TEXT_FORMAT: 'Export in Text format (Tab delimited)',\n TEXT_EXPORT_TO_EXCEL: 'Export to Excel',\n TEXT_EXPORT_TO_TAB_DELIMITED: 'Export in Text format (Tab delimited)',\n TEXT_FORCE_FIT_COLUMNS: 'Force fit columns',\n TEXT_FREEZE_COLUMNS: 'Freeze Columns',\n TEXT_GREATER_THAN: 'Greater than',\n TEXT_GREATER_THAN_OR_EQUAL_TO: 'Greater than or equal to',\n TEXT_GROUP_BY: 'Group By',\n TEXT_HIDE_COLUMN: 'Hide Column',\n TEXT_ITEMS: 'items',\n TEXT_ITEMS_PER_PAGE: 'items per page',\n TEXT_ITEMS_SELECTED: 'items selected',\n TEXT_OF: 'of',\n TEXT_OK: 'OK',\n TEXT_OPTIONS: 'Options',\n TEXT_LAST_UPDATE: 'Last Update',\n TEXT_LESS_THAN: 'Less than',\n TEXT_LESS_THAN_OR_EQUAL_TO: 'Less than or equal to',\n TEXT_LOADING: 'Loading...',\n TEXT_NO_ELEMENTS_FOUND: 'Aucun élément trouvé',\n TEXT_NOT_CONTAINS: 'Not contains',\n TEXT_NOT_EQUAL_TO: 'Not equal to',\n TEXT_PAGE: 'Page',\n TEXT_REFRESH_DATASET: 'Refresh Dataset',\n TEXT_REMOVE_FILTER: 'Remove Filter',\n TEXT_REMOVE_SORT: 'Remove Sort',\n TEXT_SAVE: 'Save',\n TEXT_SELECT_ALL: 'Select All',\n TEXT_SYNCHRONOUS_RESIZE: 'Synchronous resize',\n TEXT_SORT_ASCENDING: 'Sort Ascending',\n TEXT_SORT_DESCENDING: 'Sort Descending',\n TEXT_STARTS_WITH: 'Starts With',\n TEXT_TOGGLE_DARK_MODE: 'Toggle Dark Mode',\n TEXT_TOGGLE_FILTER_ROW: 'Toggle Filter Row',\n TEXT_TOGGLE_PRE_HEADER_ROW: 'Toggle Pre-Header Row',\n TEXT_UNFREEZE_COLUMNS: 'Unfreeze Columns',\n TEXT_X_OF_Y_SELECTED: '# of % selected',\n TEXT_X_OF_Y_MASS_SELECTED: '{{x}} of {{y}} selected',\n };\n\n static readonly VALIDATION_REQUIRED_FIELD = 'Field is required';\n static readonly VALIDATION_EDITOR_VALID_NUMBER = 'Please enter a valid number';\n static readonly VALIDATION_EDITOR_VALID_INTEGER = 'Please enter a valid integer number';\n static readonly VALIDATION_EDITOR_INTEGER_BETWEEN = 'Please enter a valid integer number between {{minValue}} and {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MAX = 'Please enter a valid integer number that is lower than {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MAX_INCLUSIVE =\n 'Please enter a valid integer number that is lower than or equal to {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MIN = 'Please enter a valid integer number that is greater than {{minValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MIN_INCLUSIVE =\n 'Please enter a valid integer number that is greater than or equal to {{minValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_BETWEEN = 'Please enter a valid number between {{minValue}} and {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MAX = 'Please enter a valid number that is lower than {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MAX_INCLUSIVE = 'Please enter a valid number that is lower than or equal to {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MIN = 'Please enter a valid number that is greater than {{minValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MIN_INCLUSIVE = 'Please enter a valid number that is greater than or equal to {{minValue}}';\n static readonly VALIDATION_EDITOR_DECIMAL_BETWEEN = 'Please enter a valid number with a maximum of {{maxDecimal}} decimals';\n static readonly VALIDATION_EDITOR_TEXT_LENGTH_BETWEEN =\n 'Please make sure your text length is between {{minLength}} and {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH = 'Please make sure your text is less than {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH_INCLUSIVE =\n 'Please make sure your text is less than or equal to {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH = 'Please make sure your text is more than {{minLength}} character(s)';\n static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH_INCLUSIVE = 'Please make sure your text is at least {{minLength}} character(s)';\n}\n"]}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Locale } from '@slickgrid-universal/common';\n\nexport class Constants {\n // English Locale texts when using only 1 Locale instead of I18N\n static readonly locales: Locale = {\n TEXT_ALL_SELECTED: 'All Selected',\n TEXT_ALL_X_RECORDS_SELECTED: 'All {{x}} records selected',\n TEXT_APPLY_MASS_UPDATE: 'Apply Mass Update',\n TEXT_APPLY_TO_SELECTION: 'Update Selection',\n TEXT_CANCEL: 'Cancel',\n TEXT_CLEAR_ALL_FILTERS: 'Clear all Filters',\n TEXT_CLEAR_ALL_GROUPING: 'Clear all Grouping',\n TEXT_CLEAR_ALL_SORTING: 'Clear all Sorting',\n TEXT_CLEAR_PINNING: 'Unfreeze Columns/Rows',\n TEXT_CLONE: 'Clone',\n TEXT_COLLAPSE_ALL_GROUPS: 'Collapse all Groups',\n TEXT_CONTAINS: 'Contains',\n TEXT_COLUMNS: 'Columns',\n TEXT_COLUMN_RESIZE_BY_CONTENT: 'Resize by Content',\n TEXT_COMMANDS: 'Commands',\n TEXT_COPY: 'Copy',\n TEXT_EQUALS: 'Equals',\n TEXT_EQUAL_TO: 'Equal to',\n TEXT_ENDS_WITH: 'Ends With',\n TEXT_ERROR_EDITABLE_GRID_REQUIRED: 'Your grid must be editable in order to use the Composite Editor Modal.',\n TEXT_ERROR_ENABLE_CELL_NAVIGATION_REQUIRED:\n 'Composite Editor requires the flag \"enableCellNavigation\" to be set to True in your Grid Options.',\n TEXT_ERROR_NO_CHANGES_DETECTED: 'Sorry we could not detect any changes.',\n TEXT_ERROR_NO_EDITOR_FOUND: 'We could not find any Editor in your Column Definition.',\n TEXT_ERROR_NO_RECORD_FOUND: 'No records selected for edit or clone operation.',\n TEXT_ERROR_ROW_NOT_EDITABLE: 'Current row is not editable.',\n TEXT_ERROR_ROW_SELECTION_REQUIRED: 'You must select some rows before trying to apply new value(s).',\n TEXT_EXPAND_ALL_GROUPS: 'Expand all Groups',\n TEXT_EXPORT_TO_CSV: 'Export in CSV format',\n TEXT_EXPORT_TO_TEXT_FORMAT: 'Export in Text format (Tab delimited)',\n TEXT_EXPORT_TO_EXCEL: 'Export to Excel',\n TEXT_EXPORT_TO_PDF: 'Export to PDF',\n TEXT_EXPORT_TO_TAB_DELIMITED: 'Export in Text format (Tab delimited)',\n TEXT_FORCE_FIT_COLUMNS: 'Force fit columns',\n TEXT_FREEZE_COLUMNS: 'Freeze Columns',\n TEXT_GREATER_THAN: 'Greater than',\n TEXT_GREATER_THAN_OR_EQUAL_TO: 'Greater than or equal to',\n TEXT_GROUP_BY: 'Group By',\n TEXT_HIDE_COLUMN: 'Hide Column',\n TEXT_ITEMS: 'items',\n TEXT_ITEMS_PER_PAGE: 'items per page',\n TEXT_ITEMS_SELECTED: 'items selected',\n TEXT_OF: 'of',\n TEXT_OK: 'OK',\n TEXT_OPTIONS: 'Options',\n TEXT_LAST_UPDATE: 'Last Update',\n TEXT_LESS_THAN: 'Less than',\n TEXT_LESS_THAN_OR_EQUAL_TO: 'Less than or equal to',\n TEXT_LOADING: 'Loading...',\n TEXT_NO_ELEMENTS_FOUND: 'Aucun élément trouvé',\n TEXT_NOT_CONTAINS: 'Not contains',\n TEXT_NOT_EQUAL_TO: 'Not equal to',\n TEXT_PAGE: 'Page',\n TEXT_REFRESH_DATASET: 'Refresh Dataset',\n TEXT_REMOVE_FILTER: 'Remove Filter',\n TEXT_REMOVE_SORT: 'Remove Sort',\n TEXT_SAVE: 'Save',\n TEXT_SELECT_ALL: 'Select All',\n TEXT_SYNCHRONOUS_RESIZE: 'Synchronous resize',\n TEXT_SORT_ASCENDING: 'Sort Ascending',\n TEXT_SORT_DESCENDING: 'Sort Descending',\n TEXT_STARTS_WITH: 'Starts With',\n TEXT_TOGGLE_DARK_MODE: 'Toggle Dark Mode',\n TEXT_TOGGLE_FILTER_ROW: 'Toggle Filter Row',\n TEXT_TOGGLE_PRE_HEADER_ROW: 'Toggle Pre-Header Row',\n TEXT_UNFREEZE_COLUMNS: 'Unfreeze Columns',\n TEXT_X_OF_Y_SELECTED: '# of % selected',\n TEXT_X_OF_Y_MASS_SELECTED: '{{x}} of {{y}} selected',\n };\n\n static readonly VALIDATION_REQUIRED_FIELD = 'Field is required';\n static readonly VALIDATION_EDITOR_VALID_NUMBER = 'Please enter a valid number';\n static readonly VALIDATION_EDITOR_VALID_INTEGER = 'Please enter a valid integer number';\n static readonly VALIDATION_EDITOR_INTEGER_BETWEEN = 'Please enter a valid integer number between {{minValue}} and {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MAX = 'Please enter a valid integer number that is lower than {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MAX_INCLUSIVE =\n 'Please enter a valid integer number that is lower than or equal to {{maxValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MIN = 'Please enter a valid integer number that is greater than {{minValue}}';\n static readonly VALIDATION_EDITOR_INTEGER_MIN_INCLUSIVE =\n 'Please enter a valid integer number that is greater than or equal to {{minValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_BETWEEN = 'Please enter a valid number between {{minValue}} and {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MAX = 'Please enter a valid number that is lower than {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MAX_INCLUSIVE = 'Please enter a valid number that is lower than or equal to {{maxValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MIN = 'Please enter a valid number that is greater than {{minValue}}';\n static readonly VALIDATION_EDITOR_NUMBER_MIN_INCLUSIVE = 'Please enter a valid number that is greater than or equal to {{minValue}}';\n static readonly VALIDATION_EDITOR_DECIMAL_BETWEEN = 'Please enter a valid number with a maximum of {{maxDecimal}} decimals';\n static readonly VALIDATION_EDITOR_TEXT_LENGTH_BETWEEN =\n 'Please make sure your text length is between {{minLength}} and {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH = 'Please make sure your text is less than {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MAX_LENGTH_INCLUSIVE =\n 'Please make sure your text is less than or equal to {{maxLength}} characters';\n static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH = 'Please make sure your text is more than {{minLength}} character(s)';\n static readonly VALIDATION_EDITOR_TEXT_MIN_LENGTH_INCLUSIVE = 'Please make sure your text is at least {{minLength}} character(s)';\n}\n"]}
|
|
@@ -84,7 +84,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
|
|
|
84
84
|
// this also requires the Row Selection Model to be registered as well
|
|
85
85
|
if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {
|
|
86
86
|
const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;
|
|
87
|
-
rowSelectionPlugin = new SelectionModelClass(this.gridOptions.rowSelectionOptions
|
|
87
|
+
rowSelectionPlugin = new SelectionModelClass(this.gridOptions.selectionOptions ?? this.gridOptions.rowSelectionOptions ?? { selectActiveRow: true });
|
|
88
88
|
this._grid.setSelectionModel(rowSelectionPlugin);
|
|
89
89
|
}
|
|
90
90
|
// hook all events
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slickRowDetailView.js","sourceRoot":"","sources":["../../src/extensions/slickRowDetailView.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addToArrayWhenNotExists,\n createDomElement,\n SlickEventData,\n SlickHybridSelectionModel,\n SlickRowSelectionModel,\n unsubscribeAll,\n type EventSubscription,\n type OnBeforeRowDetailToggleArgs,\n type OnRowBackOrOutOfViewportRangeArgs,\n type SelectionModel,\n type SlickGrid,\n} from '@slickgrid-universal/common';\nimport { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';\nimport { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';\nimport type { Root } from 'react-dom/client';\nimport type { GridOption, RowDetailView, ViewModelBindableInputData } from '../models/index.js';\nimport { createReactComponentDynamically } from '../services/reactUtils.js';\n\nconst ROW_DETAIL_CONTAINER_PREFIX = 'container_';\nconst PRELOAD_CONTAINER_PREFIX = 'container_loading';\n\nexport interface CreatedView {\n id: string | number;\n dataContext: any;\n root: Root | null;\n rendered?: boolean;\n}\n// interface SRDV extends React.Component<Props, State>, UniversalSlickRowDetailView {}s\n\nexport class SlickRowDetailView extends UniversalSlickRowDetailView {\n protected _component?: any;\n protected _preloadComponent?: any;\n protected _preloadRoot?: Root;\n protected _views: CreatedView[] = [];\n protected _subscriptions: EventSubscription[] = [];\n protected _userProcessFn?: (item: any) => Promise<any>;\n protected gridContainerElement!: HTMLElement;\n _root?: Root;\n\n constructor(private readonly eventPubSubService: EventPubSubService) {\n super(eventPubSubService);\n }\n\n get addonOptions() {\n return this.getOptions();\n }\n\n protected get datasetIdPropName(): string {\n return this.gridOptions.datasetIdPropertyName || 'id';\n }\n\n get gridOptions(): GridOption {\n return (this._grid?.getOptions() || {}) as GridOption;\n }\n\n get rowDetailViewOptions(): RowDetailView | undefined {\n return this.gridOptions.rowDetailView;\n }\n\n /** Dispose of the RowDetailView Extension */\n dispose() {\n this.disposeAllViewComponents();\n unsubscribeAll(this._subscriptions);\n super.dispose();\n }\n\n /** Dispose of all the opened Row Detail Panels Components */\n disposeAllViewComponents() {\n do {\n const view = this._views.pop();\n if (view) {\n this.disposeViewByItem(view);\n }\n } while (this._views.length > 0);\n }\n\n /** Get the instance of the SlickGrid addon (control or plugin). */\n getAddonInstance(): SlickRowDetailView | null {\n return this;\n }\n\n init(grid: SlickGrid) {\n this._grid = grid;\n super.init(grid);\n this.gridContainerElement = grid.getContainerNode();\n this.register(grid.getSelectionModel());\n }\n\n /**\n * Create the plugin before the Grid creation, else it will behave oddly.\n * Mostly because the column definitions might change after the grid creation\n */\n register(rowSelectionPlugin?: SelectionModel) {\n if (typeof this.gridOptions.rowDetailView?.process === 'function') {\n // we need to keep the user \"process\" method and replace it with our own execution method\n // we do this because when we get the item detail, we need to call \"onAsyncResponse.notify\" for the plugin to work\n this._userProcessFn = this.gridOptions.rowDetailView.process as (item: any) => Promise<any>; // keep user's process method\n this.addonOptions.process = (item) => this.onProcessing(item); // replace process method & run our internal one\n } else {\n throw new Error('[Slickgrid-React] You need to provide a \"process\" function for the Row Detail Extension to work properly');\n }\n\n if (this._grid && this.gridOptions?.rowDetailView) {\n // load the Preload & RowDetail Templates (could be straight HTML or React Components)\n // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)\n if (!this.gridOptions.rowDetailView.preTemplate) {\n this._preloadComponent = this.gridOptions.rowDetailView.preloadComponent;\n this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });\n }\n if (!this.gridOptions.rowDetailView.postTemplate) {\n this._component = this.gridOptions.rowDetailView.viewComponent;\n this.addonOptions.postTemplate = (itemDetail: any) =>\n createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });\n }\n\n if (this._grid && this.gridOptions) {\n // this also requires the Row Selection Model to be registered as well\n if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {\n const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;\n rowSelectionPlugin = new SelectionModelClass(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });\n this._grid.setSelectionModel(rowSelectionPlugin);\n }\n\n // hook all events\n if (this._grid && this.rowDetailViewOptions) {\n if (this.rowDetailViewOptions.onExtensionRegistered) {\n this.rowDetailViewOptions.onExtensionRegistered(this);\n }\n\n this._eventHandler.subscribe(this.onAsyncResponse, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onAsyncResponse === 'function') {\n this.rowDetailViewOptions.onAsyncResponse(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onAsyncEndUpdate, async (event, args) => {\n // dispose preload if exists\n this._preloadRoot?.unmount();\n\n // triggers after backend called \"onAsyncResponse.notify()\"\n // because of the preload destroy above, we need a small delay to make sure the DOM element is ready to render the Row Detail\n queueMicrotask(() => {\n this.renderViewModel(args?.item);\n\n if (typeof this.rowDetailViewOptions?.onAsyncEndUpdate === 'function') {\n this.rowDetailViewOptions.onAsyncEndUpdate(event, args);\n }\n });\n });\n\n this._eventHandler.subscribe(this.onAfterRowDetailToggle, async (event, args) => {\n // display preload template & re-render all the other Detail Views after toggling\n // the preload View will eventually go away once the data gets loaded after the \"onAsyncEndUpdate\" event\n this.renderPreloadView(args.item);\n\n if (typeof this.rowDetailViewOptions?.onAfterRowDetailToggle === 'function') {\n this.rowDetailViewOptions.onAfterRowDetailToggle(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowDetailToggle, (event, args) => {\n // before toggling row detail, we need to create View Component if it doesn't exist\n this.handleOnBeforeRowDetailToggle(event, args);\n\n if (typeof this.rowDetailViewOptions?.onBeforeRowDetailToggle === 'function') {\n return this.rowDetailViewOptions.onBeforeRowDetailToggle(event, args);\n }\n return true;\n });\n\n this._eventHandler.subscribe(this.onRowBackToViewportRange, async (event, args) => {\n // when row is back to viewport range, we will re-render the View Component(s)\n this.handleOnRowBackToViewportRange(event, args);\n\n if (typeof this.rowDetailViewOptions?.onRowBackToViewportRange === 'function') {\n this.rowDetailViewOptions.onRowBackToViewportRange(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onBeforeRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onBeforeRowOutOfViewportRange(event, args);\n }\n this.disposeViewByItem(args.item);\n });\n\n this._eventHandler.subscribe(this.onRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onRowOutOfViewportRange(event, args);\n }\n });\n\n // --\n // hook some events needed by the Plugin itself\n\n // we need to redraw the open detail views if we change column position (column reorder)\n this.eventHandler.subscribe(this._grid.onColumnsReordered, () => this.redrawAllViewComponents(false));\n\n // on row selection changed, we also need to redraw\n if (this.gridOptions.enableRowSelection || this.gridOptions.enableHybridSelection || this.gridOptions.enableCheckboxSelector) {\n this._eventHandler.subscribe(this._grid.onSelectedRowsChanged, () => this.redrawAllViewComponents(false));\n }\n\n // on column sort/reorder, all row detail are collapsed so we can dispose of all the Views as well\n this._eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));\n\n // on filter changed, we need to re-render all Views\n this._subscriptions.push(\n this.eventPubSubService?.subscribe(\n [\n 'onFilterChanged',\n 'onGridMenuColumnsChanged',\n 'onColumnPickerColumnsChanged',\n 'onGridMenuClearAllFilters',\n 'onGridMenuClearAllSorting',\n ],\n () => this.redrawAllViewComponents(true)\n )\n );\n }\n }\n }\n\n return this;\n }\n\n /** Redraw (re-render) all the expanded row detail View Components */\n async redrawAllViewComponents(forceRedraw = false) {\n setTimeout(() => {\n this.resetRenderedRows();\n this._views.forEach((view) => {\n if (!view.rendered || forceRedraw) {\n forceRedraw && this.disposeViewComponent(view);\n this.redrawViewComponent(view);\n }\n });\n });\n }\n\n /** Render all the expanded row detail View Components */\n async renderAllViewModels() {\n this._views.filter((x) => x?.dataContext).forEach((x) => this.renderViewModel(x.dataContext));\n }\n\n /** Redraw the necessary View Component */\n redrawViewComponent(view: CreatedView) {\n const containerElement = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${view.id}`);\n if (containerElement) {\n this.renderViewModel(view.dataContext);\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderPreloadView(item: any) {\n const containerElement = this.gridContainerElement.querySelector(`.${PRELOAD_CONTAINER_PREFIX}`);\n if (this._preloadComponent && containerElement) {\n // render row detail\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n const detailContainer = document.createElement('section');\n containerElement.appendChild(detailContainer);\n\n const { root } = createReactComponentDynamically(this._preloadComponent, detailContainer, bindableData);\n this._preloadRoot = root;\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderViewModel(item: any) {\n const containerElement = this.gridContainerElement.querySelector<HTMLElement>(\n `.${ROW_DETAIL_CONTAINER_PREFIX}${item[this.datasetIdPropName]}`\n );\n if (this._component && containerElement) {\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n\n // load our Row Detail React Component dynamically, typically we would want to use `root.render()` after the preload component (last argument below)\n // BUT the root render doesn't seem to work and shows a blank element, so we'll use `createRoot()` every time even though it shows a console log in Dev\n // that is the only way I got it working so let's use it anyway and console warnings are removed in production anyway\n const viewObj = this._views.find((obj) => obj.id === item[this.datasetIdPropName]);\n const { root } = createReactComponentDynamically(this._component, containerElement, bindableData);\n if (viewObj) {\n viewObj.root = root;\n viewObj.rendered = true;\n } else {\n this.upsertViewRefs(item, root);\n }\n }\n }\n\n // --\n // protected functions\n // ------------------\n\n protected upsertViewRefs(item: any, root: Root | null) {\n const viewIdx = this._views.findIndex((obj) => obj.id === item[this.datasetIdPropName]);\n const viewInfo: CreatedView = {\n id: item[this.datasetIdPropName],\n dataContext: item,\n root,\n rendered: !!root,\n };\n if (viewIdx >= 0) {\n this._views[viewIdx] = viewInfo;\n } else {\n this._views.push(viewInfo);\n }\n addToArrayWhenNotExists(this._views, viewInfo, this.datasetIdPropName);\n }\n\n protected disposeViewByItem(item: any, removeFromArray = false): void {\n const foundViewIdx = this._views.findIndex((view: CreatedView) => view.id === item[this.datasetIdPropName]);\n if (foundViewIdx >= 0) {\n this.disposeViewComponent(this._views[foundViewIdx]);\n if (removeFromArray) {\n this._views.splice(foundViewIdx, 1);\n }\n }\n }\n\n protected disposeViewComponent(expandedView: CreatedView): CreatedView | void {\n expandedView.rendered = false;\n if (expandedView?.root) {\n const container = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${expandedView.id}`);\n if (container) {\n expandedView.root.unmount();\n container.textContent = '';\n return expandedView;\n }\n }\n }\n\n /**\n * Just before the row get expanded or collapsed we will do the following\n * First determine if the row is expanding or collapsing,\n * if it's expanding we will add it to our View Components reference array,\n * if we don't already have it or if it's collapsing we will remove it from our View Components reference array\n */\n protected handleOnBeforeRowDetailToggle(_e: SlickEventData<OnBeforeRowDetailToggleArgs>, args: { grid: SlickGrid; item: any }) {\n // expanding\n if (args?.item?.__collapsed) {\n // expanding row detail\n this.upsertViewRefs(args.item, null);\n } else {\n // collapsing, so dispose of the View\n this.disposeViewByItem(args.item, true);\n }\n }\n\n /** When Row comes back to Viewport Range, we need to redraw the View */\n protected async handleOnRowBackToViewportRange(\n _e: SlickEventData<OnRowBackOrOutOfViewportRangeArgs>,\n args: {\n item: any;\n rowId: string | number;\n rowIndex: number;\n expandedRows: (string | number)[];\n rowIdsOutOfViewport: (string | number)[];\n grid: SlickGrid;\n }\n ) {\n const viewModel = this._views.find((x) => x.id === args.rowId);\n if (viewModel && !viewModel.rendered) {\n this.redrawViewComponent(viewModel);\n }\n }\n\n /**\n * notify the onAsyncResponse with the \"args.item\" (required property)\n * the plugin will then use item to populate the row detail panel with the \"postTemplate\"\n * @param item\n */\n protected notifyTemplate(item: any) {\n this.onAsyncResponse.notify({ item }, new SlickEventData(), this);\n }\n\n /**\n * On Processing, we will notify the plugin with the new item detail once backend server call completes\n * @param item\n */\n protected async onProcessing(item: any) {\n if (item && typeof this._userProcessFn === 'function') {\n let awaitedItemDetail: any;\n const userProcessFn = this._userProcessFn(item);\n\n // wait for the \"userProcessFn\", once resolved we will save it into the \"collection\"\n const response: any | any[] = await userProcessFn;\n\n if (response.hasOwnProperty(this.datasetIdPropName)) {\n awaitedItemDetail = response; // from Promise\n } else if (response instanceof Response && typeof response['json'] === 'function') {\n awaitedItemDetail = await response['json'](); // from Fetch\n } else if (response && response['content']) {\n awaitedItemDetail = response['content']; // from http-client\n }\n\n if (!awaitedItemDetail || !awaitedItemDetail.hasOwnProperty(this.datasetIdPropName)) {\n throw new Error(\n '[Slickgrid-React] could not process the Row Detail, please make sure that your \"process\" callback ' +\n `returns an item object that has an \"${this.datasetIdPropName}\" property`\n );\n }\n\n // notify the plugin with the new item details\n this.notifyTemplate(awaitedItemDetail || {});\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"slickRowDetailView.js","sourceRoot":"","sources":["../../src/extensions/slickRowDetailView.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addToArrayWhenNotExists,\n createDomElement,\n SlickEventData,\n SlickHybridSelectionModel,\n SlickRowSelectionModel,\n unsubscribeAll,\n type EventSubscription,\n type OnBeforeRowDetailToggleArgs,\n type OnRowBackOrOutOfViewportRangeArgs,\n type SelectionModel,\n type SlickGrid,\n} from '@slickgrid-universal/common';\nimport { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';\nimport { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';\nimport type { Root } from 'react-dom/client';\nimport type { GridOption, RowDetailView, ViewModelBindableInputData } from '../models/index.js';\nimport { createReactComponentDynamically } from '../services/reactUtils.js';\n\nconst ROW_DETAIL_CONTAINER_PREFIX = 'container_';\nconst PRELOAD_CONTAINER_PREFIX = 'container_loading';\n\nexport interface CreatedView {\n id: string | number;\n dataContext: any;\n root: Root | null;\n rendered?: boolean;\n}\n// interface SRDV extends React.Component<Props, State>, UniversalSlickRowDetailView {}s\n\nexport class SlickRowDetailView extends UniversalSlickRowDetailView {\n protected _component?: any;\n protected _preloadComponent?: any;\n protected _preloadRoot?: Root;\n protected _views: CreatedView[] = [];\n protected _subscriptions: EventSubscription[] = [];\n protected _userProcessFn?: (item: any) => Promise<any>;\n protected gridContainerElement!: HTMLElement;\n _root?: Root;\n\n constructor(private readonly eventPubSubService: EventPubSubService) {\n super(eventPubSubService);\n }\n\n get addonOptions() {\n return this.getOptions();\n }\n\n protected get datasetIdPropName(): string {\n return this.gridOptions.datasetIdPropertyName || 'id';\n }\n\n get gridOptions(): GridOption {\n return (this._grid?.getOptions() || {}) as GridOption;\n }\n\n get rowDetailViewOptions(): RowDetailView | undefined {\n return this.gridOptions.rowDetailView;\n }\n\n /** Dispose of the RowDetailView Extension */\n dispose() {\n this.disposeAllViewComponents();\n unsubscribeAll(this._subscriptions);\n super.dispose();\n }\n\n /** Dispose of all the opened Row Detail Panels Components */\n disposeAllViewComponents() {\n do {\n const view = this._views.pop();\n if (view) {\n this.disposeViewByItem(view);\n }\n } while (this._views.length > 0);\n }\n\n /** Get the instance of the SlickGrid addon (control or plugin). */\n getAddonInstance(): SlickRowDetailView | null {\n return this;\n }\n\n init(grid: SlickGrid) {\n this._grid = grid;\n super.init(grid);\n this.gridContainerElement = grid.getContainerNode();\n this.register(grid.getSelectionModel());\n }\n\n /**\n * Create the plugin before the Grid creation, else it will behave oddly.\n * Mostly because the column definitions might change after the grid creation\n */\n register(rowSelectionPlugin?: SelectionModel) {\n if (typeof this.gridOptions.rowDetailView?.process === 'function') {\n // we need to keep the user \"process\" method and replace it with our own execution method\n // we do this because when we get the item detail, we need to call \"onAsyncResponse.notify\" for the plugin to work\n this._userProcessFn = this.gridOptions.rowDetailView.process as (item: any) => Promise<any>; // keep user's process method\n this.addonOptions.process = (item) => this.onProcessing(item); // replace process method & run our internal one\n } else {\n throw new Error('[Slickgrid-React] You need to provide a \"process\" function for the Row Detail Extension to work properly');\n }\n\n if (this._grid && this.gridOptions?.rowDetailView) {\n // load the Preload & RowDetail Templates (could be straight HTML or React Components)\n // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)\n if (!this.gridOptions.rowDetailView.preTemplate) {\n this._preloadComponent = this.gridOptions.rowDetailView.preloadComponent;\n this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });\n }\n if (!this.gridOptions.rowDetailView.postTemplate) {\n this._component = this.gridOptions.rowDetailView.viewComponent;\n this.addonOptions.postTemplate = (itemDetail: any) =>\n createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });\n }\n\n if (this._grid && this.gridOptions) {\n // this also requires the Row Selection Model to be registered as well\n if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {\n const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;\n rowSelectionPlugin = new SelectionModelClass(\n this.gridOptions.selectionOptions ?? this.gridOptions.rowSelectionOptions ?? { selectActiveRow: true }\n );\n this._grid.setSelectionModel(rowSelectionPlugin);\n }\n\n // hook all events\n if (this._grid && this.rowDetailViewOptions) {\n if (this.rowDetailViewOptions.onExtensionRegistered) {\n this.rowDetailViewOptions.onExtensionRegistered(this);\n }\n\n this._eventHandler.subscribe(this.onAsyncResponse, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onAsyncResponse === 'function') {\n this.rowDetailViewOptions.onAsyncResponse(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onAsyncEndUpdate, async (event, args) => {\n // dispose preload if exists\n this._preloadRoot?.unmount();\n\n // triggers after backend called \"onAsyncResponse.notify()\"\n // because of the preload destroy above, we need a small delay to make sure the DOM element is ready to render the Row Detail\n queueMicrotask(() => {\n this.renderViewModel(args?.item);\n\n if (typeof this.rowDetailViewOptions?.onAsyncEndUpdate === 'function') {\n this.rowDetailViewOptions.onAsyncEndUpdate(event, args);\n }\n });\n });\n\n this._eventHandler.subscribe(this.onAfterRowDetailToggle, async (event, args) => {\n // display preload template & re-render all the other Detail Views after toggling\n // the preload View will eventually go away once the data gets loaded after the \"onAsyncEndUpdate\" event\n this.renderPreloadView(args.item);\n\n if (typeof this.rowDetailViewOptions?.onAfterRowDetailToggle === 'function') {\n this.rowDetailViewOptions.onAfterRowDetailToggle(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowDetailToggle, (event, args) => {\n // before toggling row detail, we need to create View Component if it doesn't exist\n this.handleOnBeforeRowDetailToggle(event, args);\n\n if (typeof this.rowDetailViewOptions?.onBeforeRowDetailToggle === 'function') {\n return this.rowDetailViewOptions.onBeforeRowDetailToggle(event, args);\n }\n return true;\n });\n\n this._eventHandler.subscribe(this.onRowBackToViewportRange, async (event, args) => {\n // when row is back to viewport range, we will re-render the View Component(s)\n this.handleOnRowBackToViewportRange(event, args);\n\n if (typeof this.rowDetailViewOptions?.onRowBackToViewportRange === 'function') {\n this.rowDetailViewOptions.onRowBackToViewportRange(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onBeforeRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onBeforeRowOutOfViewportRange(event, args);\n }\n this.disposeViewByItem(args.item);\n });\n\n this._eventHandler.subscribe(this.onRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onRowOutOfViewportRange(event, args);\n }\n });\n\n // --\n // hook some events needed by the Plugin itself\n\n // we need to redraw the open detail views if we change column position (column reorder)\n this.eventHandler.subscribe(this._grid.onColumnsReordered, () => this.redrawAllViewComponents(false));\n\n // on row selection changed, we also need to redraw\n if (this.gridOptions.enableRowSelection || this.gridOptions.enableHybridSelection || this.gridOptions.enableCheckboxSelector) {\n this._eventHandler.subscribe(this._grid.onSelectedRowsChanged, () => this.redrawAllViewComponents(false));\n }\n\n // on column sort/reorder, all row detail are collapsed so we can dispose of all the Views as well\n this._eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));\n\n // on filter changed, we need to re-render all Views\n this._subscriptions.push(\n this.eventPubSubService?.subscribe(\n [\n 'onFilterChanged',\n 'onGridMenuColumnsChanged',\n 'onColumnPickerColumnsChanged',\n 'onGridMenuClearAllFilters',\n 'onGridMenuClearAllSorting',\n ],\n () => this.redrawAllViewComponents(true)\n )\n );\n }\n }\n }\n\n return this;\n }\n\n /** Redraw (re-render) all the expanded row detail View Components */\n async redrawAllViewComponents(forceRedraw = false) {\n setTimeout(() => {\n this.resetRenderedRows();\n this._views.forEach((view) => {\n if (!view.rendered || forceRedraw) {\n forceRedraw && this.disposeViewComponent(view);\n this.redrawViewComponent(view);\n }\n });\n });\n }\n\n /** Render all the expanded row detail View Components */\n async renderAllViewModels() {\n this._views.filter((x) => x?.dataContext).forEach((x) => this.renderViewModel(x.dataContext));\n }\n\n /** Redraw the necessary View Component */\n redrawViewComponent(view: CreatedView) {\n const containerElement = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${view.id}`);\n if (containerElement) {\n this.renderViewModel(view.dataContext);\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderPreloadView(item: any) {\n const containerElement = this.gridContainerElement.querySelector(`.${PRELOAD_CONTAINER_PREFIX}`);\n if (this._preloadComponent && containerElement) {\n // render row detail\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n const detailContainer = document.createElement('section');\n containerElement.appendChild(detailContainer);\n\n const { root } = createReactComponentDynamically(this._preloadComponent, detailContainer, bindableData);\n this._preloadRoot = root;\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderViewModel(item: any) {\n const containerElement = this.gridContainerElement.querySelector<HTMLElement>(\n `.${ROW_DETAIL_CONTAINER_PREFIX}${item[this.datasetIdPropName]}`\n );\n if (this._component && containerElement) {\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n\n // load our Row Detail React Component dynamically, typically we would want to use `root.render()` after the preload component (last argument below)\n // BUT the root render doesn't seem to work and shows a blank element, so we'll use `createRoot()` every time even though it shows a console log in Dev\n // that is the only way I got it working so let's use it anyway and console warnings are removed in production anyway\n const viewObj = this._views.find((obj) => obj.id === item[this.datasetIdPropName]);\n const { root } = createReactComponentDynamically(this._component, containerElement, bindableData);\n if (viewObj) {\n viewObj.root = root;\n viewObj.rendered = true;\n } else {\n this.upsertViewRefs(item, root);\n }\n }\n }\n\n // --\n // protected functions\n // ------------------\n\n protected upsertViewRefs(item: any, root: Root | null) {\n const viewIdx = this._views.findIndex((obj) => obj.id === item[this.datasetIdPropName]);\n const viewInfo: CreatedView = {\n id: item[this.datasetIdPropName],\n dataContext: item,\n root,\n rendered: !!root,\n };\n if (viewIdx >= 0) {\n this._views[viewIdx] = viewInfo;\n } else {\n this._views.push(viewInfo);\n }\n addToArrayWhenNotExists(this._views, viewInfo, this.datasetIdPropName);\n }\n\n protected disposeViewByItem(item: any, removeFromArray = false): void {\n const foundViewIdx = this._views.findIndex((view: CreatedView) => view.id === item[this.datasetIdPropName]);\n if (foundViewIdx >= 0) {\n this.disposeViewComponent(this._views[foundViewIdx]);\n if (removeFromArray) {\n this._views.splice(foundViewIdx, 1);\n }\n }\n }\n\n protected disposeViewComponent(expandedView: CreatedView): CreatedView | void {\n expandedView.rendered = false;\n if (expandedView?.root) {\n const container = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${expandedView.id}`);\n if (container) {\n expandedView.root.unmount();\n container.textContent = '';\n return expandedView;\n }\n }\n }\n\n /**\n * Just before the row get expanded or collapsed we will do the following\n * First determine if the row is expanding or collapsing,\n * if it's expanding we will add it to our View Components reference array,\n * if we don't already have it or if it's collapsing we will remove it from our View Components reference array\n */\n protected handleOnBeforeRowDetailToggle(_e: SlickEventData<OnBeforeRowDetailToggleArgs>, args: { grid: SlickGrid; item: any }) {\n // expanding\n if (args?.item?.__collapsed) {\n // expanding row detail\n this.upsertViewRefs(args.item, null);\n } else {\n // collapsing, so dispose of the View\n this.disposeViewByItem(args.item, true);\n }\n }\n\n /** When Row comes back to Viewport Range, we need to redraw the View */\n protected async handleOnRowBackToViewportRange(\n _e: SlickEventData<OnRowBackOrOutOfViewportRangeArgs>,\n args: {\n item: any;\n rowId: string | number;\n rowIndex: number;\n expandedRows: (string | number)[];\n rowIdsOutOfViewport: (string | number)[];\n grid: SlickGrid;\n }\n ) {\n const viewModel = this._views.find((x) => x.id === args.rowId);\n if (viewModel && !viewModel.rendered) {\n this.redrawViewComponent(viewModel);\n }\n }\n\n /**\n * notify the onAsyncResponse with the \"args.item\" (required property)\n * the plugin will then use item to populate the row detail panel with the \"postTemplate\"\n * @param item\n */\n protected notifyTemplate(item: any) {\n this.onAsyncResponse.notify({ item }, new SlickEventData(), this);\n }\n\n /**\n * On Processing, we will notify the plugin with the new item detail once backend server call completes\n * @param item\n */\n protected async onProcessing(item: any) {\n if (item && typeof this._userProcessFn === 'function') {\n let awaitedItemDetail: any;\n const userProcessFn = this._userProcessFn(item);\n\n // wait for the \"userProcessFn\", once resolved we will save it into the \"collection\"\n const response: any | any[] = await userProcessFn;\n\n if (response.hasOwnProperty(this.datasetIdPropName)) {\n awaitedItemDetail = response; // from Promise\n } else if (response instanceof Response && typeof response['json'] === 'function') {\n awaitedItemDetail = await response['json'](); // from Fetch\n } else if (response && response['content']) {\n awaitedItemDetail = response['content']; // from http-client\n }\n\n if (!awaitedItemDetail || !awaitedItemDetail.hasOwnProperty(this.datasetIdPropName)) {\n throw new Error(\n '[Slickgrid-React] could not process the Row Detail, please make sure that your \"process\" callback ' +\n `returns an item object that has an \"${this.datasetIdPropName}\" property`\n );\n }\n\n // notify the plugin with the new item details\n this.notifyTemplate(awaitedItemDetail || {});\n }\n }\n}\n"]}
|
|
@@ -61,6 +61,7 @@ export const GlobalGridOptions = {
|
|
|
61
61
|
hideExpandAllGroups: false,
|
|
62
62
|
hideExportCsvCommand: false,
|
|
63
63
|
hideExportExcelCommand: false,
|
|
64
|
+
hideExportPdfCommand: false,
|
|
64
65
|
hideExportTextDelimitedCommand: true,
|
|
65
66
|
hideMenuOnScroll: true,
|
|
66
67
|
hideOptionSection: false,
|
|
@@ -147,6 +148,23 @@ export const GlobalGridOptions = {
|
|
|
147
148
|
groupingAggregatorRowText: '',
|
|
148
149
|
sanitizeDataExport: false,
|
|
149
150
|
},
|
|
151
|
+
pdfExportOptions: {
|
|
152
|
+
addGroupIndentation: true,
|
|
153
|
+
exportWithFormatter: false,
|
|
154
|
+
filename: 'export',
|
|
155
|
+
pageOrientation: 'portrait',
|
|
156
|
+
pageSize: 'a4',
|
|
157
|
+
fontSize: 10,
|
|
158
|
+
headerFontSize: 11,
|
|
159
|
+
includeColumnHeaders: true,
|
|
160
|
+
htmlDecode: true,
|
|
161
|
+
sanitizeDataExport: false,
|
|
162
|
+
groupingColumnHeaderTitle: 'Group By',
|
|
163
|
+
groupCollapsedSymbol: '+',
|
|
164
|
+
groupExpandedSymbol: '-',
|
|
165
|
+
groupingAggregatorRowText: '',
|
|
166
|
+
repeatHeadersOnEachPage: true,
|
|
167
|
+
},
|
|
150
168
|
textExportOptions: {
|
|
151
169
|
delimiter: DelimiterType.comma,
|
|
152
170
|
exportWithFormatter: false,
|
|
@@ -166,6 +184,7 @@ export const GlobalGridOptions = {
|
|
|
166
184
|
clearFrozenColumnsCommandKey: 'CLEAR_PINNING',
|
|
167
185
|
exportCsvCommandKey: 'EXPORT_TO_CSV',
|
|
168
186
|
exportExcelCommandKey: 'EXPORT_TO_EXCEL',
|
|
187
|
+
exportPdfCommandKey: 'EXPORT_TO_PDF',
|
|
169
188
|
exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',
|
|
170
189
|
refreshDatasetCommandKey: 'REFRESH_DATASET',
|
|
171
190
|
toggleDarkModeCommandKey: 'TOGGLE_DARK_MODE',
|
|
@@ -177,6 +196,7 @@ export const GlobalGridOptions = {
|
|
|
177
196
|
hideClearFrozenColumnsCommand: true, // opt-in command
|
|
178
197
|
hideExportCsvCommand: false,
|
|
179
198
|
hideExportExcelCommand: false,
|
|
199
|
+
hideExportPdfCommand: false,
|
|
180
200
|
hideExportTextDelimitedCommand: true,
|
|
181
201
|
hideForceFitButton: false,
|
|
182
202
|
hideRefreshDatasetCommand: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-grid-options.js","sourceRoot":"","sources":["../src/global-grid-options.ts"],"names":[],"mappings":"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","sourcesContent":["import { DelimiterType, EventNamingStyle, Filters, type Column, type TreeDataOption } from '@slickgrid-universal/common';\nimport type { GridOption, RowDetailView } from './models/index.js';\n\n/**\n * Default Options that can be passed to the Slickgrid-React\n */\nexport const GlobalGridOptions: Partial<GridOption> = {\n alwaysShowVerticalScroll: true,\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n applyResizeToContainer: true,\n autoHeight: true,\n autoHeightRecalcRow: 100,\n calculateAvailableSizeBy: 'window',\n bottomPadding: 20,\n minHeight: 250,\n minWidth: 300,\n rightPadding: 0,\n },\n cellHighlightCssClass: 'slick-cell-modified',\n checkboxSelector: {\n cssClass: 'slick-cell-checkboxsel',\n width: 40,\n },\n cellMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideCommandSection: false,\n hideOptionSection: false,\n },\n columnGroupSeparator: ' - ',\n columnPicker: {\n hideForceFitButton: false,\n hideSyncResizeButton: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n compositeEditorOptions: {\n labels: {\n cancelButtonKey: 'CANCEL',\n cloneButtonKey: 'CLONE',\n resetEditorButtonTooltipKey: 'RESET_INPUT_VALUE',\n resetFormButtonKey: 'RESET_FORM',\n massSelectionButtonKey: 'APPLY_TO_SELECTION',\n massSelectionStatusKey: 'X_OF_Y_MASS_SELECTED',\n massUpdateButtonKey: 'APPLY_MASS_UPDATE',\n massUpdateStatusKey: 'ALL_X_RECORDS_SELECTED',\n saveButtonKey: 'SAVE',\n },\n resetEditorButtonCssClass: 'mdi mdi-refresh font-15px',\n resetFormButtonIconCssClass: 'mdi mdi-refresh font-16px mdi-flip-h',\n },\n contextMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideClearAllGrouping: false,\n hideCollapseAllGroups: false,\n hideCommandSection: false,\n hideCopyCellValueCommand: false,\n hideExpandAllGroups: false,\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportTextDelimitedCommand: true,\n hideMenuOnScroll: true,\n hideOptionSection: false,\n iconCollapseAllGroupsCommand: 'mdi mdi-arrow-collapse',\n iconExpandAllGroupsCommand: 'mdi mdi-arrow-expand',\n iconClearGroupingCommand: 'mdi mdi-close',\n iconCopyCellValueCommand: 'mdi mdi-content-copy',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline text-success',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n },\n customFooterOptions: {\n dateFormat: 'YYYY-MM-DD, hh:mm a',\n hideRowSelectionCount: false,\n hideTotalItemCount: false,\n hideLastUpdateTimestamp: true,\n footerHeight: 25,\n leftContainerClass: 'col-xs-12 col-sm-5',\n rightContainerClass: 'col-xs-6 col-sm-7',\n metricSeparator: '|',\n metricTexts: {\n items: 'items',\n itemsKey: 'ITEMS',\n of: 'of',\n ofKey: 'OF',\n itemsSelected: 'items selected',\n itemsSelectedKey: 'ITEMS_SELECTED',\n },\n },\n dataView: {\n // when enabled, this will preserve the row selection even after filtering/sorting/grouping\n syncGridSelection: {\n preserveHidden: false,\n preserveHiddenOnSelectionChange: true,\n },\n syncGridSelectionWithBackendService: false, // but disable it when using backend services\n },\n datasetIdPropertyName: 'id',\n defaultFilter: Filters.input,\n defaultBackendServiceFilterTypingDebounce: 500,\n defaultColumnSortFieldId: 'id',\n defaultFilterPlaceholder: '🔎︎', // magnifying glass icon\n defaultFilterRangeOperator: 'RangeInclusive',\n editable: false,\n editorTypingDebounce: 450,\n filterTypingDebounce: 0,\n enableEmptyDataWarningMessage: true,\n enableFilterTrimWhiteSpace: false, // do we want to trim white spaces on all Filters?\n emptyDataWarning: {\n className: 'slick-empty-data-warning',\n message: 'No data to display.',\n messageKey: 'EMPTY_DATA_WARNING_MESSAGE',\n hideFrozenLeftWarning: false,\n hideFrozenRightWarning: false,\n leftViewportMarginLeft: '40%',\n rightViewportMarginLeft: '40%',\n frozenLeftViewportMarginLeft: '0px',\n frozenRightViewportMarginLeft: '40%',\n },\n enableAutoResize: true,\n enableAutoSizeColumns: true,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableColumnResizeOnDoubleClick: true,\n enableContextMenu: true,\n enableExcelExport: false,\n enableTextExport: false,\n enableGridMenu: true,\n enableHeaderMenu: true,\n enableMouseHoverHighlightRow: true,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n eventNamingStyle: EventNamingStyle.camelCase,\n explicitInitialization: true,\n excelExportOptions: {\n addGroupIndentation: true,\n exportWithFormatter: false,\n filename: 'export',\n format: 'xlsx',\n groupingColumnHeaderTitle: 'Group By',\n groupCollapsedSymbol: '⮞',\n groupExpandedSymbol: '⮟',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n },\n textExportOptions: {\n delimiter: DelimiterType.comma,\n exportWithFormatter: false,\n filename: 'export',\n format: 'csv',\n groupingColumnHeaderTitle: 'Group By',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n useUtf8WithBom: true,\n },\n forceFitColumns: false,\n frozenHeaderWidthCalcDifferential: 1,\n gridMenu: {\n commandLabels: {\n clearAllFiltersCommandKey: 'CLEAR_ALL_FILTERS',\n clearAllSortingCommandKey: 'CLEAR_ALL_SORTING',\n clearFrozenColumnsCommandKey: 'CLEAR_PINNING',\n exportCsvCommandKey: 'EXPORT_TO_CSV',\n exportExcelCommandKey: 'EXPORT_TO_EXCEL',\n exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',\n refreshDatasetCommandKey: 'REFRESH_DATASET',\n toggleDarkModeCommandKey: 'TOGGLE_DARK_MODE',\n toggleFilterCommandKey: 'TOGGLE_FILTER_ROW',\n togglePreHeaderCommandKey: 'TOGGLE_PRE_HEADER_ROW',\n },\n hideClearAllFiltersCommand: false,\n hideClearAllSortingCommand: false,\n hideClearFrozenColumnsCommand: true, // opt-in command\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportTextDelimitedCommand: true,\n hideForceFitButton: false,\n hideRefreshDatasetCommand: false,\n hideSyncResizeButton: true,\n hideToggleDarkModeCommand: true,\n hideToggleFilterCommand: false,\n hideTogglePreHeaderCommand: false,\n iconCssClass: 'mdi mdi-menu',\n iconClearAllFiltersCommand: 'mdi mdi-filter-remove-outline',\n iconClearAllSortingCommand: 'mdi mdi-sort-variant-off',\n iconClearFrozenColumnsCommand: 'mdi mdi-close',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n iconRefreshDatasetCommand: 'mdi mdi-sync',\n iconToggleDarkModeCommand: 'mdi mdi-brightness-4 mdi mdi-brightness-4',\n iconToggleFilterCommand: 'mdi mdi-flip-vertical',\n iconTogglePreHeaderCommand: 'mdi mdi-flip-vertical',\n menuWidth: 16,\n resizeOnShowHeaderRow: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n headerMenu: {\n autoAlign: true,\n autoAlignOffset: 12,\n minWidth: 140,\n iconClearFilterCommand: 'mdi mdi-filter-remove-outline',\n iconClearSortCommand: 'mdi mdi-sort-variant-off',\n iconFreezeColumns: 'mdi mdi-pin-outline',\n iconUnfreezeColumns: 'mdi mdi-pin-off-outline',\n iconSortAscCommand: 'mdi mdi-sort-ascending',\n iconSortDescCommand: 'mdi mdi-sort-descending',\n iconColumnHideCommand: 'mdi mdi-close',\n iconColumnResizeByContentCommand: 'mdi mdi-arrow-expand-horizontal',\n hideColumnResizeByContentCommand: false,\n hideColumnHideCommand: false,\n hideClearFilterCommand: false,\n hideClearSortCommand: false,\n hideFreezeColumnsCommand: true, // opt-in command\n hideSortCommands: false,\n },\n multiColumnSort: true,\n numberedMultiColumnSort: true,\n tristateMultiColumnSort: false,\n sortColNumberInSeparateSpan: true,\n suppressActiveCellChangeOnEdit: false,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0,\n },\n rowDetailView: {\n collapseAllOnSort: true,\n cssClass: 'detail-view-toggle',\n panelRows: 1,\n keyPrefix: '__',\n useRowClick: false,\n saveDetailViewOnScroll: false,\n } as RowDetailView,\n headerRowHeight: 35,\n rowHeight: 35,\n topPanelHeight: 30,\n preHeaderPanelWidth: '100%', // mostly useful for Draggable Grouping dropzone to take full width\n translationNamespaceSeparator: ':',\n resetFilterSearchValueAfterOnBeforeCancellation: true,\n resizeByContentOnlyOnFirstLoad: true,\n resizeByContentOptions: {\n alwaysRecalculateColumnWidth: false,\n cellPaddingWidthInPx: 14,\n defaultRatioForStringType: 0.88,\n formatterPaddingWidthInPx: 0,\n maxItemToInspectCellContentWidth: 1000,\n maxItemToInspectSingleColumnWidthByContent: 5000,\n widthToRemoveFromExceededWidthReadjustment: 50,\n },\n rowTopOffsetRenderType: 'transform',\n treeDataOptions: {\n exportIndentMarginLeft: 5,\n exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',\n } as unknown as TreeDataOption,\n};\n\n/**\n * Value Extractor for both ColumnPicker & GridMenu Picker\n * when using Column Header Grouping, we'll prefix the column group title\n * else we'll simply return the column name title\n */\nfunction pickerHeaderColumnValueExtractor(column: Column, gridOptions?: GridOption) {\n let colName = column?.columnPickerLabel ?? column?.name ?? '';\n if (colName instanceof HTMLElement || colName instanceof DocumentFragment) {\n colName = colName.textContent || '';\n }\n const headerGroup = column?.columnGroup || '';\n const columnGroupSeparator = gridOptions?.columnGroupSeparator ?? ' - ';\n if (headerGroup) {\n return headerGroup + columnGroupSeparator + colName;\n }\n return colName;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"global-grid-options.js","sourceRoot":"","sources":["../src/global-grid-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAoC,MAAM,6BAA6B,CAAC;AAGzH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,wBAAwB,EAAE,IAAI;IAC9B,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,KAAK;IACzB,yBAAyB,EAAE,IAAI;IAC/B,UAAU,EAAE;QACV,sBAAsB,EAAE,IAAI;QAC5B,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,GAAG;QACxB,wBAAwB,EAAE,QAAQ;QAClC,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,GAAG;QACb,YAAY,EAAE,CAAC;KAChB;IACD,qBAAqB,EAAE,qBAAqB;IAC5C,gBAAgB,EAAE;QAChB,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,EAAE;KACV;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,KAAK;QACzB,iBAAiB,EAAE,KAAK;KACzB;IACD,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE;QACZ,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,IAAI;QAC1B,0BAA0B,EAAE,gCAAgC;KAC7D;IACD,sBAAsB,EAAE;QACtB,MAAM,EAAE;YACN,eAAe,EAAE,QAAQ;YACzB,cAAc,EAAE,OAAO;YACvB,2BAA2B,EAAE,mBAAmB;YAChD,kBAAkB,EAAE,YAAY;YAChC,sBAAsB,EAAE,oBAAoB;YAC5C,sBAAsB,EAAE,sBAAsB;YAC9C,mBAAmB,EAAE,mBAAmB;YACxC,mBAAmB,EAAE,wBAAwB;YAC7C,aAAa,EAAE,MAAM;SACtB;QACD,yBAAyB,EAAE,2BAA2B;QACtD,2BAA2B,EAAE,sCAAsC;KACpE;IACD,WAAW,EAAE;QACX,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,KAAK;QAC3B,qBAAqB,EAAE,KAAK;QAC5B,kBAAkB,EAAE,KAAK;QACzB,wBAAwB,EAAE,KAAK;QAC/B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,sBAAsB,EAAE,KAAK;QAC7B,oBAAoB,EAAE,KAAK;QAC3B,8BAA8B,EAAE,IAAI;QACpC,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,KAAK;QACxB,4BAA4B,EAAE,wBAAwB;QACtD,0BAA0B,EAAE,sBAAsB;QAClD,wBAAwB,EAAE,eAAe;QACzC,wBAAwB,EAAE,sBAAsB;QAChD,oBAAoB,EAAE,kBAAkB;QACxC,sBAAsB,EAAE,yCAAyC;QACjE,8BAA8B,EAAE,kBAAkB;KACnD;IACD,mBAAmB,EAAE;QACnB,UAAU,EAAE,qBAAqB;QACjC,qBAAqB,EAAE,KAAK;QAC5B,kBAAkB,EAAE,KAAK;QACzB,uBAAuB,EAAE,IAAI;QAC7B,YAAY,EAAE,EAAE;QAChB,kBAAkB,EAAE,oBAAoB;QACxC,mBAAmB,EAAE,mBAAmB;QACxC,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE;YACX,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,aAAa,EAAE,gBAAgB;YAC/B,gBAAgB,EAAE,gBAAgB;SACnC;KACF;IACD,QAAQ,EAAE;QACR,2FAA2F;QAC3F,iBAAiB,EAAE;YACjB,cAAc,EAAE,KAAK;YACrB,+BAA+B,EAAE,IAAI;SACtC;QACD,mCAAmC,EAAE,KAAK,EAAE,6CAA6C;KAC1F;IACD,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,OAAO,CAAC,KAAK;IAC5B,yCAAyC,EAAE,GAAG;IAC9C,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,KAAK,EAAE,wBAAwB;IACzD,0BAA0B,EAAE,gBAAgB;IAC5C,QAAQ,EAAE,KAAK;IACf,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,CAAC;IACvB,6BAA6B,EAAE,IAAI;IACnC,0BAA0B,EAAE,KAAK,EAAE,kDAAkD;IACrF,gBAAgB,EAAE;QAChB,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,4BAA4B;QACxC,qBAAqB,EAAE,KAAK;QAC5B,sBAAsB,EAAE,KAAK;QAC7B,sBAAsB,EAAE,KAAK;QAC7B,uBAAuB,EAAE,KAAK;QAC9B,4BAA4B,EAAE,KAAK;QACnC,6BAA6B,EAAE,KAAK;KACrC;IACD,gBAAgB,EAAE,IAAI;IACtB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,+BAA+B,EAAE,IAAI;IACrC,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,4BAA4B,EAAE,IAAI;IAClC,aAAa,EAAE,IAAI;IACnB,0BAA0B,EAAE,IAAI;IAChC,gBAAgB,EAAE,gBAAgB,CAAC,SAAS;IAC5C,sBAAsB,EAAE,IAAI;IAC5B,kBAAkB,EAAE;QAClB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,yBAAyB,EAAE,UAAU;QACrC,oBAAoB,EAAE,GAAG;QACzB,mBAAmB,EAAE,GAAG;QACxB,yBAAyB,EAAE,EAAE;QAC7B,kBAAkB,EAAE,KAAK;KAC1B;IACD,gBAAgB,EAAE;QAChB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE,UAAU;QAC3B,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,EAAE;QAClB,oBAAoB,EAAE,IAAI;QAC1B,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,KAAK;QACzB,yBAAyB,EAAE,UAAU;QACrC,oBAAoB,EAAE,GAAG;QACzB,mBAAmB,EAAE,GAAG;QACxB,yBAAyB,EAAE,EAAE;QAC7B,uBAAuB,EAAE,IAAI;KAC9B;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,aAAa,CAAC,KAAK;QAC9B,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,yBAAyB,EAAE,UAAU;QACrC,yBAAyB,EAAE,EAAE;QAC7B,kBAAkB,EAAE,KAAK;QACzB,cAAc,EAAE,IAAI;KACrB;IACD,eAAe,EAAE,KAAK;IACtB,iCAAiC,EAAE,CAAC;IACpC,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,yBAAyB,EAAE,mBAAmB;YAC9C,yBAAyB,EAAE,mBAAmB;YAC9C,4BAA4B,EAAE,eAAe;YAC7C,mBAAmB,EAAE,eAAe;YACpC,qBAAqB,EAAE,iBAAiB;YACxC,mBAAmB,EAAE,eAAe;YACpC,6BAA6B,EAAE,yBAAyB;YACxD,wBAAwB,EAAE,iBAAiB;YAC3C,wBAAwB,EAAE,kBAAkB;YAC5C,sBAAsB,EAAE,mBAAmB;YAC3C,yBAAyB,EAAE,uBAAuB;SACnD;QACD,0BAA0B,EAAE,KAAK;QACjC,0BAA0B,EAAE,KAAK;QACjC,6BAA6B,EAAE,IAAI,EAAE,iBAAiB;QACtD,oBAAoB,EAAE,KAAK;QAC3B,sBAAsB,EAAE,KAAK;QAC7B,oBAAoB,EAAE,KAAK;QAC3B,8BAA8B,EAAE,IAAI;QACpC,kBAAkB,EAAE,KAAK;QACzB,yBAAyB,EAAE,KAAK;QAChC,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,IAAI;QAC/B,uBAAuB,EAAE,KAAK;QAC9B,0BAA0B,EAAE,KAAK;QACjC,YAAY,EAAE,cAAc;QAC5B,0BAA0B,EAAE,+BAA+B;QAC3D,0BAA0B,EAAE,0BAA0B;QACtD,6BAA6B,EAAE,eAAe;QAC9C,oBAAoB,EAAE,kBAAkB;QACxC,sBAAsB,EAAE,4BAA4B;QACpD,8BAA8B,EAAE,kBAAkB;QAClD,yBAAyB,EAAE,cAAc;QACzC,yBAAyB,EAAE,2CAA2C;QACtE,uBAAuB,EAAE,uBAAuB;QAChD,0BAA0B,EAAE,uBAAuB;QACnD,SAAS,EAAE,EAAE;QACb,qBAAqB,EAAE,IAAI;QAC3B,0BAA0B,EAAE,gCAAgC;KAC7D;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,GAAG;QACb,sBAAsB,EAAE,+BAA+B;QACvD,oBAAoB,EAAE,0BAA0B;QAChD,iBAAiB,EAAE,qBAAqB;QACxC,mBAAmB,EAAE,yBAAyB;QAC9C,kBAAkB,EAAE,wBAAwB;QAC5C,mBAAmB,EAAE,yBAAyB;QAC9C,qBAAqB,EAAE,eAAe;QACtC,gCAAgC,EAAE,iCAAiC;QACnE,gCAAgC,EAAE,KAAK;QACvC,qBAAqB,EAAE,KAAK;QAC5B,sBAAsB,EAAE,KAAK;QAC7B,oBAAoB,EAAE,KAAK;QAC3B,wBAAwB,EAAE,IAAI,EAAE,iBAAiB;QACjD,gBAAgB,EAAE,KAAK;KACxB;IACD,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,IAAI;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,2BAA2B,EAAE,IAAI;IACjC,8BAA8B,EAAE,KAAK;IACrC,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;QAChD,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,CAAC;KACd;IACD,aAAa,EAAE;QACb,iBAAiB,EAAE,IAAI;QACvB,QAAQ,EAAE,oBAAoB;QAC9B,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,KAAK;QAClB,sBAAsB,EAAE,KAAK;KACb;IAClB,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,EAAE;IAClB,mBAAmB,EAAE,MAAM,EAAE,mEAAmE;IAChG,6BAA6B,EAAE,GAAG;IAClC,+CAA+C,EAAE,IAAI;IACrD,8BAA8B,EAAE,IAAI;IACpC,sBAAsB,EAAE;QACtB,4BAA4B,EAAE,KAAK;QACnC,oBAAoB,EAAE,EAAE;QACxB,yBAAyB,EAAE,IAAI;QAC/B,yBAAyB,EAAE,CAAC;QAC5B,gCAAgC,EAAE,IAAI;QACtC,0CAA0C,EAAE,IAAI;QAChD,0CAA0C,EAAE,EAAE;KAC/C;IACD,sBAAsB,EAAE,WAAW;IACnC,eAAe,EAAE;QACf,sBAAsB,EAAE,CAAC;QACzB,4BAA4B,EAAE,YAAY;KACd;CAC/B,CAAC;AAEF;;;;GAIG;AACH,SAAS,gCAAgC,CAAC,MAAc,EAAE,WAAwB;IAChF,IAAI,OAAO,GAAG,MAAM,EAAE,iBAAiB,IAAI,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9D,IAAI,OAAO,YAAY,WAAW,IAAI,OAAO,YAAY,gBAAgB,EAAE,CAAC;QAC1E,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,oBAAoB,GAAG,WAAW,EAAE,oBAAoB,IAAI,KAAK,CAAC;IACxE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,GAAG,oBAAoB,GAAG,OAAO,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { DelimiterType, EventNamingStyle, Filters, type Column, type TreeDataOption } from '@slickgrid-universal/common';\nimport type { GridOption, RowDetailView } from './models/index.js';\n\n/**\n * Default Options that can be passed to the Slickgrid-React\n */\nexport const GlobalGridOptions: Partial<GridOption> = {\n alwaysShowVerticalScroll: true,\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n applyResizeToContainer: true,\n autoHeight: true,\n autoHeightRecalcRow: 100,\n calculateAvailableSizeBy: 'window',\n bottomPadding: 20,\n minHeight: 250,\n minWidth: 300,\n rightPadding: 0,\n },\n cellHighlightCssClass: 'slick-cell-modified',\n checkboxSelector: {\n cssClass: 'slick-cell-checkboxsel',\n width: 40,\n },\n cellMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideCommandSection: false,\n hideOptionSection: false,\n },\n columnGroupSeparator: ' - ',\n columnPicker: {\n hideForceFitButton: false,\n hideSyncResizeButton: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n compositeEditorOptions: {\n labels: {\n cancelButtonKey: 'CANCEL',\n cloneButtonKey: 'CLONE',\n resetEditorButtonTooltipKey: 'RESET_INPUT_VALUE',\n resetFormButtonKey: 'RESET_FORM',\n massSelectionButtonKey: 'APPLY_TO_SELECTION',\n massSelectionStatusKey: 'X_OF_Y_MASS_SELECTED',\n massUpdateButtonKey: 'APPLY_MASS_UPDATE',\n massUpdateStatusKey: 'ALL_X_RECORDS_SELECTED',\n saveButtonKey: 'SAVE',\n },\n resetEditorButtonCssClass: 'mdi mdi-refresh font-15px',\n resetFormButtonIconCssClass: 'mdi mdi-refresh font-16px mdi-flip-h',\n },\n contextMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideClearAllGrouping: false,\n hideCollapseAllGroups: false,\n hideCommandSection: false,\n hideCopyCellValueCommand: false,\n hideExpandAllGroups: false,\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportPdfCommand: false,\n hideExportTextDelimitedCommand: true,\n hideMenuOnScroll: true,\n hideOptionSection: false,\n iconCollapseAllGroupsCommand: 'mdi mdi-arrow-collapse',\n iconExpandAllGroupsCommand: 'mdi mdi-arrow-expand',\n iconClearGroupingCommand: 'mdi mdi-close',\n iconCopyCellValueCommand: 'mdi mdi-content-copy',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline text-success',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n },\n customFooterOptions: {\n dateFormat: 'YYYY-MM-DD, hh:mm a',\n hideRowSelectionCount: false,\n hideTotalItemCount: false,\n hideLastUpdateTimestamp: true,\n footerHeight: 25,\n leftContainerClass: 'col-xs-12 col-sm-5',\n rightContainerClass: 'col-xs-6 col-sm-7',\n metricSeparator: '|',\n metricTexts: {\n items: 'items',\n itemsKey: 'ITEMS',\n of: 'of',\n ofKey: 'OF',\n itemsSelected: 'items selected',\n itemsSelectedKey: 'ITEMS_SELECTED',\n },\n },\n dataView: {\n // when enabled, this will preserve the row selection even after filtering/sorting/grouping\n syncGridSelection: {\n preserveHidden: false,\n preserveHiddenOnSelectionChange: true,\n },\n syncGridSelectionWithBackendService: false, // but disable it when using backend services\n },\n datasetIdPropertyName: 'id',\n defaultFilter: Filters.input,\n defaultBackendServiceFilterTypingDebounce: 500,\n defaultColumnSortFieldId: 'id',\n defaultFilterPlaceholder: '🔎︎', // magnifying glass icon\n defaultFilterRangeOperator: 'RangeInclusive',\n editable: false,\n editorTypingDebounce: 450,\n filterTypingDebounce: 0,\n enableEmptyDataWarningMessage: true,\n enableFilterTrimWhiteSpace: false, // do we want to trim white spaces on all Filters?\n emptyDataWarning: {\n className: 'slick-empty-data-warning',\n message: 'No data to display.',\n messageKey: 'EMPTY_DATA_WARNING_MESSAGE',\n hideFrozenLeftWarning: false,\n hideFrozenRightWarning: false,\n leftViewportMarginLeft: '40%',\n rightViewportMarginLeft: '40%',\n frozenLeftViewportMarginLeft: '0px',\n frozenRightViewportMarginLeft: '40%',\n },\n enableAutoResize: true,\n enableAutoSizeColumns: true,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableColumnResizeOnDoubleClick: true,\n enableContextMenu: true,\n enableExcelExport: false,\n enableTextExport: false,\n enableGridMenu: true,\n enableHeaderMenu: true,\n enableMouseHoverHighlightRow: true,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n eventNamingStyle: EventNamingStyle.camelCase,\n explicitInitialization: true,\n excelExportOptions: {\n addGroupIndentation: true,\n exportWithFormatter: false,\n filename: 'export',\n format: 'xlsx',\n groupingColumnHeaderTitle: 'Group By',\n groupCollapsedSymbol: '⮞',\n groupExpandedSymbol: '⮟',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n },\n pdfExportOptions: {\n addGroupIndentation: true,\n exportWithFormatter: false,\n filename: 'export',\n pageOrientation: 'portrait',\n pageSize: 'a4',\n fontSize: 10,\n headerFontSize: 11,\n includeColumnHeaders: true,\n htmlDecode: true,\n sanitizeDataExport: false,\n groupingColumnHeaderTitle: 'Group By',\n groupCollapsedSymbol: '+',\n groupExpandedSymbol: '-',\n groupingAggregatorRowText: '',\n repeatHeadersOnEachPage: true,\n },\n textExportOptions: {\n delimiter: DelimiterType.comma,\n exportWithFormatter: false,\n filename: 'export',\n format: 'csv',\n groupingColumnHeaderTitle: 'Group By',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n useUtf8WithBom: true,\n },\n forceFitColumns: false,\n frozenHeaderWidthCalcDifferential: 1,\n gridMenu: {\n commandLabels: {\n clearAllFiltersCommandKey: 'CLEAR_ALL_FILTERS',\n clearAllSortingCommandKey: 'CLEAR_ALL_SORTING',\n clearFrozenColumnsCommandKey: 'CLEAR_PINNING',\n exportCsvCommandKey: 'EXPORT_TO_CSV',\n exportExcelCommandKey: 'EXPORT_TO_EXCEL',\n exportPdfCommandKey: 'EXPORT_TO_PDF',\n exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',\n refreshDatasetCommandKey: 'REFRESH_DATASET',\n toggleDarkModeCommandKey: 'TOGGLE_DARK_MODE',\n toggleFilterCommandKey: 'TOGGLE_FILTER_ROW',\n togglePreHeaderCommandKey: 'TOGGLE_PRE_HEADER_ROW',\n },\n hideClearAllFiltersCommand: false,\n hideClearAllSortingCommand: false,\n hideClearFrozenColumnsCommand: true, // opt-in command\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportPdfCommand: false,\n hideExportTextDelimitedCommand: true,\n hideForceFitButton: false,\n hideRefreshDatasetCommand: false,\n hideSyncResizeButton: true,\n hideToggleDarkModeCommand: true,\n hideToggleFilterCommand: false,\n hideTogglePreHeaderCommand: false,\n iconCssClass: 'mdi mdi-menu',\n iconClearAllFiltersCommand: 'mdi mdi-filter-remove-outline',\n iconClearAllSortingCommand: 'mdi mdi-sort-variant-off',\n iconClearFrozenColumnsCommand: 'mdi mdi-close',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n iconRefreshDatasetCommand: 'mdi mdi-sync',\n iconToggleDarkModeCommand: 'mdi mdi-brightness-4 mdi mdi-brightness-4',\n iconToggleFilterCommand: 'mdi mdi-flip-vertical',\n iconTogglePreHeaderCommand: 'mdi mdi-flip-vertical',\n menuWidth: 16,\n resizeOnShowHeaderRow: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n headerMenu: {\n autoAlign: true,\n autoAlignOffset: 12,\n minWidth: 140,\n iconClearFilterCommand: 'mdi mdi-filter-remove-outline',\n iconClearSortCommand: 'mdi mdi-sort-variant-off',\n iconFreezeColumns: 'mdi mdi-pin-outline',\n iconUnfreezeColumns: 'mdi mdi-pin-off-outline',\n iconSortAscCommand: 'mdi mdi-sort-ascending',\n iconSortDescCommand: 'mdi mdi-sort-descending',\n iconColumnHideCommand: 'mdi mdi-close',\n iconColumnResizeByContentCommand: 'mdi mdi-arrow-expand-horizontal',\n hideColumnResizeByContentCommand: false,\n hideColumnHideCommand: false,\n hideClearFilterCommand: false,\n hideClearSortCommand: false,\n hideFreezeColumnsCommand: true, // opt-in command\n hideSortCommands: false,\n },\n multiColumnSort: true,\n numberedMultiColumnSort: true,\n tristateMultiColumnSort: false,\n sortColNumberInSeparateSpan: true,\n suppressActiveCellChangeOnEdit: false,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0,\n },\n rowDetailView: {\n collapseAllOnSort: true,\n cssClass: 'detail-view-toggle',\n panelRows: 1,\n keyPrefix: '__',\n useRowClick: false,\n saveDetailViewOnScroll: false,\n } as RowDetailView,\n headerRowHeight: 35,\n rowHeight: 35,\n topPanelHeight: 30,\n preHeaderPanelWidth: '100%', // mostly useful for Draggable Grouping dropzone to take full width\n translationNamespaceSeparator: ':',\n resetFilterSearchValueAfterOnBeforeCancellation: true,\n resizeByContentOnlyOnFirstLoad: true,\n resizeByContentOptions: {\n alwaysRecalculateColumnWidth: false,\n cellPaddingWidthInPx: 14,\n defaultRatioForStringType: 0.88,\n formatterPaddingWidthInPx: 0,\n maxItemToInspectCellContentWidth: 1000,\n maxItemToInspectSingleColumnWidthByContent: 5000,\n widthToRemoveFromExceededWidthReadjustment: 50,\n },\n rowTopOffsetRenderType: 'transform',\n treeDataOptions: {\n exportIndentMarginLeft: 5,\n exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',\n } as unknown as TreeDataOption,\n};\n\n/**\n * Value Extractor for both ColumnPicker & GridMenu Picker\n * when using Column Header Grouping, we'll prefix the column group title\n * else we'll simply return the column name title\n */\nfunction pickerHeaderColumnValueExtractor(column: Column, gridOptions?: GridOption) {\n let colName = column?.columnPickerLabel ?? column?.name ?? '';\n if (colName instanceof HTMLElement || colName instanceof DocumentFragment) {\n colName = colName.textContent || '';\n }\n const headerGroup = column?.columnGroup || '';\n const columnGroupSeparator = gridOptions?.columnGroupSeparator ?? ' - ';\n if (headerGroup) {\n return headerGroup + columnGroupSeparator + colName;\n }\n return colName;\n}\n"]}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"EXPAND_ALL_GROUPS": "Expand all Groups",
|
|
23
23
|
"EXPORT_TO_CSV": "Export in CSV format",
|
|
24
24
|
"EXPORT_TO_EXCEL": "Export to Excel",
|
|
25
|
+
"EXPORT_TO_PDF": "Export to PDF",
|
|
25
26
|
"EXPORT_TO_TAB_DELIMITED": "Export in Text format (Tab delimited)",
|
|
26
27
|
"EXPORT_TO_TEXT_FORMAT": "Export in Text format",
|
|
27
28
|
"FILTER_SHORTCUTS": "Filter Shortcuts",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"EXPAND_ALL_GROUPS": "Étendre tous les groupes",
|
|
23
23
|
"EXPORT_TO_CSV": "Exporter en format CSV",
|
|
24
24
|
"EXPORT_TO_EXCEL": "Exporter vers Excel",
|
|
25
|
+
"EXPORT_TO_PDF": "Exporter vers PDF",
|
|
25
26
|
"EXPORT_TO_TAB_DELIMITED": "Exporter en format texte (délimité par tabulation)",
|
|
26
27
|
"EXPORT_TO_TEXT_FORMAT": "Exporter en format texte",
|
|
27
28
|
"FILTER_SHORTCUTS": "Raccourcis de filtre",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';
|
|
2
|
-
import type { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
|
+
import type { ComponentType, ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
3
3
|
import type { I18Next } from './i18next.interface.js';
|
|
4
4
|
import type { RowDetailView } from './rowDetailView.interface.js';
|
|
5
5
|
export interface GridOption extends UniversalGridOption {
|
|
6
6
|
/** External Custom Pagination Component that can be provided by the user */
|
|
7
|
-
customPaginationComponent?: typeof BasePaginationComponent | (() => BasePaginationModel) | ForwardRefExoticComponent<any & RefAttributes<any
|
|
7
|
+
customPaginationComponent?: typeof BasePaginationComponent | (() => BasePaginationModel) | ForwardRefExoticComponent<any & RefAttributes<any>> | ComponentType<any>;
|
|
8
8
|
/** I18N translation service instance */
|
|
9
9
|
i18n?: I18Next;
|
|
10
10
|
/** Row Detail View Plugin options & events (columnId, cssClass, toolTip, width) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridOption.interface.js","sourceRoot":"","sources":["../../src/models/gridOption.interface.ts"],"names":[],"mappings":"","sourcesContent":["import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { I18Next } from './i18next.interface.js';\nimport type { RowDetailView } from './rowDetailView.interface.js';\n\nexport interface GridOption extends UniversalGridOption {\n /** External Custom Pagination Component that can be provided by the user */\n customPaginationComponent?:\n | typeof BasePaginationComponent\n | (() => BasePaginationModel)\n | ForwardRefExoticComponent<any & RefAttributes<any
|
|
1
|
+
{"version":3,"file":"gridOption.interface.js","sourceRoot":"","sources":["../../src/models/gridOption.interface.ts"],"names":[],"mappings":"","sourcesContent":["import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';\nimport type { ComponentType, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { I18Next } from './i18next.interface.js';\nimport type { RowDetailView } from './rowDetailView.interface.js';\n\nexport interface GridOption extends UniversalGridOption {\n /** External Custom Pagination Component that can be provided by the user */\n customPaginationComponent?:\n | typeof BasePaginationComponent\n | (() => BasePaginationModel)\n | ForwardRefExoticComponent<any & RefAttributes<any>>\n | ComponentType<any>;\n\n /** I18N translation service instance */\n i18n?: I18Next;\n\n /** Row Detail View Plugin options & events (columnId, cssClass, toolTip, width) */\n rowDetailView?: RowDetailView;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "slickgrid-react",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.13.0",
|
|
4
4
|
"description": "Slickgrid components made available in React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -52,18 +52,18 @@
|
|
|
52
52
|
"/src"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@slickgrid-universal/common": "9.
|
|
56
|
-
"@slickgrid-universal/custom-footer-component": "9.
|
|
57
|
-
"@slickgrid-universal/empty-warning-component": "9.
|
|
58
|
-
"@slickgrid-universal/event-pub-sub": "9.
|
|
59
|
-
"@slickgrid-universal/pagination-component": "9.
|
|
60
|
-
"@slickgrid-universal/row-detail-view-plugin": "9.
|
|
61
|
-
"@slickgrid-universal/utils": "9.
|
|
55
|
+
"@slickgrid-universal/common": "9.13.0",
|
|
56
|
+
"@slickgrid-universal/custom-footer-component": "9.13.0",
|
|
57
|
+
"@slickgrid-universal/empty-warning-component": "9.13.0",
|
|
58
|
+
"@slickgrid-universal/event-pub-sub": "9.13.0",
|
|
59
|
+
"@slickgrid-universal/pagination-component": "9.13.0",
|
|
60
|
+
"@slickgrid-universal/row-detail-view-plugin": "9.13.0",
|
|
61
|
+
"@slickgrid-universal/utils": "9.13.0",
|
|
62
62
|
"dequal": "^2.0.3",
|
|
63
63
|
"sortablejs": "^1.15.6"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"react": ">=19.0.0"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
69
|
-
}
|
|
68
|
+
"gitHead": "2f8344e34f8c8409895ab1827036f8c5701acd63"
|
|
69
|
+
}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"EXPAND_ALL_GROUPS": "Expand all Groups",
|
|
23
23
|
"EXPORT_TO_CSV": "Export in CSV format",
|
|
24
24
|
"EXPORT_TO_EXCEL": "Export to Excel",
|
|
25
|
+
"EXPORT_TO_PDF": "Export to PDF",
|
|
25
26
|
"EXPORT_TO_TAB_DELIMITED": "Export in Text format (Tab delimited)",
|
|
26
27
|
"EXPORT_TO_TEXT_FORMAT": "Export in Text format",
|
|
27
28
|
"FILTER_SHORTCUTS": "Filter Shortcuts",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"EXPAND_ALL_GROUPS": "Étendre tous les groupes",
|
|
23
23
|
"EXPORT_TO_CSV": "Exporter en format CSV",
|
|
24
24
|
"EXPORT_TO_EXCEL": "Exporter vers Excel",
|
|
25
|
+
"EXPORT_TO_PDF": "Exporter vers PDF",
|
|
25
26
|
"EXPORT_TO_TAB_DELIMITED": "Exporter en format texte (délimité par tabulation)",
|
|
26
27
|
"EXPORT_TO_TEXT_FORMAT": "Exporter en format texte",
|
|
27
28
|
"FILTER_SHORTCUTS": "Raccourcis de filtre",
|
|
@@ -55,6 +55,7 @@ import type {
|
|
|
55
55
|
OnRowsChangedEventArgs,
|
|
56
56
|
OnRowsOrCountChangedEventArgs,
|
|
57
57
|
OnScrollEventArgs,
|
|
58
|
+
OnSearchChangeEventArgs,
|
|
58
59
|
OnSelectedRowIdsChangedEventArgs,
|
|
59
60
|
OnSelectedRowsChangedEventArgs,
|
|
60
61
|
OnSetItemsCalledEventArgs,
|
|
@@ -100,7 +101,6 @@ export interface SlickgridReactProps {
|
|
|
100
101
|
onAddNewRow?: ReactSlickEventHandler<OnAddNewRowEventArgs>;
|
|
101
102
|
onAutosizeColumns?: ReactSlickEventHandler<OnAutosizeColumnsEventArgs>;
|
|
102
103
|
onBeforeAppendCell?: ReactSlickEventHandler<OnBeforeAppendCellEventArgs>;
|
|
103
|
-
onBeforeSearchChange?: ReactSlickEventHandler<OnCellChangeEventArgs, boolean | void>;
|
|
104
104
|
onBeforeCellEditorDestroy?: ReactSlickEventHandler<OnBeforeCellEditorDestroyEventArgs>;
|
|
105
105
|
onBeforeColumnsResize?: ReactSlickEventHandler<OnBeforeColumnsResizeEventArgs>;
|
|
106
106
|
onBeforeDestroy?: ReactSlickEventHandler<{ grid: SlickGrid }>;
|
|
@@ -172,12 +172,15 @@ export interface SlickgridReactProps {
|
|
|
172
172
|
onBeforePasteCell?: ReactSlickEventHandler<{ cell: number; row: number; item: any; columnDef: Column; value: any }>;
|
|
173
173
|
|
|
174
174
|
// Slickgrid-React or Slickgrid-Universal events
|
|
175
|
-
onAfterExportToExcel?: ReactRegularEventHandler<{ filename: string; mimeType: string }>;
|
|
175
|
+
onAfterExportToExcel?: ReactRegularEventHandler<{ filename: string; mimeType: string } | { error: any }>;
|
|
176
176
|
onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;
|
|
177
|
+
onAfterExportToPdf?: ReactRegularEventHandler<{ filename: string } | { error: any }>;
|
|
178
|
+
onBeforeExportToPdf?: ReactRegularEventHandler<boolean>;
|
|
177
179
|
onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;
|
|
178
180
|
onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;
|
|
179
181
|
onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;
|
|
180
182
|
onBeforeFilterClear?: ReactRegularEventHandler<{ columnId: string } | boolean>;
|
|
183
|
+
onBeforeSearchChange?: ReactRegularEventHandler<OnSearchChangeEventArgs, boolean | void>;
|
|
181
184
|
onBeforeSortChange?: ReactRegularEventHandler<Array<ColumnSort & { clearSortTriggered?: boolean }>>;
|
|
182
185
|
onContextMenuClearGrouping?: ReactRegularEventHandler<void>;
|
|
183
186
|
onContextMenuCollapseAllGroups?: ReactRegularEventHandler<void>;
|
package/src/constants.ts
CHANGED
|
@@ -34,6 +34,7 @@ export class Constants {
|
|
|
34
34
|
TEXT_EXPORT_TO_CSV: 'Export in CSV format',
|
|
35
35
|
TEXT_EXPORT_TO_TEXT_FORMAT: 'Export in Text format (Tab delimited)',
|
|
36
36
|
TEXT_EXPORT_TO_EXCEL: 'Export to Excel',
|
|
37
|
+
TEXT_EXPORT_TO_PDF: 'Export to PDF',
|
|
37
38
|
TEXT_EXPORT_TO_TAB_DELIMITED: 'Export in Text format (Tab delimited)',
|
|
38
39
|
TEXT_FORCE_FIT_COLUMNS: 'Force fit columns',
|
|
39
40
|
TEXT_FREEZE_COLUMNS: 'Freeze Columns',
|
|
@@ -118,7 +118,9 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
|
|
|
118
118
|
// this also requires the Row Selection Model to be registered as well
|
|
119
119
|
if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {
|
|
120
120
|
const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;
|
|
121
|
-
rowSelectionPlugin = new SelectionModelClass(
|
|
121
|
+
rowSelectionPlugin = new SelectionModelClass(
|
|
122
|
+
this.gridOptions.selectionOptions ?? this.gridOptions.rowSelectionOptions ?? { selectActiveRow: true }
|
|
123
|
+
);
|
|
122
124
|
this._grid.setSelectionModel(rowSelectionPlugin);
|
|
123
125
|
}
|
|
124
126
|
|
|
@@ -63,6 +63,7 @@ export const GlobalGridOptions: Partial<GridOption> = {
|
|
|
63
63
|
hideExpandAllGroups: false,
|
|
64
64
|
hideExportCsvCommand: false,
|
|
65
65
|
hideExportExcelCommand: false,
|
|
66
|
+
hideExportPdfCommand: false,
|
|
66
67
|
hideExportTextDelimitedCommand: true,
|
|
67
68
|
hideMenuOnScroll: true,
|
|
68
69
|
hideOptionSection: false,
|
|
@@ -149,6 +150,23 @@ export const GlobalGridOptions: Partial<GridOption> = {
|
|
|
149
150
|
groupingAggregatorRowText: '',
|
|
150
151
|
sanitizeDataExport: false,
|
|
151
152
|
},
|
|
153
|
+
pdfExportOptions: {
|
|
154
|
+
addGroupIndentation: true,
|
|
155
|
+
exportWithFormatter: false,
|
|
156
|
+
filename: 'export',
|
|
157
|
+
pageOrientation: 'portrait',
|
|
158
|
+
pageSize: 'a4',
|
|
159
|
+
fontSize: 10,
|
|
160
|
+
headerFontSize: 11,
|
|
161
|
+
includeColumnHeaders: true,
|
|
162
|
+
htmlDecode: true,
|
|
163
|
+
sanitizeDataExport: false,
|
|
164
|
+
groupingColumnHeaderTitle: 'Group By',
|
|
165
|
+
groupCollapsedSymbol: '+',
|
|
166
|
+
groupExpandedSymbol: '-',
|
|
167
|
+
groupingAggregatorRowText: '',
|
|
168
|
+
repeatHeadersOnEachPage: true,
|
|
169
|
+
},
|
|
152
170
|
textExportOptions: {
|
|
153
171
|
delimiter: DelimiterType.comma,
|
|
154
172
|
exportWithFormatter: false,
|
|
@@ -168,6 +186,7 @@ export const GlobalGridOptions: Partial<GridOption> = {
|
|
|
168
186
|
clearFrozenColumnsCommandKey: 'CLEAR_PINNING',
|
|
169
187
|
exportCsvCommandKey: 'EXPORT_TO_CSV',
|
|
170
188
|
exportExcelCommandKey: 'EXPORT_TO_EXCEL',
|
|
189
|
+
exportPdfCommandKey: 'EXPORT_TO_PDF',
|
|
171
190
|
exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',
|
|
172
191
|
refreshDatasetCommandKey: 'REFRESH_DATASET',
|
|
173
192
|
toggleDarkModeCommandKey: 'TOGGLE_DARK_MODE',
|
|
@@ -179,6 +198,7 @@ export const GlobalGridOptions: Partial<GridOption> = {
|
|
|
179
198
|
hideClearFrozenColumnsCommand: true, // opt-in command
|
|
180
199
|
hideExportCsvCommand: false,
|
|
181
200
|
hideExportExcelCommand: false,
|
|
201
|
+
hideExportPdfCommand: false,
|
|
182
202
|
hideExportTextDelimitedCommand: true,
|
|
183
203
|
hideForceFitButton: false,
|
|
184
204
|
hideRefreshDatasetCommand: false,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';
|
|
2
|
-
import type { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
|
+
import type { ComponentType, ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
3
3
|
import type { I18Next } from './i18next.interface.js';
|
|
4
4
|
import type { RowDetailView } from './rowDetailView.interface.js';
|
|
5
5
|
|
|
@@ -8,7 +8,8 @@ export interface GridOption extends UniversalGridOption {
|
|
|
8
8
|
customPaginationComponent?:
|
|
9
9
|
| typeof BasePaginationComponent
|
|
10
10
|
| (() => BasePaginationModel)
|
|
11
|
-
| ForwardRefExoticComponent<any & RefAttributes<any
|
|
11
|
+
| ForwardRefExoticComponent<any & RefAttributes<any>>
|
|
12
|
+
| ComponentType<any>;
|
|
12
13
|
|
|
13
14
|
/** I18N translation service instance */
|
|
14
15
|
i18n?: I18Next;
|