slickgrid-react 9.8.0 → 9.10.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.
@@ -1,4 +1,4 @@
1
- import type { Column, ContainerService, DragRowMove, ExtensionList, GridOption, HeaderButtonOnCommandArgs, OnActiveCellChangedEventArgs, OnAddNewRowEventArgs, OnAutosizeColumnsEventArgs, OnBeforeAppendCellEventArgs, OnBeforeCellEditorDestroyEventArgs, OnBeforeColumnsResizeEventArgs, OnBeforeEditCellEventArgs, OnBeforeFooterRowCellDestroyEventArgs, OnBeforeHeaderCellDestroyEventArgs, OnBeforeHeaderRowCellDestroyEventArgs, OnBeforeSetColumnsEventArgs, OnCellChangeEventArgs, OnCellCssStylesChangedEventArgs, OnClickEventArgs, OnColumnsDragEventArgs, OnColumnsReorderedEventArgs, OnColumnsResizeDblClickEventArgs, OnColumnsResizedEventArgs, OnCompositeEditorChangeEventArgs, OnDblClickEventArgs, OnFooterClickEventArgs, OnFooterContextMenuEventArgs, OnFooterRowCellRenderedEventArgs, OnHeaderCellRenderedEventArgs, OnHeaderClickEventArgs, OnHeaderContextMenuEventArgs, OnHeaderMouseEventArgs, OnHeaderRowCellRenderedEventArgs, OnKeyDownEventArgs, OnRenderedEventArgs, OnScrollEventArgs, OnSelectedRowsChangedEventArgs, OnSetOptionsEventArgs, OnValidationErrorEventArgs, SingleColumnSort, OnGroupCollapsedEventArgs, OnGroupExpandedEventArgs, OnRowCountChangedEventArgs, OnRowsChangedEventArgs, OnRowsOrCountChangedEventArgs, OnSetItemsCalledEventArgs, Pagination, PagingInfo, SlickControlList, SlickDataView, SlickGrid, SlickPluginList, SlickRange, GridMenuCommandItemCallbackArgs, GridMenuEventWithElementCallbackArgs, MenuCommandItemCallbackArgs, HeaderMenuCommandItemCallbackArgs, PaginationChangedArgs, MenuFromCellCallbackArgs, MenuOptionItemCallbackArgs } from '@slickgrid-universal/common';
1
+ import type { Column, ContainerService, DragRowMove, ExtensionList, GridMenuCommandItemCallbackArgs, GridMenuEventWithElementCallbackArgs, GridOption, HeaderButtonOnCommandArgs, HeaderMenuCommandItemCallbackArgs, MenuCommandItemCallbackArgs, MenuFromCellCallbackArgs, MenuOptionItemCallbackArgs, OnActiveCellChangedEventArgs, OnAddNewRowEventArgs, OnAutosizeColumnsEventArgs, OnBeforeAppendCellEventArgs, OnBeforeCellEditorDestroyEventArgs, OnBeforeColumnsResizeEventArgs, OnBeforeEditCellEventArgs, OnBeforeFooterRowCellDestroyEventArgs, OnBeforeHeaderCellDestroyEventArgs, OnBeforeHeaderRowCellDestroyEventArgs, OnBeforeSetColumnsEventArgs, OnCellChangeEventArgs, OnCellCssStylesChangedEventArgs, OnClickEventArgs, OnColumnsDragEventArgs, OnColumnsReorderedEventArgs, OnColumnsResizeDblClickEventArgs, OnColumnsResizedEventArgs, OnCompositeEditorChangeEventArgs, OnDblClickEventArgs, OnDragReplaceCellsEventArgs, OnFooterClickEventArgs, OnFooterContextMenuEventArgs, OnFooterRowCellRenderedEventArgs, OnGroupCollapsedEventArgs, OnGroupExpandedEventArgs, OnHeaderCellRenderedEventArgs, OnHeaderClickEventArgs, OnHeaderContextMenuEventArgs, OnHeaderMouseEventArgs, OnHeaderRowCellRenderedEventArgs, OnKeyDownEventArgs, OnRenderedEventArgs, OnRowCountChangedEventArgs, OnRowsChangedEventArgs, OnRowsOrCountChangedEventArgs, OnScrollEventArgs, OnSelectedRowsChangedEventArgs, OnSetItemsCalledEventArgs, OnSetOptionsEventArgs, OnValidationErrorEventArgs, Pagination, PaginationChangedArgs, PagingInfo, SingleColumnSort, SlickControlList, SlickDataView, SlickGrid, SlickPluginList, SlickRange } from '@slickgrid-universal/common';
2
2
  import type { SlickgridReactInstance } from '../models/index.js';
3
3
  import type { TranslaterI18NextService } from '../services/translaterI18Next.service.js';
4
4
  export interface SlickgridReactProps {
@@ -133,6 +133,10 @@ export interface SlickgridReactProps {
133
133
  eventData: any;
134
134
  args: DragRowMove;
135
135
  }>) => void;
136
+ onDragReplaceCells?: (e: CustomEvent<{
137
+ eventData: any;
138
+ args: OnDragReplaceCellsEventArgs;
139
+ }>) => void;
136
140
  onDblClick?: (e: CustomEvent<{
137
141
  eventData: any;
138
142
  args: OnDblClickEventArgs;
@@ -1 +1 @@
1
- {"version":3,"file":"slickgridReactProps.js","sourceRoot":"","sources":["../../src/components/slickgridReactProps.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Column,\n ContainerService,\n DragRowMove,\n ExtensionList,\n GridOption,\n HeaderButtonOnCommandArgs,\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 OnColumnsDragEventArgs,\n OnColumnsReorderedEventArgs,\n OnColumnsResizeDblClickEventArgs,\n OnColumnsResizedEventArgs,\n OnCompositeEditorChangeEventArgs,\n OnDblClickEventArgs,\n OnFooterClickEventArgs,\n OnFooterContextMenuEventArgs,\n OnFooterRowCellRenderedEventArgs,\n OnHeaderCellRenderedEventArgs,\n OnHeaderClickEventArgs,\n OnHeaderContextMenuEventArgs,\n OnHeaderMouseEventArgs,\n OnHeaderRowCellRenderedEventArgs,\n OnKeyDownEventArgs,\n OnRenderedEventArgs,\n OnScrollEventArgs,\n OnSelectedRowsChangedEventArgs,\n OnSetOptionsEventArgs,\n OnValidationErrorEventArgs,\n SingleColumnSort,\n OnGroupCollapsedEventArgs,\n OnGroupExpandedEventArgs,\n OnRowCountChangedEventArgs,\n OnRowsChangedEventArgs,\n OnRowsOrCountChangedEventArgs,\n OnSetItemsCalledEventArgs,\n Pagination,\n PagingInfo,\n SlickControlList,\n SlickDataView,\n SlickGrid,\n SlickPluginList,\n SlickRange,\n GridMenuCommandItemCallbackArgs,\n GridMenuEventWithElementCallbackArgs,\n MenuCommandItemCallbackArgs,\n HeaderMenuCommandItemCallbackArgs,\n PaginationChangedArgs,\n MenuFromCellCallbackArgs,\n MenuOptionItemCallbackArgs,\n} from '@slickgrid-universal/common';\n\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?: (e: CustomEvent<{ eventData: any; args: OnActiveCellChangedEventArgs }>) => void;\n onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onAddNewRow?: (e: CustomEvent<{ eventData: any; args: OnAddNewRowEventArgs }>) => void;\n onAutosizeColumns?: (e: CustomEvent<{ eventData: any; args: OnAutosizeColumnsEventArgs }>) => void;\n onBeforeAppendCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeAppendCellEventArgs }>) => void;\n onBeforeSearchChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;\n onBeforeCellEditorDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeCellEditorDestroyEventArgs }>) => void;\n onBeforeColumnsResize?: (e: CustomEvent<{ eventData: any; args: OnBeforeColumnsResizeEventArgs }>) => void;\n onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onBeforeEditCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeEditCellEventArgs }>) => void;\n onBeforeHeaderCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderCellDestroyEventArgs }>) => void;\n onBeforeHeaderRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderRowCellDestroyEventArgs }>) => void;\n onBeforeFooterRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeFooterRowCellDestroyEventArgs }>) => void;\n onBeforeSetColumns?: (e: CustomEvent<{ eventData: any; args: OnBeforeSetColumnsEventArgs }>) => void;\n onBeforeSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;\n onCellChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;\n onCellCssStylesChanged?: (e: CustomEvent<{ eventData: any; args: OnCellCssStylesChangedEventArgs }>) => void;\n onClick?: (e: CustomEvent<{ eventData: any; args: OnClickEventArgs }>) => void;\n onColumnsDrag?: (e: CustomEvent<{ eventData: any; args: OnColumnsDragEventArgs }>) => void;\n onColumnsReordered?: (e: CustomEvent<{ eventData: any; args: OnColumnsReorderedEventArgs }>) => void;\n onColumnsResized?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizedEventArgs }>) => void;\n onColumnsResizeDblClick?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizeDblClickEventArgs }>) => void;\n onCompositeEditorChange?: (e: CustomEvent<{ eventData: any; args: OnCompositeEditorChangeEventArgs }>) => void;\n onContextMenu?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onDrag?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragEnd?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragInit?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragStart?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDblClick?: (e: CustomEvent<{ eventData: any; args: OnDblClickEventArgs }>) => void;\n onFooterContextMenu?: (e: CustomEvent<{ eventData: any; args: OnFooterContextMenuEventArgs }>) => void;\n onFooterRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnFooterRowCellRenderedEventArgs }>) => void;\n onHeaderCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderCellRenderedEventArgs }>) => void;\n onFooterClick?: (e: CustomEvent<{ eventData: any; args: OnFooterClickEventArgs }>) => void;\n onHeaderClick?: (e: CustomEvent<{ eventData: any; args: OnHeaderClickEventArgs }>) => void;\n onHeaderContextMenu?: (e: CustomEvent<{ eventData: any; args: OnHeaderContextMenuEventArgs }>) => void;\n onHeaderMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderRowCellRenderedEventArgs }>) => void;\n onHeaderRowMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderRowMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onKeyDown?: (e: CustomEvent<{ eventData: any; args: OnKeyDownEventArgs }>) => void;\n onMouseEnter?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onMouseLeave?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onValidationError?: (e: CustomEvent<{ eventData: any; args: OnValidationErrorEventArgs }>) => void;\n onViewportChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onRendered?: (e: CustomEvent<{ eventData: any; args: OnRenderedEventArgs }>) => void;\n onSelectedRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnSelectedRowsChangedEventArgs }>) => void;\n onSetOptions?: (e: CustomEvent<{ eventData: any; args: OnSetOptionsEventArgs }>) => void;\n onScroll?: (e: CustomEvent<{ eventData: any; args: OnScrollEventArgs }>) => void;\n onSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;\n\n // Slick DataView events\n onBeforePagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;\n onGroupExpanded?: (e: CustomEvent<{ eventData: any; args: OnGroupExpandedEventArgs }>) => void;\n onGroupCollapsed?: (e: CustomEvent<{ eventData: any; args: OnGroupCollapsedEventArgs }>) => void;\n onPagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;\n onRowCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowCountChangedEventArgs }>) => void;\n onRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsChangedEventArgs }>) => void;\n onRowsOrCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsOrCountChangedEventArgs }>) => void;\n onSetItemsCalled?: (e: CustomEvent<{ eventData: any; args: OnSetItemsCalledEventArgs }>) => void;\n\n // Slickgrid-React events\n onAfterExportToExcel?: (e: CustomEvent<any>) => void;\n onBeforeExportToExcel?: (e: CustomEvent<any>) => void;\n onBeforeFilterChange?: (e: CustomEvent<any>) => void;\n onBeforeFilterClear?: (e: CustomEvent<any>) => void;\n onBeforeSortChange?: (e: CustomEvent<any>) => void;\n onBeforeToggleTreeCollapse?: (e: CustomEvent<any>) => void;\n onContextMenuClearGrouping?: (e: CustomEvent<any>) => void;\n onContextMenuCollapseAllGroups?: (e: CustomEvent<any>) => void;\n onContextMenuExpandAllGroups?: (e: CustomEvent<any>) => void;\n onAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onAfterGridDestroyed?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeMenuClose?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeGridDestroy?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;\n onOptionSelected?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;\n onColumnPickerColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onGridMenuMenuClose?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuClearAllPinning?: (e: CustomEvent<any>) => void;\n onGridMenuClearAllFilters?: (e: CustomEvent<any>) => void;\n onGridMenuClearAllSorting?: (e: CustomEvent<any>) => void;\n onGridMenuColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onGridMenuCommand?: (e: CustomEvent<{ eventData: any; args: GridMenuCommandItemCallbackArgs }>) => void;\n onHeaderButtonCommand?: (e: CustomEvent<{ eventData: any; args: HeaderButtonOnCommandArgs }>) => void;\n onCopyCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onCopyCancelled?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onPasteCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onBeforePasteCell?: (\n e: CustomEvent<{ eventData: any; args: { cell: number; row: number; item: any; columnDef: Column; value: any } }>\n ) => void;\n onHeaderMenuCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs }>) => void;\n onHeaderMenuColumnResizeByContent?: (e: CustomEvent<{ eventData: any; args: { columnId: string } }>) => void;\n onHeaderMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;\n onHeaderMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;\n onHideColumns?: (e: CustomEvent<{ eventData: any; args: { columns: Column[]; hiddenColumn: Column[] } }>) => void;\n onItemsAdded?: (e: CustomEvent<any>) => void;\n onItemsDeleted?: (e: CustomEvent<any>) => void;\n onItemsUpdated?: (e: CustomEvent<any>) => void;\n onItemsUpserted?: (e: CustomEvent<any>) => void;\n onFullResizeByContentRequested?: (e: CustomEvent<any>) => void;\n onGridStateChanged?: (e: CustomEvent<any>) => void;\n onBeforePaginationChange?: (e: CustomEvent<any>) => void;\n onPaginationChanged?: (e: CustomEvent<PaginationChangedArgs>) => void;\n onPaginationRefreshed?: (e: CustomEvent<any>) => void;\n onPaginationVisibilityChanged?: (e: CustomEvent<any>) => void;\n onPaginationSetCursorBased?: (e: CustomEvent<any>) => void;\n onGridBeforeResize?: (e: CustomEvent<any>) => void;\n onGridAfterResize?: (e: CustomEvent<any>) => void;\n onBeforeResizeByContent?: (e: CustomEvent<any>) => void;\n onAfterResizeByContent?: (e: CustomEvent<any>) => void;\n onSelectedRowIdsChanged?: (e: CustomEvent<any>) => void;\n onSortCleared?: (e: CustomEvent<any>) => void;\n onFilterChanged?: (e: CustomEvent<any>) => void;\n onFilterCleared?: (e: CustomEvent<any>) => void;\n onReactGridCreated?: (e: CustomEvent<any>) => void;\n onSortChanged?: (e: CustomEvent<any>) => void;\n onToggleTreeCollapsed?: (e: CustomEvent<any>) => void;\n onTreeItemToggled?: (e: CustomEvent<any>) => void;\n onTreeFullToggleEnd?: (e: CustomEvent<any>) => void;\n onTreeFullToggleStart?: (e: CustomEvent<any>) => void;\n}\n"]}
1
+ {"version":3,"file":"slickgridReactProps.js","sourceRoot":"","sources":["../../src/components/slickgridReactProps.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Column,\n ContainerService,\n DragRowMove,\n ExtensionList,\n GridMenuCommandItemCallbackArgs,\n GridMenuEventWithElementCallbackArgs,\n GridOption,\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 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 OnSelectedRowsChangedEventArgs,\n OnSetItemsCalledEventArgs,\n OnSetOptionsEventArgs,\n OnValidationErrorEventArgs,\n Pagination,\n PaginationChangedArgs,\n PagingInfo,\n SingleColumnSort,\n SlickControlList,\n SlickDataView,\n SlickGrid,\n SlickPluginList,\n SlickRange,\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?: (e: CustomEvent<{ eventData: any; args: OnActiveCellChangedEventArgs }>) => void;\n onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onAddNewRow?: (e: CustomEvent<{ eventData: any; args: OnAddNewRowEventArgs }>) => void;\n onAutosizeColumns?: (e: CustomEvent<{ eventData: any; args: OnAutosizeColumnsEventArgs }>) => void;\n onBeforeAppendCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeAppendCellEventArgs }>) => void;\n onBeforeSearchChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;\n onBeforeCellEditorDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeCellEditorDestroyEventArgs }>) => void;\n onBeforeColumnsResize?: (e: CustomEvent<{ eventData: any; args: OnBeforeColumnsResizeEventArgs }>) => void;\n onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onBeforeEditCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeEditCellEventArgs }>) => void;\n onBeforeHeaderCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderCellDestroyEventArgs }>) => void;\n onBeforeHeaderRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderRowCellDestroyEventArgs }>) => void;\n onBeforeFooterRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeFooterRowCellDestroyEventArgs }>) => void;\n onBeforeSetColumns?: (e: CustomEvent<{ eventData: any; args: OnBeforeSetColumnsEventArgs }>) => void;\n onBeforeSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;\n onCellChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs }>) => void;\n onCellCssStylesChanged?: (e: CustomEvent<{ eventData: any; args: OnCellCssStylesChangedEventArgs }>) => void;\n onClick?: (e: CustomEvent<{ eventData: any; args: OnClickEventArgs }>) => void;\n onColumnsDrag?: (e: CustomEvent<{ eventData: any; args: OnColumnsDragEventArgs }>) => void;\n onColumnsReordered?: (e: CustomEvent<{ eventData: any; args: OnColumnsReorderedEventArgs }>) => void;\n onColumnsResized?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizedEventArgs }>) => void;\n onColumnsResizeDblClick?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizeDblClickEventArgs }>) => void;\n onCompositeEditorChange?: (e: CustomEvent<{ eventData: any; args: OnCompositeEditorChangeEventArgs }>) => void;\n onContextMenu?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onDrag?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragEnd?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragInit?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragStart?: (e: CustomEvent<{ eventData: any; args: DragRowMove }>) => void;\n onDragReplaceCells?: (e: CustomEvent<{ eventData: any; args: OnDragReplaceCellsEventArgs }>) => void;\n onDblClick?: (e: CustomEvent<{ eventData: any; args: OnDblClickEventArgs }>) => void;\n onFooterContextMenu?: (e: CustomEvent<{ eventData: any; args: OnFooterContextMenuEventArgs }>) => void;\n onFooterRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnFooterRowCellRenderedEventArgs }>) => void;\n onHeaderCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderCellRenderedEventArgs }>) => void;\n onFooterClick?: (e: CustomEvent<{ eventData: any; args: OnFooterClickEventArgs }>) => void;\n onHeaderClick?: (e: CustomEvent<{ eventData: any; args: OnHeaderClickEventArgs }>) => void;\n onHeaderContextMenu?: (e: CustomEvent<{ eventData: any; args: OnHeaderContextMenuEventArgs }>) => void;\n onHeaderMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderRowCellRendered?: (e: CustomEvent<{ eventData: any; args: OnHeaderRowCellRenderedEventArgs }>) => void;\n onHeaderRowMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onHeaderRowMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs }>) => void;\n onKeyDown?: (e: CustomEvent<{ eventData: any; args: OnKeyDownEventArgs }>) => void;\n onMouseEnter?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onMouseLeave?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onValidationError?: (e: CustomEvent<{ eventData: any; args: OnValidationErrorEventArgs }>) => void;\n onViewportChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid } }>) => void;\n onRendered?: (e: CustomEvent<{ eventData: any; args: OnRenderedEventArgs }>) => void;\n onSelectedRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnSelectedRowsChangedEventArgs }>) => void;\n onSetOptions?: (e: CustomEvent<{ eventData: any; args: OnSetOptionsEventArgs }>) => void;\n onScroll?: (e: CustomEvent<{ eventData: any; args: OnScrollEventArgs }>) => void;\n onSort?: (e: CustomEvent<{ eventData: any; args: SingleColumnSort }>) => void;\n\n // Slick DataView events\n onBeforePagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;\n onGroupExpanded?: (e: CustomEvent<{ eventData: any; args: OnGroupExpandedEventArgs }>) => void;\n onGroupCollapsed?: (e: CustomEvent<{ eventData: any; args: OnGroupCollapsedEventArgs }>) => void;\n onPagingInfoChanged?: (e: CustomEvent<{ eventData: any; args: PagingInfo }>) => void;\n onRowCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowCountChangedEventArgs }>) => void;\n onRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsChangedEventArgs }>) => void;\n onRowsOrCountChanged?: (e: CustomEvent<{ eventData: any; args: OnRowsOrCountChangedEventArgs }>) => void;\n onSetItemsCalled?: (e: CustomEvent<{ eventData: any; args: OnSetItemsCalledEventArgs }>) => void;\n\n // Slickgrid-React events\n onAfterExportToExcel?: (e: CustomEvent<any>) => void;\n onBeforeExportToExcel?: (e: CustomEvent<any>) => void;\n onBeforeFilterChange?: (e: CustomEvent<any>) => void;\n onBeforeFilterClear?: (e: CustomEvent<any>) => void;\n onBeforeSortChange?: (e: CustomEvent<any>) => void;\n onBeforeToggleTreeCollapse?: (e: CustomEvent<any>) => void;\n onContextMenuClearGrouping?: (e: CustomEvent<any>) => void;\n onContextMenuCollapseAllGroups?: (e: CustomEvent<any>) => void;\n onContextMenuExpandAllGroups?: (e: CustomEvent<any>) => void;\n onAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onAfterGridDestroyed?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeMenuClose?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onBeforeGridDestroy?: (e: CustomEvent<{ eventData: any; args: MenuFromCellCallbackArgs }>) => void;\n onCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;\n onOptionSelected?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs | MenuOptionItemCallbackArgs }>) => void;\n onColumnPickerColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onGridMenuMenuClose?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: GridMenuEventWithElementCallbackArgs }>) => void;\n onGridMenuClearAllPinning?: (e: CustomEvent<any>) => void;\n onGridMenuClearAllFilters?: (e: CustomEvent<any>) => void;\n onGridMenuClearAllSorting?: (e: CustomEvent<any>) => void;\n onGridMenuColumnsChanged?: (\n e: CustomEvent<{\n eventData: any;\n args: {\n columnId: string;\n showing: boolean;\n allColumns: Column[];\n visibleColumns: Column[];\n columns: Column[];\n grid: SlickGrid;\n };\n }>\n ) => void;\n onGridMenuCommand?: (e: CustomEvent<{ eventData: any; args: GridMenuCommandItemCallbackArgs }>) => void;\n onHeaderButtonCommand?: (e: CustomEvent<{ eventData: any; args: HeaderButtonOnCommandArgs }>) => void;\n onCopyCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onCopyCancelled?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onPasteCells?: (e: CustomEvent<{ eventData: any; args: { ranges: SlickRange[] } }>) => void;\n onBeforePasteCell?: (\n e: CustomEvent<{ eventData: any; args: { cell: number; row: number; item: any; columnDef: Column; value: any } }>\n ) => void;\n onHeaderMenuCommand?: (e: CustomEvent<{ eventData: any; args: MenuCommandItemCallbackArgs }>) => void;\n onHeaderMenuColumnResizeByContent?: (e: CustomEvent<{ eventData: any; args: { columnId: string } }>) => void;\n onHeaderMenuBeforeMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;\n onHeaderMenuAfterMenuShow?: (e: CustomEvent<{ eventData: any; args: HeaderMenuCommandItemCallbackArgs }>) => void;\n onHideColumns?: (e: CustomEvent<{ eventData: any; args: { columns: Column[]; hiddenColumn: Column[] } }>) => void;\n onItemsAdded?: (e: CustomEvent<any>) => void;\n onItemsDeleted?: (e: CustomEvent<any>) => void;\n onItemsUpdated?: (e: CustomEvent<any>) => void;\n onItemsUpserted?: (e: CustomEvent<any>) => void;\n onFullResizeByContentRequested?: (e: CustomEvent<any>) => void;\n onGridStateChanged?: (e: CustomEvent<any>) => void;\n onBeforePaginationChange?: (e: CustomEvent<any>) => void;\n onPaginationChanged?: (e: CustomEvent<PaginationChangedArgs>) => void;\n onPaginationRefreshed?: (e: CustomEvent<any>) => void;\n onPaginationVisibilityChanged?: (e: CustomEvent<any>) => void;\n onPaginationSetCursorBased?: (e: CustomEvent<any>) => void;\n onGridBeforeResize?: (e: CustomEvent<any>) => void;\n onGridAfterResize?: (e: CustomEvent<any>) => void;\n onBeforeResizeByContent?: (e: CustomEvent<any>) => void;\n onAfterResizeByContent?: (e: CustomEvent<any>) => void;\n onSelectedRowIdsChanged?: (e: CustomEvent<any>) => void;\n onSortCleared?: (e: CustomEvent<any>) => void;\n onFilterChanged?: (e: CustomEvent<any>) => void;\n onFilterCleared?: (e: CustomEvent<any>) => void;\n onReactGridCreated?: (e: CustomEvent<any>) => void;\n onSortChanged?: (e: CustomEvent<any>) => void;\n onToggleTreeCollapsed?: (e: CustomEvent<any>) => void;\n onTreeItemToggled?: (e: CustomEvent<any>) => void;\n onTreeFullToggleEnd?: (e: CustomEvent<any>) => void;\n onTreeFullToggleStart?: (e: CustomEvent<any>) => void;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"i18nextContext.js","sourceRoot":"","sources":["../../src/contexts/i18nextContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAiB,IAAI,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { I18Next } from '../models/i18next.interface.js';\n\nexport const I18nextContext = React.createContext<I18Next | null>(null);\nexport const I18nextProvider = I18nextContext.Provider;\nexport const useI18next = () => React.useContext(I18nextContext);\n"]}
1
+ {"version":3,"file":"i18nextContext.js","sourceRoot":"","sources":["../../src/contexts/i18nextContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAiB,IAAI,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport type { I18Next } from '../models/i18next.interface.js';\n\nexport const I18nextContext = React.createContext<I18Next | null>(null);\nexport const I18nextProvider = I18nextContext.Provider;\nexport const useI18next = () => React.useContext(I18nextContext);\n"]}
@@ -1,4 +1,4 @@
1
- import { type EventSubscription, type OnBeforeRowDetailToggleArgs, type OnRowBackOrOutOfViewportRangeArgs, SlickEventData, type SlickGrid, SlickRowSelectionModel } from '@slickgrid-universal/common';
1
+ import { SlickEventData, type EventSubscription, type OnBeforeRowDetailToggleArgs, type OnRowBackOrOutOfViewportRangeArgs, type SelectionModel, type SlickGrid } from '@slickgrid-universal/common';
2
2
  import { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';
3
3
  import { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';
4
4
  import type { Root } from 'react-dom/client';
@@ -35,7 +35,7 @@ export declare class SlickRowDetailView extends UniversalSlickRowDetailView {
35
35
  * Create the plugin before the Grid creation, else it will behave oddly.
36
36
  * Mostly because the column definitions might change after the grid creation
37
37
  */
38
- register(rowSelectionPlugin?: SlickRowSelectionModel): this;
38
+ register(rowSelectionPlugin?: SelectionModel): this;
39
39
  /** Redraw (re-render) all the expanded row detail View Components */
40
40
  redrawAllViewComponents(forceRedraw?: boolean): Promise<void>;
41
41
  /** Render all the expanded row detail View Components */
@@ -1,4 +1,4 @@
1
- import { addToArrayWhenNotExists, createDomElement, SlickEventData, SlickRowSelectionModel, unsubscribeAll, } from '@slickgrid-universal/common';
1
+ import { addToArrayWhenNotExists, createDomElement, SlickEventData, SlickHybridSelectionModel, SlickRowSelectionModel, unsubscribeAll, } from '@slickgrid-universal/common';
2
2
  import { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';
3
3
  import { createReactComponentDynamically } from '../services/reactUtils.js';
4
4
  const ROW_DETAIL_CONTAINER_PREFIX = 'container_';
@@ -51,9 +51,9 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
51
51
  }
52
52
  init(grid) {
53
53
  this._grid = grid;
54
- super.init(this._grid);
54
+ super.init(grid);
55
55
  this.gridContainerElement = grid.getContainerNode();
56
- this.register(grid?.getSelectionModel());
56
+ this.register(grid.getSelectionModel());
57
57
  }
58
58
  /**
59
59
  * Create the plugin before the Grid creation, else it will behave oddly.
@@ -73,17 +73,18 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
73
73
  // load the Preload & RowDetail Templates (could be straight HTML or React Components)
74
74
  // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)
75
75
  if (!this.gridOptions.rowDetailView.preTemplate) {
76
- this._preloadComponent = this.gridOptions?.rowDetailView?.preloadComponent;
76
+ this._preloadComponent = this.gridOptions.rowDetailView.preloadComponent;
77
77
  this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });
78
78
  }
79
79
  if (!this.gridOptions.rowDetailView.postTemplate) {
80
- this._component = this.gridOptions?.rowDetailView?.viewComponent;
80
+ this._component = this.gridOptions.rowDetailView.viewComponent;
81
81
  this.addonOptions.postTemplate = (itemDetail) => createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });
82
82
  }
83
83
  if (this._grid && this.gridOptions) {
84
84
  // this also requires the Row Selection Model to be registered as well
85
85
  if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {
86
- rowSelectionPlugin = new SlickRowSelectionModel(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });
86
+ const SelectionModelClass = this.gridOptions.enableHybridSelection ? SlickHybridSelectionModel : SlickRowSelectionModel;
87
+ rowSelectionPlugin = new SelectionModelClass(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });
87
88
  this._grid.setSelectionModel(rowSelectionPlugin);
88
89
  }
89
90
  // hook all events
@@ -147,7 +148,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
147
148
  // we need to redraw the open detail views if we change column position (column reorder)
148
149
  this.eventHandler.subscribe(this._grid.onColumnsReordered, () => this.redrawAllViewComponents(false));
149
150
  // on row selection changed, we also need to redraw
150
- if (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector) {
151
+ if (this.gridOptions.enableRowSelection || this.gridOptions.enableHybridSelection || this.gridOptions.enableCheckboxSelector) {
151
152
  this._eventHandler.subscribe(this._grid.onSelectedRowsChanged, () => this.redrawAllViewComponents(false));
152
153
  }
153
154
  // on column sort/reorder, all row detail are collapsed so we can dispose of all the Views as well
@@ -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 type EventSubscription,\n type OnBeforeRowDetailToggleArgs,\n type OnRowBackOrOutOfViewportRangeArgs,\n SlickEventData,\n type SlickGrid,\n SlickRowSelectionModel,\n unsubscribeAll,\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';\n\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(this._grid);\n this.gridContainerElement = grid.getContainerNode();\n this.register(grid?.getSelectionModel() as SlickRowSelectionModel);\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?: SlickRowSelectionModel) {\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 rowSelectionPlugin = new SlickRowSelectionModel(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.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(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 +1 @@
1
- {"version":3,"file":"global-grid-options.js","sourceRoot":"","sources":["../src/global-grid-options.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Column, DelimiterType, EventNamingStyle, Filters, type TreeDataOption } from '@slickgrid-universal/common';\n\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 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"]}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import 'regenerator-runtime/runtime.js';
2
- export * from '@slickgrid-universal/common';
3
1
  import { SlickgridReact } from './components/slickgrid-react.js';
4
2
  import { SlickRowDetailView } from './extensions/slickRowDetailView.js';
3
+ import type { GridOption, RowDetailView, SlickgridReactComponentOutput, SlickgridReactInstance } from './models/index.js';
5
4
  import type { SlickgridConfig } from './slickgrid-config.js';
6
- import type { SlickgridReactInstance, SlickgridReactComponentOutput, RowDetailView, GridOption } from './models/index.js';
5
+ export * from '@slickgrid-universal/common';
7
6
  export { TranslaterI18NextService, disposeAllSubscriptions } from './services/index.js';
8
7
  export { I18nextContext, I18nextProvider } from './contexts/i18nextContext.js';
9
8
  export { type SlickgridReactInstance, type SlickgridReactComponentOutput, type GridOption, type RowDetailView, SlickgridReact, SlickgridConfig, SlickRowDetailView, };
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
- import 'regenerator-runtime/runtime.js';
2
- export * from '@slickgrid-universal/common';
3
1
  import { SlickgridReact } from './components/slickgrid-react.js';
4
2
  import { SlickRowDetailView } from './extensions/slickRowDetailView.js';
3
+ export * from '@slickgrid-universal/common';
5
4
  // expose all public classes & contexts
6
5
  export { TranslaterI18NextService, disposeAllSubscriptions } from './services/index.js';
7
6
  export { I18nextContext, I18nextProvider } from './contexts/i18nextContext.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAIxE,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,EAKL,cAAc,EAEd,kBAAkB,GACnB,CAAC","sourcesContent":["import 'regenerator-runtime/runtime.js';\nexport * from '@slickgrid-universal/common';\n\nimport { SlickgridReact } from './components/slickgrid-react.js';\nimport { SlickRowDetailView } from './extensions/slickRowDetailView.js';\nimport type { SlickgridConfig } from './slickgrid-config.js';\nimport type { SlickgridReactInstance, SlickgridReactComponentOutput, RowDetailView, GridOption } from './models/index.js';\n\n// expose all public classes & contexts\nexport { TranslaterI18NextService, disposeAllSubscriptions } from './services/index.js';\nexport { I18nextContext, I18nextProvider } from './contexts/i18nextContext.js';\n\nexport {\n type SlickgridReactInstance,\n type SlickgridReactComponentOutput,\n type GridOption,\n type RowDetailView,\n SlickgridReact,\n SlickgridConfig,\n SlickRowDetailView,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAIxE,cAAc,6BAA6B,CAAC;AAE5C,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,EAKL,cAAc,EAEd,kBAAkB,GACnB,CAAC","sourcesContent":["import { SlickgridReact } from './components/slickgrid-react.js';\nimport { SlickRowDetailView } from './extensions/slickRowDetailView.js';\nimport type { GridOption, RowDetailView, SlickgridReactComponentOutput, SlickgridReactInstance } from './models/index.js';\nimport type { SlickgridConfig } from './slickgrid-config.js';\n\nexport * from '@slickgrid-universal/common';\n\n// expose all public classes & contexts\nexport { TranslaterI18NextService, disposeAllSubscriptions } from './services/index.js';\nexport { I18nextContext, I18nextProvider } from './contexts/i18nextContext.js';\n\nexport {\n type SlickgridReactInstance,\n type SlickgridReactComponentOutput,\n type GridOption,\n type RowDetailView,\n SlickgridReact,\n SlickgridConfig,\n SlickRowDetailView,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gridOption.interface.js","sourceRoot":"","sources":["../../src/models/gridOption.interface.ts"],"names":[],"mappings":"","sourcesContent":["import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\n\nimport type { I18Next } from './i18next.interface.js';\nimport type { RowDetailView } from './rowDetailView.interface.js';\n\nexport interface GridOption extends UniversalGridOption {\n /** External Custom Pagination Component that can be provided by the user */\n customPaginationComponent?:\n | typeof BasePaginationComponent\n | (() => BasePaginationModel)\n | ForwardRefExoticComponent<any & RefAttributes<any>>;\n\n /** I18N translation service instance */\n i18n?: I18Next;\n\n /** Row Detail View Plugin options & events (columnId, cssClass, toolTip, width) */\n rowDetailView?: RowDetailView;\n}\n"]}
1
+ {"version":3,"file":"gridOption.interface.js","sourceRoot":"","sources":["../../src/models/gridOption.interface.ts"],"names":[],"mappings":"","sourcesContent":["import type { BasePaginationComponent, BasePaginationModel, GridOption as UniversalGridOption } from '@slickgrid-universal/common';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { I18Next } from './i18next.interface.js';\nimport type { RowDetailView } from './rowDetailView.interface.js';\n\nexport interface GridOption extends UniversalGridOption {\n /** External Custom Pagination Component that can be provided by the user */\n customPaginationComponent?:\n | typeof BasePaginationComponent\n | (() => BasePaginationModel)\n | ForwardRefExoticComponent<any & RefAttributes<any>>;\n\n /** I18N translation service instance */\n i18n?: I18Next;\n\n /** Row Detail View Plugin options & events (columnId, cssClass, toolTip, width) */\n rowDetailView?: RowDetailView;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reactComponentOutput.interface.js","sourceRoot":"","sources":["../../src/models/reactComponentOutput.interface.ts"],"names":[],"mappings":"","sourcesContent":["/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport React, { type ReactInstance } from 'react';\n\nexport interface SlickgridReactComponentOutput {\n componentInstance?: ReactInstance;\n componentElement?: React.CElement<any, React.Component<any, any, any>>;\n domElement?: Element | Text | null;\n}\n"]}
1
+ {"version":3,"file":"reactComponentOutput.interface.js","sourceRoot":"","sources":["../../src/models/reactComponentOutput.interface.ts"],"names":[],"mappings":"","sourcesContent":["/* oxlint-disable @typescript-eslint/consistent-type-imports */\nimport React, { type ReactInstance } from 'react';\n\nexport interface SlickgridReactComponentOutput {\n componentInstance?: ReactInstance;\n componentElement?: React.CElement<any, React.Component<any, any, any>>;\n domElement?: Element | Text | null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"singletons.js","sourceRoot":"","sources":["../../src/services/singletons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,aAAa,EAAE,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,gBAAgB,EAAE,CAAC","sourcesContent":["import { SharedService } from '@slickgrid-universal/common';\nimport { EventPubSubService } from '@slickgrid-universal/event-pub-sub';\n\nimport { ContainerService } from './container.service.js';\n\nexport const GlobalEventPubSubService = new EventPubSubService();\nexport const GlobalEventSharedService = new SharedService();\nexport const GlobalContainerService = new ContainerService();\n"]}
1
+ {"version":3,"file":"singletons.js","sourceRoot":"","sources":["../../src/services/singletons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,aAAa,EAAE,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,gBAAgB,EAAE,CAAC","sourcesContent":["import { SharedService } from '@slickgrid-universal/common';\nimport { EventPubSubService } from '@slickgrid-universal/event-pub-sub';\nimport { ContainerService } from './container.service.js';\n\nexport const GlobalEventPubSubService = new EventPubSubService();\nexport const GlobalEventSharedService = new SharedService();\nexport const GlobalContainerService = new ContainerService();\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"translaterI18Next.service.js","sourceRoot":"","sources":["../../src/services/translaterI18Next.service.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IAC5B,IAAI,CAAW;IAEtB,8BAA8B;IAC9B,IAAI,YAAY,CAAC,IAAa;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAsB;QAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import type { TranslaterService as UniversalTranslateService } from '@slickgrid-universal/common';\n\nimport type { I18Next } from '../models/i18next.interface.js';\n\n/**\n * This is a Translate Service Wrapper for Slickgrid-Universal monorepo lib to work properly,\n * it must implement Slickgrid-Universal TranslaterService interface to work properly\n */\nexport class TranslaterI18NextService implements UniversalTranslateService {\n public i18n?: I18Next;\n\n /** I18Next instance setter */\n set i18nInstance(i18n: I18Next) {\n this.i18n = i18n;\n }\n\n /**\n * Method to return the current language used by the App\n * @return {string} current language\n */\n getCurrentLanguage(): string {\n return this.i18n?.language || '';\n }\n\n /**\n * Method to set the language to use in the App and Translate Service\n * @param {string} language\n * @return {Promise} output\n */\n async use(newLang: string): Promise<any> {\n return this.i18n?.changeLanguage(newLang);\n }\n\n /**\n * Method which receives a translation key and returns the translated value assigned to that key\n * @param {string} translation key\n * @return {string} translated value\n */\n translate(translationKey: string): string {\n return this.i18n?.t(translationKey) || '';\n }\n}\n"]}
1
+ {"version":3,"file":"translaterI18Next.service.js","sourceRoot":"","sources":["../../src/services/translaterI18Next.service.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IAC5B,IAAI,CAAW;IAEtB,8BAA8B;IAC9B,IAAI,YAAY,CAAC,IAAa;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAsB;QAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import type { TranslaterService as UniversalTranslateService } from '@slickgrid-universal/common';\nimport type { I18Next } from '../models/i18next.interface.js';\n\n/**\n * This is a Translate Service Wrapper for Slickgrid-Universal monorepo lib to work properly,\n * it must implement Slickgrid-Universal TranslaterService interface to work properly\n */\nexport class TranslaterI18NextService implements UniversalTranslateService {\n public i18n?: I18Next;\n\n /** I18Next instance setter */\n set i18nInstance(i18n: I18Next) {\n this.i18n = i18n;\n }\n\n /**\n * Method to return the current language used by the App\n * @return {string} current language\n */\n getCurrentLanguage(): string {\n return this.i18n?.language || '';\n }\n\n /**\n * Method to set the language to use in the App and Translate Service\n * @param {string} language\n * @return {Promise} output\n */\n async use(newLang: string): Promise<any> {\n return this.i18n?.changeLanguage(newLang);\n }\n\n /**\n * Method which receives a translation key and returns the translated value assigned to that key\n * @param {string} translation key\n * @return {string} translated value\n */\n translate(translationKey: string): string {\n return this.i18n?.t(translationKey) || '';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"slickgrid-config.js","sourceRoot":"","sources":["../src/slickgrid-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,OAAO,eAAe;IAC1B,OAAO,CAAsB;IAE7B;QACE,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,CAAC;CACF","sourcesContent":["import type { GridOption } from './models/gridOption.interface.js';\nimport { GlobalGridOptions } from './global-grid-options.js';\n\nexport class SlickgridConfig {\n options: Partial<GridOption>;\n\n constructor() {\n this.options = GlobalGridOptions;\n }\n}\n"]}
1
+ {"version":3,"file":"slickgrid-config.js","sourceRoot":"","sources":["../src/slickgrid-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,OAAO,eAAe;IAC1B,OAAO,CAAsB;IAE7B;QACE,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { GlobalGridOptions } from './global-grid-options.js';\nimport type { GridOption } from './models/gridOption.interface.js';\n\nexport class SlickgridConfig {\n options: Partial<GridOption>;\n\n constructor() {\n this.options = GlobalGridOptions;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slickgrid-react",
3
- "version": "9.8.0",
3
+ "version": "9.10.0",
4
4
  "description": "Slickgrid components made available in React",
5
5
  "keywords": [
6
6
  "react",
@@ -19,7 +19,7 @@
19
19
  "./package.json": "./package.json"
20
20
  },
21
21
  "types": "./dist/index.d.ts",
22
- "homepage": "https://github.com/ghiscoding/slickgrid-universal/tree/master/frameworks/slickgrid-react",
22
+ "homepage": "https://ghiscoding.github.io/slickgrid-react-demos",
23
23
  "repository": {
24
24
  "type": "git",
25
25
  "url": "git+https://github.com/ghiscoding/slickgrid-universal.git",
@@ -57,18 +57,18 @@
57
57
  "/src"
58
58
  ],
59
59
  "dependencies": {
60
- "@slickgrid-universal/common": "9.8.0",
61
- "@slickgrid-universal/custom-footer-component": "9.8.0",
62
- "@slickgrid-universal/empty-warning-component": "9.8.0",
63
- "@slickgrid-universal/event-pub-sub": "9.8.0",
64
- "@slickgrid-universal/pagination-component": "9.8.0",
65
- "@slickgrid-universal/row-detail-view-plugin": "9.8.0",
66
- "@slickgrid-universal/utils": "9.8.0",
60
+ "@slickgrid-universal/common": "9.10.0",
61
+ "@slickgrid-universal/custom-footer-component": "9.10.0",
62
+ "@slickgrid-universal/empty-warning-component": "9.10.0",
63
+ "@slickgrid-universal/event-pub-sub": "9.10.0",
64
+ "@slickgrid-universal/pagination-component": "9.10.0",
65
+ "@slickgrid-universal/row-detail-view-plugin": "9.10.0",
66
+ "@slickgrid-universal/utils": "9.10.0",
67
67
  "dequal": "^2.0.3",
68
68
  "sortablejs": "^1.15.6"
69
69
  },
70
70
  "peerDependencies": {
71
71
  "react": ">=19.0.0"
72
72
  },
73
- "gitHead": "c18cbb7edf292e2ac4025cafeb1911a4f3eeb38b"
73
+ "gitHead": "350beeb8f9551a17d88533a28d3330efb8bf00a5"
74
74
  }