@revolist/revogrid 4.27.0 → 4.27.2
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/{cell-renderer-C7rdgaov.js → cell-renderer-BDIx0xys.js} +1 -1
- package/dist/cjs/{column.service-Bbml5C2j.js → column.service-D-ENzqyb.js} +2 -0
- package/dist/cjs/{filter.button-F2Bw3UAd.js → filter.button-C6ixuMmr.js} +3 -2
- package/dist/cjs/{header-cell-renderer-BljFI6wj.js → header-cell-renderer-B5Y4fdZC.js} +1 -1
- package/dist/cjs/index.cjs.js +7 -5
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +63 -43
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +12 -11
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +139 -33
- package/dist/cjs/{row-resize.plugin-BRQy_qNn.js → row-resize.plugin-C4YOF1lN.js} +353 -185
- package/dist/collection/components/header/header-renderer.js +7 -6
- package/dist/collection/components/header/revogr-header-style.css +8 -3
- package/dist/collection/components/revoGrid/revo-grid-style.css +12 -2
- package/dist/collection/components/revoGrid/revo-grid.js +37 -21
- package/dist/collection/plugins/filter/filter.button.js +3 -2
- package/dist/collection/plugins/filter/filter.indexed.js +5 -0
- package/dist/collection/plugins/filter/filter.panel.js +138 -31
- package/dist/collection/plugins/filter/filter.plugin.js +48 -5
- package/dist/collection/plugins/filter/filter.style.css +25 -3
- package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +84 -54
- package/dist/collection/plugins/groupingRow/grouping.sorting.service.js +58 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +5 -3
- package/dist/collection/plugins/row-resize/row-resize.plugin.js +144 -113
- package/dist/collection/plugins/sorting/sorting.plugin.js +16 -13
- package/dist/collection/plugins/wcag/index.js +5 -4
- package/dist/collection/services/dimension.provider.js +17 -1
- package/dist/esm/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
- package/dist/esm/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
- package/dist/esm/{filter.button-DMhpuAiw.js → filter.button-CEPUxLUo.js} +3 -2
- package/dist/{revo-grid/header-cell-renderer-Bqh1PrgH.js → esm/header-cell-renderer-YCiVIQ2E.js} +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +63 -43
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +1 -1
- package/dist/esm/revogr-data_4.entry.js +12 -11
- package/dist/esm/revogr-filter-panel.entry.js +139 -33
- package/dist/esm/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-Beu0pMds.js} +354 -187
- package/dist/revo-grid/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
- package/dist/revo-grid/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
- package/dist/revo-grid/{filter.button-DMhpuAiw.js → filter.button-CEPUxLUo.js} +3 -2
- package/dist/{esm/header-cell-renderer-Bqh1PrgH.js → revo-grid/header-cell-renderer-YCiVIQ2E.js} +1 -1
- package/dist/revo-grid/index.esm.js +6 -6
- package/dist/revo-grid/revo-grid.entry.js +63 -43
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +12 -11
- package/dist/revo-grid/revogr-filter-panel.entry.js +139 -33
- package/dist/revo-grid/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-Beu0pMds.js} +354 -187
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -0
- package/dist/types/plugins/filter/filter.indexed.d.ts +2 -0
- package/dist/types/plugins/filter/filter.panel.d.ts +9 -2
- package/dist/types/plugins/filter/filter.plugin.d.ts +8 -1
- package/dist/types/plugins/filter/filter.types.d.ts +8 -0
- package/dist/types/plugins/groupingRow/grouping.const.d.ts +1 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +5 -7
- package/dist/types/plugins/groupingRow/grouping.sorting.service.d.ts +7 -0
- package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +9 -0
- package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +14 -12
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +5 -0
- package/dist/types/services/dimension.provider.d.ts +7 -1
- package/dist/types/types/interfaces.d.ts +13 -1
- package/hydrate/index.js +561 -264
- package/hydrate/index.mjs +561 -264
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/filter.button.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { getItemByIndex } from "../../store/index";
|
|
4
|
+
import { getItemByIndex, getViewportMaxCoordinate, rowTypes } from "../../store/index";
|
|
5
5
|
import { BasePlugin } from "../base.plugin";
|
|
6
|
-
import { GROUP_EXPAND_EVENT } from "../groupingRow/grouping.const";
|
|
6
|
+
import { BEFORE_GROUPING_APPLY_EVENT, GROUP_EXPAND_EVENT, } from "../groupingRow/grouping.const";
|
|
7
7
|
import { clampRowResizeHeight, createRowResizePatch, getRowResizeIndexes, mergeRowResizeDefinitions, resolveRowResizeConfig, } from "./row-resize.utils";
|
|
8
8
|
export const ROW_RESIZE_HANDLE_CLASS = 'row-resize-handle';
|
|
9
9
|
export const BEFORE_ROW_RESIZE_EVENT = 'beforerowresize';
|
|
@@ -11,18 +11,14 @@ export const ROW_RESIZE_EVENT = 'rowresize';
|
|
|
11
11
|
export const AFTER_ROW_RESIZE_EVENT = 'afterrowresize';
|
|
12
12
|
export const ROW_RESIZE_CANCEL_EVENT = 'rowresizecancel';
|
|
13
13
|
export class RowResizePlugin extends BasePlugin {
|
|
14
|
-
static fromGridProperty(revogrid, providers) {
|
|
15
|
-
const plugin = new RowResizePlugin(revogrid, providers);
|
|
16
|
-
plugin.controlFromGridProperty();
|
|
17
|
-
return plugin;
|
|
18
|
-
}
|
|
19
14
|
constructor(revogrid, providers, config = {}) {
|
|
20
15
|
super(revogrid, providers);
|
|
21
16
|
this.enabled = false;
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
17
|
+
this.appliedDefinitionIndexes = new Map();
|
|
18
|
+
this.pendingBottomAnchor = false;
|
|
19
|
+
this.keepBottomAnchor = false;
|
|
20
|
+
this.rowDefinitionRemapQueued = false;
|
|
21
|
+
this.pendingSourceCounts = new Map();
|
|
26
22
|
this.previousBodyCursor = '';
|
|
27
23
|
this.decorateRow = ({ detail, }) => {
|
|
28
24
|
if (!this.enabled ||
|
|
@@ -86,22 +82,72 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
86
82
|
}
|
|
87
83
|
};
|
|
88
84
|
this.onWindowBlur = () => this.cancel('blur');
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
this.updateBottomAnchorState = ({ detail, }) => {
|
|
86
|
+
if (detail.dimension !== 'rgRow') {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.keepBottomAnchor = this.isMainViewportAtBottom(detail.coordinate);
|
|
90
|
+
};
|
|
91
|
+
this.applyPendingBottomAnchor = () => {
|
|
92
|
+
if (!this.pendingBottomAnchor) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.pendingBottomAnchor = false;
|
|
96
|
+
const dimension = this.providers.dimension.stores.rgRow.store;
|
|
97
|
+
// Scroll surfaces have slightly different client sizes. Give the shared
|
|
98
|
+
// scrolling service the content end and let each surface clamp to its own
|
|
99
|
+
// exact bottom coordinate.
|
|
100
|
+
void this.revogrid.scrollToCoordinate({ y: dimension.get('realSize') });
|
|
101
|
+
};
|
|
102
|
+
this.scheduleRowDefinitionRemap = () => {
|
|
103
|
+
if (this.rowDefinitionRemapQueued) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.rowDefinitionRemapQueued = true;
|
|
107
|
+
queueMicrotask(() => {
|
|
108
|
+
if (!this.rowDefinitionRemapQueued) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.pruneRowDefinitions();
|
|
112
|
+
this.reapplyRowDefinitionSizes();
|
|
113
|
+
this.rowDefinitionRemapQueued = false;
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
/** Map source-indexed row definitions back onto the current virtual order. */
|
|
117
|
+
this.reapplyRowDefinitionSizes = () => {
|
|
118
|
+
const rowDefinitions = this.providers.dimension.getRowDefinitions();
|
|
119
|
+
for (const rowType of rowTypes) {
|
|
93
120
|
const items = this.providers.data.stores[rowType].store.get('items');
|
|
121
|
+
const definitions = new Map(rowDefinitions
|
|
122
|
+
.filter(definition => definition.type === rowType)
|
|
123
|
+
.map(definition => [definition.index, definition.size]));
|
|
124
|
+
const appliedIndexes = this.appliedDefinitionIndexes.get(rowType);
|
|
125
|
+
if (!definitions.size && !(appliedIndexes === null || appliedIndexes === void 0 ? void 0 : appliedIndexes.size)) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const dimension = this.providers.dimension.stores[rowType];
|
|
129
|
+
const currentSizes = dimension.store.get('sizes');
|
|
130
|
+
const sizes = Object.assign({}, currentSizes);
|
|
131
|
+
for (const index of appliedIndexes || []) {
|
|
132
|
+
delete sizes[index];
|
|
133
|
+
}
|
|
94
134
|
const indexes = new Set();
|
|
95
135
|
items.forEach((physicalIndex, virtualIndex) => {
|
|
96
|
-
|
|
136
|
+
const size = definitions.get(physicalIndex);
|
|
137
|
+
if (size !== undefined) {
|
|
138
|
+
sizes[virtualIndex] = size;
|
|
97
139
|
indexes.add(virtualIndex);
|
|
98
140
|
}
|
|
99
141
|
});
|
|
100
|
-
this.
|
|
142
|
+
this.appliedDefinitionIndexes.set(rowType, indexes);
|
|
143
|
+
const sizeKeys = Object.keys(sizes);
|
|
144
|
+
if (sizeKeys.length !== Object.keys(currentSizes).length ||
|
|
145
|
+
sizeKeys.some(index => sizes[index] !== currentSizes[index])) {
|
|
146
|
+
this.providers.dimension.setCustomSizes(rowType, sizes);
|
|
147
|
+
}
|
|
101
148
|
}
|
|
102
149
|
};
|
|
103
150
|
this.config = resolveRowResizeConfig(config);
|
|
104
|
-
this.rowDefinitionsRef = revogrid.rowDefinitions;
|
|
105
151
|
if (new.target !== RowResizePlugin) {
|
|
106
152
|
this.enabled = true;
|
|
107
153
|
this.registerEventListeners();
|
|
@@ -109,77 +155,53 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
109
155
|
}
|
|
110
156
|
registerEventListeners() {
|
|
111
157
|
this.addEventListener('beforerowrender', this.decorateRow);
|
|
112
|
-
this.addEventListener('beforeanysource', (
|
|
158
|
+
this.addEventListener('beforeanysource', () => {
|
|
113
159
|
this.cancel('data-change');
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (const index of committed.keys()) {
|
|
120
|
-
if (index >= detail.source.length) {
|
|
121
|
-
committed.delete(index);
|
|
122
|
-
removedIndexes.add(index);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (removedIndexes.size) {
|
|
126
|
-
const rowDefinitions = this.revogrid.rowDefinitions.filter(definition => definition.type !== detail.type ||
|
|
127
|
-
!removedIndexes.has(definition.index));
|
|
128
|
-
this.rowDefinitionsRef = rowDefinitions;
|
|
129
|
-
this.revogrid.rowDefinitions = rowDefinitions;
|
|
130
|
-
}
|
|
160
|
+
this.keepBottomAnchor = false;
|
|
161
|
+
});
|
|
162
|
+
this.addEventListener('afteranysource', ({ detail }) => {
|
|
163
|
+
this.pendingSourceCounts.set(detail.type, detail.source.length);
|
|
164
|
+
this.scheduleRowDefinitionRemap();
|
|
131
165
|
});
|
|
132
|
-
this.addEventListener('afteranysource', this.rebuildCommittedSizes);
|
|
133
166
|
this.addEventListener('beforesourcesortingapply', this.cancelForDataChange);
|
|
134
|
-
this.addEventListener('
|
|
167
|
+
this.addEventListener('beforesortingapply', this.cancelForDataChange);
|
|
168
|
+
this.addEventListener('sortingconfigchanged', this.cancelForDataChange);
|
|
169
|
+
this.addEventListener(BEFORE_GROUPING_APPLY_EVENT, this.cancelForDataChange);
|
|
170
|
+
this.addEventListener('aftersortingapply', this.scheduleRowDefinitionRemap);
|
|
135
171
|
this.addEventListener('beforefilterapply', this.cancelForDataChange);
|
|
136
|
-
this.addEventListener('
|
|
172
|
+
this.addEventListener('afterfilterapply', this.scheduleRowDefinitionRemap);
|
|
173
|
+
this.addEventListener('beforerowdefinition', () => {
|
|
137
174
|
this.cancel('data-change');
|
|
138
|
-
|
|
139
|
-
this.committedSizes.clear();
|
|
140
|
-
this.appliedIndexes.clear();
|
|
141
|
-
this.rowDefinitionsRef = detail.vals;
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
this.addEventListener('afterthemechanged', this.reapplyCommittedSizes);
|
|
145
|
-
this.addEventListener('aftertrimmed', this.syncAppliedIndexes);
|
|
146
|
-
this.addEventListener('roworderchange', () => {
|
|
147
|
-
queueMicrotask(this.reapplyCommittedSizes);
|
|
175
|
+
this.scheduleRowDefinitionRemap();
|
|
148
176
|
});
|
|
177
|
+
this.addEventListener('afterthemechanged', this.scheduleRowDefinitionRemap);
|
|
178
|
+
this.addEventListener('aftertrimmed', this.scheduleRowDefinitionRemap);
|
|
179
|
+
this.addEventListener('roworderchange', this.scheduleRowDefinitionRemap);
|
|
149
180
|
this.addEventListener(GROUP_EXPAND_EVENT, () => {
|
|
150
|
-
|
|
181
|
+
if (this.keepBottomAnchor) {
|
|
182
|
+
this.pendingBottomAnchor = true;
|
|
183
|
+
}
|
|
184
|
+
this.scheduleRowDefinitionRemap();
|
|
151
185
|
});
|
|
186
|
+
this.addEventListener('aftergridrender', this.applyPendingBottomAnchor);
|
|
187
|
+
this.addEventListener('viewportscroll', this.updateBottomAnchorState);
|
|
152
188
|
this.addEventListener('rowheaderschanged', ({ detail }) => {
|
|
153
189
|
if (!detail && !this.config.fullRow) {
|
|
154
190
|
this.cancel('row-headers-hidden');
|
|
155
191
|
}
|
|
156
192
|
});
|
|
157
193
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.watch('resizeRow', value => {
|
|
163
|
-
this.gridResizeRow = value;
|
|
164
|
-
this.syncGridProperty();
|
|
165
|
-
});
|
|
166
|
-
this.watch('plugins', value => {
|
|
167
|
-
this.gridPlugins = value || [];
|
|
168
|
-
this.syncGridProperty();
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
syncGridProperty(refresh = true) {
|
|
172
|
-
const hasConfiguredPlugin = this.gridPlugins.some(plugin => plugin !== RowResizePlugin &&
|
|
194
|
+
syncGridConfig(refresh = true) {
|
|
195
|
+
const { plugins = [], resizeRow } = this.revogrid;
|
|
196
|
+
const isCorePlugin = this.constructor === RowResizePlugin;
|
|
197
|
+
const hasConfiguredPlugin = plugins.some(plugin => plugin !== RowResizePlugin &&
|
|
173
198
|
plugin.prototype instanceof RowResizePlugin);
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
typeof this.gridResizeRow === 'object'
|
|
181
|
-
? this.gridResizeRow
|
|
182
|
-
: undefined);
|
|
199
|
+
const enabled = !isCorePlugin ||
|
|
200
|
+
(!hasConfiguredPlugin && !!resizeRow);
|
|
201
|
+
const resizeConfig = typeof resizeRow === 'object' ? resizeRow : undefined;
|
|
202
|
+
const config = isCorePlugin
|
|
203
|
+
? resolveRowResizeConfig(resizeConfig)
|
|
204
|
+
: this.config;
|
|
183
205
|
const configChanged = config.minHeight !== this.config.minHeight ||
|
|
184
206
|
config.maxHeight !== this.config.maxHeight ||
|
|
185
207
|
config.fullRow !== this.config.fullRow;
|
|
@@ -191,10 +213,13 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
191
213
|
if (enabled !== this.enabled) {
|
|
192
214
|
this.enabled = enabled;
|
|
193
215
|
if (enabled) {
|
|
194
|
-
this.rowDefinitionsRef = this.revogrid.rowDefinitions;
|
|
195
216
|
this.registerEventListeners();
|
|
196
217
|
}
|
|
197
218
|
else {
|
|
219
|
+
this.pendingBottomAnchor = false;
|
|
220
|
+
this.keepBottomAnchor = false;
|
|
221
|
+
this.rowDefinitionRemapQueued = false;
|
|
222
|
+
this.pendingSourceCounts.clear();
|
|
198
223
|
this.clearSubscriptions();
|
|
199
224
|
}
|
|
200
225
|
}
|
|
@@ -213,6 +238,7 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
213
238
|
}
|
|
214
239
|
const dimension = this.providers.dimension.stores[rowType];
|
|
215
240
|
const dimensionState = dimension.getCurrentState();
|
|
241
|
+
const viewport = this.providers.viewport.stores[rowType];
|
|
216
242
|
const item = getItemByIndex(dimensionState, index);
|
|
217
243
|
const focusedStore = this.providers.selection.focusedStore;
|
|
218
244
|
const selectedRowType = focusedStore
|
|
@@ -244,16 +270,23 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
244
270
|
currentHeight: startHeight,
|
|
245
271
|
previousSizes,
|
|
246
272
|
originalCustomSizes: Object.assign({}, dimensionState.sizes),
|
|
247
|
-
|
|
273
|
+
bottomAnchored: rowType === 'rgRow' &&
|
|
274
|
+
this.isMainViewportAtBottom(viewport.lastCoordinate),
|
|
248
275
|
lastEvent: event,
|
|
249
276
|
};
|
|
277
|
+
this.active = active;
|
|
250
278
|
const beforeEvent = this.emit(BEFORE_ROW_RESIZE_EVENT, this.eventDetail(active, event, startHeight));
|
|
251
279
|
if (beforeEvent.defaultPrevented) {
|
|
280
|
+
if (this.active === active) {
|
|
281
|
+
this.active = undefined;
|
|
282
|
+
}
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (!this.enabled || this.active !== active) {
|
|
252
286
|
return;
|
|
253
287
|
}
|
|
254
288
|
event.preventDefault();
|
|
255
289
|
event.stopPropagation();
|
|
256
|
-
this.active = active;
|
|
257
290
|
const doc = this.revogrid.ownerDocument;
|
|
258
291
|
this.previousBodyCursor = ((_a = doc.body) === null || _a === void 0 ? void 0 : _a.style.cursor) || '';
|
|
259
292
|
if (doc.body) {
|
|
@@ -276,6 +309,7 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
276
309
|
return;
|
|
277
310
|
}
|
|
278
311
|
this.providers.dimension.setCustomSizes(active.rowType, createRowResizePatch(active.indexes, size), true);
|
|
312
|
+
this.requestBottomAnchor(active);
|
|
279
313
|
active.currentHeight = size;
|
|
280
314
|
this.emit(ROW_RESIZE_EVENT, this.eventDetail(active, active.lastEvent, size));
|
|
281
315
|
}
|
|
@@ -294,7 +328,8 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
294
328
|
}
|
|
295
329
|
}
|
|
296
330
|
this.providers.dimension.setCustomSizes(active.rowType, currentSizes);
|
|
297
|
-
|
|
331
|
+
this.requestBottomAnchor(active);
|
|
332
|
+
const detail = Object.assign(Object.assign({}, this.eventDetail(active, active.lastEvent, active.startHeight)), { reason });
|
|
298
333
|
this.finishGesture();
|
|
299
334
|
this.emit(ROW_RESIZE_CANCEL_EVENT, detail);
|
|
300
335
|
}
|
|
@@ -313,51 +348,44 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
313
348
|
return;
|
|
314
349
|
}
|
|
315
350
|
const items = this.providers.data.stores[active.rowType].store.get('items');
|
|
316
|
-
let committed = this.committedSizes.get(active.rowType);
|
|
317
|
-
if (!committed) {
|
|
318
|
-
committed = new Map();
|
|
319
|
-
this.committedSizes.set(active.rowType, committed);
|
|
320
|
-
}
|
|
321
|
-
let applied = this.appliedIndexes.get(active.rowType);
|
|
322
|
-
if (!applied) {
|
|
323
|
-
applied = new Set();
|
|
324
|
-
this.appliedIndexes.set(active.rowType, applied);
|
|
325
|
-
}
|
|
326
351
|
const physicalIndexes = active.indexes.reduce((result, index) => {
|
|
327
352
|
const physicalIndex = items[index];
|
|
328
353
|
if (physicalIndex !== undefined) {
|
|
329
|
-
committed.set(physicalIndex, active.currentHeight);
|
|
330
|
-
applied.add(index);
|
|
331
354
|
result.push(physicalIndex);
|
|
332
355
|
}
|
|
333
356
|
return result;
|
|
334
357
|
}, []);
|
|
335
358
|
if (physicalIndexes.length) {
|
|
336
|
-
const rowDefinitions = mergeRowResizeDefinitions(this.
|
|
337
|
-
this.
|
|
338
|
-
this.
|
|
359
|
+
const rowDefinitions = mergeRowResizeDefinitions(this.providers.dimension.getRowDefinitions(), active.rowType, physicalIndexes, active.currentHeight);
|
|
360
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
361
|
+
this.scheduleRowDefinitionRemap();
|
|
362
|
+
this.keepBottomAnchor = active.bottomAnchored;
|
|
363
|
+
this.requestBottomAnchor(active);
|
|
339
364
|
}
|
|
340
365
|
}
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
366
|
+
requestBottomAnchor(active) {
|
|
367
|
+
if (active.bottomAnchored) {
|
|
368
|
+
this.pendingBottomAnchor = true;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
isMainViewportAtBottom(coordinate) {
|
|
372
|
+
const dimension = this.providers.dimension.stores.rgRow.getCurrentState();
|
|
373
|
+
const viewport = this.providers.viewport.stores.rgRow.store.state;
|
|
374
|
+
return (dimension.realSize > viewport.clientSize &&
|
|
375
|
+
coordinate >= getViewportMaxCoordinate(dimension, viewport.virtualSize));
|
|
376
|
+
}
|
|
377
|
+
pruneRowDefinitions() {
|
|
378
|
+
if (!this.pendingSourceCounts.size) {
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
const definitions = this.providers.dimension.getRowDefinitions();
|
|
382
|
+
const rowDefinitions = definitions.filter(definition => {
|
|
383
|
+
const count = this.pendingSourceCounts.get(definition.type);
|
|
384
|
+
return count === undefined || definition.index < count;
|
|
385
|
+
});
|
|
386
|
+
this.pendingSourceCounts.clear();
|
|
387
|
+
if (rowDefinitions.length !== definitions.length) {
|
|
388
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
361
389
|
}
|
|
362
390
|
}
|
|
363
391
|
finishGesture() {
|
|
@@ -380,6 +408,9 @@ export class RowResizePlugin extends BasePlugin {
|
|
|
380
408
|
}
|
|
381
409
|
destroy() {
|
|
382
410
|
this.cancel('destroy');
|
|
411
|
+
this.keepBottomAnchor = false;
|
|
412
|
+
this.rowDefinitionRemapQueued = false;
|
|
413
|
+
this.pendingSourceCounts.clear();
|
|
383
414
|
super.destroy();
|
|
384
415
|
}
|
|
385
416
|
}
|
|
@@ -6,6 +6,7 @@ import { BasePlugin } from "../base.plugin";
|
|
|
6
6
|
import { getColumnByProp } from "../../utils/column.utils";
|
|
7
7
|
import { columnTypes, rowTypes } from "../../store/index";
|
|
8
8
|
import { isGrouping } from "../groupingRow/grouping.service";
|
|
9
|
+
import { gatherGroupedRowIndexes } from "../groupingRow/grouping.sorting.service";
|
|
9
10
|
import { getComparer, getNextOrder, getSortingIndex, hasActiveSorting, sortIndexByItems, } from "./sorting.func";
|
|
10
11
|
export * from './sorting.types';
|
|
11
12
|
export * from './sorting.func';
|
|
@@ -13,18 +14,6 @@ export * from './sorting.sign';
|
|
|
13
14
|
function getSortableRowIndexes(indexes, source) {
|
|
14
15
|
return indexes.filter(index => !isGrouping(source[index]));
|
|
15
16
|
}
|
|
16
|
-
function mergeSortedRowsWithGroups(indexes, source, sortedRows) {
|
|
17
|
-
if (sortedRows.length === indexes.length) {
|
|
18
|
-
return sortedRows;
|
|
19
|
-
}
|
|
20
|
-
let rowIndex = 0;
|
|
21
|
-
return indexes.map(index => {
|
|
22
|
-
if (isGrouping(source[index])) {
|
|
23
|
-
return index;
|
|
24
|
-
}
|
|
25
|
-
return sortedRows[rowIndex++];
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
17
|
/**
|
|
29
18
|
* Lifecycle
|
|
30
19
|
* 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.
|
|
@@ -184,6 +173,7 @@ export class SortingPlugin extends BasePlugin {
|
|
|
184
173
|
storeService.setData({ proxyItems: newItemsOrder });
|
|
185
174
|
}
|
|
186
175
|
applySortingForStore(type, sorting, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
176
|
+
var _a;
|
|
187
177
|
const storeService = this.providers.data.stores[type];
|
|
188
178
|
// row data
|
|
189
179
|
const source = storeService.store.get('source');
|
|
@@ -191,7 +181,10 @@ export class SortingPlugin extends BasePlugin {
|
|
|
191
181
|
const proxyItems = storeService.store.get('proxyItems');
|
|
192
182
|
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
193
183
|
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, sortingColumns, sortingOrder);
|
|
194
|
-
const
|
|
184
|
+
const hasGroupingRows = sortedItems.length !== proxyItems.length;
|
|
185
|
+
const newItemsOrder = hasGroupingRows
|
|
186
|
+
? (_a = gatherGroupedRowIndexes(source, sortedItems)) !== null && _a !== void 0 ? _a : proxyItems
|
|
187
|
+
: sortedItems;
|
|
195
188
|
// take row indexes before trim applied and proxy items
|
|
196
189
|
const prevItems = storeService.store.get('items');
|
|
197
190
|
storeService.setData({
|
|
@@ -217,6 +210,16 @@ export class SortingPlugin extends BasePlugin {
|
|
|
217
210
|
}
|
|
218
211
|
this.postponeSort(order, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate);
|
|
219
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Schedules the current active sort again after another plugin rebuilds row
|
|
215
|
+
* proxy indexes while keeping the physical source unchanged.
|
|
216
|
+
*/
|
|
217
|
+
reapplySorting() {
|
|
218
|
+
if (!hasActiveSorting(this.sorting) || !this.sortingFunc) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
this.startSorting(this.sorting, this.sortingFunc, this.sortingColumns, this.sortingOrder);
|
|
222
|
+
}
|
|
220
223
|
/**
|
|
221
224
|
* Applies sorting requested by a sortable header click.
|
|
222
225
|
*
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { BasePlugin } from "../base.plugin";
|
|
5
|
+
const toAriaIndex = (index) => `${index + 1}`;
|
|
5
6
|
/**
|
|
6
7
|
* WCAG Plugin is responsible for enhancing the accessibility features of the RevoGrid component.
|
|
7
8
|
* It ensures that the grid is fully compliant with Web Content Accessibility Guidelines (WCAG) 2.1.
|
|
@@ -45,14 +46,14 @@ export class WCAGPlugin extends BasePlugin {
|
|
|
45
46
|
column.columnProperties = (...args) => {
|
|
46
47
|
const result = (columnProperties === null || columnProperties === void 0 ? void 0 : columnProperties(...args)) || {};
|
|
47
48
|
result.role = 'columnheader';
|
|
48
|
-
result['aria-colindex'] =
|
|
49
|
+
result['aria-colindex'] = toAriaIndex(index);
|
|
49
50
|
return result;
|
|
50
51
|
};
|
|
51
52
|
column.cellProperties = (...args) => {
|
|
52
53
|
const wcagProps = {
|
|
53
54
|
['role']: 'gridcell',
|
|
54
|
-
['aria-colindex']:
|
|
55
|
-
['aria-rowindex']:
|
|
55
|
+
['aria-colindex']: toAriaIndex(index),
|
|
56
|
+
['aria-rowindex']: toAriaIndex(args[0].rowIndex),
|
|
56
57
|
['tabindex']: -1,
|
|
57
58
|
};
|
|
58
59
|
const columnProps = (cellProperties === null || cellProperties === void 0 ? void 0 : cellProperties(...args)) || {};
|
|
@@ -67,7 +68,7 @@ export class WCAGPlugin extends BasePlugin {
|
|
|
67
68
|
revogrid.setAttribute('aria-rowcount', `${detail.source.length}`);
|
|
68
69
|
});
|
|
69
70
|
this.addEventListener('beforerowrender', ({ detail, }) => {
|
|
70
|
-
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: detail.item.itemIndex });
|
|
71
|
+
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: toAriaIndex(detail.item.itemIndex) });
|
|
71
72
|
});
|
|
72
73
|
// focuscell
|
|
73
74
|
this.addEventListener('afterfocus', async (e) => {
|
|
@@ -19,7 +19,9 @@ export function isVirtualXDimension(type, disableVirtualX = false, virtualX = DE
|
|
|
19
19
|
export default class DimensionProvider {
|
|
20
20
|
constructor(viewports, config) {
|
|
21
21
|
this.viewports = viewports;
|
|
22
|
-
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.rowDefinitions = [];
|
|
24
|
+
const sizeChanged = debounce((k) => this.config.realSizeChanged(k), RESIZE_INTERVAL);
|
|
23
25
|
this.stores = [...rowTypes, ...columnTypes].reduce((sources, t) => {
|
|
24
26
|
sources[t] = new DimensionStore(t);
|
|
25
27
|
sources[t].store.onChange('realSize', () => sizeChanged(t));
|
|
@@ -37,6 +39,20 @@ export default class DimensionProvider {
|
|
|
37
39
|
this.viewports.stores[t].setOriginalSizes(this.stores[t].store.get('originItemSize'));
|
|
38
40
|
this.setItemCount(count, t);
|
|
39
41
|
}
|
|
42
|
+
getRowDefinitions() {
|
|
43
|
+
return this.rowDefinitions;
|
|
44
|
+
}
|
|
45
|
+
syncRowDefinitions(definitions) {
|
|
46
|
+
this.rowDefinitions = definitions;
|
|
47
|
+
}
|
|
48
|
+
setRowDefinitions(definitions) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
if (definitions === this.rowDefinitions) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.syncRowDefinitions(definitions);
|
|
54
|
+
(_b = (_a = this.config).rowDefinitionsChanged) === null || _b === void 0 ? void 0 : _b.call(_a, definitions);
|
|
55
|
+
}
|
|
40
56
|
/**
|
|
41
57
|
* Apply new custom sizes to dimension and view port
|
|
42
58
|
* @param type - dimension type
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h, e as Build } from './index-CtimkLsB.js';
|
|
5
5
|
import { o as DATA_ROW, b as getSourceItem, n as DATA_COL, C as CELL_CLASS, x as DRAG_ICON_CLASS, y as DRAGGABLE_CLASS } from './dimension.helpers-Cln9sALu.js';
|
|
6
|
-
import { A as getCellRaw, v as isGroupingColumn, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, j as GROUP_COLUMN_PROP, P as PSEUDO_GROUP_ITEM, h as GROUP_EXPANDED, G as GROUP_DEPTH,
|
|
6
|
+
import { A as getCellRaw, v as isGroupingColumn, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, j as GROUP_COLUMN_PROP, P as PSEUDO_GROUP_ITEM, h as GROUP_EXPANDED, G as GROUP_DEPTH, Q as isRowDragService, C as getCellDataParsed } from './column.service-pu_fdQ0S.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Renders sorting direction and optional additive sorting rank.
|
|
@@ -432,6 +432,7 @@ const GROUP_COLUMN_PROP = `${GRID_INTERNALS}-prop`;
|
|
|
432
432
|
const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;
|
|
433
433
|
const GROUP_EXPAND_BTN = `group-expand`;
|
|
434
434
|
const GROUP_EXPAND_EVENT = `groupexpandclick`;
|
|
435
|
+
const BEFORE_GROUPING_APPLY_EVENT = `beforegroupingapply`;
|
|
435
436
|
const GROUPING_ROW_TYPE = 'rgRow';
|
|
436
437
|
|
|
437
438
|
function getGroupValueDefault(item, prop, emptyGroupValue) {
|
|
@@ -1006,4 +1007,4 @@ function doPropMerge(existing, extra) {
|
|
|
1006
1007
|
return props;
|
|
1007
1008
|
}
|
|
1008
1009
|
|
|
1009
|
-
export { getCellRaw as A,
|
|
1010
|
+
export { getCellRaw as A, BEFORE_GROUPING_APPLY_EVENT as B, getCellDataParsed as C, getColumnType as D, getColumnSizes as E, isColGrouping as F, GROUP_DEPTH as G, getColumns as H, gatherGroup as I, getColumnByProp as J, reduce as K, baseEach as L, toInteger as M, ColumnService as N, getCellEditor as O, PSEUDO_GROUP_ITEM as P, isRowDragService as Q, doPropMerge as R, cropCellToMax as a, isRangeSingleCell as b, columnTypes as c, PSEUDO_GROUP_ITEM_ID as d, PSEUDO_GROUP_ITEM_VALUE as e, PSEUDO_GROUP_COLUMN as f, getRange as g, GROUP_EXPANDED as h, isRowType as i, GROUP_COLUMN_PROP as j, GROUP_ORIGINAL_INDEX as k, GROUP_EXPAND_BTN as l, GROUP_EXPAND_EVENT as m, nextCell as n, GROUPING_ROW_TYPE as o, getSource as p, getExpanded as q, rowTypes as r, gatherGrouping as s, getGroupingName as t, isGrouping as u, isGroupingColumn as v, measureEqualDepth as w, getParsedGroup as x, isSameGroup as y, getCellData as z };
|
|
@@ -10,9 +10,10 @@ const AND_OR_BUTTON = 'and-or-button';
|
|
|
10
10
|
const TRASH_BUTTON = 'trash-button';
|
|
11
11
|
const REORDER_BUTTON = 'reorder-button';
|
|
12
12
|
const FilterButton = ({ column }) => {
|
|
13
|
-
|
|
13
|
+
const active = !!(column === null || column === void 0 ? void 0 : column[FILTER_PROP]);
|
|
14
|
+
return (h("span", { class: "filter-button-wrapper" }, h("button", { class: {
|
|
14
15
|
[FILTER_BUTTON_CLASS]: true,
|
|
15
|
-
[FILTER_BUTTON_ACTIVE]:
|
|
16
|
+
[FILTER_BUTTON_ACTIVE]: active,
|
|
16
17
|
} }, h("svg", { class: "filter-img", viewBox: "0 0 64 64" }, h("g", { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, h("path", { d: "M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z", fill: "currentColor" }))))));
|
|
17
18
|
};
|
|
18
19
|
const TrashButton = ({ ariaLabel, onClick }) => {
|
package/dist/{revo-grid/header-cell-renderer-Bqh1PrgH.js → esm/header-cell-renderer-YCiVIQ2E.js}
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { h } from './index-CtimkLsB.js';
|
|
5
|
-
import {
|
|
5
|
+
import { R as doPropMerge } from './column.service-pu_fdQ0S.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Dispatches a custom event to a specified target element.
|
package/dist/esm/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { d as defineTheme, B as BasePlugin } from './row-resize.plugin-
|
|
5
|
-
export {
|
|
6
|
-
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,
|
|
7
|
-
export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-
|
|
8
|
-
export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode, r as renderGroupCells } from './cell-renderer-
|
|
4
|
+
import { d as defineTheme, B as BasePlugin } from './row-resize.plugin-Beu0pMds.js';
|
|
5
|
+
export { H as AFTER_ROW_RESIZE_EVENT, A as AutoSizeColumnPlugin, s as BEFORE_COLUMN_DRAG_END_EVENT, y as BEFORE_ROW_RESIZE_EVENT, q as COLUMN_DRAG_END_EVENT, p as COLUMN_DRAG_MOVE_EVENT, u as COLUMN_DRAG_START_EVENT, C as ColumnAutoSizeMode, v as ColumnMovePlugin, l as DEFAULT_BLANK_SEMANTICS, K as DEFAULT_MIN_ROW_HEIGHT, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, e as FILTE_PANEL, f as FilterPlugin, G as GroupingRowPlugin, I as ROW_RESIZE_CANCEL_EVENT, z as ROW_RESIZE_EVENT, R as ROW_RESIZE_HANDLE_CLASS, J as RowResizePlugin, S as SelectionStore, Q as SortingPlugin, a as StretchColumn, M as clampRowResizeHeight, O as createRowResizePatch, W as defaultCellCompare, X as descCellCompare, n as doCollapse, o as doExpand, g as filterCoreFunctionsIndexedByType, k as filterNames, j as filterTypeDefaults, h as filterTypes, x as getColumnDragPosition, Z as getComparer, w as getLeftRelative, Y as getNextOrder, N as getRowResizeIndexes, U as getSortingIndex, T as hasActiveSorting, m as isBlankValue, i as isStretchPlugin, P as mergeRowResizeDefinitions, r as resolveBlankSemantics, L as resolveRowResizeConfig, V as sortIndexByItems, t as themeTokenCssVariables } from './row-resize.plugin-Beu0pMds.js';
|
|
6
|
+
export { B as BEFORE_GROUPING_APPLY_EVENT, 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, I as gatherGroup, s as gatherGrouping, z as getCellData, C as getCellDataParsed, A as getCellRaw, J as getColumnByProp, E as getColumnSizes, D as getColumnType, H as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, F 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-pu_fdQ0S.js';
|
|
7
|
+
export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-YCiVIQ2E.js';
|
|
8
|
+
export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode, r as renderGroupCells } from './cell-renderer-D9ze8OJw.js';
|
|
9
9
|
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 './index-BvMNbQyq.js';
|
|
10
10
|
export { T as TextEditor } from './text-editor-eHtrwvxH.js';
|
|
11
11
|
export { 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 './edit.utils-3ZbhQCv_.js';
|
|
12
12
|
export { h } from './index-CtimkLsB.js';
|
|
13
13
|
export { C as CELL_CLASS, A as CELL_HANDLER_CLASS, n as DATA_COL, o as DATA_ROW, q as DISABLED_CLASS, y as DRAGGABLE_CLASS, B as DRAGG_TEXT, x as DRAG_ICON_CLASS, D as DataStore, E as EDIT_INPUT_WR, F as FOCUS_CLASS, G as GRID_INTERNALS, w as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, v as HEADER_ROW_CLASS, u as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, z as MOBILE_CLASS, R as RESIZE_INTERVAL, I as ROW_FOCUSED_CLASS, r as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, j as calculateDimensionData, J as codesLetter, h as gatherTrimmedItems, l as getItemByIndex, k as getItemByPosition, g as getPhysical, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, i as getVisibleItems, a as getVisibleSourceItem, K as keyValues, p as proxyPlugin, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, m as setStore, t as trimmedPlugin } from './dimension.helpers-Cln9sALu.js';
|
|
14
14
|
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 './viewport.store-DWMKRDSH.js';
|
|
15
|
-
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-
|
|
15
|
+
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-CEPUxLUo.js';
|
|
16
16
|
import './debounce-PCRWZliA.js';
|
|
17
17
|
|
|
18
18
|
const REVOGRID_EVENTS = new Map([
|