@revolist/revogrid 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/custom-element/revo-grid.js +25 -8
  2. package/custom-element/revogr-edit2.js +5 -1
  3. package/custom-element/revogr-overlay-selection2.js +11 -6
  4. package/custom-element/revogr-row-headers2.js +41 -2
  5. package/dist/cjs/revo-grid_11.cjs.entry.js +82 -17
  6. package/dist/collection/components/overlay/keyboard.service.js +1 -1
  7. package/dist/collection/components/overlay/revogr-edit.js +6 -2
  8. package/dist/collection/components/overlay/revogr-overlay-selection.js +25 -6
  9. package/dist/collection/components/revo-grid/revo-grid.js +5 -4
  10. package/dist/collection/components/revo-grid/viewport.section.js +2 -2
  11. package/dist/collection/services/dimension.provider.js +18 -2
  12. package/dist/collection/store/viewPort/viewport.helpers.js +35 -0
  13. package/dist/collection/store/viewPort/viewport.store.js +7 -3
  14. package/dist/esm/revo-grid_11.entry.js +82 -17
  15. package/dist/esm-es5/revo-grid_11.entry.js +1 -1
  16. package/dist/revo-grid/revo-grid_11.entry.js +1 -1
  17. package/dist/revo-grid/revo-grid_11.system.entry.js +1 -1
  18. package/dist/types/components/overlay/editors/text.d.ts +5 -0
  19. package/dist/types/components/overlay/keyboard.service.d.ts +2 -1
  20. package/dist/types/components/overlay/revogr-edit.d.ts +9 -2
  21. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +9 -1
  22. package/dist/types/components/revo-grid/viewport.section.d.ts +2 -1
  23. package/dist/types/components.d.ts +5 -1
  24. package/dist/types/interfaces.d.ts +1 -3
  25. package/dist/types/services/dimension.provider.d.ts +8 -1
  26. package/dist/types/store/viewPort/viewport.helpers.d.ts +9 -0
  27. package/dist/types/store/viewPort/viewport.store.d.ts +1 -1
  28. package/package.json +1 -1
@@ -1,4 +1,9 @@
1
1
  import { Edition, RevoGrid } from '../../../interfaces';
2
+ /**
3
+ * Callback triggered on cell editor save
4
+ * Closes editor when called
5
+ * @param preventFocus - if true editor will not be closed and next cell will not be focused
6
+ */
2
7
  export declare type SaveCallback = (value: Edition.SaveData, preventFocus: boolean) => void;
3
8
  export declare class TextEditor implements Edition.EditorBase {
4
9
  column: RevoGrid.ColumnRegular;
@@ -4,7 +4,8 @@ import { EventData } from './selection.utils';
4
4
  declare type Config = {
5
5
  selectionStoreService: SelectionStoreService;
6
6
  selectionStore: Observable<Selection.SelectionStoreState>;
7
- doEdit(val?: any, isCancel?: boolean): void;
7
+ doEdit(val?: any): void;
8
+ cancelEdit(): void;
8
9
  clearCell(): void;
9
10
  getData(): any;
10
11
  internalPaste(): void;
@@ -8,9 +8,16 @@ export declare class Edit {
8
8
  /** Custom editors register */
9
9
  editor: Edition.EditorCtr | null;
10
10
  cellEdit: EventEmitter<Edition.SaveDataDetails>;
11
- /** Close editor event */
11
+ /**
12
+ * Close editor event
13
+ * pass true if requires focus next
14
+ */
12
15
  closeEdit: EventEmitter<boolean | undefined>;
13
- /** Callback triggered on cell editor save */
16
+ /**
17
+ * Callback triggered on cell editor save
18
+ * Closes editor when called
19
+ * @param preventFocus - if true editor will not be closed and next cell will not be focused
20
+ */
14
21
  onSave(val: Edition.SaveData, preventFocus?: boolean): void;
15
22
  componentWillRender(): void;
16
23
  componentDidRender(): void;
@@ -31,6 +31,10 @@ export declare class OverlaySelection {
31
31
  internalCellEdit: EventEmitter<Edition.BeforeSaveDataDetails>;
32
32
  internalFocusCell: EventEmitter<Edition.BeforeSaveDataDetails>;
33
33
  setEdit: EventEmitter<Edition.BeforeEdit>;
34
+ /**
35
+ * Used for editors support when close requested
36
+ */
37
+ cancelEdit: EventEmitter;
34
38
  setRange: EventEmitter<Selection.RangeArea>;
35
39
  setTempRange: EventEmitter<Selection.TempRange | null>;
36
40
  focusCell: EventEmitter<Selection.FocusedCells>;
@@ -60,7 +64,11 @@ export declare class OverlaySelection {
60
64
  private renderEditCell;
61
65
  render(): any;
62
66
  protected onElementMouseDown(e: MouseEvent): void;
63
- protected doEdit(val?: string, isCancel?: boolean): void;
67
+ protected doEdit(val?: string): void;
68
+ /**
69
+ * Close editor event triggered
70
+ * @param details - if requires focus next
71
+ */
64
72
  private closeEdit;
65
73
  private focusNext;
66
74
  protected clearCell(): void;
@@ -12,6 +12,7 @@ declare type Props = {
12
12
  columns: ViewportProps[];
13
13
  columnFilter: boolean;
14
14
  onScroll(e: RevoGrid.ViewPortScrollEvent, key?: RevoGrid.DimensionColPin | string): void;
15
+ onCancelEdit(): void;
15
16
  onEdit(edit: Edition.BeforeEdit): void;
16
17
  registerElement(el: ElementScroll | null, key: string): void;
17
18
  };
@@ -20,5 +21,5 @@ declare type Props = {
20
21
  * First we render vertical parts - pinned start, data, pinned end
21
22
  * Per each column we render data collections: headers, pinned top, center data, pinned bottom
22
23
  */
23
- export declare const ViewPortSections: ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, registerElement, onEdit, onScroll }: Props) => VNode[];
24
+ export declare const ViewPortSections: ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, registerElement, onEdit, onCancelEdit, onScroll }: Props) => VNode[];
24
25
  export {};
@@ -753,7 +753,7 @@ declare namespace LocalJSX {
753
753
  "editor"?: Edition.EditorCtr | null;
754
754
  "onCellEdit"?: (event: RevogrEditCustomEvent<Edition.SaveDataDetails>) => void;
755
755
  /**
756
- * Close editor event
756
+ * Close editor event pass true if requires focus next
757
757
  */
758
758
  "onCloseEdit"?: (event: RevogrEditCustomEvent<boolean | undefined>) => void;
759
759
  }
@@ -846,6 +846,10 @@ declare namespace LocalJSX {
846
846
  * Last cell position
847
847
  */
848
848
  "lastCell"?: Selection.Cell;
849
+ /**
850
+ * Used for editors support when close requested
851
+ */
852
+ "onCancelEdit"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
849
853
  "onFocusCell"?: (event: RevogrOverlaySelectionCustomEvent<Selection.FocusedCells>) => void;
850
854
  "onInternalCellEdit"?: (event: RevogrOverlaySelectionCustomEvent<Edition.BeforeSaveDataDetails>) => void;
851
855
  "onInternalCopy"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
@@ -351,9 +351,7 @@ export declare namespace Edition {
351
351
  preventFocus?: boolean;
352
352
  };
353
353
 
354
- type BeforeEdit = {
355
- isCancel: boolean;
356
- } & Edition.BeforeSaveDataDetails;
354
+ type BeforeEdit = Edition.BeforeSaveDataDetails;
357
355
 
358
356
  type BeforeSaveDataDetails = {
359
357
  prop: RevoGrid.ColumnProp;
@@ -11,6 +11,13 @@ export default class DimensionProvider {
11
11
  constructor(viewports: ViewportProvider);
12
12
  setDimensionSize(dimensionType: RevoGrid.MultiDimensionType, sizes: RevoGrid.ViewSettingSizeProp): void;
13
13
  setRealSize(realCount: number, type: RevoGrid.MultiDimensionType): void;
14
+ /**
15
+ * Apply new custom sizes to dimension and view port
16
+ * @param type - dimension type
17
+ * @param sizes - new custom sizes
18
+ * @param keepOld - keep old sizes merge new with old
19
+ */
20
+ setCustomSizes(type: RevoGrid.MultiDimensionType, sizes: RevoGrid.ViewSettingSizeProp, keepOld?: boolean): void;
14
21
  /**
15
22
  * Sets dimension data and view port coordinate
16
23
  * @param items - data/column items
@@ -19,7 +26,7 @@ export default class DimensionProvider {
19
26
  setData(items: RevoGrid.ColumnRegular[] | RevoGrid.DataType[], type: RevoGrid.MultiDimensionType, noVirtual?: boolean): void;
20
27
  private setNoVirtual;
21
28
  drop(): void;
22
- setColumns(type: RevoGrid.MultiDimensionType, sizes?: RevoGrid.ViewSettingSizeProp, noVirtual?: boolean): void;
29
+ setColumns(type: RevoGrid.MultiDimensionType, newLength: number, sizes?: RevoGrid.ViewSettingSizeProp, noVirtual?: boolean): void;
23
30
  setViewPortCoordinate({ coordinate, type }: {
24
31
  coordinate: number;
25
32
  type: RevoGrid.MultiDimensionType;
@@ -27,4 +27,13 @@ export declare function recombineByOffset(offset: number, data: {
27
27
  export declare function isActiveRange(pos: number, item: RevoGrid.PositionItem | undefined): boolean;
28
28
  export declare function getFirstItem(s: ItemsToUpdate): RevoGrid.VirtualPositionItem | undefined;
29
29
  export declare function getLastItem(s: ItemsToUpdate): RevoGrid.VirtualPositionItem;
30
+ /**
31
+ * Set items sizes from start index to end
32
+ * @param vpItems
33
+ * @param start
34
+ * @param size
35
+ * @param lastCoordinate
36
+ * @returns
37
+ */
38
+ export declare function setItemSizes(vpItems: RevoGrid.VirtualPositionItem[], initialIndex: number, size: number, lastCoordinate: number): RevoGrid.VirtualPositionItem[];
30
39
  export {};
@@ -11,7 +11,7 @@ export default class ViewportStore {
11
11
  /** Render viewport based on coordinate, this is main method for draw */
12
12
  setViewPortCoordinate(position: number, dimension: DimensionDataViewport): void;
13
13
  /** Update viewport sizes */
14
- setViewPortDimension(sizes: RevoGrid.ViewSettingSizeProp): void;
14
+ setViewPortDimension(sizes: RevoGrid.ViewSettingSizeProp, dropToOriginalSize?: number): void;
15
15
  getItems(): Pick<RevoGrid.ViewportStateItems, 'items' | 'start' | 'end'>;
16
16
  setViewport(data: Partial<RevoGrid.ViewportState>): void;
17
17
  clear(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "3.3.1",
3
+ "version": "3.4.0",
4
4
  "description": "Virtual reactive data grid component - RevoGrid.",
5
5
  "license": "MIT",
6
6
  "directories": {