@revolist/revogrid 4.27.0 → 4.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/{cell-renderer-C7rdgaov.js → cell-renderer-BDIx0xys.js} +1 -1
  2. package/dist/cjs/{column.service-Bbml5C2j.js → column.service-D-ENzqyb.js} +2 -0
  3. package/dist/cjs/{header-cell-renderer-BljFI6wj.js → header-cell-renderer-B5Y4fdZC.js} +1 -1
  4. package/dist/cjs/index.cjs.js +5 -4
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/revo-grid.cjs.entry.js +61 -41
  7. package/dist/cjs/revo-grid.cjs.js +1 -1
  8. package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
  9. package/dist/cjs/revogr-data_4.cjs.entry.js +3 -3
  10. package/dist/cjs/{row-resize.plugin-BRQy_qNn.js → row-resize.plugin-sK9_rcUN.js} +299 -180
  11. package/dist/collection/components/revoGrid/revo-grid.js +37 -21
  12. package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
  13. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +84 -54
  14. package/dist/collection/plugins/groupingRow/grouping.sorting.service.js +58 -0
  15. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +5 -3
  16. package/dist/collection/plugins/row-resize/row-resize.plugin.js +144 -113
  17. package/dist/collection/plugins/sorting/sorting.plugin.js +16 -13
  18. package/dist/collection/plugins/wcag/index.js +5 -4
  19. package/dist/collection/services/dimension.provider.js +17 -1
  20. package/dist/esm/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
  21. package/dist/esm/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
  22. package/dist/{revo-grid/header-cell-renderer-Bqh1PrgH.js → esm/header-cell-renderer-YCiVIQ2E.js} +1 -1
  23. package/dist/esm/index.js +5 -5
  24. package/dist/esm/loader.js +1 -1
  25. package/dist/esm/revo-grid.entry.js +61 -41
  26. package/dist/esm/revo-grid.js +1 -1
  27. package/dist/esm/revogr-attribution_7.entry.js +1 -1
  28. package/dist/esm/revogr-data_4.entry.js +3 -3
  29. package/dist/esm/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-DBOgjLdE.js} +300 -181
  30. package/dist/revo-grid/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
  31. package/dist/revo-grid/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
  32. package/dist/{esm/header-cell-renderer-Bqh1PrgH.js → revo-grid/header-cell-renderer-YCiVIQ2E.js} +1 -1
  33. package/dist/revo-grid/index.esm.js +5 -5
  34. package/dist/revo-grid/revo-grid.entry.js +61 -41
  35. package/dist/revo-grid/revo-grid.esm.js +1 -1
  36. package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
  37. package/dist/revo-grid/revogr-data_4.entry.js +3 -3
  38. package/dist/revo-grid/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-DBOgjLdE.js} +300 -181
  39. package/dist/types/components/revoGrid/revo-grid.d.ts +2 -0
  40. package/dist/types/plugins/groupingRow/grouping.const.d.ts +1 -0
  41. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +5 -7
  42. package/dist/types/plugins/groupingRow/grouping.sorting.service.d.ts +7 -0
  43. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +9 -0
  44. package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +14 -12
  45. package/dist/types/plugins/sorting/sorting.plugin.d.ts +5 -0
  46. package/dist/types/services/dimension.provider.d.ts +7 -1
  47. package/hydrate/index.js +358 -218
  48. package/hydrate/index.mjs +358 -218
  49. package/package.json +1 -1
  50. package/standalone/column.service.js +1 -1
  51. package/standalone/index.js +1 -1
  52. package/standalone/revo-grid.js +1 -1
  53. package/standalone/revogr-data2.js +1 -1
  54. package/standalone/revogr-header2.js +1 -1
  55. package/standalone/revogr-overlay-selection2.js +1 -1
@@ -690,6 +690,7 @@ export declare class RevoGridComponent {
690
690
  applyFilter(cfg: boolean | ColumnFilterConfig): void;
691
691
  applySorting(cfg?: SortingConfig): void;
692
692
  rowHeadersChange(rowHeaders?: RowHeaders | boolean): void;
693
+ resizeRowChanged(): void;
693
694
  /**
694
695
  * Register external VNodes
695
696
  */
@@ -705,6 +706,7 @@ export declare class RevoGridComponent {
705
706
  pluginsChanged(plugins?: GridPlugin[], prevPlugins?: GridPlugin[]): void;
706
707
  private setPlugins;
707
708
  private setCorePlugins;
709
+ private syncRowResizeConfig;
708
710
  getPluginData(): PluginProviders | undefined;
709
711
  private removePlugins;
710
712
  connectedCallback(): void;
@@ -9,4 +9,5 @@ export declare const GROUP_COLUMN_PROP = "__rvgr-prop";
9
9
  export declare const GROUP_ORIGINAL_INDEX = "__rvgr-original-index";
10
10
  export declare const GROUP_EXPAND_BTN = "group-expand";
11
11
  export declare const GROUP_EXPAND_EVENT = "groupexpandclick";
12
+ export declare const BEFORE_GROUPING_APPLY_EVENT = "beforegroupingapply";
12
13
  export declare const GROUPING_ROW_TYPE: DimensionRows;
@@ -19,15 +19,12 @@ export declare class GroupingRowPlugin extends BasePlugin {
19
19
  private onDrag;
20
20
  private beforeTrimmedApply;
21
21
  private beforeFilterTrimmed;
22
- private isSortingRunning;
23
22
  /**
24
- * Returns grouping options for regrouping that must preserve current UI state.
25
- *
26
- * `expandedAll` and config `prevExpanded` are initial/config instructions.
27
- * Reusing them after sorting would reopen groups the user collapsed before
28
- * sorting instead of using the current grouped source state.
23
+ * Sorting changes proxy order without changing the physical source baseline.
24
+ * Other proxy changes, such as row dragging, are user-authored source order
25
+ * and must be retained when grouping is rebuilt.
29
26
  */
30
- private getCurrentExpandedOptions;
27
+ private isSortingActiveOrPending;
31
28
  /**
32
29
  * Starts global source update with group clearing and applying new one
33
30
  * Initiated when need to reapply grouping
@@ -44,5 +41,6 @@ export declare class GroupingRowPlugin extends BasePlugin {
44
41
  */
45
42
  setGrouping(options: GroupingOptions): void;
46
43
  clearGrouping(): void;
44
+ private remapRowDefinitions;
47
45
  private updateTrimmed;
48
46
  }
@@ -0,0 +1,7 @@
1
+ import type { DataType } from "../../types/index";
2
+ /**
3
+ * Restores group headers around already-sorted data indexes without rebuilding
4
+ * the physical source. Group insertion order follows the first sorted member,
5
+ * matching the order produced by regrouping a sorted source.
6
+ */
7
+ export declare function gatherGroupedRowIndexes(source: DataType[], sortedDataIndexes: number[]): number[] | undefined;
@@ -1,6 +1,15 @@
1
1
  import { Trimmed, TrimmedEntity } from "../../store/index";
2
2
  import type { DataType } from "../../types/index";
3
3
  export declare const TRIMMED_GROUPING = "grouping";
4
+ /**
5
+ * Converts a trim row index through the index maps produced while regrouping.
6
+ *
7
+ * Group rows are synthetic, so they may not exist in the first map. When a
8
+ * second map is available, fall back to the original index so trims created
9
+ * against the grouped physical source can still be remapped. If neither path
10
+ * resolves to a number, the caller drops the stale trim entry.
11
+ */
12
+ export declare function convertGroupingIndex(initialIndex: string | number, firstLevelMap: Record<number, number>, secondLevelMap?: Record<number, number>): number;
4
13
  /**
5
14
  * Prepare trimming updated indexes for grouping
6
15
  * @param initiallyTrimed
@@ -9,20 +9,18 @@ export declare const ROW_RESIZE_CANCEL_EVENT = "rowresizecancel";
9
9
  export declare class RowResizePlugin extends BasePlugin {
10
10
  private config;
11
11
  private enabled;
12
- private gridResizeRow;
13
- private gridPlugins;
14
12
  private active?;
15
- private readonly committedSizes;
16
- private readonly appliedIndexes;
13
+ private readonly appliedDefinitionIndexes;
17
14
  private animationFrame?;
18
15
  private pendingHeight?;
16
+ private pendingBottomAnchor;
17
+ private keepBottomAnchor;
18
+ private rowDefinitionRemapQueued;
19
+ private readonly pendingSourceCounts;
19
20
  private previousBodyCursor;
20
- private rowDefinitionsRef;
21
- static fromGridProperty(revogrid: HTMLRevoGridElement, providers: PluginProviders): RowResizePlugin;
22
21
  constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders, config?: RowResizeConfig);
23
22
  private registerEventListeners;
24
- private controlFromGridProperty;
25
- private syncGridProperty;
23
+ syncGridConfig(refresh?: boolean): void;
26
24
  private readonly decorateRow;
27
25
  private readonly cancelForDataChange;
28
26
  private startResize;
@@ -35,10 +33,14 @@ export declare class RowResizePlugin extends BasePlugin {
35
33
  private cancel;
36
34
  private eventDetail;
37
35
  private commitResize;
38
- private readonly reapplyCommittedSizes;
39
- private readonly rebuildCommittedSizes;
40
- private applyCommittedSizes;
41
- private readonly syncAppliedIndexes;
36
+ private requestBottomAnchor;
37
+ private isMainViewportAtBottom;
38
+ private readonly updateBottomAnchorState;
39
+ private readonly applyPendingBottomAnchor;
40
+ private readonly scheduleRowDefinitionRemap;
41
+ private pruneRowDefinitions;
42
+ /** Map source-indexed row definitions back onto the current virtual order. */
43
+ private readonly reapplyRowDefinitionSizes;
42
44
  private finishGesture;
43
45
  destroy(): void;
44
46
  }
@@ -85,6 +85,11 @@ export declare class SortingPlugin extends BasePlugin {
85
85
  */
86
86
  startSorting(order?: SortingOrder, sortingFunc?: SortingOrderFunction, ignoreViewportUpdate?: boolean): void;
87
87
  startSorting(order?: SortingOrder, sortingFunc?: SortingOrderFunction, sortingColumns?: SortingColumnMap, sortingOrder?: SortingColumnOrder, ignoreViewportUpdate?: boolean): void;
88
+ /**
89
+ * Schedules the current active sort again after another plugin rebuilds row
90
+ * proxy indexes while keeping the physical source unchanged.
91
+ */
92
+ reapplySorting(): void;
88
93
  /**
89
94
  * Applies sorting requested by a sortable header click.
90
95
  *
@@ -1,8 +1,9 @@
1
1
  import ViewportProvider from './viewport.provider';
2
2
  import { DimensionStoreCollection, Trimmed } from "../store/index";
3
- import type { DimensionCols, DimensionType, MultiDimensionType, ColumnRegular, DimensionSettingsState, ViewPortScrollEvent, ViewSettingSizeProp } from "../types/index";
3
+ import type { DimensionCols, DimensionType, MultiDimensionType, ColumnRegular, DimensionSettingsState, ViewPortScrollEvent, ViewSettingSizeProp, RowDefinition } from "../types/index";
4
4
  export type DimensionConfig = {
5
5
  realSizeChanged(k: MultiDimensionType): void;
6
+ rowDefinitionsChanged?(definitions: RowDefinition[]): void;
6
7
  };
7
8
  export declare const DEFAULT_VIRTUAL_X: readonly DimensionCols[];
8
9
  export declare function isVirtualXDimension(type: DimensionCols, disableVirtualX?: boolean, virtualX?: readonly DimensionCols[]): boolean;
@@ -14,7 +15,9 @@ export declare function isVirtualXDimension(type: DimensionCols, disableVirtualX
14
15
  */
15
16
  export default class DimensionProvider {
16
17
  private viewports;
18
+ private config;
17
19
  readonly stores: DimensionStoreCollection;
20
+ private rowDefinitions;
18
21
  constructor(viewports: ViewportProvider, config: DimensionConfig);
19
22
  /**
20
23
  * Clear old sizes from dimension and viewports
@@ -22,6 +25,9 @@ export default class DimensionProvider {
22
25
  * @param count - count of items
23
26
  */
24
27
  clearSize(t: MultiDimensionType, count: number): void;
28
+ getRowDefinitions(): RowDefinition[];
29
+ syncRowDefinitions(definitions: RowDefinition[]): void;
30
+ setRowDefinitions(definitions: RowDefinition[]): void;
25
31
  /**
26
32
  * Apply new custom sizes to dimension and view port
27
33
  * @param type - dimension type