slickgrid-react 9.12.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 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="70"></a> Slickgrid-React
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
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
  [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/)
@@ -116,6 +116,12 @@ export interface SlickgridReactProps {
116
116
  error: any;
117
117
  }>;
118
118
  onBeforeExportToExcel?: ReactRegularEventHandler<boolean>;
119
+ onAfterExportToPdf?: ReactRegularEventHandler<{
120
+ filename: string;
121
+ } | {
122
+ error: any;
123
+ }>;
124
+ onBeforeExportToPdf?: ReactRegularEventHandler<boolean>;
119
125
  onBeforeExportToTextFile?: ReactRegularEventHandler<boolean>;
120
126
  onAfterExportToTextFile?: ReactRegularEventHandler<ExportTextDownloadOption>;
121
127
  onBeforeFilterChange?: ReactRegularEventHandler<CurrentFilter[]>;
@@ -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 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 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"]}
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',
@@ -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 || { selectActiveRow: true });
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":"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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 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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slickgrid-react",
3
- "version": "9.12.0",
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.12.0",
56
- "@slickgrid-universal/custom-footer-component": "9.12.0",
57
- "@slickgrid-universal/empty-warning-component": "9.12.0",
58
- "@slickgrid-universal/event-pub-sub": "9.12.0",
59
- "@slickgrid-universal/pagination-component": "9.12.0",
60
- "@slickgrid-universal/row-detail-view-plugin": "9.12.0",
61
- "@slickgrid-universal/utils": "9.12.0",
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": "02bb1252e7069954d0ee0c5d187edc7c209d2245"
68
+ "gitHead": "2f8344e34f8c8409895ab1827036f8c5701acd63"
69
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",
@@ -174,6 +174,8 @@ export interface SlickgridReactProps {
174
174
  // Slickgrid-React or Slickgrid-Universal events
175
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[]>;
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(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });
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,