@revolist/revogrid 4.21.8 → 4.21.11

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 (30) hide show
  1. package/dist/cjs/{column.drag.plugin-BWX5_5iT.js → column.drag.plugin-CM_5mKV3.js} +6 -1
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/revo-grid.cjs.entry.js +1 -1
  4. package/dist/cjs/revogr-filter-panel.cjs.entry.js +1 -1
  5. package/dist/collection/components/data/revogr-data.js +3 -3
  6. package/dist/collection/components/editors/revogr-edit.js +3 -3
  7. package/dist/collection/components/header/revogr-header.js +4 -4
  8. package/dist/collection/components/order/revogr-order-editor.js +2 -2
  9. package/dist/collection/components/overlay/revogr-overlay-selection.js +6 -6
  10. package/dist/collection/components/revoGrid/revo-grid.js +33 -21
  11. package/dist/collection/components/selectionFocus/revogr-focus.js +2 -2
  12. package/dist/collection/plugins/filter/filter.plugin.js +6 -1
  13. package/dist/collection/plugins/filter/filter.style.css +20 -4
  14. package/dist/esm/{column.drag.plugin-6YvuxWof.js → column.drag.plugin-DEqZ2qXJ.js} +6 -1
  15. package/dist/esm/index.js +2 -2
  16. package/dist/esm/revo-grid.entry.js +1 -1
  17. package/dist/esm/revogr-filter-panel.entry.js +1 -1
  18. package/dist/revo-grid/{column.drag.plugin-6YvuxWof.js → column.drag.plugin-DEqZ2qXJ.js} +6 -1
  19. package/dist/revo-grid/index.esm.js +2 -2
  20. package/dist/revo-grid/revo-grid.entry.js +1 -1
  21. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  22. package/dist/types/components/data/revogr-data.d.ts +1 -1
  23. package/dist/types/services/column.data.provider.d.ts +1 -1
  24. package/dist/types/types/interfaces.d.ts +40 -18
  25. package/dist/types/types/selection.d.ts +12 -8
  26. package/hydrate/index.js +7 -2
  27. package/hydrate/index.mjs +7 -2
  28. package/package.json +1 -1
  29. package/standalone/revo-grid.js +1 -1
  30. package/standalone/revogr-filter-panel.js +1 -1
@@ -1386,10 +1386,15 @@ class FilterPlugin extends BasePlugin {
1386
1386
  if (!this.pop) {
1387
1387
  return;
1388
1388
  }
1389
+ const prop = e.detail.prop;
1390
+ const currentPanel = await this.pop.getChanges();
1391
+ if ((currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.prop) === prop) {
1392
+ await this.pop.show();
1393
+ return;
1394
+ }
1389
1395
  // filter button clicked, open filter dialog
1390
1396
  const gridPos = this.revogrid.getBoundingClientRect();
1391
1397
  const buttonPos = el.getBoundingClientRect();
1392
- const prop = e.detail.prop;
1393
1398
  const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
1394
1399
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
1395
1400
  this.pop.show(data);
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var column_service = require('./column.service-DvQDqxxx.js');
7
- var column_drag_plugin = require('./column.drag.plugin-BWX5_5iT.js');
7
+ var column_drag_plugin = require('./column.drag.plugin-CM_5mKV3.js');
8
8
  var headerCellRenderer = require('./header-cell-renderer-B1dJwgTO.js');
9
9
  var cellRenderer = require('./cell-renderer-uZmDBXz7.js');
10
10
  var dimension_helpers = require('./dimension.helpers-CaIsYC99.js');
@@ -7,7 +7,7 @@ var index = require('./index-Dq8Xzj5l.js');
7
7
  var column_service = require('./column.service-DvQDqxxx.js');
8
8
  var dimension_helpers = require('./dimension.helpers-CaIsYC99.js');
9
9
  var debounce = require('./debounce-CcpHiH2p.js');
10
- var column_drag_plugin = require('./column.drag.plugin-BWX5_5iT.js');
10
+ var column_drag_plugin = require('./column.drag.plugin-CM_5mKV3.js');
11
11
  var viewport_store = require('./viewport.store-Dcjud-a-.js');
12
12
  var theme_service = require('./theme.service-BgnxGIjK.js');
13
13
  var viewport_helpers = require('./viewport.helpers-BAovztDd.js');
@@ -26,7 +26,7 @@ var filter_button = require('./filter.button-w6LWnyhi.js');
26
26
  }
27
27
  })();
28
28
 
29
- const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel button{margin-top:10px;margin-right:5px}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}`;
29
+ const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}revogr-filter-panel .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}`;
30
30
 
31
31
  const defaultType = 'none';
32
32
  const FILTER_LIST_CLASS = 'multi-filter-list';
@@ -395,7 +395,7 @@ export class RevogrData {
395
395
  "mutable": false,
396
396
  "complexType": {
397
397
  "original": "Observable<DSourceState<ColumnRegular, DimensionCols>>",
398
- "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp>",
398
+ "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp, DataType<any, ColumnProp>>",
399
399
  "references": {
400
400
  "Observable": {
401
401
  "location": "import",
@@ -613,7 +613,7 @@ export class RevogrData {
613
613
  },
614
614
  "complexType": {
615
615
  "original": "BeforeCellRenderEvent<CellTemplateProp>",
616
- "resolved": "BeforeCellRenderEvent<CellTemplateProp<DataType<any, ColumnProp>, ColumnRegular<ColumnProp>, ColumnProp>>",
616
+ "resolved": "BeforeCellRenderEvent<CellTemplateProp<DataType<any, ColumnProp>, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>, ColumnProp>>",
617
617
  "references": {
618
618
  "BeforeCellRenderEvent": {
619
619
  "location": "import",
@@ -663,7 +663,7 @@ export class RevogrData {
663
663
  },
664
664
  "complexType": {
665
665
  "original": "DragStartEvent",
666
- "resolved": "DragStartEvent<DataType<any, ColumnProp>, ColumnRegular<ColumnProp>>",
666
+ "resolved": "DragStartEvent<DataType<any, ColumnProp>, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
667
667
  "references": {
668
668
  "DragStartEvent": {
669
669
  "location": "import",
@@ -156,7 +156,7 @@ export class RevoEdit {
156
156
  "mutable": false,
157
157
  "complexType": {
158
158
  "original": "EditCell",
159
- "resolved": "EditCellStore & BeforeSaveDataDetails",
159
+ "resolved": "EditCellStore & BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
160
160
  "references": {
161
161
  "EditCell": {
162
162
  "location": "import",
@@ -180,7 +180,7 @@ export class RevoEdit {
180
180
  "mutable": false,
181
181
  "complexType": {
182
182
  "original": "ColumnDataSchemaModel | null",
183
- "resolved": "ColumnDataSchemaModel<DataType<any, ColumnProp>, ColumnRegular<ColumnProp>, ColumnProp> | null",
183
+ "resolved": "ColumnDataSchemaModel<DataType<any, ColumnProp>, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>, ColumnProp> | null",
184
184
  "references": {
185
185
  "ColumnDataSchemaModel": {
186
186
  "location": "import",
@@ -204,7 +204,7 @@ export class RevoEdit {
204
204
  "mutable": false,
205
205
  "complexType": {
206
206
  "original": "EditorCtr | null",
207
- "resolved": "((column: ColumnDataSchemaModel<DataType<any, ColumnProp>, ColumnRegular<ColumnProp>, ColumnProp>, save: (value?: any, preventFocus?: boolean | undefined) => void, close: (focusNext?: boolean | undefined) => void) => EditorBase) | EditorCtrConstructible | null",
207
+ "resolved": "((column: ColumnDataSchemaModel<DataType<any, ColumnProp>, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>, ColumnProp>, save: (value?: any, preventFocus?: boolean | undefined) => void, close: (focusNext?: boolean | undefined) => void) => EditorBase) | EditorCtrConstructible | null",
208
208
  "references": {
209
209
  "EditorCtr": {
210
210
  "location": "import",
@@ -336,7 +336,7 @@ export class RevogrHeaderComponent {
336
336
  "mutable": false,
337
337
  "complexType": {
338
338
  "original": "ColumnRegular[]",
339
- "resolved": "ColumnRegular<ColumnProp>[]",
339
+ "resolved": "ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]",
340
340
  "references": {
341
341
  "ColumnRegular": {
342
342
  "location": "import",
@@ -435,7 +435,7 @@ export class RevogrHeaderComponent {
435
435
  },
436
436
  "complexType": {
437
437
  "original": "InitialHeaderClick",
438
- "resolved": "{ index: number; originalEvent: MouseEvent; column: ColumnRegular<ColumnProp>; providers: ProvidersColumns<DimensionCols | \"rowHeaders\">; }",
438
+ "resolved": "{ index: number; originalEvent: MouseEvent; column: ColumnRegular<ColumnProp, DataType<any, ColumnProp>>; providers: ProvidersColumns<DimensionCols | \"rowHeaders\">; }",
439
439
  "references": {
440
440
  "InitialHeaderClick": {
441
441
  "location": "import",
@@ -479,7 +479,7 @@ export class RevogrHeaderComponent {
479
479
  },
480
480
  "complexType": {
481
481
  "original": "ColumnRegular[]",
482
- "resolved": "ColumnRegular<ColumnProp>[]",
482
+ "resolved": "ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]",
483
483
  "references": {
484
484
  "ColumnRegular": {
485
485
  "location": "import",
@@ -501,7 +501,7 @@ export class RevogrHeaderComponent {
501
501
  },
502
502
  "complexType": {
503
503
  "original": "InitialHeaderClick",
504
- "resolved": "{ index: number; originalEvent: MouseEvent; column: ColumnRegular<ColumnProp>; providers: ProvidersColumns<DimensionCols | \"rowHeaders\">; }",
504
+ "resolved": "{ index: number; originalEvent: MouseEvent; column: ColumnRegular<ColumnProp, DataType<any, ColumnProp>>; providers: ProvidersColumns<DimensionCols | \"rowHeaders\">; }",
505
505
  "references": {
506
506
  "InitialHeaderClick": {
507
507
  "location": "import",
@@ -260,7 +260,7 @@ export class OrderEditor {
260
260
  },
261
261
  "complexType": {
262
262
  "original": "RowDragStartDetails",
263
- "resolved": "{ cell: Cell; text: string; pos: PositionItem; event: MouseEvent; rowType: DimensionRows; model: any; }",
263
+ "resolved": "TModel",
264
264
  "references": {
265
265
  "RowDragStartDetails": {
266
266
  "location": "import",
@@ -401,7 +401,7 @@ export class OrderEditor {
401
401
  "signature": "(e: DragStartEvent) => Promise<void>",
402
402
  "parameters": [{
403
403
  "name": "e",
404
- "type": "DragStartEvent<DataType<any, ColumnProp>, ColumnRegular<ColumnProp>>",
404
+ "type": "DragStartEvent<DataType<any, ColumnProp>, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
405
405
  "docs": ""
406
406
  }],
407
407
  "references": {
@@ -717,7 +717,7 @@ export class OverlaySelection {
717
717
  "mutable": false,
718
718
  "complexType": {
719
719
  "original": "Observable<DSourceState<ColumnRegular, DimensionCols>>",
720
- "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp>",
720
+ "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp, DataType<any, ColumnProp>>",
721
721
  "references": {
722
722
  "Observable": {
723
723
  "location": "import",
@@ -905,7 +905,7 @@ export class OverlaySelection {
905
905
  },
906
906
  "complexType": {
907
907
  "original": "BeforeSaveDataDetails",
908
- "resolved": "BeforeSaveDataDetails",
908
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
909
909
  "references": {
910
910
  "BeforeSaveDataDetails": {
911
911
  "location": "import",
@@ -927,7 +927,7 @@ export class OverlaySelection {
927
927
  },
928
928
  "complexType": {
929
929
  "original": "BeforeSaveDataDetails",
930
- "resolved": "BeforeSaveDataDetails",
930
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
931
931
  "references": {
932
932
  "BeforeSaveDataDetails": {
933
933
  "location": "import",
@@ -971,7 +971,7 @@ export class OverlaySelection {
971
971
  },
972
972
  "complexType": {
973
973
  "original": "BeforeEdit",
974
- "resolved": "BeforeSaveDataDetails",
974
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
975
975
  "references": {
976
976
  "BeforeEdit": {
977
977
  "location": "import",
@@ -1294,7 +1294,7 @@ export class OverlaySelection {
1294
1294
  },
1295
1295
  "complexType": {
1296
1296
  "original": "BeforeRangeSaveDataDetails",
1297
- "resolved": "{ data: DataLookup; models: Partial<DataLookup>; type: DimensionRows; newRange: RangeArea | null; oldRange: RangeArea | null; }",
1297
+ "resolved": "TModel",
1298
1298
  "references": {
1299
1299
  "BeforeRangeSaveDataDetails": {
1300
1300
  "location": "import",
@@ -1338,7 +1338,7 @@ export class OverlaySelection {
1338
1338
  },
1339
1339
  "complexType": {
1340
1340
  "original": "RangeClipboardPasteEvent",
1341
- "resolved": "RangeClipboardPasteEvent",
1341
+ "resolved": "RangeClipboardPasteEvent<DataType<any, ColumnProp>>",
1342
1342
  "references": {
1343
1343
  "RangeClipboardPasteEvent": {
1344
1344
  "location": "import",
@@ -1251,7 +1251,7 @@ export class RevoGridComponent {
1251
1251
  "mutable": false,
1252
1252
  "complexType": {
1253
1253
  "original": "(ColumnRegular | ColumnGrouping)[]",
1254
- "resolved": "(ColumnRegular<ColumnProp> | ColumnGrouping<any>)[]",
1254
+ "resolved": "(ColumnRegular<ColumnProp, DataType<any, ColumnProp>> | ColumnGrouping<any>)[]",
1255
1255
  "references": {
1256
1256
  "ColumnRegular": {
1257
1257
  "location": "import",
@@ -1452,7 +1452,7 @@ export class RevoGridComponent {
1452
1452
  "mutable": false,
1453
1453
  "complexType": {
1454
1454
  "original": "{ [name: string]: ColumnType }",
1455
- "resolved": "{ [name: string]: ColumnType; }",
1455
+ "resolved": "{ [name: string]: ColumnType<DataType<any, ColumnProp>>; }",
1456
1456
  "references": {
1457
1457
  "ColumnType": {
1458
1458
  "location": "import",
@@ -1970,7 +1970,7 @@ export class RevoGridComponent {
1970
1970
  },
1971
1971
  "complexType": {
1972
1972
  "original": "BeforeSaveDataDetails",
1973
- "resolved": "BeforeSaveDataDetails",
1973
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
1974
1974
  "references": {
1975
1975
  "BeforeSaveDataDetails": {
1976
1976
  "location": "import",
@@ -1992,7 +1992,7 @@ export class RevoGridComponent {
1992
1992
  },
1993
1993
  "complexType": {
1994
1994
  "original": "BeforeRangeSaveDataDetails",
1995
- "resolved": "{ data: DataLookup; models: Partial<DataLookup>; type: DimensionRows; newRange: RangeArea | null; oldRange: RangeArea | null; }",
1995
+ "resolved": "TModel",
1996
1996
  "references": {
1997
1997
  "BeforeRangeSaveDataDetails": {
1998
1998
  "location": "import",
@@ -2014,7 +2014,7 @@ export class RevoGridComponent {
2014
2014
  },
2015
2015
  "complexType": {
2016
2016
  "original": "AfterEditEvent",
2017
- "resolved": "BeforeSaveDataDetails | { data: DataLookup; models: Partial<DataLookup>; type: DimensionRows; newRange: RangeArea | null; oldRange: RangeArea | null; }",
2017
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>> | D | K",
2018
2018
  "references": {
2019
2019
  "AfterEditEvent": {
2020
2020
  "location": "import",
@@ -2080,7 +2080,7 @@ export class RevoGridComponent {
2080
2080
  },
2081
2081
  "complexType": {
2082
2082
  "original": "FocusAfterRenderEvent",
2083
- "resolved": "FocusAfterRenderEvent",
2083
+ "resolved": "FocusAfterRenderEvent<DataType<any, ColumnProp>>",
2084
2084
  "references": {
2085
2085
  "FocusAfterRenderEvent": {
2086
2086
  "location": "import",
@@ -2117,7 +2117,7 @@ export class RevoGridComponent {
2117
2117
  },
2118
2118
  "complexType": {
2119
2119
  "original": "{\n column: ColumnRegular;\n order: 'desc' | 'asc';\n additive: boolean;\n }",
2120
- "resolved": "{ column: ColumnRegular<ColumnProp>; order: \"asc\" | \"desc\"; additive: boolean; }",
2120
+ "resolved": "{ column: ColumnRegular<ColumnProp, DataType<any, ColumnProp>>; order: \"asc\" | \"desc\"; additive: boolean; }",
2121
2121
  "references": {
2122
2122
  "ColumnRegular": {
2123
2123
  "location": "import",
@@ -2167,7 +2167,7 @@ export class RevoGridComponent {
2167
2167
  },
2168
2168
  "complexType": {
2169
2169
  "original": "{\n column: ColumnRegular;\n order: 'desc' | 'asc';\n additive: boolean;\n }",
2170
- "resolved": "{ column: ColumnRegular<ColumnProp>; order: \"asc\" | \"desc\"; additive: boolean; }",
2170
+ "resolved": "{ column: ColumnRegular<ColumnProp, DataType<any, ColumnProp>>; order: \"asc\" | \"desc\"; additive: boolean; }",
2171
2171
  "references": {
2172
2172
  "ColumnRegular": {
2173
2173
  "location": "import",
@@ -2189,7 +2189,7 @@ export class RevoGridComponent {
2189
2189
  },
2190
2190
  "complexType": {
2191
2191
  "original": "RowDragStartDetails",
2192
- "resolved": "{ cell: Cell; text: string; pos: PositionItem; event: MouseEvent; rowType: DimensionRows; model: any; }",
2192
+ "resolved": "TModel",
2193
2193
  "references": {
2194
2194
  "RowDragStartDetails": {
2195
2195
  "location": "import",
@@ -2211,7 +2211,7 @@ export class RevoGridComponent {
2211
2211
  },
2212
2212
  "complexType": {
2213
2213
  "original": "ColumnRegular",
2214
- "resolved": "ColumnRegular<ColumnProp>",
2214
+ "resolved": "ColumnRegular<ColumnProp, DataType<any, ColumnProp>>",
2215
2215
  "references": {
2216
2216
  "ColumnRegular": {
2217
2217
  "location": "import",
@@ -2233,7 +2233,7 @@ export class RevoGridComponent {
2233
2233
  },
2234
2234
  "complexType": {
2235
2235
  "original": "BeforeSaveDataDetails",
2236
- "resolved": "BeforeSaveDataDetails",
2236
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
2237
2237
  "references": {
2238
2238
  "BeforeSaveDataDetails": {
2239
2239
  "location": "import",
@@ -2255,7 +2255,7 @@ export class RevoGridComponent {
2255
2255
  },
2256
2256
  "complexType": {
2257
2257
  "original": "FocusedData | null",
2258
- "resolved": "null | { model: any; cell: Cell; colType: DimensionCols; rowType: DimensionRows; column?: ColumnRegular<ColumnProp> | undefined; }",
2258
+ "resolved": "null | { model: any; cell: Cell; colType: DimensionCols; rowType: DimensionRows; column?: ColumnRegular<ColumnProp, DataType<any, ColumnProp>> | undefined; }",
2259
2259
  "references": {
2260
2260
  "FocusedData": {
2261
2261
  "location": "import",
@@ -2389,7 +2389,7 @@ export class RevoGridComponent {
2389
2389
  },
2390
2390
  "complexType": {
2391
2391
  "original": "{\n columns: (ColumnGrouping | ColumnRegular)[];\n }",
2392
- "resolved": "{ columns: (ColumnRegular<ColumnProp> | ColumnGrouping<any>)[]; }",
2392
+ "resolved": "{ columns: (ColumnRegular<ColumnProp, DataType<any, ColumnProp>> | ColumnGrouping<any>)[]; }",
2393
2393
  "references": {
2394
2394
  "ColumnGrouping": {
2395
2395
  "location": "import",
@@ -2417,7 +2417,7 @@ export class RevoGridComponent {
2417
2417
  },
2418
2418
  "complexType": {
2419
2419
  "original": "ColumnCollection",
2420
- "resolved": "{ columns: Record<DimensionCols, ColumnRegular<ColumnProp>[]>; columnByProp: Record<ColumnProp, ColumnRegular<ColumnProp>[]>; columnGrouping: ColumnGroupingCollection; maxLevel: number; sort: Record<ColumnProp, ColumnRegular<ColumnProp>>; }",
2420
+ "resolved": "{ columns: Record<DimensionCols, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]>; columnByProp: Record<ColumnProp, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]>; columnGrouping: ColumnGroupingCollection; maxLevel: number; sort: Record<ColumnProp, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>; }",
2421
2421
  "references": {
2422
2422
  "ColumnCollection": {
2423
2423
  "location": "import",
@@ -2439,7 +2439,7 @@ export class RevoGridComponent {
2439
2439
  },
2440
2440
  "complexType": {
2441
2441
  "original": "ColumnCollection",
2442
- "resolved": "{ columns: Record<DimensionCols, ColumnRegular<ColumnProp>[]>; columnByProp: Record<ColumnProp, ColumnRegular<ColumnProp>[]>; columnGrouping: ColumnGroupingCollection; maxLevel: number; sort: Record<ColumnProp, ColumnRegular<ColumnProp>>; }",
2442
+ "resolved": "{ columns: Record<DimensionCols, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]>; columnByProp: Record<ColumnProp, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]>; columnGrouping: ColumnGroupingCollection; maxLevel: number; sort: Record<ColumnProp, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>; }",
2443
2443
  "references": {
2444
2444
  "ColumnCollection": {
2445
2445
  "location": "import",
@@ -2632,7 +2632,7 @@ export class RevoGridComponent {
2632
2632
  },
2633
2633
  "complexType": {
2634
2634
  "original": "BeforeSaveDataDetails",
2635
- "resolved": "BeforeSaveDataDetails",
2635
+ "resolved": "BeforeSaveDataDetails<DataType, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>",
2636
2636
  "references": {
2637
2637
  "BeforeSaveDataDetails": {
2638
2638
  "location": "import",
@@ -2654,7 +2654,7 @@ export class RevoGridComponent {
2654
2654
  },
2655
2655
  "complexType": {
2656
2656
  "original": "{\n [index: number]: ColumnRegular;\n }",
2657
- "resolved": "{ [index: number]: ColumnRegular<ColumnProp>; }",
2657
+ "resolved": "{ [index: number]: ColumnRegular<ColumnProp, DataType<any, ColumnProp>>; }",
2658
2658
  "references": {
2659
2659
  "ColumnRegular": {
2660
2660
  "location": "import",
@@ -2977,7 +2977,7 @@ export class RevoGridComponent {
2977
2977
  "signature": "(cols: ColumnRegular[]) => Promise<void>",
2978
2978
  "parameters": [{
2979
2979
  "name": "cols",
2980
- "type": "ColumnRegular<ColumnProp>[]",
2980
+ "type": "ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]",
2981
2981
  "docs": ""
2982
2982
  }],
2983
2983
  "references": {
@@ -3306,9 +3306,15 @@ export class RevoGridComponent {
3306
3306
  "path": "@type",
3307
3307
  "id": "src/types/index.ts::ColumnProp",
3308
3308
  "referenceLocation": "ColumnProp"
3309
+ },
3310
+ "DataType": {
3311
+ "location": "import",
3312
+ "path": "@type",
3313
+ "id": "src/types/index.ts::DataType",
3314
+ "referenceLocation": "DataType"
3309
3315
  }
3310
3316
  },
3311
- "return": "Promise<Observable<DSourceState<ColumnRegular<ColumnProp>, DimensionCols>>>"
3317
+ "return": "Promise<Observable<DSourceState<ColumnRegular<ColumnProp, DataType<any, ColumnProp>>, DimensionCols>>>"
3312
3318
  },
3313
3319
  "docs": {
3314
3320
  "text": "Provides access to column internal store observer\nCan be used for plugin support",
@@ -3323,7 +3329,7 @@ export class RevoGridComponent {
3323
3329
  "signature": "(column: Pick<ColumnRegular, \"prop\" | \"cellCompare\">, order: \"asc\" | \"desc\" | undefined, additive: boolean) => Promise<void>",
3324
3330
  "parameters": [{
3325
3331
  "name": "column",
3326
- "type": "{ prop: ColumnProp; cellCompare?: CellCompareFunc | undefined; }",
3332
+ "type": "{ prop: ColumnProp; cellCompare?: CellCompareFunc<DataType<any, ColumnProp>> | undefined; }",
3327
3333
  "docs": "- column prop and cellCompare"
3328
3334
  }, {
3329
3335
  "name": "order",
@@ -3403,9 +3409,15 @@ export class RevoGridComponent {
3403
3409
  "path": "@type",
3404
3410
  "id": "src/types/index.ts::ColumnProp",
3405
3411
  "referenceLocation": "ColumnProp"
3412
+ },
3413
+ "DataType": {
3414
+ "location": "import",
3415
+ "path": "@type",
3416
+ "id": "src/types/index.ts::DataType",
3417
+ "referenceLocation": "DataType"
3406
3418
  }
3407
3419
  },
3408
- "return": "Promise<ColumnRegular<ColumnProp>[]>"
3420
+ "return": "Promise<ColumnRegular<ColumnProp, DataType<any, ColumnProp>>[]>"
3409
3421
  },
3410
3422
  "docs": {
3411
3423
  "text": "Receive all columns in data source",
@@ -277,7 +277,7 @@ export class RevogrFocus {
277
277
  "mutable": false,
278
278
  "complexType": {
279
279
  "original": "Observable<DSourceState<ColumnRegular, DimensionCols>>",
280
- "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp>",
280
+ "resolved": "\"colPinEnd\" | \"colPinStart\" | \"rgCol\" | ColumnRegular<ColumnProp, DataType<any, ColumnProp>>",
281
281
  "references": {
282
282
  "Observable": {
283
283
  "location": "import",
@@ -396,7 +396,7 @@ export class RevogrFocus {
396
396
  },
397
397
  "complexType": {
398
398
  "original": "FocusAfterRenderEvent",
399
- "resolved": "FocusAfterRenderEvent",
399
+ "resolved": "FocusAfterRenderEvent<DataType<any, ColumnProp>>",
400
400
  "references": {
401
401
  "FocusAfterRenderEvent": {
402
402
  "location": "import",
@@ -178,10 +178,15 @@ export class FilterPlugin extends BasePlugin {
178
178
  if (!this.pop) {
179
179
  return;
180
180
  }
181
+ const prop = e.detail.prop;
182
+ const currentPanel = await this.pop.getChanges();
183
+ if ((currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.prop) === prop) {
184
+ await this.pop.show();
185
+ return;
186
+ }
181
187
  // filter button clicked, open filter dialog
182
188
  const gridPos = this.revogrid.getBoundingClientRect();
183
189
  const buttonPos = el.getBoundingClientRect();
184
- const prop = e.detail.prop;
185
190
  const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
186
191
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
187
192
  this.pop.show(data);
@@ -53,6 +53,7 @@ revogr-filter-panel {
53
53
  border-radius: 8px;
54
54
  min-width: 220px;
55
55
  text-align: left;
56
+ animation: revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1);
56
57
  }
57
58
  revogr-filter-panel .filter-holder > div {
58
59
  display: flex;
@@ -76,15 +77,30 @@ revogr-filter-panel input[type=text] {
76
77
  box-sizing: border-box;
77
78
  width: 100%;
78
79
  }
79
- revogr-filter-panel button {
80
- margin-top: 10px;
81
- margin-right: 5px;
82
- }
83
80
  revogr-filter-panel .filter-actions {
84
81
  text-align: right;
85
82
  margin-right: -5px;
86
83
  }
84
+ revogr-filter-panel .filter-actions button {
85
+ margin-top: 10px;
86
+ margin-right: 5px;
87
+ }
87
88
 
89
+ @keyframes revogr-filter-panel-open {
90
+ from {
91
+ opacity: 0;
92
+ transform: translateY(-4px) scale(0.98);
93
+ }
94
+ to {
95
+ opacity: 1;
96
+ transform: none;
97
+ }
98
+ }
99
+ @media (prefers-reduced-motion: reduce) {
100
+ revogr-filter-panel {
101
+ animation: none;
102
+ }
103
+ }
88
104
  .rgHeaderCell:hover .rv-filter {
89
105
  transition: opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
90
106
  }
@@ -1384,10 +1384,15 @@ class FilterPlugin extends BasePlugin {
1384
1384
  if (!this.pop) {
1385
1385
  return;
1386
1386
  }
1387
+ const prop = e.detail.prop;
1388
+ const currentPanel = await this.pop.getChanges();
1389
+ if ((currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.prop) === prop) {
1390
+ await this.pop.show();
1391
+ return;
1392
+ }
1387
1393
  // filter button clicked, open filter dialog
1388
1394
  const gridPos = this.revogrid.getBoundingClientRect();
1389
1395
  const buttonPos = el.getBoundingClientRect();
1390
- const prop = e.detail.prop;
1391
1396
  const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
1392
1397
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
1393
1398
  this.pop.show(data);
package/dist/esm/index.js CHANGED
@@ -2,8 +2,8 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-Cdz3dYqZ.js';
5
- import { B as BasePlugin } from './column.drag.plugin-6YvuxWof.js';
6
- export { A as AutoSizeColumnPlugin, C as ColumnAutoSizeMode, l as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, n as SortingPlugin, a as StretchColumn, o as defaultCellCompare, p as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, r as getComparer, m as getLeftRelative, q as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-6YvuxWof.js';
5
+ import { B as BasePlugin } from './column.drag.plugin-DEqZ2qXJ.js';
6
+ export { A as AutoSizeColumnPlugin, C as ColumnAutoSizeMode, l as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, n as SortingPlugin, a as StretchColumn, o as defaultCellCompare, p as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, r as getComparer, m as getLeftRelative, q as getNextOrder, i as isStretchPlugin, s as sortIndexByItems } from './column.drag.plugin-DEqZ2qXJ.js';
7
7
  export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-DXhxZMly.js';
8
8
  export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode } from './cell-renderer-K_BKH7Kx.js';
9
9
  export { C as CELL_CLASS, L as CELL_HANDLER_CLASS, x as DATA_COL, y as DATA_ROW, z as DISABLED_CLASS, I as DRAGGABLE_CLASS, O as DRAGG_TEXT, G as DRAG_ICON_CLASS, D as DataStore, N as EDIT_INPUT_WR, J as FOCUS_CLASS, P as GRID_INTERNALS, F as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, E as HEADER_ROW_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, K as MOBILE_CLASS, R as RESIZE_INTERVAL, Q as ROW_FOCUSED_CLASS, A as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, v as applyMixins, i as calculateDimensionData, U as codesLetter, l as findPositionInArray, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, o as getScrollbarSize, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, V as keyValues, n as mergeSortedArray, p as proxyPlugin, m as pushSorted, r as range, q as scaleValue, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, w as setStore, u as timeout, t as trimmedPlugin } from './dimension.helpers-DzxqJQqN.js';
@@ -5,7 +5,7 @@ import { h, r as registerInstance, d as createEvent, e as Host, g as getElement
5
5
  import { c as columnTypes, J as reduce, C as getColumnType, r as rowTypes, i as isRowType, D as getColumnSizes, a as cropCellToMax, n as nextCell, I as getColumnByProp, F as getColumns } from './column.service-Cdz3dYqZ.js';
6
6
  import { D as DataStore, b as getSourceItem, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems, k as getItemByIndex, R as RESIZE_INTERVAL, u as timeout } from './dimension.helpers-DzxqJQqN.js';
7
7
  import { d as debounce } from './debounce-BfO9dz9v.js';
8
- import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, n as SortingPlugin, l as ColumnMovePlugin } from './column.drag.plugin-6YvuxWof.js';
8
+ import { D as DimensionStore, S as SelectionStore, B as BasePlugin, G as GroupingRowPlugin, a as StretchColumn, i as isStretchPlugin, A as AutoSizeColumnPlugin, e as FilterPlugin, E as ExportFilePlugin, n as SortingPlugin, l as ColumnMovePlugin } from './column.drag.plugin-DEqZ2qXJ.js';
9
9
  import { V as ViewportStore } from './viewport.store-saAZJHRo.js';
10
10
  import { T as ThemeService } from './theme.service-BmnDvr6P.js';
11
11
  import { v as viewportDataPartition, F as FOOTER_SLOT, C as CONTENT_SLOT, H as HEADER_SLOT, D as DATA_SLOT } from './viewport.helpers-VXhsJZtn.js';
@@ -24,7 +24,7 @@ import { i as isFilterBtn, e as AndOrButton, d as TrashButton } from './filter.b
24
24
  }
25
25
  })();
26
26
 
27
- const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel button{margin-top:10px;margin-right:5px}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}`;
27
+ const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}revogr-filter-panel .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}`;
28
28
 
29
29
  const defaultType = 'none';
30
30
  const FILTER_LIST_CLASS = 'multi-filter-list';
@@ -1384,10 +1384,15 @@ class FilterPlugin extends BasePlugin {
1384
1384
  if (!this.pop) {
1385
1385
  return;
1386
1386
  }
1387
+ const prop = e.detail.prop;
1388
+ const currentPanel = await this.pop.getChanges();
1389
+ if ((currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.prop) === prop) {
1390
+ await this.pop.show();
1391
+ return;
1392
+ }
1387
1393
  // filter button clicked, open filter dialog
1388
1394
  const gridPos = this.revogrid.getBoundingClientRect();
1389
1395
  const buttonPos = el.getBoundingClientRect();
1390
- const prop = e.detail.prop;
1391
1396
  const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
1392
1397
  (_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
1393
1398
  this.pop.show(data);