@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
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,27 +7690,10 @@ class FilterPanel {
7691
7690
  }
7692
7691
  }
7693
7692
  async show(newEntity) {
7694
- this.hasChanges = false;
7695
7693
  this.changes = newEntity;
7696
- this.filterItems = this.cloneFilterItems((newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {});
7697
- this.draftFilter = undefined;
7694
+ this.filterItems = (newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {};
7698
7695
  if (this.changes) {
7699
7696
  this.changes.type = this.changes.type || defaultType;
7700
- const prop = this.changes.prop;
7701
- const propFilters = prop === undefined ? undefined : this.filterItems[prop];
7702
- if (!(propFilters === null || propFilters === void 0 ? void 0 : propFilters.length) &&
7703
- this.changes.showDefaultFilter !== false &&
7704
- this.changes.hideDefaultFilters !== true) {
7705
- const type = this.resolveDraftFilterType(this.changes.defaultFilterType);
7706
- if (type) {
7707
- this.draftFilter = {
7708
- id: ++this.filterId,
7709
- type,
7710
- value: '',
7711
- relation: 'and',
7712
- };
7713
- }
7714
- }
7715
7697
  }
7716
7698
  }
7717
7699
  async getChanges() {
@@ -7732,42 +7714,29 @@ class FilterPanel {
7732
7714
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7733
7715
  if (prop === undefined)
7734
7716
  return '';
7735
- const propFilters = ((_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []).map((filter, index) => ({
7736
- filter,
7737
- index,
7738
- isDraft: false,
7739
- }));
7740
- if (this.draftFilter) {
7741
- propFilters.push({
7742
- filter: this.draftFilter,
7743
- index: propFilters.length,
7744
- isDraft: true,
7745
- });
7746
- }
7747
- const visibleFilters = propFilters.filter(({ filter }) => !filter.hidden);
7748
- 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;
7749
7719
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7750
- return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map(({ filter, index, isDraft }) => {
7751
- var _a;
7720
+ return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
7752
7721
  let andOrButton;
7753
7722
  if (filter.hidden) {
7754
7723
  return;
7755
7724
  }
7756
7725
  // hide toggle button if there is only one filter and the last one
7757
- if (((_a = visibleFilters[visibleFilterCount - 1]) === null || _a === void 0 ? void 0 : _a.filter.id) !== filter.id) {
7726
+ if (index !== this.filterItems[prop].length - 1) {
7758
7727
  andOrButton = (hAsync(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
7759
7728
  }
7760
- const extra = this.renderExtra(prop, index, isDraft);
7729
+ const extra = this.renderExtra(prop, index);
7761
7730
  const isDragging = this.draggedFilterId === filter.id;
7762
7731
  const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
7763
- const canReorder = visibleFilterCount > 1 && !isDraft;
7732
+ const canReorder = visibleFilterCount > 1;
7764
7733
  return (hAsync("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, hAsync("div", { class: {
7765
7734
  'multi-filter-list-row': true,
7766
7735
  'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
7767
7736
  'filter-row-dragging': isDragging,
7768
7737
  'filter-row-drag-over': isDragOver,
7769
- } }, 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) })))));
7770
- })), 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" }) : ''));
7771
7740
  }
7772
7741
  componentDidRender() {
7773
7742
  this.syncDialog();
@@ -7816,24 +7785,16 @@ class FilterPanel {
7816
7785
  el.style.left = `${left}px`;
7817
7786
  el.style.top = `${top}px`;
7818
7787
  }
7819
- onFilterTypeChange(e, prop, index, isDraft = false) {
7788
+ onFilterTypeChange(e, prop, index) {
7820
7789
  if (!(e.target instanceof HTMLSelectElement)) {
7821
7790
  return;
7822
7791
  }
7823
- const type = e.target.value;
7824
- const filter = isDraft
7825
- ? this.promoteDraft(prop, type)
7826
- : this.filterItems[prop][index];
7827
- if (!filter) {
7828
- return;
7829
- }
7830
- filter.type = type;
7831
- this.hasChanges = true;
7792
+ this.filterItems[prop][index].type = e.target.value;
7832
7793
  // this re-renders the input to know if we need extra input
7833
7794
  this.filterId++;
7834
7795
  // adding setTimeout will wait for the next tick DOM update then focus on input
7835
7796
  setTimeout(() => {
7836
- const input = document.getElementById('filter-input-' + filter.id);
7797
+ const input = document.getElementById('filter-input-' + this.filterItems[prop][index].id);
7837
7798
  if (input instanceof HTMLInputElement) {
7838
7799
  input.focus();
7839
7800
  }
@@ -7868,20 +7829,12 @@ class FilterPanel {
7868
7829
  return;
7869
7830
  this.filterId++;
7870
7831
  this.currentFilterId = this.filterId;
7871
- if (this.draftFilter) {
7872
- this.draftFilter.id = this.currentFilterId;
7873
- this.draftFilter.type = this.currentFilterType;
7874
- this.promoteDraft(prop);
7875
- }
7876
- else {
7877
- this.filterItems[prop].push({
7878
- id: this.currentFilterId,
7879
- type: this.currentFilterType,
7880
- value: '',
7881
- relation: 'and',
7882
- });
7883
- this.hasChanges = true;
7884
- }
7832
+ this.filterItems[prop].push({
7833
+ id: this.currentFilterId,
7834
+ type: this.currentFilterType,
7835
+ value: '',
7836
+ relation: 'and',
7837
+ });
7885
7838
  // adding setTimeout will wait for the next tick DOM update then focus on input
7886
7839
  setTimeout(() => {
7887
7840
  const input = document.getElementById('filter-input-' + this.currentFilterId);
@@ -7890,9 +7843,7 @@ class FilterPanel {
7890
7843
  }, 0);
7891
7844
  }
7892
7845
  onSave() {
7893
- if (this.hasChanges) {
7894
- this.emitFilterChange();
7895
- }
7846
+ this.filterChange.emit(this.filterItems);
7896
7847
  }
7897
7848
  onCancel() {
7898
7849
  this.changes = undefined;
@@ -7900,25 +7851,16 @@ class FilterPanel {
7900
7851
  onReset() {
7901
7852
  var _a;
7902
7853
  this.assertChanges();
7903
- this.draftFilter = undefined;
7904
- const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7905
- if (prop !== undefined) {
7906
- delete this.filterItems[prop];
7907
- }
7908
- this.resetChange.emit(prop);
7854
+ this.resetChange.emit((_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop);
7909
7855
  // this updates the DOM which is used by getFilterItemsList() key
7910
7856
  this.filterId++;
7911
7857
  }
7912
7858
  onRemoveFilter(id) {
7913
- var _a, _b;
7859
+ var _a;
7914
7860
  this.assertChanges();
7915
7861
  // this is for reactivity issues for getFilterItemsList()
7916
7862
  this.filterId++;
7917
7863
  const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
7918
- if (((_b = this.draftFilter) === null || _b === void 0 ? void 0 : _b.id) === id) {
7919
- this.draftFilter = undefined;
7920
- return;
7921
- }
7922
7864
  const items = this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
7923
7865
  if (!items)
7924
7866
  return;
@@ -7926,7 +7868,6 @@ class FilterPanel {
7926
7868
  if (index === -1)
7927
7869
  return;
7928
7870
  items.splice(index, 1);
7929
- this.hasChanges = true;
7930
7871
  // let's remove the prop if no more filters so the filter icon will be removed
7931
7872
  if (items.length === 0)
7932
7873
  delete this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
@@ -7968,7 +7909,6 @@ class FilterPanel {
7968
7909
  if (!moveFilterItem(items, sourceId, targetId)) {
7969
7910
  return;
7970
7911
  }
7971
- this.hasChanges = true;
7972
7912
  this.filterId++;
7973
7913
  if (!this.disableDynamicFiltering) {
7974
7914
  this.debouncedApplyFilter();
@@ -8004,7 +7944,6 @@ class FilterPanel {
8004
7944
  if (!target || !moveFilterItem(items, sourceId, target.id)) {
8005
7945
  return;
8006
7946
  }
8007
- this.hasChanges = true;
8008
7947
  this.filterId++;
8009
7948
  if (!this.disableDynamicFiltering) {
8010
7949
  this.debouncedApplyFilter();
@@ -8023,7 +7962,6 @@ class FilterPanel {
8023
7962
  if (index === -1)
8024
7963
  return;
8025
7964
  items[index].relation = items[index].relation === 'and' ? 'or' : 'and';
8026
- this.hasChanges = true;
8027
7965
  if (!this.disableDynamicFiltering) {
8028
7966
  this.debouncedApplyFilter();
8029
7967
  }
@@ -8072,22 +8010,12 @@ class FilterPanel {
8072
8010
  }
8073
8011
  return options;
8074
8012
  }
8075
- renderExtra(prop, index, isDraft = false) {
8076
- var _a, _b;
8077
- const currentFilter = isDraft
8078
- ? this.draftFilter
8079
- : (_a = this.filterItems[prop]) === null || _a === void 0 ? void 0 : _a[index];
8013
+ renderExtra(prop, index) {
8014
+ const currentFilter = this.filterItems[prop];
8080
8015
  if (!currentFilter)
8081
8016
  return '';
8082
8017
  const applyFilter = (value) => {
8083
- currentFilter.value = value;
8084
- if (isDraft && !this.isMeaningfulDraftValue(value)) {
8085
- return;
8086
- }
8087
- if (isDraft && !this.promoteDraft(prop)) {
8088
- return;
8089
- }
8090
- this.hasChanges = true;
8018
+ this.filterItems[prop][index].value = value;
8091
8019
  if (!this.disableDynamicFiltering) {
8092
8020
  this.debouncedApplyFilter();
8093
8021
  }
@@ -8102,11 +8030,11 @@ class FilterPanel {
8102
8030
  }
8103
8031
  };
8104
8032
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
8105
- const extra = (_b = this.filterEntities[currentFilter.type]) === null || _b === void 0 ? void 0 : _b.extra;
8033
+ const extra = this.filterEntities[currentFilter[index].type].extra;
8106
8034
  if (typeof extra === 'function') {
8107
8035
  return extra(hAsync, {
8108
- value: currentFilter.value,
8109
- filter: currentFilter,
8036
+ value: currentFilter[index].value,
8037
+ filter: currentFilter[index],
8110
8038
  prop,
8111
8039
  index,
8112
8040
  placeholder: capts.placeholder,
@@ -8121,7 +8049,7 @@ class FilterPanel {
8121
8049
  if (extra !== 'input' && extra !== 'datepicker') {
8122
8050
  return '';
8123
8051
  }
8124
- 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) => {
8125
8053
  if (e.target instanceof HTMLInputElement) {
8126
8054
  applyFilter(e.target.value);
8127
8055
  }
@@ -8137,42 +8065,6 @@ class FilterPanel {
8137
8065
  e.stopPropagation();
8138
8066
  } }));
8139
8067
  }
8140
- resolveDraftFilterType(preferred) {
8141
- var _a, _b;
8142
- const available = Object.values((_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.filterTypes) !== null && _b !== void 0 ? _b : {}).flat();
8143
- const type = preferred && available.includes(preferred)
8144
- ? preferred
8145
- : available[0];
8146
- return type;
8147
- }
8148
- promoteDraft(prop, type) {
8149
- if (!this.draftFilter) {
8150
- return;
8151
- }
8152
- if (!this.filterItems[prop]) {
8153
- this.filterItems[prop] = [];
8154
- }
8155
- if (type) {
8156
- this.draftFilter.type = type;
8157
- }
8158
- const filter = this.draftFilter;
8159
- this.filterItems[prop].push(filter);
8160
- this.draftFilter = undefined;
8161
- this.hasChanges = true;
8162
- return filter;
8163
- }
8164
- isMeaningfulDraftValue(value) {
8165
- return value !== '' && value !== undefined && value !== null;
8166
- }
8167
- emitFilterChange() {
8168
- this.filterChange.emit(this.cloneFilterItems(this.filterItems));
8169
- }
8170
- cloneFilterItems(filterItems) {
8171
- return Object.fromEntries(Object.entries(filterItems).map(([prop, filters]) => [
8172
- prop,
8173
- filters.map(filter => (Object.assign({}, filter))),
8174
- ]));
8175
- }
8176
8068
  getAddFilterSelect() {
8177
8069
  return this.element.querySelector(`#${FILTER_ID}`);
8178
8070
  }
@@ -8205,7 +8097,7 @@ class FilterPanel {
8205
8097
  top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
8206
8098
  };
8207
8099
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
8208
- return (hAsync(Host, { key: 'f7ec3ca1855a9391b4f270ad7056f9c7a4a0204e' }, hAsync("dialog", { key: 'a5c46aa4822934e7a6eb455fd686513b9101afb4', 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 => {
8209
8101
  e.preventDefault();
8210
8102
  this.onCancel();
8211
8103
  } }, this.changes && [
@@ -8214,7 +8106,7 @@ class FilterPanel {
8214
8106
  ((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
8215
8107
  hAsync("label", { key: "filter-title" }, capts.title),
8216
8108
  hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
8217
- hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '3912f4bd9b1e66fda46e9b6d7c002d29da726345', 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))),
8218
8110
  ],
8219
8111
  hAsync("slot", { key: "default-slot" }),
8220
8112
  ((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
@@ -8246,7 +8138,6 @@ class FilterPanel {
8246
8138
  "currentFilterType": [32],
8247
8139
  "changes": [32],
8248
8140
  "filterItems": [32],
8249
- "draftFilter": [32],
8250
8141
  "draggedFilterId": [32],
8251
8142
  "dragOverFilterId": [32],
8252
8143
  "show": [64],
@@ -16502,11 +16393,6 @@ const filterTypes = {
16502
16393
  boolean: ['notEmpty', 'empty'],
16503
16394
  array: ['notEmpty', 'empty'],
16504
16395
  };
16505
- /** Preferred initial operator for built-in filter families. */
16506
- const filterTypeDefaults = {
16507
- string: 'contains',
16508
- number: 'eqN',
16509
- };
16510
16396
  const filterNames = {
16511
16397
  none: 'None',
16512
16398
  empty: 'Is blank',
@@ -16549,8 +16435,6 @@ const FILTE_PANEL = 'revogr-filter-panel';
16549
16435
  *
16550
16436
  * @property {FilterLocalization|undefined} localization - translation for filter popup captions.
16551
16437
  *
16552
- * @property {boolean|undefined} defaultFilter - creates a draft condition when an empty filter panel opens. Defaults to true.
16553
- *
16554
16438
  * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
16555
16439
  */
16556
16440
  /**
@@ -16572,7 +16456,7 @@ class FilterPlugin extends BasePlugin {
16572
16456
  * number: ['eqN', 'neqN', 'gt']
16573
16457
  * }
16574
16458
  */
16575
- this.filterByType = Object.fromEntries(Object.entries(filterTypes).map(([type, filters]) => [type, [...filters]]));
16459
+ this.filterByType = Object.assign({}, filterTypes);
16576
16460
  this.filterNameIndexByType = Object.assign({}, filterNames);
16577
16461
  this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
16578
16462
  this.filterProp = FILTER_PROP;
@@ -16656,16 +16540,11 @@ class FilterPlugin extends BasePlugin {
16656
16540
  return null;
16657
16541
  }
16658
16542
  initConfig(config) {
16659
- var _a, _b, _c, _d;
16543
+ var _a;
16660
16544
  this.config = config;
16661
16545
  this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
16662
16546
  if (this.pop) {
16663
16547
  this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
16664
- this.pop.disableDynamicFiltering =
16665
- (_b = config.disableDynamicFiltering) !== null && _b !== void 0 ? _b : false;
16666
- this.pop.closeOnOutsideClick =
16667
- (_c = config.closeFilterPanelOnOutsideClick) !== null && _c !== void 0 ? _c : true;
16668
- this.pop.filterCaptions = (_d = config.localization) === null || _d === void 0 ? void 0 : _d.captions;
16669
16548
  }
16670
16549
  if (config.multiFilterItems) {
16671
16550
  this.multiFilterItems = Object.assign({}, config.multiFilterItems);
@@ -16754,12 +16633,11 @@ class FilterPlugin extends BasePlugin {
16754
16633
  }
16755
16634
  // filter button clicked, open filter dialog
16756
16635
  const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
16757
- 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 });
16758
16637
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
16759
16638
  this.pop.show(data);
16760
16639
  }
16761
- getColumnFilter(config) {
16762
- const type = this.isColumnFilterOption(config) ? config.type : config;
16640
+ getColumnFilter(type) {
16763
16641
  let filterType = 'string';
16764
16642
  if (!type) {
16765
16643
  return { [filterType]: this.filterByType[filterType] };
@@ -16779,41 +16657,6 @@ class FilterPlugin extends BasePlugin {
16779
16657
  }
16780
16658
  return { [filterType]: this.filterByType[filterType] };
16781
16659
  }
16782
- /** Resolve the preferred operator against the column's available filters. */
16783
- getDefaultFilter(config) {
16784
- var _a;
16785
- const filters = this.getColumnFilter(config);
16786
- const availableFilters = Object.values(filters).flat();
16787
- const columnDefault = this.isColumnFilterOption(config)
16788
- ? config.default
16789
- : undefined;
16790
- if (typeof columnDefault === 'string' &&
16791
- availableFilters.includes(columnDefault)) {
16792
- return columnDefault;
16793
- }
16794
- const firstFamily = Object.keys(filters)[0];
16795
- const familyDefault = filterTypeDefaults[firstFamily];
16796
- if (familyDefault && ((_a = filters[firstFamily]) === null || _a === void 0 ? void 0 : _a.includes(familyDefault))) {
16797
- return familyDefault;
16798
- }
16799
- return availableFilters[0];
16800
- }
16801
- /** Resolve grid and column-level draft opt-outs. */
16802
- shouldShowDefaultFilter(config) {
16803
- var _a;
16804
- if (this.isColumnFilterOption(config)) {
16805
- if (config.default === false) {
16806
- return false;
16807
- }
16808
- if (typeof config.default === 'string') {
16809
- return true;
16810
- }
16811
- }
16812
- return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultFilter) !== false;
16813
- }
16814
- isColumnFilterOption(value) {
16815
- return !!value && typeof value === 'object' && !Array.isArray(value);
16816
- }
16817
16660
  isValidType(type) {
16818
16661
  return !!(typeof type === 'string' && this.filterByType[type]);
16819
16662
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.27.3",
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}