@revolist/revogrid 4.23.20 → 4.23.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{column.drag.plugin-ByDJ7Rk3.js → column.drag.plugin-Bjnv6C0x.js} +42 -30
- package/dist/cjs/index.cjs.js +2 -1
- package/dist/cjs/revo-grid.cjs.entry.js +2 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +1 -1
- package/dist/collection/components/editors/revogr-edit-style.css +2 -1
- package/dist/collection/components/revoGrid/revo-grid.js +22 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +42 -30
- package/dist/collection/types/events.js +1 -0
- package/dist/esm/{column.drag.plugin-BZacA8n_.js → column.drag.plugin-Bzb8TAwZ.js} +42 -30
- package/dist/esm/index.js +3 -2
- package/dist/esm/revo-grid.entry.js +2 -1
- package/dist/esm/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/{column.drag.plugin-BZacA8n_.js → column.drag.plugin-Bzb8TAwZ.js} +42 -30
- package/dist/revo-grid/index.esm.js +3 -2
- package/dist/revo-grid/revo-grid.entry.js +2 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +7 -1
- package/dist/types/components.d.ts +7 -2
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +3 -1
- package/dist/types/plugins/sorting/sorting.types.d.ts +22 -1
- package/dist/types/types/events.d.ts +1 -1
- package/hydrate/index.js +44 -31
- package/hydrate/index.mjs +44 -31
- package/package.json +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-edit2.js +1 -1
|
@@ -18,7 +18,7 @@ import type { GridPlugin } from '../../plugins/base.plugin';
|
|
|
18
18
|
import { ColumnCollection } from '../../utils/column.utils';
|
|
19
19
|
import { ColumnFilterConfig, FilterCollectionItem } from '../../plugins/filter/filter.types';
|
|
20
20
|
import { PluginService } from './plugin.service';
|
|
21
|
-
import { SortingConfig, SortingOrder } from '../../plugins';
|
|
21
|
+
import { AfterSortingApplyEvent, SortingConfig, SortingOrder } from '../../plugins';
|
|
22
22
|
/**
|
|
23
23
|
* Revogrid - High-performance, customizable grid library for managing large datasets.
|
|
24
24
|
* ### Events guide
|
|
@@ -298,6 +298,12 @@ export declare class RevoGridComponent {
|
|
|
298
298
|
order: 'desc' | 'asc';
|
|
299
299
|
additive: boolean;
|
|
300
300
|
}>;
|
|
301
|
+
/**
|
|
302
|
+
* By `SortingPlugin`
|
|
303
|
+
* <br>Triggered after sorting has been applied and completed.
|
|
304
|
+
* <br>Provides final sorting state and sorting column metadata when available.
|
|
305
|
+
*/
|
|
306
|
+
aftersortingapply: EventEmitter<AfterSortingApplyEvent>;
|
|
301
307
|
/**
|
|
302
308
|
* This event is triggered when the row order change is started.
|
|
303
309
|
* To prevent the default behavior of changing the row order, you can call `e.preventDefault()`.
|
|
@@ -9,7 +9,7 @@ import { AdditionalData, AfterEditEvent, AllDimensionType, ApplyFocusEvent, Befo
|
|
|
9
9
|
import { GridPlugin } from "./plugins/base.plugin";
|
|
10
10
|
import { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
|
|
11
11
|
import { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
|
|
12
|
-
import { SortingConfig, SortingOrder } from "./plugins";
|
|
12
|
+
import { AfterSortingApplyEvent, SortingConfig, SortingOrder } from "./plugins";
|
|
13
13
|
import { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
|
|
14
14
|
import { VNode } from "./stencil-public-runtime";
|
|
15
15
|
import { FocusedData } from "./components/revoGrid/viewport.service";
|
|
@@ -25,7 +25,7 @@ export { AdditionalData, AfterEditEvent, AllDimensionType, ApplyFocusEvent, Befo
|
|
|
25
25
|
export { GridPlugin } from "./plugins/base.plugin";
|
|
26
26
|
export { AutoSizeColumnConfig } from "./plugins/column.auto-size.plugin";
|
|
27
27
|
export { ColumnFilterConfig, FilterCaptions, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from "./plugins/filter/filter.types";
|
|
28
|
-
export { SortingConfig, SortingOrder } from "./plugins";
|
|
28
|
+
export { AfterSortingApplyEvent, SortingConfig, SortingOrder } from "./plugins";
|
|
29
29
|
export { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
|
|
30
30
|
export { VNode } from "./stencil-public-runtime";
|
|
31
31
|
export { FocusedData } from "./components/revoGrid/viewport.service";
|
|
@@ -889,6 +889,7 @@ declare global {
|
|
|
889
889
|
order: 'desc' | 'asc';
|
|
890
890
|
additive: boolean;
|
|
891
891
|
};
|
|
892
|
+
"aftersortingapply": AfterSortingApplyEvent;
|
|
892
893
|
"rowdragstart": RowDragStartDetails;
|
|
893
894
|
"headerclick": ColumnRegular;
|
|
894
895
|
"beforecellfocus": BeforeSaveDataDetails;
|
|
@@ -1510,6 +1511,10 @@ declare namespace LocalJSX {
|
|
|
1510
1511
|
* Emmited after the grid is rendered.
|
|
1511
1512
|
*/
|
|
1512
1513
|
"onAftergridrender"?: (event: RevoGridCustomEvent<any>) => void;
|
|
1514
|
+
/**
|
|
1515
|
+
* By `SortingPlugin` <br>Triggered after sorting has been applied and completed. <br>Provides final sorting state and sorting column metadata when available.
|
|
1516
|
+
*/
|
|
1517
|
+
"onAftersortingapply"?: (event: RevoGridCustomEvent<AfterSortingApplyEvent>) => void;
|
|
1513
1518
|
/**
|
|
1514
1519
|
* After main source/rows updated
|
|
1515
1520
|
*/
|
|
@@ -9,7 +9,7 @@ export * from './sorting.sign';
|
|
|
9
9
|
* 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
|
|
10
10
|
* 2. @event `beforesourcesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted.
|
|
11
11
|
* 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.
|
|
12
|
-
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed.
|
|
12
|
+
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. The event detail includes the final sorting state and sorting column metadata when available.
|
|
13
13
|
*
|
|
14
14
|
* Note: If you prevent an event, it will not proceed to the subsequent steps.
|
|
15
15
|
*/
|
|
@@ -72,6 +72,8 @@ export declare class SortingPlugin extends BasePlugin {
|
|
|
72
72
|
* comparator, and column metadata maps.
|
|
73
73
|
*/
|
|
74
74
|
private applySortingConfig;
|
|
75
|
+
private resetSortingForStore;
|
|
76
|
+
private applySortingForStore;
|
|
75
77
|
/**
|
|
76
78
|
* Schedules sorting before the next render.
|
|
77
79
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellCompareFunc, ColumnProp, ColumnRegular, Order } from "../../types/index";
|
|
1
|
+
import type { CellCompareFunc, ColumnProp, ColumnRegular, DimensionRows, Order } from "../../types/index";
|
|
2
2
|
/**
|
|
3
3
|
* Current sorting order per column property.
|
|
4
4
|
*/
|
|
@@ -33,6 +33,27 @@ export type SortingColumnRender = {
|
|
|
33
33
|
*/
|
|
34
34
|
sortIndex?: number;
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Sorting information emitted after sorting is applied.
|
|
38
|
+
*/
|
|
39
|
+
export type AfterSortingApplyEvent = {
|
|
40
|
+
/**
|
|
41
|
+
* Final active sorting order per column property.
|
|
42
|
+
*/
|
|
43
|
+
sorting?: SortingOrder;
|
|
44
|
+
/**
|
|
45
|
+
* Column metadata indexed by sorted column property.
|
|
46
|
+
*/
|
|
47
|
+
sortingColumns?: SortingColumnMap;
|
|
48
|
+
/**
|
|
49
|
+
* Active sorting priority in click/config insertion order.
|
|
50
|
+
*/
|
|
51
|
+
sortingOrder?: SortingColumnOrder;
|
|
52
|
+
/**
|
|
53
|
+
* Row stores affected by the sorting run.
|
|
54
|
+
*/
|
|
55
|
+
types: DimensionRows[];
|
|
56
|
+
};
|
|
36
57
|
/**
|
|
37
58
|
* Sorting information emitted after columns are set.
|
|
38
59
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type RevogridEvents = 'contentsizechanged' | 'beforeedit' | 'beforerangeedit' | 'afteredit' | 'beforeautofill' | 'beforerange' | 'afterfocus' | 'roworderchanged' | 'beforesorting' | 'beforesourcesortingapply' | 'beforesortingapply' | 'rowdragstart' | 'headerclick' | 'beforecellfocus' | 'beforefocuslost' | 'beforesourceset' | 'beforeanysource' | 'aftersourceset' | 'afteranysource' | 'beforecolumnsgather' | 'beforecolumnsset' | 'beforecolumnapplied' | 'aftercolumnsset' | 'beforefilterapply' | 'beforefiltertrimmed' | 'beforetrimmed' | 'aftertrimmed' | 'viewportscroll' | 'beforeexport' | 'beforeeditstart' | 'aftercolumnresize' | 'beforerowdefinition' | 'filterconfigchanged' | 'sortingconfigchanged' | 'rowheaderschanged' | 'beforegridrender' | 'aftergridrender' | 'aftergridinit' | 'additionaldatachanged' | 'afterthemechanged' | 'created' | 'beforepaste' | 'beforepasteapply' | 'pasteregion' | 'afterpasteapply' | 'beforecut' | 'clearregion' | 'beforecopy' | 'beforecopyapply' | 'copyregion' | 'beforerowrender' | 'afterrender' | 'beforecellrender' | 'beforedatarender' | 'dragstartcell' | 'celleditinit' | 'closeedit' | 'filterChange' | 'resetChange' | 'beforefocusrender' | 'beforescrollintoview' | 'afterfocus' | 'beforeheaderclick' | 'headerresize' | 'beforeheaderresize' | 'headerdblclick' | 'beforeheaderrender' | 'beforegroupheaderrender' | 'afterheaderrender' | 'columndragstart' | 'columndragmousemove' | 'beforecolumndragend' | 'columndragend' | 'rowdragstartinit' | 'rowdragendinit' | 'rowdragmoveinit' | 'rowdragmousemove' | 'rowdropinit' | 'roworderchange' | 'beforecopyregion' | 'beforepasteregion' | 'celleditapply' | 'beforecellfocusinit' | 'beforenextvpfocus' | 'setedit' | 'beforeapplyrange' | 'beforesetrange' | 'setrange' | 'beforeeditrender' | 'selectall' | 'canceledit' | 'settemprange' | 'beforesettemprange' | 'applyfocus' | 'focuscell' | 'beforerangedataapply' | 'selectionchangeinit' | 'beforerangecopyapply' | 'rangeeditapply' | 'clipboardrangecopy' | 'clipboardrangepaste' | 'beforekeydown' | 'beforekeyup' | 'beforecellsave' | 'celledit' | 'scrollview' | 'ref' | 'scrollvirtual' | 'scrollviewport' | 'resizeviewport' | 'scrollchange' | 'scrollviewportsilent' | 'html';
|
|
1
|
+
export type RevogridEvents = 'contentsizechanged' | 'beforeedit' | 'beforerangeedit' | 'afteredit' | 'beforeautofill' | 'beforerange' | 'afterfocus' | 'roworderchanged' | 'beforesorting' | 'beforesourcesortingapply' | 'beforesortingapply' | 'aftersortingapply' | 'rowdragstart' | 'headerclick' | 'beforecellfocus' | 'beforefocuslost' | 'beforesourceset' | 'beforeanysource' | 'aftersourceset' | 'afteranysource' | 'beforecolumnsgather' | 'beforecolumnsset' | 'beforecolumnapplied' | 'aftercolumnsset' | 'beforefilterapply' | 'beforefiltertrimmed' | 'beforetrimmed' | 'aftertrimmed' | 'viewportscroll' | 'beforeexport' | 'beforeeditstart' | 'aftercolumnresize' | 'beforerowdefinition' | 'filterconfigchanged' | 'sortingconfigchanged' | 'rowheaderschanged' | 'beforegridrender' | 'aftergridrender' | 'aftergridinit' | 'additionaldatachanged' | 'afterthemechanged' | 'created' | 'beforepaste' | 'beforepasteapply' | 'pasteregion' | 'afterpasteapply' | 'beforecut' | 'clearregion' | 'beforecopy' | 'beforecopyapply' | 'copyregion' | 'beforerowrender' | 'afterrender' | 'beforecellrender' | 'beforedatarender' | 'dragstartcell' | 'celleditinit' | 'closeedit' | 'filterChange' | 'resetChange' | 'beforefocusrender' | 'beforescrollintoview' | 'afterfocus' | 'beforeheaderclick' | 'headerresize' | 'beforeheaderresize' | 'headerdblclick' | 'beforeheaderrender' | 'beforegroupheaderrender' | 'afterheaderrender' | 'columndragstart' | 'columndragmousemove' | 'beforecolumndragend' | 'columndragend' | 'rowdragstartinit' | 'rowdragendinit' | 'rowdragmoveinit' | 'rowdragmousemove' | 'rowdropinit' | 'roworderchange' | 'beforecopyregion' | 'beforepasteregion' | 'celleditapply' | 'beforecellfocusinit' | 'beforenextvpfocus' | 'setedit' | 'beforeapplyrange' | 'beforesetrange' | 'setrange' | 'beforeeditrender' | 'selectall' | 'canceledit' | 'settemprange' | 'beforesettemprange' | 'applyfocus' | 'focuscell' | 'beforerangedataapply' | 'selectionchangeinit' | 'beforerangecopyapply' | 'rangeeditapply' | 'clipboardrangecopy' | 'clipboardrangepaste' | 'beforekeydown' | 'beforekeyup' | 'beforecellsave' | 'celledit' | 'scrollview' | 'ref' | 'scrollvirtual' | 'scrollviewport' | 'resizeviewport' | 'scrollchange' | 'scrollviewportsilent' | 'html';
|
|
2
2
|
export declare const REVOGRID_EVENTS: Map<RevogridEvents, RevogridEvents>;
|
package/hydrate/index.js
CHANGED
|
@@ -14646,7 +14646,7 @@ class TextEditor {
|
|
|
14646
14646
|
}
|
|
14647
14647
|
}
|
|
14648
14648
|
|
|
14649
|
-
const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color
|
|
14649
|
+
const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color:var(--revo-grid-background, #fff)}revogr-edit input{height:100%;width:100%;box-sizing:border-box;background-color:var(--revo-grid-background, transparent)}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}`;
|
|
14650
14650
|
|
|
14651
14651
|
/**
|
|
14652
14652
|
* Represents a cell editor in a grid.
|
|
@@ -16469,7 +16469,7 @@ function mergeSortedRowsWithGroups(indexes, source, sortedRows) {
|
|
|
16469
16469
|
* 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
|
|
16470
16470
|
* 2. @event `beforesourcesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted.
|
|
16471
16471
|
* 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.
|
|
16472
|
-
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed.
|
|
16472
|
+
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. The event detail includes the final sorting state and sorting column metadata when available.
|
|
16473
16473
|
*
|
|
16474
16474
|
* Note: If you prevent an event, it will not proceed to the subsequent steps.
|
|
16475
16475
|
*/
|
|
@@ -16611,6 +16611,38 @@ class SortingPlugin extends BasePlugin {
|
|
|
16611
16611
|
});
|
|
16612
16612
|
this.setSortingState(state);
|
|
16613
16613
|
}
|
|
16614
|
+
resetSortingForStore(type) {
|
|
16615
|
+
const storeService = this.providers.data.stores[type];
|
|
16616
|
+
// row data
|
|
16617
|
+
const source = storeService.store.get('source');
|
|
16618
|
+
// row indexes
|
|
16619
|
+
const proxyItems = storeService.store.get('proxyItems');
|
|
16620
|
+
// row indexes
|
|
16621
|
+
const newItemsOrder = Array.from({ length: source.length }, (_, i) => i); // recover indexes range(0, source.length)
|
|
16622
|
+
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItemsOrder, proxyItems);
|
|
16623
|
+
storeService.setData({ proxyItems: newItemsOrder });
|
|
16624
|
+
}
|
|
16625
|
+
applySortingForStore(type, sorting, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
16626
|
+
const storeService = this.providers.data.stores[type];
|
|
16627
|
+
// row data
|
|
16628
|
+
const source = storeService.store.get('source');
|
|
16629
|
+
// row indexes
|
|
16630
|
+
const proxyItems = storeService.store.get('proxyItems');
|
|
16631
|
+
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
16632
|
+
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, sortingColumns, sortingOrder);
|
|
16633
|
+
const newItemsOrder = mergeSortedRowsWithGroups(proxyItems, source, sortedItems);
|
|
16634
|
+
// take row indexes before trim applied and proxy items
|
|
16635
|
+
const prevItems = storeService.store.get('items');
|
|
16636
|
+
storeService.setData({
|
|
16637
|
+
proxyItems: newItemsOrder,
|
|
16638
|
+
});
|
|
16639
|
+
// take currently visible row indexes
|
|
16640
|
+
const newItems = storeService.store.get('items');
|
|
16641
|
+
if (!ignoreViewportUpdate) {
|
|
16642
|
+
this.providers.dimension
|
|
16643
|
+
.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
16644
|
+
}
|
|
16645
|
+
}
|
|
16614
16646
|
startSorting(order, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
16615
16647
|
if (!this.sortingPromise) {
|
|
16616
16648
|
// add job before render
|
|
@@ -16702,45 +16734,25 @@ class SortingPlugin extends BasePlugin {
|
|
|
16702
16734
|
// if no sorting - reset
|
|
16703
16735
|
if (!Object.keys(sorting || {}).length) {
|
|
16704
16736
|
for (let type of activeTypes) {
|
|
16705
|
-
|
|
16706
|
-
// row data
|
|
16707
|
-
const source = storeService.store.get('source');
|
|
16708
|
-
// row indexes
|
|
16709
|
-
const proxyItems = storeService.store.get('proxyItems');
|
|
16710
|
-
// row indexes
|
|
16711
|
-
const newItemsOrder = Array.from({ length: source.length }, (_, i) => i); // recover indexes range(0, source.length)
|
|
16712
|
-
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItemsOrder, proxyItems);
|
|
16713
|
-
storeService.setData({ proxyItems: newItemsOrder });
|
|
16737
|
+
this.resetSortingForStore(type);
|
|
16714
16738
|
}
|
|
16715
16739
|
}
|
|
16716
16740
|
else {
|
|
16717
16741
|
for (let type of activeTypes) {
|
|
16718
|
-
|
|
16719
|
-
// row data
|
|
16720
|
-
const source = storeService.store.get('source');
|
|
16721
|
-
// row indexes
|
|
16722
|
-
const proxyItems = storeService.store.get('proxyItems');
|
|
16723
|
-
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
16724
|
-
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, activeSortingColumns, activeSortingOrder);
|
|
16725
|
-
const newItemsOrder = mergeSortedRowsWithGroups(proxyItems, source, sortedItems);
|
|
16726
|
-
// take row indexes before trim applied and proxy items
|
|
16727
|
-
const prevItems = storeService.store.get('items');
|
|
16728
|
-
storeService.setData({
|
|
16729
|
-
proxyItems: newItemsOrder,
|
|
16730
|
-
});
|
|
16731
|
-
// take currently visible row indexes
|
|
16732
|
-
const newItems = storeService.store.get('items');
|
|
16733
|
-
if (!activeIgnoreViewportUpdate) {
|
|
16734
|
-
this.providers.dimension
|
|
16735
|
-
.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
16736
|
-
}
|
|
16742
|
+
this.applySortingForStore(type, sorting, sortingFunc, activeSortingColumns, activeSortingOrder, activeIgnoreViewportUpdate);
|
|
16737
16743
|
}
|
|
16738
16744
|
}
|
|
16739
16745
|
// refresh columns to redraw column headers and show correct icon
|
|
16740
16746
|
columnTypes.forEach((type) => {
|
|
16741
16747
|
this.providers.column.dataSources[type].refresh();
|
|
16742
16748
|
});
|
|
16743
|
-
|
|
16749
|
+
const afterSortingDetail = {
|
|
16750
|
+
sorting: hasActiveSorting(sorting) ? sorting : undefined,
|
|
16751
|
+
sortingColumns: activeSortingColumns,
|
|
16752
|
+
sortingOrder: activeSortingOrder,
|
|
16753
|
+
types: activeTypes,
|
|
16754
|
+
};
|
|
16755
|
+
this.emit('aftersortingapply', afterSortingDetail);
|
|
16744
16756
|
}
|
|
16745
16757
|
}
|
|
16746
16758
|
|
|
@@ -19265,6 +19277,7 @@ class RevoGridComponent {
|
|
|
19265
19277
|
this.beforesorting = createEvent(this, "beforesorting", 7);
|
|
19266
19278
|
this.beforesourcesortingapply = createEvent(this, "beforesourcesortingapply", 7);
|
|
19267
19279
|
this.beforesortingapply = createEvent(this, "beforesortingapply", 7);
|
|
19280
|
+
this.aftersortingapply = createEvent(this, "aftersortingapply", 7);
|
|
19268
19281
|
this.rowdragstart = createEvent(this, "rowdragstart", 7);
|
|
19269
19282
|
this.headerclick = createEvent(this, "headerclick", 7);
|
|
19270
19283
|
this.beforecellfocus = createEvent(this, "beforecellfocus", 7);
|
package/hydrate/index.mjs
CHANGED
|
@@ -14644,7 +14644,7 @@ class TextEditor {
|
|
|
14644
14644
|
}
|
|
14645
14645
|
}
|
|
14646
14646
|
|
|
14647
|
-
const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color
|
|
14647
|
+
const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color:var(--revo-grid-background, #fff)}revogr-edit input{height:100%;width:100%;box-sizing:border-box;background-color:var(--revo-grid-background, transparent)}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}`;
|
|
14648
14648
|
|
|
14649
14649
|
/**
|
|
14650
14650
|
* Represents a cell editor in a grid.
|
|
@@ -16467,7 +16467,7 @@ function mergeSortedRowsWithGroups(indexes, source, sortedRows) {
|
|
|
16467
16467
|
* 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
|
|
16468
16468
|
* 2. @event `beforesourcesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted.
|
|
16469
16469
|
* 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.
|
|
16470
|
-
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed.
|
|
16470
|
+
* 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. The event detail includes the final sorting state and sorting column metadata when available.
|
|
16471
16471
|
*
|
|
16472
16472
|
* Note: If you prevent an event, it will not proceed to the subsequent steps.
|
|
16473
16473
|
*/
|
|
@@ -16609,6 +16609,38 @@ class SortingPlugin extends BasePlugin {
|
|
|
16609
16609
|
});
|
|
16610
16610
|
this.setSortingState(state);
|
|
16611
16611
|
}
|
|
16612
|
+
resetSortingForStore(type) {
|
|
16613
|
+
const storeService = this.providers.data.stores[type];
|
|
16614
|
+
// row data
|
|
16615
|
+
const source = storeService.store.get('source');
|
|
16616
|
+
// row indexes
|
|
16617
|
+
const proxyItems = storeService.store.get('proxyItems');
|
|
16618
|
+
// row indexes
|
|
16619
|
+
const newItemsOrder = Array.from({ length: source.length }, (_, i) => i); // recover indexes range(0, source.length)
|
|
16620
|
+
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItemsOrder, proxyItems);
|
|
16621
|
+
storeService.setData({ proxyItems: newItemsOrder });
|
|
16622
|
+
}
|
|
16623
|
+
applySortingForStore(type, sorting, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
16624
|
+
const storeService = this.providers.data.stores[type];
|
|
16625
|
+
// row data
|
|
16626
|
+
const source = storeService.store.get('source');
|
|
16627
|
+
// row indexes
|
|
16628
|
+
const proxyItems = storeService.store.get('proxyItems');
|
|
16629
|
+
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
16630
|
+
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, sortingColumns, sortingOrder);
|
|
16631
|
+
const newItemsOrder = mergeSortedRowsWithGroups(proxyItems, source, sortedItems);
|
|
16632
|
+
// take row indexes before trim applied and proxy items
|
|
16633
|
+
const prevItems = storeService.store.get('items');
|
|
16634
|
+
storeService.setData({
|
|
16635
|
+
proxyItems: newItemsOrder,
|
|
16636
|
+
});
|
|
16637
|
+
// take currently visible row indexes
|
|
16638
|
+
const newItems = storeService.store.get('items');
|
|
16639
|
+
if (!ignoreViewportUpdate) {
|
|
16640
|
+
this.providers.dimension
|
|
16641
|
+
.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
16642
|
+
}
|
|
16643
|
+
}
|
|
16612
16644
|
startSorting(order, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
16613
16645
|
if (!this.sortingPromise) {
|
|
16614
16646
|
// add job before render
|
|
@@ -16700,45 +16732,25 @@ class SortingPlugin extends BasePlugin {
|
|
|
16700
16732
|
// if no sorting - reset
|
|
16701
16733
|
if (!Object.keys(sorting || {}).length) {
|
|
16702
16734
|
for (let type of activeTypes) {
|
|
16703
|
-
|
|
16704
|
-
// row data
|
|
16705
|
-
const source = storeService.store.get('source');
|
|
16706
|
-
// row indexes
|
|
16707
|
-
const proxyItems = storeService.store.get('proxyItems');
|
|
16708
|
-
// row indexes
|
|
16709
|
-
const newItemsOrder = Array.from({ length: source.length }, (_, i) => i); // recover indexes range(0, source.length)
|
|
16710
|
-
this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItemsOrder, proxyItems);
|
|
16711
|
-
storeService.setData({ proxyItems: newItemsOrder });
|
|
16735
|
+
this.resetSortingForStore(type);
|
|
16712
16736
|
}
|
|
16713
16737
|
}
|
|
16714
16738
|
else {
|
|
16715
16739
|
for (let type of activeTypes) {
|
|
16716
|
-
|
|
16717
|
-
// row data
|
|
16718
|
-
const source = storeService.store.get('source');
|
|
16719
|
-
// row indexes
|
|
16720
|
-
const proxyItems = storeService.store.get('proxyItems');
|
|
16721
|
-
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
16722
|
-
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, activeSortingColumns, activeSortingOrder);
|
|
16723
|
-
const newItemsOrder = mergeSortedRowsWithGroups(proxyItems, source, sortedItems);
|
|
16724
|
-
// take row indexes before trim applied and proxy items
|
|
16725
|
-
const prevItems = storeService.store.get('items');
|
|
16726
|
-
storeService.setData({
|
|
16727
|
-
proxyItems: newItemsOrder,
|
|
16728
|
-
});
|
|
16729
|
-
// take currently visible row indexes
|
|
16730
|
-
const newItems = storeService.store.get('items');
|
|
16731
|
-
if (!activeIgnoreViewportUpdate) {
|
|
16732
|
-
this.providers.dimension
|
|
16733
|
-
.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
|
|
16734
|
-
}
|
|
16740
|
+
this.applySortingForStore(type, sorting, sortingFunc, activeSortingColumns, activeSortingOrder, activeIgnoreViewportUpdate);
|
|
16735
16741
|
}
|
|
16736
16742
|
}
|
|
16737
16743
|
// refresh columns to redraw column headers and show correct icon
|
|
16738
16744
|
columnTypes.forEach((type) => {
|
|
16739
16745
|
this.providers.column.dataSources[type].refresh();
|
|
16740
16746
|
});
|
|
16741
|
-
|
|
16747
|
+
const afterSortingDetail = {
|
|
16748
|
+
sorting: hasActiveSorting(sorting) ? sorting : undefined,
|
|
16749
|
+
sortingColumns: activeSortingColumns,
|
|
16750
|
+
sortingOrder: activeSortingOrder,
|
|
16751
|
+
types: activeTypes,
|
|
16752
|
+
};
|
|
16753
|
+
this.emit('aftersortingapply', afterSortingDetail);
|
|
16742
16754
|
}
|
|
16743
16755
|
}
|
|
16744
16756
|
|
|
@@ -19263,6 +19275,7 @@ class RevoGridComponent {
|
|
|
19263
19275
|
this.beforesorting = createEvent(this, "beforesorting", 7);
|
|
19264
19276
|
this.beforesourcesortingapply = createEvent(this, "beforesourcesortingapply", 7);
|
|
19265
19277
|
this.beforesortingapply = createEvent(this, "beforesortingapply", 7);
|
|
19278
|
+
this.aftersortingapply = createEvent(this, "aftersortingapply", 7);
|
|
19266
19279
|
this.rowdragstart = createEvent(this, "rowdragstart", 7);
|
|
19267
19280
|
this.headerclick = createEvent(this, "headerclick", 7);
|
|
19268
19281
|
this.beforecellfocus = createEvent(this, "beforecellfocus", 7);
|
package/package.json
CHANGED
package/standalone/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{setMode as _}from"@stencil/core/internal/client";export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{g as O,B as L}from"./revo-grid.js";export{A as AutoSizeColumnPlugin,o as BEFORE_COLUMN_DRAG_END_EVENT,n as COLUMN_DRAG_END_EVENT,m as COLUMN_DRAG_MOVE_EVENT,p as COLUMN_DRAG_START_EVENT,C as ColumnAutoSizeMode,q as ColumnMovePlugin,D as DimensionStore,b as ExportCsv,E as ExportFilePlugin,c as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FILTE_PANEL,e as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,t as SortingPlugin,a as StretchColumn,x as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,y as descCellCompare,k as doCollapse,l as doExpand,f as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,s as getColumnDragPosition,H as getComparer,r as getLeftRelative,z as getNextOrder,v as getSortingIndex,u as hasActiveSorting,i as isStretchPlugin,w as sortIndexByItems}from"./revo-grid.js";export{o as GROUPING_ROW_TYPE,j as GROUP_COLUMN_PROP,G as GROUP_DEPTH,h as GROUP_EXPANDED,l as GROUP_EXPAND_BTN,m as GROUP_EXPAND_EVENT,k as GROUP_ORIGINAL_INDEX,f as PSEUDO_GROUP_COLUMN,P as PSEUDO_GROUP_ITEM,d as PSEUDO_GROUP_ITEM_ID,e as PSEUDO_GROUP_ITEM_VALUE,c as columnTypes,a as cropCellToMax,H as gatherGroup,s as gatherGrouping,z as getCellData,B as getCellDataParsed,A as getCellRaw,I as getColumnByProp,D as getColumnSizes,C as getColumnType,F as getColumns,q as getExpanded,t as getGroupingName,x as getParsedGroup,g as getRange,p as getSource,E as isColGrouping,u as isGrouping,v as isGroupingColumn,b as isRangeSingleCell,i as isRowType,y as isSameGroup,w as measureEqualDepth,n as nextCell,r as rowTypes}from"./column.service.js";export{S as SortingSign,d as dispatch,a as dispatchByEvent}from"./revogr-header2.js";export{a as applyMixins,f as findPositionInArray,g as getScrollbarSize,m as mergeSortedArray,p as pushSorted,r as range,s as scaleValue,t as timeout}from"./index2.js";export{C as CellRenderer,G as GroupingRowRenderer,e as expandEvent,a as expandSvgIconVNode}from"./revogr-data2.js";export{T as TextEditor,k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,m as isEditInput,n as isEditorCtrConstructible,f as isEnterKeyValue,i as isMetaKey,j as isPaste,l as isShortcutModifier,d as isTab,e as isTabKeyValue}from"./revogr-edit2.js";export{RevogrAttribution,defineCustomElement as defineCustomElementRevogrAttribution}from"./revogr-attribution.js";export{RevogrClipboard,defineCustomElement as defineCustomElementRevogrClipboard}from"./revogr-clipboard.js";export{RevogrData,defineCustomElement as defineCustomElementRevogrData}from"./revogr-data.js";export{RevogrEdit,defineCustomElement as defineCustomElementRevogrEdit}from"./revogr-edit.js";export{RevogrExtra,defineCustomElement as defineCustomElementRevogrExtra}from"./revogr-extra.js";export{RevogrFilterPanel,defineCustomElement as defineCustomElementRevogrFilterPanel}from"./revogr-filter-panel.js";export{RevogrFocus,defineCustomElement as defineCustomElementRevogrFocus}from"./revogr-focus.js";export{RevogrHeader,defineCustomElement as defineCustomElementRevogrHeader}from"./revogr-header.js";export{RevogrOrderEditor,defineCustomElement as defineCustomElementRevogrOrderEditor}from"./revogr-order-editor.js";export{RevogrOverlaySelection,defineCustomElement as defineCustomElementRevogrOverlaySelection}from"./revogr-overlay-selection.js";export{RevogrRowHeaders,defineCustomElement as defineCustomElementRevogrRowHeaders}from"./revogr-row-headers.js";export{RevogrScrollVirtual,defineCustomElement as defineCustomElementRevogrScrollVirtual}from"./revogr-scroll-virtual.js";export{RevogrTempRange,defineCustomElement as defineCustomElementRevogrTempRange}from"./revogr-temp-range.js";export{RevogrViewportScroll,defineCustomElement as defineCustomElementRevogrViewportScroll}from"./revogr-viewport-scroll.js";export{VnodeHtml,defineCustomElement as defineCustomElementVnodeHtml}from"./vnode-html.js";export{D as DataStore,h as gatherTrimmedItems,g as getPhysical,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,i as setStore,t as trimmedPlugin}from"./data.store.js";export{c as calculateDimensionData,a as getItemByIndex,g as getItemByPosition}from"./dimension.helpers.js";export{V as ViewportStore,b as addMissingItems,j as calculateRowHeaderSize,c as clampViewportCoordinate,f as getFirstItem,d as getItems,h as getLastItem,a as getUpdatedItemsByPosition,g as getViewportMaxCoordinate,i as isActiveRange,e as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./revogr-row-headers2.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,R as REORDER_BUTTON,f as ReorderButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button.js";export{C as CELL_CLASS,j as CELL_HANDLER_CLASS,D as DATA_COL,a as DATA_ROW,b as DISABLED_CLASS,h as DRAGGABLE_CLASS,k as DRAGG_TEXT,g as DRAG_ICON_CLASS,E as EDIT_INPUT_WR,F as FOCUS_CLASS,G as GRID_INTERNALS,f as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,e as HEADER_ROW_CLASS,d as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,i as MOBILE_CLASS,R as RESIZE_INTERVAL,l as ROW_FOCUSED_CLASS,c as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS}from"./consts.js";export{c as codesLetter,k as keyValues}from"./platform.js";const N=function(){_((e=>{let r=e.theme||e.getAttribute("theme");"string"==typeof r&&(r=r.trim());const o=O(r);return o!==r&&e.setAttribute("theme",o),o}))}||(()=>{}),U=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsgather","beforecolumnsgather"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["sortingconfigchanged","sortingconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["created","created"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celleditinit","celleditinit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["setrange","setrange"],["beforeeditrender","beforeeditrender"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["celledit","celledit"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);class W extends L{constructor(e,r){super(e,r),this.addEventListener("beforepasteapply",(e=>this.handleBeforePasteApply(e)))}handleBeforePasteApply(e){const r=this.providers.selection.focused;if(!r||null!=this.providers.selection.edit)return;const o=this.providers.data.stores.rgRow.store.get("items").length,t=r.y+e.detail.parsed.length;if(o<t){const e=Array.from({length:t-o},((e,r)=>({index:o+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const a=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(a)}}}N();export{W as AutoAddRowsPlugin,L as BasePlugin,U as REVOGRID_EVENTS}
|
|
4
|
+
import{setMode as _}from"@stencil/core/internal/client";export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{g as O,B as L}from"./revo-grid.js";export{A as AutoSizeColumnPlugin,o as BEFORE_COLUMN_DRAG_END_EVENT,n as COLUMN_DRAG_END_EVENT,m as COLUMN_DRAG_MOVE_EVENT,p as COLUMN_DRAG_START_EVENT,C as ColumnAutoSizeMode,q as ColumnMovePlugin,D as DimensionStore,b as ExportCsv,E as ExportFilePlugin,c as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FILTE_PANEL,e as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,t as SortingPlugin,a as StretchColumn,x as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,y as descCellCompare,k as doCollapse,l as doExpand,f as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,s as getColumnDragPosition,H as getComparer,r as getLeftRelative,z as getNextOrder,v as getSortingIndex,u as hasActiveSorting,i as isStretchPlugin,w as sortIndexByItems}from"./revo-grid.js";export{o as GROUPING_ROW_TYPE,j as GROUP_COLUMN_PROP,G as GROUP_DEPTH,h as GROUP_EXPANDED,l as GROUP_EXPAND_BTN,m as GROUP_EXPAND_EVENT,k as GROUP_ORIGINAL_INDEX,f as PSEUDO_GROUP_COLUMN,P as PSEUDO_GROUP_ITEM,d as PSEUDO_GROUP_ITEM_ID,e as PSEUDO_GROUP_ITEM_VALUE,c as columnTypes,a as cropCellToMax,H as gatherGroup,s as gatherGrouping,z as getCellData,B as getCellDataParsed,A as getCellRaw,I as getColumnByProp,D as getColumnSizes,C as getColumnType,F as getColumns,q as getExpanded,t as getGroupingName,x as getParsedGroup,g as getRange,p as getSource,E as isColGrouping,u as isGrouping,v as isGroupingColumn,b as isRangeSingleCell,i as isRowType,y as isSameGroup,w as measureEqualDepth,n as nextCell,r as rowTypes}from"./column.service.js";export{S as SortingSign,d as dispatch,a as dispatchByEvent}from"./revogr-header2.js";export{a as applyMixins,f as findPositionInArray,g as getScrollbarSize,m as mergeSortedArray,p as pushSorted,r as range,s as scaleValue,t as timeout}from"./index2.js";export{C as CellRenderer,G as GroupingRowRenderer,e as expandEvent,a as expandSvgIconVNode}from"./revogr-data2.js";export{T as TextEditor,k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,m as isEditInput,n as isEditorCtrConstructible,f as isEnterKeyValue,i as isMetaKey,j as isPaste,l as isShortcutModifier,d as isTab,e as isTabKeyValue}from"./revogr-edit2.js";export{RevogrAttribution,defineCustomElement as defineCustomElementRevogrAttribution}from"./revogr-attribution.js";export{RevogrClipboard,defineCustomElement as defineCustomElementRevogrClipboard}from"./revogr-clipboard.js";export{RevogrData,defineCustomElement as defineCustomElementRevogrData}from"./revogr-data.js";export{RevogrEdit,defineCustomElement as defineCustomElementRevogrEdit}from"./revogr-edit.js";export{RevogrExtra,defineCustomElement as defineCustomElementRevogrExtra}from"./revogr-extra.js";export{RevogrFilterPanel,defineCustomElement as defineCustomElementRevogrFilterPanel}from"./revogr-filter-panel.js";export{RevogrFocus,defineCustomElement as defineCustomElementRevogrFocus}from"./revogr-focus.js";export{RevogrHeader,defineCustomElement as defineCustomElementRevogrHeader}from"./revogr-header.js";export{RevogrOrderEditor,defineCustomElement as defineCustomElementRevogrOrderEditor}from"./revogr-order-editor.js";export{RevogrOverlaySelection,defineCustomElement as defineCustomElementRevogrOverlaySelection}from"./revogr-overlay-selection.js";export{RevogrRowHeaders,defineCustomElement as defineCustomElementRevogrRowHeaders}from"./revogr-row-headers.js";export{RevogrScrollVirtual,defineCustomElement as defineCustomElementRevogrScrollVirtual}from"./revogr-scroll-virtual.js";export{RevogrTempRange,defineCustomElement as defineCustomElementRevogrTempRange}from"./revogr-temp-range.js";export{RevogrViewportScroll,defineCustomElement as defineCustomElementRevogrViewportScroll}from"./revogr-viewport-scroll.js";export{VnodeHtml,defineCustomElement as defineCustomElementVnodeHtml}from"./vnode-html.js";export{D as DataStore,h as gatherTrimmedItems,g as getPhysical,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,i as setStore,t as trimmedPlugin}from"./data.store.js";export{c as calculateDimensionData,a as getItemByIndex,g as getItemByPosition}from"./dimension.helpers.js";export{V as ViewportStore,b as addMissingItems,j as calculateRowHeaderSize,c as clampViewportCoordinate,f as getFirstItem,d as getItems,h as getLastItem,a as getUpdatedItemsByPosition,g as getViewportMaxCoordinate,i as isActiveRange,e as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./revogr-row-headers2.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,R as REORDER_BUTTON,f as ReorderButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button.js";export{C as CELL_CLASS,j as CELL_HANDLER_CLASS,D as DATA_COL,a as DATA_ROW,b as DISABLED_CLASS,h as DRAGGABLE_CLASS,k as DRAGG_TEXT,g as DRAG_ICON_CLASS,E as EDIT_INPUT_WR,F as FOCUS_CLASS,G as GRID_INTERNALS,f as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,e as HEADER_ROW_CLASS,d as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,i as MOBILE_CLASS,R as RESIZE_INTERVAL,l as ROW_FOCUSED_CLASS,c as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS}from"./consts.js";export{c as codesLetter,k as keyValues}from"./platform.js";const N=function(){_((e=>{let r=e.theme||e.getAttribute("theme");"string"==typeof r&&(r=r.trim());const o=O(r);return o!==r&&e.setAttribute("theme",o),o}))}||(()=>{}),U=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["aftersortingapply","aftersortingapply"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsgather","beforecolumnsgather"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["sortingconfigchanged","sortingconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["created","created"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celleditinit","celleditinit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["setrange","setrange"],["beforeeditrender","beforeeditrender"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["celledit","celledit"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);class W extends L{constructor(e,r){super(e,r),this.addEventListener("beforepasteapply",(e=>this.handleBeforePasteApply(e)))}handleBeforePasteApply(e){const r=this.providers.selection.focused;if(!r||null!=this.providers.selection.edit)return;const o=this.providers.data.stores.rgRow.store.get("items").length,t=r.y+e.detail.parsed.length;if(o<t){const e=Array.from({length:t-o},((e,r)=>({index:o+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const a=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(a)}}}N();export{W as AutoAddRowsPlugin,L as BasePlugin,U as REVOGRID_EVENTS}
|