@revolist/revogrid 4.27.3 → 4.27.5

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 (31) hide show
  1. package/dist/cjs/index.cjs.js +1 -2
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/revo-grid.cjs.entry.js +1 -1
  4. package/dist/cjs/revo-grid.cjs.js +1 -1
  5. package/dist/cjs/revogr-filter-panel.cjs.entry.js +31 -139
  6. package/dist/cjs/{row-resize.plugin-C4YOF1lN.js → row-resize.plugin-jaZje3kL.js} +4 -53
  7. package/dist/collection/plugins/filter/filter.indexed.js +0 -5
  8. package/dist/collection/plugins/filter/filter.panel.js +31 -140
  9. package/dist/collection/plugins/filter/filter.plugin.js +5 -48
  10. package/dist/esm/index.js +2 -2
  11. package/dist/esm/loader.js +1 -1
  12. package/dist/esm/revo-grid.entry.js +1 -1
  13. package/dist/esm/revo-grid.js +1 -1
  14. package/dist/esm/revogr-filter-panel.entry.js +31 -139
  15. package/dist/esm/{row-resize.plugin-Beu0pMds.js → row-resize.plugin-Dzn9bTOr.js} +5 -53
  16. package/dist/revo-grid/index.esm.js +2 -2
  17. package/dist/revo-grid/revo-grid.entry.js +1 -1
  18. package/dist/revo-grid/revo-grid.esm.js +1 -1
  19. package/dist/revo-grid/revogr-filter-panel.entry.js +31 -139
  20. package/dist/revo-grid/{row-resize.plugin-Beu0pMds.js → row-resize.plugin-Dzn9bTOr.js} +5 -53
  21. package/dist/types/plugins/filter/filter.indexed.d.ts +0 -2
  22. package/dist/types/plugins/filter/filter.panel.d.ts +2 -9
  23. package/dist/types/plugins/filter/filter.plugin.d.ts +1 -8
  24. package/dist/types/plugins/filter/filter.types.d.ts +0 -8
  25. package/dist/types/types/interfaces.d.ts +1 -13
  26. package/hydrate/index.js +35 -192
  27. package/hydrate/index.mjs +35 -192
  28. package/package.json +1 -1
  29. package/standalone/index.js +1 -1
  30. package/standalone/revo-grid.js +1 -1
  31. package/standalone/revogr-filter-panel.js +1 -1
@@ -78,7 +78,6 @@ const FilterPanel = class {
78
78
  registerInstance(this, hostRef);
79
79
  this.filterChange = createEvent(this, "filterChange", 7);
80
80
  this.resetChange = createEvent(this, "resetChange", 7);
81
- this.hasChanges = false;
82
81
  this.filterCaptionsInternal = {
83
82
  title: 'Filter by',
84
83
  ok: 'Close',
@@ -114,7 +113,7 @@ const FilterPanel = class {
114
113
  */
115
114
  this.allowDuplicateOperators = true;
116
115
  this.debouncedApplyFilter = debounce(() => {
117
- this.emitFilterChange();
116
+ this.filterChange.emit(this.filterItems);
118
117
  }, 400);
119
118
  }
120
119
  onMouseDown(e) {
@@ -144,27 +143,10 @@ const FilterPanel = class {
144
143
  }
145
144
  }
146
145
  async show(newEntity) {
147
- this.hasChanges = false;
148
146
  this.changes = newEntity;
149
- this.filterItems = this.cloneFilterItems((newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {});
150
- this.draftFilter = undefined;
147
+ this.filterItems = (newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {};
151
148
  if (this.changes) {
152
149
  this.changes.type = this.changes.type || defaultType;
153
- const prop = this.changes.prop;
154
- const propFilters = prop === undefined ? undefined : this.filterItems[prop];
155
- if (!(propFilters === null || propFilters === void 0 ? void 0 : propFilters.length) &&
156
- this.changes.showDefaultFilter !== false &&
157
- this.changes.hideDefaultFilters !== true) {
158
- const type = this.resolveDraftFilterType(this.changes.defaultFilterType);
159
- if (type) {
160
- this.draftFilter = {
161
- id: ++this.filterId,
162
- type,
163
- value: '',
164
- relation: 'and',
165
- };
166
- }
167
- }
168
150
  }
169
151
  }
170
152
  async getChanges() {
@@ -185,42 +167,29 @@ const FilterPanel = class {
185
167
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
186
168
  if (prop === undefined)
187
169
  return '';
188
- const propFilters = ((_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []).map((filter, index) => ({
189
- filter,
190
- index,
191
- isDraft: false,
192
- }));
193
- if (this.draftFilter) {
194
- propFilters.push({
195
- filter: this.draftFilter,
196
- index: propFilters.length,
197
- isDraft: true,
198
- });
199
- }
200
- const visibleFilters = propFilters.filter(({ filter }) => !filter.hidden);
201
- const visibleFilterCount = visibleFilters.length;
170
+ const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : [];
171
+ const visibleFilterCount = propFilters.filter(filter => !filter.hidden).length;
202
172
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
203
- return (h("div", { key: this.filterId }, h("ul", { class: "multi-filter-list-container" }, propFilters.map(({ filter, index, isDraft }) => {
204
- var _a;
173
+ return (h("div", { key: this.filterId }, h("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
205
174
  let andOrButton;
206
175
  if (filter.hidden) {
207
176
  return;
208
177
  }
209
178
  // hide toggle button if there is only one filter and the last one
210
- if (((_a = visibleFilters[visibleFilterCount - 1]) === null || _a === void 0 ? void 0 : _a.filter.id) !== filter.id) {
179
+ if (index !== this.filterItems[prop].length - 1) {
211
180
  andOrButton = (h(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
212
181
  }
213
- const extra = this.renderExtra(prop, index, isDraft);
182
+ const extra = this.renderExtra(prop, index);
214
183
  const isDragging = this.draggedFilterId === filter.id;
215
184
  const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
216
- const canReorder = visibleFilterCount > 1 && !isDraft;
185
+ const canReorder = visibleFilterCount > 1;
217
186
  return (h("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, h("div", { class: {
218
187
  'multi-filter-list-row': true,
219
188
  'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
220
189
  'filter-row-dragging': isDragging,
221
190
  'filter-row-drag-over': isDragOver,
222
- } }, canReorder ? (h("button", { type: "button", class: "filter-row-drop-target", tabIndex: -1, "aria-label": `${capts.filterCondition} ${index + 1}`, onDragOver: e => this.onFilterDragOver(e, filter.id), onDragLeave: () => this.onFilterDragLeave(filter.id), onDrop: e => this.onFilterDrop(e, prop, filter.id) })) : '', canReorder ? (h(ReorderButton, { ariaLabel: capts.reorderFilter, dragging: isDragging, dragOver: isDragOver, onDragStart: e => this.onFilterDragStart(e, filter.id), onDragEnd: () => this.onFilterDragEnd(), onKeyDown: e => this.onFilterReorderKeyDown(e, prop, filter.id) })) : '', h("div", { class: { 'select-input': true } }, h("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index, isDraft) }, this.renderSelectOptions(filter.type, true)), extra ? h("div", { class: "filter-extra" }, extra) : ''), h("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, h(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
223
- })), visibleFilterCount ? h("div", { class: "add-filter-divider" }) : ''));
191
+ } }, canReorder ? (h("button", { type: "button", class: "filter-row-drop-target", tabIndex: -1, "aria-label": `${capts.filterCondition} ${index + 1}`, onDragOver: e => this.onFilterDragOver(e, filter.id), onDragLeave: () => this.onFilterDragLeave(filter.id), onDrop: e => this.onFilterDrop(e, prop, filter.id) })) : '', canReorder ? (h(ReorderButton, { ariaLabel: capts.reorderFilter, dragging: isDragging, dragOver: isDragOver, onDragStart: e => this.onFilterDragStart(e, filter.id), onDragEnd: () => this.onFilterDragEnd(), onKeyDown: e => this.onFilterReorderKeyDown(e, prop, filter.id) })) : '', h("div", { class: { 'select-input': true } }, h("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index) }, this.renderSelectOptions(this.filterItems[prop][index].type, true)), extra ? h("div", { class: "filter-extra" }, extra) : ''), h("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, h(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
192
+ })), propFilters.some(f => !f.hidden) ? h("div", { class: "add-filter-divider" }) : ''));
224
193
  }
225
194
  componentDidRender() {
226
195
  this.syncDialog();
@@ -269,24 +238,16 @@ const FilterPanel = class {
269
238
  el.style.left = `${left}px`;
270
239
  el.style.top = `${top}px`;
271
240
  }
272
- onFilterTypeChange(e, prop, index, isDraft = false) {
241
+ onFilterTypeChange(e, prop, index) {
273
242
  if (!(e.target instanceof HTMLSelectElement)) {
274
243
  return;
275
244
  }
276
- const type = e.target.value;
277
- const filter = isDraft
278
- ? this.promoteDraft(prop, type)
279
- : this.filterItems[prop][index];
280
- if (!filter) {
281
- return;
282
- }
283
- filter.type = type;
284
- this.hasChanges = true;
245
+ this.filterItems[prop][index].type = e.target.value;
285
246
  // this re-renders the input to know if we need extra input
286
247
  this.filterId++;
287
248
  // adding setTimeout will wait for the next tick DOM update then focus on input
288
249
  setTimeout(() => {
289
- const input = document.getElementById('filter-input-' + filter.id);
250
+ const input = document.getElementById('filter-input-' + this.filterItems[prop][index].id);
290
251
  if (input instanceof HTMLInputElement) {
291
252
  input.focus();
292
253
  }
@@ -321,20 +282,12 @@ const FilterPanel = class {
321
282
  return;
322
283
  this.filterId++;
323
284
  this.currentFilterId = this.filterId;
324
- if (this.draftFilter) {
325
- this.draftFilter.id = this.currentFilterId;
326
- this.draftFilter.type = this.currentFilterType;
327
- this.promoteDraft(prop);
328
- }
329
- else {
330
- this.filterItems[prop].push({
331
- id: this.currentFilterId,
332
- type: this.currentFilterType,
333
- value: '',
334
- relation: 'and',
335
- });
336
- this.hasChanges = true;
337
- }
285
+ this.filterItems[prop].push({
286
+ id: this.currentFilterId,
287
+ type: this.currentFilterType,
288
+ value: '',
289
+ relation: 'and',
290
+ });
338
291
  // adding setTimeout will wait for the next tick DOM update then focus on input
339
292
  setTimeout(() => {
340
293
  const input = document.getElementById('filter-input-' + this.currentFilterId);
@@ -343,9 +296,7 @@ const FilterPanel = class {
343
296
  }, 0);
344
297
  }
345
298
  onSave() {
346
- if (this.hasChanges) {
347
- this.emitFilterChange();
348
- }
299
+ this.filterChange.emit(this.filterItems);
349
300
  }
350
301
  onCancel() {
351
302
  this.changes = undefined;
@@ -353,25 +304,16 @@ const FilterPanel = class {
353
304
  onReset() {
354
305
  var _a;
355
306
  this.assertChanges();
356
- this.draftFilter = undefined;
357
- const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
358
- if (prop !== undefined) {
359
- delete this.filterItems[prop];
360
- }
361
- this.resetChange.emit(prop);
307
+ this.resetChange.emit((_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop);
362
308
  // this updates the DOM which is used by getFilterItemsList() key
363
309
  this.filterId++;
364
310
  }
365
311
  onRemoveFilter(id) {
366
- var _a, _b;
312
+ var _a;
367
313
  this.assertChanges();
368
314
  // this is for reactivity issues for getFilterItemsList()
369
315
  this.filterId++;
370
316
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
371
- if (((_b = this.draftFilter) === null || _b === void 0 ? void 0 : _b.id) === id) {
372
- this.draftFilter = undefined;
373
- return;
374
- }
375
317
  const items = this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
376
318
  if (!items)
377
319
  return;
@@ -379,7 +321,6 @@ const FilterPanel = class {
379
321
  if (index === -1)
380
322
  return;
381
323
  items.splice(index, 1);
382
- this.hasChanges = true;
383
324
  // let's remove the prop if no more filters so the filter icon will be removed
384
325
  if (items.length === 0)
385
326
  delete this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
@@ -421,7 +362,6 @@ const FilterPanel = class {
421
362
  if (!moveFilterItem(items, sourceId, targetId)) {
422
363
  return;
423
364
  }
424
- this.hasChanges = true;
425
365
  this.filterId++;
426
366
  if (!this.disableDynamicFiltering) {
427
367
  this.debouncedApplyFilter();
@@ -457,7 +397,6 @@ const FilterPanel = class {
457
397
  if (!target || !moveFilterItem(items, sourceId, target.id)) {
458
398
  return;
459
399
  }
460
- this.hasChanges = true;
461
400
  this.filterId++;
462
401
  if (!this.disableDynamicFiltering) {
463
402
  this.debouncedApplyFilter();
@@ -476,7 +415,6 @@ const FilterPanel = class {
476
415
  if (index === -1)
477
416
  return;
478
417
  items[index].relation = items[index].relation === 'and' ? 'or' : 'and';
479
- this.hasChanges = true;
480
418
  if (!this.disableDynamicFiltering) {
481
419
  this.debouncedApplyFilter();
482
420
  }
@@ -525,22 +463,12 @@ const FilterPanel = class {
525
463
  }
526
464
  return options;
527
465
  }
528
- renderExtra(prop, index, isDraft = false) {
529
- var _a, _b;
530
- const currentFilter = isDraft
531
- ? this.draftFilter
532
- : (_a = this.filterItems[prop]) === null || _a === void 0 ? void 0 : _a[index];
466
+ renderExtra(prop, index) {
467
+ const currentFilter = this.filterItems[prop];
533
468
  if (!currentFilter)
534
469
  return '';
535
470
  const applyFilter = (value) => {
536
- currentFilter.value = value;
537
- if (isDraft && !this.isMeaningfulDraftValue(value)) {
538
- return;
539
- }
540
- if (isDraft && !this.promoteDraft(prop)) {
541
- return;
542
- }
543
- this.hasChanges = true;
471
+ this.filterItems[prop][index].value = value;
544
472
  if (!this.disableDynamicFiltering) {
545
473
  this.debouncedApplyFilter();
546
474
  }
@@ -555,11 +483,11 @@ const FilterPanel = class {
555
483
  }
556
484
  };
557
485
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
558
- const extra = (_b = this.filterEntities[currentFilter.type]) === null || _b === void 0 ? void 0 : _b.extra;
486
+ const extra = this.filterEntities[currentFilter[index].type].extra;
559
487
  if (typeof extra === 'function') {
560
488
  return extra(h, {
561
- value: currentFilter.value,
562
- filter: currentFilter,
489
+ value: currentFilter[index].value,
490
+ filter: currentFilter[index],
563
491
  prop,
564
492
  index,
565
493
  placeholder: capts.placeholder,
@@ -574,7 +502,7 @@ const FilterPanel = class {
574
502
  if (extra !== 'input' && extra !== 'datepicker') {
575
503
  return '';
576
504
  }
577
- return (h("input", { id: `filter-input-${currentFilter.id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter.value, onInput: (e) => {
505
+ return (h("input", { id: `filter-input-${currentFilter[index].id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter[index].value, onInput: (e) => {
578
506
  if (e.target instanceof HTMLInputElement) {
579
507
  applyFilter(e.target.value);
580
508
  }
@@ -590,42 +518,6 @@ const FilterPanel = class {
590
518
  e.stopPropagation();
591
519
  } }));
592
520
  }
593
- resolveDraftFilterType(preferred) {
594
- var _a, _b;
595
- const available = Object.values((_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.filterTypes) !== null && _b !== void 0 ? _b : {}).flat();
596
- const type = preferred && available.includes(preferred)
597
- ? preferred
598
- : available[0];
599
- return type;
600
- }
601
- promoteDraft(prop, type) {
602
- if (!this.draftFilter) {
603
- return;
604
- }
605
- if (!this.filterItems[prop]) {
606
- this.filterItems[prop] = [];
607
- }
608
- if (type) {
609
- this.draftFilter.type = type;
610
- }
611
- const filter = this.draftFilter;
612
- this.filterItems[prop].push(filter);
613
- this.draftFilter = undefined;
614
- this.hasChanges = true;
615
- return filter;
616
- }
617
- isMeaningfulDraftValue(value) {
618
- return value !== '' && value !== undefined && value !== null;
619
- }
620
- emitFilterChange() {
621
- this.filterChange.emit(this.cloneFilterItems(this.filterItems));
622
- }
623
- cloneFilterItems(filterItems) {
624
- return Object.fromEntries(Object.entries(filterItems).map(([prop, filters]) => [
625
- prop,
626
- filters.map(filter => (Object.assign({}, filter))),
627
- ]));
628
- }
629
521
  getAddFilterSelect() {
630
522
  return this.element.querySelector(`#${FILTER_ID}`);
631
523
  }
@@ -658,7 +550,7 @@ const FilterPanel = class {
658
550
  top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
659
551
  };
660
552
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
661
- return (h(Host, { key: 'f7ec3ca1855a9391b4f270ad7056f9c7a4a0204e' }, h("dialog", { key: 'a5c46aa4822934e7a6eb455fd686513b9101afb4', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
553
+ return (h(Host, { key: 'd0e4ebb408750b11b3965da6a25e581733c968e3' }, h("dialog", { key: '3df36777c931ec1063e8574169ca880a99dbfe41', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
662
554
  e.preventDefault();
663
555
  this.onCancel();
664
556
  } }, this.changes && [
@@ -667,7 +559,7 @@ const FilterPanel = class {
667
559
  ((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
668
560
  h("label", { key: "filter-title" }, capts.title),
669
561
  h("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
670
- h("div", { key: "add-filter", class: "add-filter" }, h("select", { key: '3912f4bd9b1e66fda46e9b6d7c002d29da726345', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
562
+ h("div", { key: "add-filter", class: "add-filter" }, h("select", { key: 'e2a8bd29f2090d3e6c933795427b71ca190b82aa', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
671
563
  ],
672
564
  h("slot", { key: "default-slot" }),
673
565
  ((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
@@ -1361,11 +1361,6 @@ const filterTypes = {
1361
1361
  boolean: ['notEmpty', 'empty'],
1362
1362
  array: ['notEmpty', 'empty'],
1363
1363
  };
1364
- /** Preferred initial operator for built-in filter families. */
1365
- const filterTypeDefaults = {
1366
- string: 'contains',
1367
- number: 'eqN',
1368
- };
1369
1364
  const filterNames = {
1370
1365
  none: 'None',
1371
1366
  empty: 'Is blank',
@@ -1408,8 +1403,6 @@ const FILTE_PANEL = 'revogr-filter-panel';
1408
1403
  *
1409
1404
  * @property {FilterLocalization|undefined} localization - translation for filter popup captions.
1410
1405
  *
1411
- * @property {boolean|undefined} defaultFilter - creates a draft condition when an empty filter panel opens. Defaults to true.
1412
- *
1413
1406
  * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
1414
1407
  */
1415
1408
  /**
@@ -1431,7 +1424,7 @@ class FilterPlugin extends BasePlugin {
1431
1424
  * number: ['eqN', 'neqN', 'gt']
1432
1425
  * }
1433
1426
  */
1434
- this.filterByType = Object.fromEntries(Object.entries(filterTypes).map(([type, filters]) => [type, [...filters]]));
1427
+ this.filterByType = Object.assign({}, filterTypes);
1435
1428
  this.filterNameIndexByType = Object.assign({}, filterNames);
1436
1429
  this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
1437
1430
  this.filterProp = FILTER_PROP;
@@ -1515,16 +1508,11 @@ class FilterPlugin extends BasePlugin {
1515
1508
  return null;
1516
1509
  }
1517
1510
  initConfig(config) {
1518
- var _a, _b, _c, _d;
1511
+ var _a;
1519
1512
  this.config = config;
1520
1513
  this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
1521
1514
  if (this.pop) {
1522
1515
  this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
1523
- this.pop.disableDynamicFiltering =
1524
- (_b = config.disableDynamicFiltering) !== null && _b !== void 0 ? _b : false;
1525
- this.pop.closeOnOutsideClick =
1526
- (_c = config.closeFilterPanelOnOutsideClick) !== null && _c !== void 0 ? _c : true;
1527
- this.pop.filterCaptions = (_d = config.localization) === null || _d === void 0 ? void 0 : _d.captions;
1528
1516
  }
1529
1517
  if (config.multiFilterItems) {
1530
1518
  this.multiFilterItems = Object.assign({}, config.multiFilterItems);
@@ -1613,12 +1601,11 @@ class FilterPlugin extends BasePlugin {
1613
1601
  }
1614
1602
  // filter button clicked, open filter dialog
1615
1603
  const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
1616
- const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x, y: buttonPos.y + buttonPos.height, anchorY: buttonPos.y, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), defaultFilterType: this.getDefaultFilter(e.detail.filter), showDefaultFilter: this.shouldShowDefaultFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent, extraBottomContent: this.extraBottomHyperContent });
1604
+ const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x, y: buttonPos.y + buttonPos.height, anchorY: buttonPos.y, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent, extraBottomContent: this.extraBottomHyperContent });
1617
1605
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
1618
1606
  this.pop.show(data);
1619
1607
  }
1620
- getColumnFilter(config) {
1621
- const type = this.isColumnFilterOption(config) ? config.type : config;
1608
+ getColumnFilter(type) {
1622
1609
  let filterType = 'string';
1623
1610
  if (!type) {
1624
1611
  return { [filterType]: this.filterByType[filterType] };
@@ -1638,41 +1625,6 @@ class FilterPlugin extends BasePlugin {
1638
1625
  }
1639
1626
  return { [filterType]: this.filterByType[filterType] };
1640
1627
  }
1641
- /** Resolve the preferred operator against the column's available filters. */
1642
- getDefaultFilter(config) {
1643
- var _a;
1644
- const filters = this.getColumnFilter(config);
1645
- const availableFilters = Object.values(filters).flat();
1646
- const columnDefault = this.isColumnFilterOption(config)
1647
- ? config.default
1648
- : undefined;
1649
- if (typeof columnDefault === 'string' &&
1650
- availableFilters.includes(columnDefault)) {
1651
- return columnDefault;
1652
- }
1653
- const firstFamily = Object.keys(filters)[0];
1654
- const familyDefault = filterTypeDefaults[firstFamily];
1655
- if (familyDefault && ((_a = filters[firstFamily]) === null || _a === void 0 ? void 0 : _a.includes(familyDefault))) {
1656
- return familyDefault;
1657
- }
1658
- return availableFilters[0];
1659
- }
1660
- /** Resolve grid and column-level draft opt-outs. */
1661
- shouldShowDefaultFilter(config) {
1662
- var _a;
1663
- if (this.isColumnFilterOption(config)) {
1664
- if (config.default === false) {
1665
- return false;
1666
- }
1667
- if (typeof config.default === 'string') {
1668
- return true;
1669
- }
1670
- }
1671
- return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultFilter) !== false;
1672
- }
1673
- isColumnFilterOption(value) {
1674
- return !!value && typeof value === 'object' && !Array.isArray(value);
1675
- }
1676
1628
  isValidType(type) {
1677
1629
  return !!(typeof type === 'string' && this.filterByType[type]);
1678
1630
  }
@@ -3757,4 +3709,4 @@ class RowResizePlugin extends BasePlugin {
3757
3709
  }
3758
3710
  }
3759
3711
 
3760
- export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, AFTER_ROW_RESIZE_EVENT as H, ROW_RESIZE_CANCEL_EVENT as I, RowResizePlugin as J, DEFAULT_MIN_ROW_HEIGHT as K, resolveRowResizeConfig as L, clampRowResizeHeight as M, getRowResizeIndexes as N, createRowResizePatch as O, mergeRowResizeDefinitions as P, SortingPlugin as Q, ROW_RESIZE_HANDLE_CLASS as R, SelectionStore as S, hasActiveSorting as T, getSortingIndex as U, sortIndexByItems as V, defaultCellCompare as W, descCellCompare as X, getNextOrder as Y, getComparer as Z, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c, defineTheme as d, FILTE_PANEL as e, FilterPlugin as f, filterCoreFunctionsIndexedByType as g, filterTypes as h, isStretchPlugin as i, filterTypeDefaults as j, filterNames as k, DEFAULT_BLANK_SEMANTICS as l, isBlankValue as m, doCollapse as n, doExpand as o, COLUMN_DRAG_MOVE_EVENT as p, COLUMN_DRAG_END_EVENT as q, resolveBlankSemantics as r, BEFORE_COLUMN_DRAG_END_EVENT as s, themeTokenCssVariables as t, COLUMN_DRAG_START_EVENT as u, ColumnMovePlugin as v, getLeftRelative as w, getColumnDragPosition as x, BEFORE_ROW_RESIZE_EVENT as y, ROW_RESIZE_EVENT as z };
3712
+ export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, ROW_RESIZE_CANCEL_EVENT as H, RowResizePlugin as I, DEFAULT_MIN_ROW_HEIGHT as J, resolveRowResizeConfig as K, clampRowResizeHeight as L, getRowResizeIndexes as M, createRowResizePatch as N, mergeRowResizeDefinitions as O, SortingPlugin as P, hasActiveSorting as Q, ROW_RESIZE_HANDLE_CLASS as R, SelectionStore as S, getSortingIndex as T, sortIndexByItems as U, defaultCellCompare as V, descCellCompare as W, getNextOrder as X, getComparer as Y, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c, defineTheme as d, FILTE_PANEL as e, FilterPlugin as f, filterCoreFunctionsIndexedByType as g, filterTypes as h, isStretchPlugin as i, filterNames as j, DEFAULT_BLANK_SEMANTICS as k, isBlankValue as l, doCollapse as m, doExpand as n, COLUMN_DRAG_MOVE_EVENT as o, COLUMN_DRAG_END_EVENT as p, BEFORE_COLUMN_DRAG_END_EVENT as q, resolveBlankSemantics as r, COLUMN_DRAG_START_EVENT as s, themeTokenCssVariables as t, ColumnMovePlugin as u, getLeftRelative as v, getColumnDragPosition as w, BEFORE_ROW_RESIZE_EVENT as x, ROW_RESIZE_EVENT as y, AFTER_ROW_RESIZE_EVENT as z };
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
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';
4
+ import { d as defineTheme, B as BasePlugin } from './row-resize.plugin-Dzn9bTOr.js';
5
+ export { z as AFTER_ROW_RESIZE_EVENT, A as AutoSizeColumnPlugin, q as BEFORE_COLUMN_DRAG_END_EVENT, x as BEFORE_ROW_RESIZE_EVENT, p as COLUMN_DRAG_END_EVENT, o as COLUMN_DRAG_MOVE_EVENT, s as COLUMN_DRAG_START_EVENT, C as ColumnAutoSizeMode, u as ColumnMovePlugin, k as DEFAULT_BLANK_SEMANTICS, J 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, H as ROW_RESIZE_CANCEL_EVENT, y as ROW_RESIZE_EVENT, R as ROW_RESIZE_HANDLE_CLASS, I as RowResizePlugin, S as SelectionStore, P as SortingPlugin, a as StretchColumn, L as clampRowResizeHeight, N as createRowResizePatch, V as defaultCellCompare, W as descCellCompare, m as doCollapse, n as doExpand, g as filterCoreFunctionsIndexedByType, j as filterNames, h as filterTypes, w as getColumnDragPosition, Y as getComparer, v as getLeftRelative, X as getNextOrder, M as getRowResizeIndexes, T as getSortingIndex, Q as hasActiveSorting, l as isBlankValue, i as isStretchPlugin, O as mergeRowResizeDefinitions, r as resolveBlankSemantics, K as resolveRowResizeConfig, U as sortIndexByItems, t as themeTokenCssVariables } from './row-resize.plugin-Dzn9bTOr.js';
6
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
7
  export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-YCiVIQ2E.js';
8
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';
@@ -6,7 +6,7 @@ import { c as columnTypes, K as reduce, D as getColumnType, r as rowTypes, i as
6
6
  import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, h as gatherTrimmedItems, l as getItemByIndex, R as RESIZE_INTERVAL, a as getVisibleSourceItem } from './dimension.helpers-Cln9sALu.js';
7
7
  import { d as debounce } from './debounce-PCRWZliA.js';
8
8
  import { g as getScrollDimension, v as viewportDataPartition, F as FOOTER_SLOT, C as CONTENT_SLOT, H as HEADER_SLOT, D as DATA_SLOT } from './viewport.helpers-CoCAvmZs.js';
9
- import { D as DimensionStore, t as themeTokenCssVariables, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, f as FilterPlugin, E as ExportFilePlugin, Q as SortingPlugin, J as RowResizePlugin, v as ColumnMovePlugin } from './row-resize.plugin-Beu0pMds.js';
9
+ import { D as DimensionStore, t as themeTokenCssVariables, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, f as FilterPlugin, E as ExportFilePlugin, P as SortingPlugin, I as RowResizePlugin, u as ColumnMovePlugin } from './row-resize.plugin-Dzn9bTOr.js';
10
10
  import { V as ViewportStore } from './viewport.store-DWMKRDSH.js';
11
11
  import { t as timeout } from './index-BvMNbQyq.js';
12
12
  import { g as getPropertyFromEvent } from './events-BvSmBueA.js';
@@ -47,5 +47,5 @@ var patchCloneNodeFix = (HTMLElementPrototype) => {
47
47
 
48
48
  patchBrowser().then(async (options) => {
49
49
  await globalScripts();
50
- return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"resizeRow":[4,"resize-row"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"themeDefinitions":[16],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"virtualX":[16],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"virtualX":[{"virtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"colSize":[{"colSizeChanged":0}],"theme":[{"themeChanged":0}],"themeDefinitions":[{"themeDefinitionsChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"resizeRow":[{"resizeRowChanged":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"allowDuplicateOperators":[4,"allow-duplicate-operators"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"draftFilter":[32],"draggedFilterId":[32],"dragOverFilterId":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
50
+ return bootstrapLazy([["revo-grid",[[260,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"resizeRow":[4,"resize-row"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyOnClose":[4,"apply-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"themeDefinitions":[16],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"sorting":[16],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"additionalData":[16],"disableVirtualX":[4,"disable-virtual-x"],"virtualX":[16],"disableVirtualY":[4,"disable-virtual-y"],"hideAttribution":[4,"hide-attribution"],"jobsBeforeRender":[16],"registerVNode":[16],"accessible":[4],"rtl":[4],"canDrag":[4,"can-drag"],"refresh":[64],"setDataAt":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64],"refreshExtraElements":[64],"getProviders":[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{"columnTypes":[{"columnTypesChanged":0}],"columns":[{"columnChanged":0}],"disableVirtualX":[{"disableVirtualXChanged":0}],"virtualX":[{"virtualXChanged":0}],"rowSize":[{"rowSizeChanged":0}],"colSize":[{"colSizeChanged":0}],"theme":[{"themeChanged":0}],"themeDefinitions":[{"themeDefinitionsChanged":0}],"source":[{"dataSourceChanged":0}],"pinnedBottomSource":[{"dataSourceChanged":0}],"pinnedTopSource":[{"dataSourceChanged":0}],"disableVirtualY":[{"disableVirtualYChanged":0}],"rowDefinitions":[{"rowDefChanged":0}],"trimmedRows":[{"trimmedRowsChanged":0}],"grouping":[{"groupingChanged":0}],"stretch":[{"applyStretch":0}],"filter":[{"applyFilter":0}],"sorting":[{"applySorting":0}],"rowHeaders":[{"rowHeadersChange":0}],"resizeRow":[{"resizeRowChanged":0}],"registerVNode":[{"registerOutsideVNodes":0}],"additionalData":[{"additionalDataChanged":0}],"rtl":[{"rtlChanged":0}],"plugins":[{"pluginsChanged":0}]}]]],["revogr-filter-panel",[[260,"revogr-filter-panel",{"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"closeOnOutsideClick":[4,"close-on-outside-click"],"allowDuplicateOperators":[4,"allow-duplicate-operators"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"filterItems":[32],"draggedFilterId":[32],"dragOverFilterId":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revogr-clipboard_3",[[0,"revogr-clipboard",{"readonly":[4],"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"],[4,"cut","cutStarted"]]],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"additionalData":[8,"additional-data"],"cancelChanges":[64],"beforeDisconnect":[64]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"rowType":[1,"row-type"],"dragStart":[64],"endOrder":[64],"clearOrder":[64]}]]],["revogr-data_4",[[260,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"additionalData":[8,"additional-data"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[513],"colType":[513,"col-type"],"jobsBeforeRender":[16],"providers":[32],"updateCell":[64]},null,{"dataStore":[{"onDataStoreChange":0}],"colData":[{"onColDataChange":0}]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"groups":[16],"groupingDepth":[2,"grouping-depth"],"readonly":[4],"canResize":[4,"can-resize"],"resizeHandler":[16],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1],"additionalData":[8,"additional-data"]}],[260,"revogr-viewport-scroll",{"rowHeader":[4,"row-header"],"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"colType":[1,"col-type"],"noHorizontalScrollTransfer":[4,"no-horizontal-scroll-transfer"],"setScroll":[64],"changeScroll":[64],"applyScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]],[0,"vnode-html",{"redraw":[16]}]]],["revogr-attribution_7",[[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16],"additionalData":[8,"additional-data"],"jobsBeforeRender":[16]}],[260,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"],"additionalData":[8,"additional-data"],"isMobileDevice":[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{"selectionStore":[{"selectionServiceSet":0}],"dimensionRow":[{"createAutoFillService":0}],"dimensionCol":[{"createAutoFillService":0}],"dataStore":[{"columnServiceSet":0}],"colData":[{"columnServiceSet":0}]}],[0,"revogr-attribution"],[260,"revogr-focus",{"colType":[1,"col-type"],"rowType":[1,"row-type"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"realSize":[2,"real-size"],"virtualSize":[2,"virtual-size"],"clientSize":[2,"client-size"],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-extra",{"nodes":[16],"update":[32],"refresh":[64]}]]]], options);
51
51
  });