@revolist/revogrid 4.27.4 → 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 -140
  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 -141
  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 -140
  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 -140
  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 -193
  27. package/hydrate/index.mjs +35 -193
  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
package/hydrate/index.mjs CHANGED
@@ -7625,7 +7625,6 @@ class FilterPanel {
7625
7625
  registerInstance(this, hostRef);
7626
7626
  this.filterChange = createEvent(this, "filterChange", 7);
7627
7627
  this.resetChange = createEvent(this, "resetChange", 7);
7628
- this.hasChanges = false;
7629
7628
  this.filterCaptionsInternal = {
7630
7629
  title: 'Filter by',
7631
7630
  ok: 'Close',
@@ -7661,7 +7660,7 @@ class FilterPanel {
7661
7660
  */
7662
7661
  this.allowDuplicateOperators = true;
7663
7662
  this.debouncedApplyFilter = debounce$1(() => {
7664
- this.emitFilterChange();
7663
+ this.filterChange.emit(this.filterItems);
7665
7664
  }, 400);
7666
7665
  }
7667
7666
  onMouseDown(e) {
@@ -7691,28 +7690,10 @@ class FilterPanel {
7691
7690
  }
7692
7691
  }
7693
7692
  async show(newEntity) {
7694
- this.debouncedApplyFilter.flush();
7695
- this.hasChanges = false;
7696
7693
  this.changes = newEntity;
7697
- this.filterItems = this.cloneFilterItems((newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {});
7698
- this.draftFilter = undefined;
7694
+ this.filterItems = (newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {};
7699
7695
  if (this.changes) {
7700
7696
  this.changes.type = this.changes.type || defaultType;
7701
- const prop = this.changes.prop;
7702
- const propFilters = prop === undefined ? undefined : this.filterItems[prop];
7703
- if (!(propFilters === null || propFilters === void 0 ? void 0 : propFilters.length) &&
7704
- this.changes.showDefaultFilter !== false &&
7705
- this.changes.hideDefaultFilters !== true) {
7706
- const type = this.resolveDraftFilterType(this.changes.defaultFilterType);
7707
- if (type) {
7708
- this.draftFilter = {
7709
- id: ++this.filterId,
7710
- type,
7711
- value: '',
7712
- relation: 'and',
7713
- };
7714
- }
7715
- }
7716
7697
  }
7717
7698
  }
7718
7699
  async getChanges() {
@@ -7733,42 +7714,29 @@ class FilterPanel {
7733
7714
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7734
7715
  if (prop === undefined)
7735
7716
  return '';
7736
- const propFilters = ((_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []).map((filter, index) => ({
7737
- filter,
7738
- index,
7739
- isDraft: false,
7740
- }));
7741
- if (this.draftFilter) {
7742
- propFilters.push({
7743
- filter: this.draftFilter,
7744
- index: propFilters.length,
7745
- isDraft: true,
7746
- });
7747
- }
7748
- const visibleFilters = propFilters.filter(({ filter }) => !filter.hidden);
7749
- const visibleFilterCount = visibleFilters.length;
7717
+ const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : [];
7718
+ const visibleFilterCount = propFilters.filter(filter => !filter.hidden).length;
7750
7719
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7751
- return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map(({ filter, index, isDraft }) => {
7752
- var _a;
7720
+ return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
7753
7721
  let andOrButton;
7754
7722
  if (filter.hidden) {
7755
7723
  return;
7756
7724
  }
7757
7725
  // hide toggle button if there is only one filter and the last one
7758
- if (((_a = visibleFilters[visibleFilterCount - 1]) === null || _a === void 0 ? void 0 : _a.filter.id) !== filter.id) {
7726
+ if (index !== this.filterItems[prop].length - 1) {
7759
7727
  andOrButton = (hAsync(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
7760
7728
  }
7761
- const extra = this.renderExtra(prop, index, isDraft);
7729
+ const extra = this.renderExtra(prop, index);
7762
7730
  const isDragging = this.draggedFilterId === filter.id;
7763
7731
  const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
7764
- const canReorder = visibleFilterCount > 1 && !isDraft;
7732
+ const canReorder = visibleFilterCount > 1;
7765
7733
  return (hAsync("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, hAsync("div", { class: {
7766
7734
  'multi-filter-list-row': true,
7767
7735
  'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
7768
7736
  'filter-row-dragging': isDragging,
7769
7737
  'filter-row-drag-over': isDragOver,
7770
- } }, canReorder ? (hAsync("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 ? (hAsync(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) })) : '', hAsync("div", { class: { 'select-input': true } }, hAsync("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index, isDraft) }, this.renderSelectOptions(filter.type, true)), extra ? hAsync("div", { class: "filter-extra" }, extra) : ''), hAsync("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, hAsync(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
7771
- })), visibleFilterCount ? hAsync("div", { class: "add-filter-divider" }) : ''));
7738
+ } }, canReorder ? (hAsync("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 ? (hAsync(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) })) : '', hAsync("div", { class: { 'select-input': true } }, hAsync("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index) }, this.renderSelectOptions(this.filterItems[prop][index].type, true)), extra ? hAsync("div", { class: "filter-extra" }, extra) : ''), hAsync("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, hAsync(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
7739
+ })), propFilters.some(f => !f.hidden) ? hAsync("div", { class: "add-filter-divider" }) : ''));
7772
7740
  }
7773
7741
  componentDidRender() {
7774
7742
  this.syncDialog();
@@ -7817,24 +7785,16 @@ class FilterPanel {
7817
7785
  el.style.left = `${left}px`;
7818
7786
  el.style.top = `${top}px`;
7819
7787
  }
7820
- onFilterTypeChange(e, prop, index, isDraft = false) {
7788
+ onFilterTypeChange(e, prop, index) {
7821
7789
  if (!(e.target instanceof HTMLSelectElement)) {
7822
7790
  return;
7823
7791
  }
7824
- const type = e.target.value;
7825
- const filter = isDraft
7826
- ? this.promoteDraft(prop, type)
7827
- : this.filterItems[prop][index];
7828
- if (!filter) {
7829
- return;
7830
- }
7831
- filter.type = type;
7832
- this.hasChanges = true;
7792
+ this.filterItems[prop][index].type = e.target.value;
7833
7793
  // this re-renders the input to know if we need extra input
7834
7794
  this.filterId++;
7835
7795
  // adding setTimeout will wait for the next tick DOM update then focus on input
7836
7796
  setTimeout(() => {
7837
- const input = document.getElementById('filter-input-' + filter.id);
7797
+ const input = document.getElementById('filter-input-' + this.filterItems[prop][index].id);
7838
7798
  if (input instanceof HTMLInputElement) {
7839
7799
  input.focus();
7840
7800
  }
@@ -7869,20 +7829,12 @@ class FilterPanel {
7869
7829
  return;
7870
7830
  this.filterId++;
7871
7831
  this.currentFilterId = this.filterId;
7872
- if (this.draftFilter) {
7873
- this.draftFilter.id = this.currentFilterId;
7874
- this.draftFilter.type = this.currentFilterType;
7875
- this.promoteDraft(prop);
7876
- }
7877
- else {
7878
- this.filterItems[prop].push({
7879
- id: this.currentFilterId,
7880
- type: this.currentFilterType,
7881
- value: '',
7882
- relation: 'and',
7883
- });
7884
- this.hasChanges = true;
7885
- }
7832
+ this.filterItems[prop].push({
7833
+ id: this.currentFilterId,
7834
+ type: this.currentFilterType,
7835
+ value: '',
7836
+ relation: 'and',
7837
+ });
7886
7838
  // adding setTimeout will wait for the next tick DOM update then focus on input
7887
7839
  setTimeout(() => {
7888
7840
  const input = document.getElementById('filter-input-' + this.currentFilterId);
@@ -7891,9 +7843,7 @@ class FilterPanel {
7891
7843
  }, 0);
7892
7844
  }
7893
7845
  onSave() {
7894
- if (this.hasChanges) {
7895
- this.emitFilterChange();
7896
- }
7846
+ this.filterChange.emit(this.filterItems);
7897
7847
  }
7898
7848
  onCancel() {
7899
7849
  this.changes = undefined;
@@ -7901,25 +7851,16 @@ class FilterPanel {
7901
7851
  onReset() {
7902
7852
  var _a;
7903
7853
  this.assertChanges();
7904
- this.draftFilter = undefined;
7905
- const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7906
- if (prop !== undefined) {
7907
- delete this.filterItems[prop];
7908
- }
7909
- this.resetChange.emit(prop);
7854
+ this.resetChange.emit((_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop);
7910
7855
  // this updates the DOM which is used by getFilterItemsList() key
7911
7856
  this.filterId++;
7912
7857
  }
7913
7858
  onRemoveFilter(id) {
7914
- var _a, _b;
7859
+ var _a;
7915
7860
  this.assertChanges();
7916
7861
  // this is for reactivity issues for getFilterItemsList()
7917
7862
  this.filterId++;
7918
7863
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7919
- if (((_b = this.draftFilter) === null || _b === void 0 ? void 0 : _b.id) === id) {
7920
- this.draftFilter = undefined;
7921
- return;
7922
- }
7923
7864
  const items = this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
7924
7865
  if (!items)
7925
7866
  return;
@@ -7927,7 +7868,6 @@ class FilterPanel {
7927
7868
  if (index === -1)
7928
7869
  return;
7929
7870
  items.splice(index, 1);
7930
- this.hasChanges = true;
7931
7871
  // let's remove the prop if no more filters so the filter icon will be removed
7932
7872
  if (items.length === 0)
7933
7873
  delete this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
@@ -7969,7 +7909,6 @@ class FilterPanel {
7969
7909
  if (!moveFilterItem(items, sourceId, targetId)) {
7970
7910
  return;
7971
7911
  }
7972
- this.hasChanges = true;
7973
7912
  this.filterId++;
7974
7913
  if (!this.disableDynamicFiltering) {
7975
7914
  this.debouncedApplyFilter();
@@ -8005,7 +7944,6 @@ class FilterPanel {
8005
7944
  if (!target || !moveFilterItem(items, sourceId, target.id)) {
8006
7945
  return;
8007
7946
  }
8008
- this.hasChanges = true;
8009
7947
  this.filterId++;
8010
7948
  if (!this.disableDynamicFiltering) {
8011
7949
  this.debouncedApplyFilter();
@@ -8024,7 +7962,6 @@ class FilterPanel {
8024
7962
  if (index === -1)
8025
7963
  return;
8026
7964
  items[index].relation = items[index].relation === 'and' ? 'or' : 'and';
8027
- this.hasChanges = true;
8028
7965
  if (!this.disableDynamicFiltering) {
8029
7966
  this.debouncedApplyFilter();
8030
7967
  }
@@ -8073,22 +8010,12 @@ class FilterPanel {
8073
8010
  }
8074
8011
  return options;
8075
8012
  }
8076
- renderExtra(prop, index, isDraft = false) {
8077
- var _a, _b;
8078
- const currentFilter = isDraft
8079
- ? this.draftFilter
8080
- : (_a = this.filterItems[prop]) === null || _a === void 0 ? void 0 : _a[index];
8013
+ renderExtra(prop, index) {
8014
+ const currentFilter = this.filterItems[prop];
8081
8015
  if (!currentFilter)
8082
8016
  return '';
8083
8017
  const applyFilter = (value) => {
8084
- currentFilter.value = value;
8085
- if (isDraft && !this.isMeaningfulDraftValue(value)) {
8086
- return;
8087
- }
8088
- if (isDraft && !this.promoteDraft(prop)) {
8089
- return;
8090
- }
8091
- this.hasChanges = true;
8018
+ this.filterItems[prop][index].value = value;
8092
8019
  if (!this.disableDynamicFiltering) {
8093
8020
  this.debouncedApplyFilter();
8094
8021
  }
@@ -8103,11 +8030,11 @@ class FilterPanel {
8103
8030
  }
8104
8031
  };
8105
8032
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
8106
- const extra = (_b = this.filterEntities[currentFilter.type]) === null || _b === void 0 ? void 0 : _b.extra;
8033
+ const extra = this.filterEntities[currentFilter[index].type].extra;
8107
8034
  if (typeof extra === 'function') {
8108
8035
  return extra(hAsync, {
8109
- value: currentFilter.value,
8110
- filter: currentFilter,
8036
+ value: currentFilter[index].value,
8037
+ filter: currentFilter[index],
8111
8038
  prop,
8112
8039
  index,
8113
8040
  placeholder: capts.placeholder,
@@ -8122,7 +8049,7 @@ class FilterPanel {
8122
8049
  if (extra !== 'input' && extra !== 'datepicker') {
8123
8050
  return '';
8124
8051
  }
8125
- return (hAsync("input", { id: `filter-input-${currentFilter.id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter.value, onInput: (e) => {
8052
+ return (hAsync("input", { id: `filter-input-${currentFilter[index].id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter[index].value, onInput: (e) => {
8126
8053
  if (e.target instanceof HTMLInputElement) {
8127
8054
  applyFilter(e.target.value);
8128
8055
  }
@@ -8138,42 +8065,6 @@ class FilterPanel {
8138
8065
  e.stopPropagation();
8139
8066
  } }));
8140
8067
  }
8141
- resolveDraftFilterType(preferred) {
8142
- var _a, _b;
8143
- const available = Object.values((_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.filterTypes) !== null && _b !== void 0 ? _b : {}).flat();
8144
- const type = preferred && available.includes(preferred)
8145
- ? preferred
8146
- : available[0];
8147
- return type;
8148
- }
8149
- promoteDraft(prop, type) {
8150
- if (!this.draftFilter) {
8151
- return;
8152
- }
8153
- if (!this.filterItems[prop]) {
8154
- this.filterItems[prop] = [];
8155
- }
8156
- if (type) {
8157
- this.draftFilter.type = type;
8158
- }
8159
- const filter = this.draftFilter;
8160
- this.filterItems[prop].push(filter);
8161
- this.draftFilter = undefined;
8162
- this.hasChanges = true;
8163
- return filter;
8164
- }
8165
- isMeaningfulDraftValue(value) {
8166
- return value !== '' && value !== undefined && value !== null;
8167
- }
8168
- emitFilterChange() {
8169
- this.filterChange.emit(this.cloneFilterItems(this.filterItems));
8170
- }
8171
- cloneFilterItems(filterItems) {
8172
- return Object.fromEntries(Object.entries(filterItems).map(([prop, filters]) => [
8173
- prop,
8174
- filters.map(filter => (Object.assign({}, filter))),
8175
- ]));
8176
- }
8177
8068
  getAddFilterSelect() {
8178
8069
  return this.element.querySelector(`#${FILTER_ID}`);
8179
8070
  }
@@ -8206,7 +8097,7 @@ class FilterPanel {
8206
8097
  top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
8207
8098
  };
8208
8099
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
8209
- return (hAsync(Host, { key: 'd0207c7c243134808f89dc0f024d4b46e18fb3d9' }, hAsync("dialog", { key: '1466680fc6bf4c4464600122bd16a7627131745f', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
8100
+ return (hAsync(Host, { key: 'd0e4ebb408750b11b3965da6a25e581733c968e3' }, hAsync("dialog", { key: '3df36777c931ec1063e8574169ca880a99dbfe41', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
8210
8101
  e.preventDefault();
8211
8102
  this.onCancel();
8212
8103
  } }, this.changes && [
@@ -8215,7 +8106,7 @@ class FilterPanel {
8215
8106
  ((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
8216
8107
  hAsync("label", { key: "filter-title" }, capts.title),
8217
8108
  hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
8218
- hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: 'c924b40863671e714e67eef2b6465b861805bac2', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
8109
+ hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: 'e2a8bd29f2090d3e6c933795427b71ca190b82aa', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
8219
8110
  ],
8220
8111
  hAsync("slot", { key: "default-slot" }),
8221
8112
  ((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
@@ -8247,7 +8138,6 @@ class FilterPanel {
8247
8138
  "currentFilterType": [32],
8248
8139
  "changes": [32],
8249
8140
  "filterItems": [32],
8250
- "draftFilter": [32],
8251
8141
  "draggedFilterId": [32],
8252
8142
  "dragOverFilterId": [32],
8253
8143
  "show": [64],
@@ -16503,11 +16393,6 @@ const filterTypes = {
16503
16393
  boolean: ['notEmpty', 'empty'],
16504
16394
  array: ['notEmpty', 'empty'],
16505
16395
  };
16506
- /** Preferred initial operator for built-in filter families. */
16507
- const filterTypeDefaults = {
16508
- string: 'contains',
16509
- number: 'eqN',
16510
- };
16511
16396
  const filterNames = {
16512
16397
  none: 'None',
16513
16398
  empty: 'Is blank',
@@ -16550,8 +16435,6 @@ const FILTE_PANEL = 'revogr-filter-panel';
16550
16435
  *
16551
16436
  * @property {FilterLocalization|undefined} localization - translation for filter popup captions.
16552
16437
  *
16553
- * @property {boolean|undefined} defaultFilter - creates a draft condition when an empty filter panel opens. Defaults to true.
16554
- *
16555
16438
  * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
16556
16439
  */
16557
16440
  /**
@@ -16573,7 +16456,7 @@ class FilterPlugin extends BasePlugin {
16573
16456
  * number: ['eqN', 'neqN', 'gt']
16574
16457
  * }
16575
16458
  */
16576
- this.filterByType = Object.fromEntries(Object.entries(filterTypes).map(([type, filters]) => [type, [...filters]]));
16459
+ this.filterByType = Object.assign({}, filterTypes);
16577
16460
  this.filterNameIndexByType = Object.assign({}, filterNames);
16578
16461
  this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
16579
16462
  this.filterProp = FILTER_PROP;
@@ -16657,16 +16540,11 @@ class FilterPlugin extends BasePlugin {
16657
16540
  return null;
16658
16541
  }
16659
16542
  initConfig(config) {
16660
- var _a, _b, _c, _d;
16543
+ var _a;
16661
16544
  this.config = config;
16662
16545
  this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
16663
16546
  if (this.pop) {
16664
16547
  this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
16665
- this.pop.disableDynamicFiltering =
16666
- (_b = config.disableDynamicFiltering) !== null && _b !== void 0 ? _b : false;
16667
- this.pop.closeOnOutsideClick =
16668
- (_c = config.closeFilterPanelOnOutsideClick) !== null && _c !== void 0 ? _c : true;
16669
- this.pop.filterCaptions = (_d = config.localization) === null || _d === void 0 ? void 0 : _d.captions;
16670
16548
  }
16671
16549
  if (config.multiFilterItems) {
16672
16550
  this.multiFilterItems = Object.assign({}, config.multiFilterItems);
@@ -16755,12 +16633,11 @@ class FilterPlugin extends BasePlugin {
16755
16633
  }
16756
16634
  // filter button clicked, open filter dialog
16757
16635
  const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
16758
- 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 });
16636
+ 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 });
16759
16637
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
16760
16638
  this.pop.show(data);
16761
16639
  }
16762
- getColumnFilter(config) {
16763
- const type = this.isColumnFilterOption(config) ? config.type : config;
16640
+ getColumnFilter(type) {
16764
16641
  let filterType = 'string';
16765
16642
  if (!type) {
16766
16643
  return { [filterType]: this.filterByType[filterType] };
@@ -16780,41 +16657,6 @@ class FilterPlugin extends BasePlugin {
16780
16657
  }
16781
16658
  return { [filterType]: this.filterByType[filterType] };
16782
16659
  }
16783
- /** Resolve the preferred operator against the column's available filters. */
16784
- getDefaultFilter(config) {
16785
- var _a;
16786
- const filters = this.getColumnFilter(config);
16787
- const availableFilters = Object.values(filters).flat();
16788
- const columnDefault = this.isColumnFilterOption(config)
16789
- ? config.default
16790
- : undefined;
16791
- if (typeof columnDefault === 'string' &&
16792
- availableFilters.includes(columnDefault)) {
16793
- return columnDefault;
16794
- }
16795
- const firstFamily = Object.keys(filters)[0];
16796
- const familyDefault = filterTypeDefaults[firstFamily];
16797
- if (familyDefault && ((_a = filters[firstFamily]) === null || _a === void 0 ? void 0 : _a.includes(familyDefault))) {
16798
- return familyDefault;
16799
- }
16800
- return availableFilters[0];
16801
- }
16802
- /** Resolve grid and column-level draft opt-outs. */
16803
- shouldShowDefaultFilter(config) {
16804
- var _a;
16805
- if (this.isColumnFilterOption(config)) {
16806
- if (config.default === false) {
16807
- return false;
16808
- }
16809
- if (typeof config.default === 'string') {
16810
- return true;
16811
- }
16812
- }
16813
- return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultFilter) !== false;
16814
- }
16815
- isColumnFilterOption(value) {
16816
- return !!value && typeof value === 'object' && !Array.isArray(value);
16817
- }
16818
16660
  isValidType(type) {
16819
16661
  return !!(typeof type === 'string' && this.filterByType[type]);
16820
16662
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.27.4",
3
+ "version": "4.27.5",
4
4
  "type": "module",
5
5
  "description": "Virtual reactive data grid spreadsheet component - RevoGrid.",
6
6
  "license": "MIT",
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{d as _,B as $}from"./revo-grid.js";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,RevoGrid,J as RowResizePlugin,S as SelectionStore,Q as SortingPlugin,a as StretchColumn,M as clampRowResizeHeight,O as createRowResizePatch,W as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,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"./revo-grid.js";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.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,r as renderGroupCells}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,i as getVisibleItems,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,j 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 ee=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"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["beforerowresize","beforerowresize"],["rowresize","rowresize"],["afterrowresize","afterrowresize"],["rowresizecancel","rowresizecancel"],["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"]]);function re({foundation:e,grid:r,filterPanel:a,typography:o,selection:t,buttons:s}){const[f,n,i,l,d,g,c,p]=e,[b,u,m,E,R,h,C,S,_,y,v,x]=r,[T,P,w,A,O,I,B,D,L,N,G,z,j,V]=a,[U,F,H,M,k,W,Z,K,X]=o,[Y,q,J,Q,$,ee,re,ae]=t,[oe,te,se,fe,ne,ie]=s;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({primary:f,primaryTransparent:n,background:i,foreground:l,divider:d,shadow:g,text:c,border:p,headerBg:b,headerColor:u,headerBorder:m},E?{headerFocusedBg:E}:{}),R?{headerHoverBg:R}:{}),{cellBorder:h}),C?{cellVerticalBorder:C}:{}),{focusedBg:S,rowHover:_,rowHeadersBg:y,rowHeadersColor:v,cellDisabledBg:x,filterPanelBg:T,filterPanelBorder:P,filterPanelShadow:w,filterPanelInputBg:A,filterPanelDivider:O,filterPanelSelectBorder:I,filterPanelSelectBorderHover:B,filterPanelReorderAccent:D,filterPanelReorderColor:L,filterPanelText:N,filterPanelMutedText:G,filterPanelFocusRing:z,filterPanelIcon:j,filterPanelIconActive:V,fontFamily:"Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:U,headerHeight:F,headerFontSize:H,headerFontWeight:M,headerTextTransform:k,headerTextAlign:W,cellTextAlign:Z,headerPadding:K,cellPadding:X,selectionBorder:Y,selectionBg:q,autofillHandleBg:J,autofillHandleBorder:Q,rangeHandleBg:$,temporaryRangeBorder:ee,temporarySelectionBorder:re,headerResizeHover:ae,buttonText:oe,buttonBg:te,buttonSuccessBg:se,buttonDangerBg:fe,buttonOutlineBorder:ne,buttonOutlineText:ie})}const ae=_({name:"ocean",colorScheme:"light",defaultRowSize:38,tokens:re({foundation:["#2563eb","rgba(37, 99, 235, 0.88)","#f8fafc","#0f172a","#cbd5e1","rgba(15, 23, 42, 0.16)","#334155","#d8e2ee"],grid:["#eef4fb","#0f172a","#d7e2ee",null,null,"#e5edf5",null,"#dbeafe","#eff6ff","#e7f0fa","#475569","#f1f5f9"],filterPanel:["#ffffff","#dbe4ef","rgba(15, 23, 42, 0.18)","#f1f5f9","#e2e8f0","#cbd5e1","#2563eb","#2563eb","#64748b","#334155","#64748b","0 0 0 3px rgba(37, 99, 235, 0.2)","#64748b","#2563eb"],typography:["13px","44px","12px","650","none","left","left","0 14px","0 14px"],selection:["#2563eb","rgba(37, 99, 235, 0.1)","#2563eb","#ffffff","rgba(37, 99, 235, 0.22)","#f97316","#64748b","#3b82f6"],buttons:["#ffffff","#2563eb","#059669","#dc2626","#cbd5e1","#334155"]})}),oe=_({name:"midnight",colorScheme:"dark",defaultRowSize:40,tokens:re({foundation:["#8b5cf6","rgba(139, 92, 246, 0.9)","#0b1020","#f8fafc","#334155","rgba(0, 0, 0, 0.5)","#dbeafe","#25324d"],grid:["#121a2f","#e2e8f0","#2a3855",null,null,"#202c46",null,"#172554","#111c35","#10182b","#94a3b8","rgba(100, 116, 139, 0.12)"],filterPanel:["#111827","#334155","rgba(0, 0, 0, 0.55)","#1e293b","#334155","#475569","#22d3ee","#22d3ee","#94a3b8","#e2e8f0","#94a3b8","0 0 0 3px rgba(34, 211, 238, 0.2)","#94a3b8","#22d3ee"],typography:["13px","46px","12px","650","none","left","left","0 14px","0 14px"],selection:["#22d3ee","rgba(34, 211, 238, 0.12)","#22d3ee","#0b1020","rgba(34, 211, 238, 0.24)","#f472b6","#a78bfa","#22d3ee"],buttons:["#ffffff","#7c3aed","#059669","#e11d48","#475569","#e2e8f0"]})}),te=_({name:"aurora",colorScheme:"dark",defaultRowSize:34,tokens:re({foundation:["#34d399","rgba(52, 211, 153, 0.88)","#071714","#ecfdf5","#285047","rgba(0, 0, 0, 0.5)","#d1fae5","#1c3d36"],grid:["#0c2420","#ecfdf5","#245047",null,null,"#17352f",null,"#103d34","#0d2e28","#0a201c","#86cbb8","rgba(110, 231, 183, 0.08)"],filterPanel:["#0b201c","#285047","rgba(0, 0, 0, 0.52)","#12352e","#23483f","#37695d","#34d399","#2dd4bf","#86cbb8","#d1fae5","#86a89f","0 0 0 3px rgba(52, 211, 153, 0.2)","#86a89f","#5eead4"],typography:["12px","42px","11px","650","uppercase","left","left","0 12px","0 12px"],selection:["#34d399","rgba(52, 211, 153, 0.12)","#34d399","#071714","rgba(45, 212, 191, 0.22)","#fbbf24","#5eead4","#2dd4bf"],buttons:["#052e27","#34d399","#10b981","#fb7185","#37695d","#d1fae5"]})}),se=_({name:"highContrast",colorScheme:"light",defaultRowSize:40,tokens:re({foundation:["#003eaa","rgba(0, 62, 170, 0.92)","#ffffff","#000000","#374151","rgba(0, 0, 0, 0.35)","#111827","#374151"],grid:["#111827","#ffffff","#ffffff","#003eaa","#1f2937","#6b7280","#6b7280","#d6e9ff","#e8f2ff","#e5e7eb","#000000","#d1d5db"],filterPanel:["#ffffff","#111827","rgba(0, 0, 0, 0.4)","#ffffff","#4b5563","#111827","#003eaa","#003eaa","#374151","#000000","#374151","0 0 0 3px #ffbf00","#111827","#003eaa"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#003eaa","rgba(0, 95, 204, 0.2)","#003eaa","#ffffff","rgba(0, 95, 204, 0.3)","#a61b1b","#5b21b6","#ffbf00"],buttons:["#ffffff","#003eaa","#006b3c","#b91c1c","#111827","#111827"]})}),fe=_({name:"highContrastDark",colorScheme:"dark",defaultRowSize:40,tokens:re({foundation:["#ffd400","rgba(255, 212, 0, 0.94)","#050505","#ffffff","#d1d5db","rgba(0, 0, 0, 0.8)","#ffffff","#bfc7d5"],grid:["#171717","#ffffff","#e5e7eb","#005f73","#303030","#737b87","#737b87","#182c3f","#202a33","#222222","#ffffff","#303030"],filterPanel:["#0a0a0a","#ffffff","rgba(0, 0, 0, 0.85)","#171717","#d1d5db","#e5e7eb","#ffd400","#00e5ff","#e5e7eb","#ffffff","#d1d5db","0 0 0 3px #ffd400","#e5e7eb","#ffd400"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#00e5ff","rgba(0, 229, 255, 0.2)","#ffd400","#000000","rgba(0, 229, 255, 0.32)","#ffd400","#ff7ad9","#ffd400"],buttons:["#000000","#ffd400","#7cfc00","#ff8080","#ffffff","#ffffff"]})}),ne=[se,fe],ie=[ae,oe,te,...ne];class le extends ${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 a=this.providers.data.stores.rgRow.store.get("items").length,o=r.y+e.detail.parsed.length;if(a<o){const e=Array.from({length:o-a},((e,r)=>({index:a+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const t=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(t)}}}export{le as AutoAddRowsPlugin,$ as BasePlugin,ee as REVOGRID_EVENTS,te as auroraTheme,_ as defineTheme,fe as highContrastDarkTheme,se as highContrastTheme,ne as highContrastThemeDefinitions,oe as midnightTheme,ie as modernThemeDefinitions,ae as oceanTheme}
4
+ export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{d as _,B as Z}from"./revo-grid.js";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,RevoGrid,I as RowResizePlugin,S as SelectionStore,P as SortingPlugin,a as StretchColumn,L as clampRowResizeHeight,N as createRowResizePatch,V as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,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"./revo-grid.js";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.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,r as renderGroupCells}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,i as getVisibleItems,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,j 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 $=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"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["beforerowresize","beforerowresize"],["rowresize","rowresize"],["afterrowresize","afterrowresize"],["rowresizecancel","rowresizecancel"],["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"]]);function ee({foundation:e,grid:r,filterPanel:a,typography:o,selection:t,buttons:s}){const[f,n,i,l,d,g,c,p]=e,[b,u,m,E,R,h,C,S,_,y,v,x]=r,[T,P,w,A,O,I,B,D,L,N,G,z,j,V]=a,[U,F,H,M,k,W,K,Z,X]=o,[Y,q,J,Q,$,ee,re,ae]=t,[oe,te,se,fe,ne,ie]=s;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({primary:f,primaryTransparent:n,background:i,foreground:l,divider:d,shadow:g,text:c,border:p,headerBg:b,headerColor:u,headerBorder:m},E?{headerFocusedBg:E}:{}),R?{headerHoverBg:R}:{}),{cellBorder:h}),C?{cellVerticalBorder:C}:{}),{focusedBg:S,rowHover:_,rowHeadersBg:y,rowHeadersColor:v,cellDisabledBg:x,filterPanelBg:T,filterPanelBorder:P,filterPanelShadow:w,filterPanelInputBg:A,filterPanelDivider:O,filterPanelSelectBorder:I,filterPanelSelectBorderHover:B,filterPanelReorderAccent:D,filterPanelReorderColor:L,filterPanelText:N,filterPanelMutedText:G,filterPanelFocusRing:z,filterPanelIcon:j,filterPanelIconActive:V,fontFamily:"Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:U,headerHeight:F,headerFontSize:H,headerFontWeight:M,headerTextTransform:k,headerTextAlign:W,cellTextAlign:K,headerPadding:Z,cellPadding:X,selectionBorder:Y,selectionBg:q,autofillHandleBg:J,autofillHandleBorder:Q,rangeHandleBg:$,temporaryRangeBorder:ee,temporarySelectionBorder:re,headerResizeHover:ae,buttonText:oe,buttonBg:te,buttonSuccessBg:se,buttonDangerBg:fe,buttonOutlineBorder:ne,buttonOutlineText:ie})}const re=_({name:"ocean",colorScheme:"light",defaultRowSize:38,tokens:ee({foundation:["#2563eb","rgba(37, 99, 235, 0.88)","#f8fafc","#0f172a","#cbd5e1","rgba(15, 23, 42, 0.16)","#334155","#d8e2ee"],grid:["#eef4fb","#0f172a","#d7e2ee",null,null,"#e5edf5",null,"#dbeafe","#eff6ff","#e7f0fa","#475569","#f1f5f9"],filterPanel:["#ffffff","#dbe4ef","rgba(15, 23, 42, 0.18)","#f1f5f9","#e2e8f0","#cbd5e1","#2563eb","#2563eb","#64748b","#334155","#64748b","0 0 0 3px rgba(37, 99, 235, 0.2)","#64748b","#2563eb"],typography:["13px","44px","12px","650","none","left","left","0 14px","0 14px"],selection:["#2563eb","rgba(37, 99, 235, 0.1)","#2563eb","#ffffff","rgba(37, 99, 235, 0.22)","#f97316","#64748b","#3b82f6"],buttons:["#ffffff","#2563eb","#059669","#dc2626","#cbd5e1","#334155"]})}),ae=_({name:"midnight",colorScheme:"dark",defaultRowSize:40,tokens:ee({foundation:["#8b5cf6","rgba(139, 92, 246, 0.9)","#0b1020","#f8fafc","#334155","rgba(0, 0, 0, 0.5)","#dbeafe","#25324d"],grid:["#121a2f","#e2e8f0","#2a3855",null,null,"#202c46",null,"#172554","#111c35","#10182b","#94a3b8","rgba(100, 116, 139, 0.12)"],filterPanel:["#111827","#334155","rgba(0, 0, 0, 0.55)","#1e293b","#334155","#475569","#22d3ee","#22d3ee","#94a3b8","#e2e8f0","#94a3b8","0 0 0 3px rgba(34, 211, 238, 0.2)","#94a3b8","#22d3ee"],typography:["13px","46px","12px","650","none","left","left","0 14px","0 14px"],selection:["#22d3ee","rgba(34, 211, 238, 0.12)","#22d3ee","#0b1020","rgba(34, 211, 238, 0.24)","#f472b6","#a78bfa","#22d3ee"],buttons:["#ffffff","#7c3aed","#059669","#e11d48","#475569","#e2e8f0"]})}),oe=_({name:"aurora",colorScheme:"dark",defaultRowSize:34,tokens:ee({foundation:["#34d399","rgba(52, 211, 153, 0.88)","#071714","#ecfdf5","#285047","rgba(0, 0, 0, 0.5)","#d1fae5","#1c3d36"],grid:["#0c2420","#ecfdf5","#245047",null,null,"#17352f",null,"#103d34","#0d2e28","#0a201c","#86cbb8","rgba(110, 231, 183, 0.08)"],filterPanel:["#0b201c","#285047","rgba(0, 0, 0, 0.52)","#12352e","#23483f","#37695d","#34d399","#2dd4bf","#86cbb8","#d1fae5","#86a89f","0 0 0 3px rgba(52, 211, 153, 0.2)","#86a89f","#5eead4"],typography:["12px","42px","11px","650","uppercase","left","left","0 12px","0 12px"],selection:["#34d399","rgba(52, 211, 153, 0.12)","#34d399","#071714","rgba(45, 212, 191, 0.22)","#fbbf24","#5eead4","#2dd4bf"],buttons:["#052e27","#34d399","#10b981","#fb7185","#37695d","#d1fae5"]})}),te=_({name:"highContrast",colorScheme:"light",defaultRowSize:40,tokens:ee({foundation:["#003eaa","rgba(0, 62, 170, 0.92)","#ffffff","#000000","#374151","rgba(0, 0, 0, 0.35)","#111827","#374151"],grid:["#111827","#ffffff","#ffffff","#003eaa","#1f2937","#6b7280","#6b7280","#d6e9ff","#e8f2ff","#e5e7eb","#000000","#d1d5db"],filterPanel:["#ffffff","#111827","rgba(0, 0, 0, 0.4)","#ffffff","#4b5563","#111827","#003eaa","#003eaa","#374151","#000000","#374151","0 0 0 3px #ffbf00","#111827","#003eaa"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#003eaa","rgba(0, 95, 204, 0.2)","#003eaa","#ffffff","rgba(0, 95, 204, 0.3)","#a61b1b","#5b21b6","#ffbf00"],buttons:["#ffffff","#003eaa","#006b3c","#b91c1c","#111827","#111827"]})}),se=_({name:"highContrastDark",colorScheme:"dark",defaultRowSize:40,tokens:ee({foundation:["#ffd400","rgba(255, 212, 0, 0.94)","#050505","#ffffff","#d1d5db","rgba(0, 0, 0, 0.8)","#ffffff","#bfc7d5"],grid:["#171717","#ffffff","#e5e7eb","#005f73","#303030","#737b87","#737b87","#182c3f","#202a33","#222222","#ffffff","#303030"],filterPanel:["#0a0a0a","#ffffff","rgba(0, 0, 0, 0.85)","#171717","#d1d5db","#e5e7eb","#ffd400","#00e5ff","#e5e7eb","#ffffff","#d1d5db","0 0 0 3px #ffd400","#e5e7eb","#ffd400"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#00e5ff","rgba(0, 229, 255, 0.2)","#ffd400","#000000","rgba(0, 229, 255, 0.32)","#ffd400","#ff7ad9","#ffd400"],buttons:["#000000","#ffd400","#7cfc00","#ff8080","#ffffff","#ffffff"]})}),fe=[te,se],ne=[re,ae,oe,...fe];class ie extends Z{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 a=this.providers.data.stores.rgRow.store.get("items").length,o=r.y+e.detail.parsed.length;if(a<o){const e=Array.from({length:o-a},((e,r)=>({index:a+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const t=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(t)}}}export{ie as AutoAddRowsPlugin,Z as BasePlugin,$ as REVOGRID_EVENTS,oe as auroraTheme,_ as defineTheme,se as highContrastDarkTheme,te as highContrastTheme,fe as highContrastThemeDefinitions,ae as midnightTheme,ne as modernThemeDefinitions,re as oceanTheme}