@revolist/revogrid 4.23.13 → 4.23.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{cell-renderer-DfUCisis.js → cell-renderer-Dcz022q7.js} +5 -23
- package/dist/cjs/{column.drag.plugin-D_Dfhp4f.js → column.drag.plugin-BGLbi1zS.js} +9 -38
- package/dist/cjs/{column.service-BNWNiJW3.js → column.service-C1Qvcf5l.js} +23 -62
- package/dist/cjs/{filter.button-B9EzJrr1.js → filter.button-w6LWnyhi.js} +0 -16
- package/dist/cjs/{header-cell-renderer-DyjOxArm.js → header-cell-renderer-vVr4IWNV.js} +1 -1
- package/dist/cjs/index.cjs.js +5 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +6 -6
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +4 -40
- package/dist/cjs/revogr-data_4.cjs.entry.js +6 -14
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +68 -119
- package/dist/collection/components/data/column.service.js +23 -62
- package/dist/collection/components/data/row-renderer.js +2 -15
- package/dist/collection/components/overlay/revogr-overlay-selection.js +7 -27
- package/dist/collection/components/revoGrid/revo-grid.js +7 -14
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +2 -10
- package/dist/collection/plugins/filter/filter.button.js +0 -14
- package/dist/collection/plugins/filter/filter.panel.js +68 -80
- package/dist/collection/plugins/filter/filter.plugin.js +4 -4
- package/dist/collection/plugins/filter/filter.style.css +18 -56
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +2 -7
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +2 -30
- package/dist/collection/serve/controller.js +0 -1
- package/dist/esm/{cell-renderer-CLTRlCa5.js → cell-renderer-BtN-NGCk.js} +5 -23
- package/dist/esm/{column.drag.plugin-UNSHSmgo.js → column.drag.plugin-4Ixr4ijU.js} +10 -38
- package/dist/esm/{column.service-C6hByxPy.js → column.service-CC_SD8W3.js} +23 -62
- package/dist/{revo-grid/filter.button-BFwo1uvz.js → esm/filter.button-C8XTWPU2.js} +1 -15
- package/dist/esm/{header-cell-renderer-BMmXRsd_.js → header-cell-renderer-B-LX2sgu.js} +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +6 -6
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +4 -40
- package/dist/esm/revogr-data_4.entry.js +6 -14
- package/dist/esm/revogr-filter-panel.entry.js +68 -119
- package/dist/revo-grid/{cell-renderer-CLTRlCa5.js → cell-renderer-BtN-NGCk.js} +5 -23
- package/dist/revo-grid/{column.drag.plugin-UNSHSmgo.js → column.drag.plugin-4Ixr4ijU.js} +10 -38
- package/dist/revo-grid/{column.service-C6hByxPy.js → column.service-CC_SD8W3.js} +23 -62
- package/dist/{esm/filter.button-BFwo1uvz.js → revo-grid/filter.button-C8XTWPU2.js} +1 -15
- package/dist/revo-grid/{header-cell-renderer-BMmXRsd_.js → header-cell-renderer-B-LX2sgu.js} +1 -1
- package/dist/revo-grid/index.esm.js +6 -6
- package/dist/revo-grid/revo-grid.entry.js +6 -6
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +4 -40
- package/dist/revo-grid/revogr-data_4.entry.js +6 -14
- package/dist/revo-grid/revogr-filter-panel.entry.js +68 -119
- package/dist/types/components/data/column.service.d.ts +1 -10
- package/dist/types/components/data/row-renderer.d.ts +1 -1
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +3 -4
- package/dist/types/components/revoGrid/revo-grid.d.ts +4 -4
- package/dist/types/components.d.ts +14 -14
- package/dist/types/plugins/filter/filter.button.d.ts +0 -11
- package/dist/types/plugins/filter/filter.panel.d.ts +4 -7
- package/dist/types/plugins/filter/filter.plugin.d.ts +0 -1
- package/dist/types/plugins/filter/filter.types.d.ts +0 -1
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +0 -4
- package/dist/types/types/interfaces.d.ts +0 -8
- package/hydrate/index.js +107 -303
- package/hydrate/index.mjs +107 -303
- package/package.json +1 -1
- package/readme.md +1 -20
- package/standalone/column.service.js +1 -1
- package/standalone/filter.button.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
- package/dist/collection/components/overlay/clipboard.utils.js +0 -26
- package/dist/collection/plugins/filter/filter.reorder.js +0 -44
- package/dist/types/components/overlay/clipboard.utils.d.ts +0 -3
- package/dist/types/plugins/filter/filter.reorder.d.ts +0 -4
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
// filter.panel.tsx
|
|
5
5
|
import { h, Host, } from "@stencil/core";
|
|
6
6
|
import debounce from "lodash/debounce";
|
|
7
|
-
import { AndOrButton, isFilterBtn,
|
|
7
|
+
import { AndOrButton, isFilterBtn, TrashButton } from "./filter.button";
|
|
8
8
|
import "../../utils/closest.polifill";
|
|
9
|
-
import { getFilterReorderId, moveFilterItem, setFilterReorderData, } from "./filter.reorder";
|
|
10
9
|
const defaultType = 'none';
|
|
11
10
|
const FILTER_LIST_CLASS = 'multi-filter-list';
|
|
12
11
|
const FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';
|
|
@@ -103,7 +102,6 @@ export class FilterPanel {
|
|
|
103
102
|
if (typeof prop === 'undefined')
|
|
104
103
|
return '';
|
|
105
104
|
const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : [];
|
|
106
|
-
const visibleFilterCount = propFilters.filter(filter => !filter.hidden).length;
|
|
107
105
|
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
108
106
|
return (h("div", { key: this.filterId }, propFilters.map((filter, index) => {
|
|
109
107
|
let andOrButton;
|
|
@@ -114,24 +112,56 @@ export class FilterPanel {
|
|
|
114
112
|
if (index !== this.filterItems[prop].length - 1) {
|
|
115
113
|
andOrButton = (h("div", { onClick: () => this.toggleFilterAndOr(filter.id) }, h(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or })));
|
|
116
114
|
}
|
|
117
|
-
|
|
118
|
-
return (h("div", { key: filter.id, class: FILTER_LIST_CLASS }, h("div", { ref: el => el === null || el === void 0 ? void 0 : el.classList.add('multi-filter-list-row') }, visibleFilterCount > 1 ? (h(ReorderButton, { dragging: this.draggedFilterId === filter.id, dragOver: this.dragOverFilterId === filter.id && this.draggedFilterId !== filter.id, onDragStart: e => this.onFilterDragStart(e, filter.id), onDragEnd: () => this.onFilterDragEnd(), onDragOver: e => this.onFilterDragOver(e, filter.id), onDragLeave: () => this.onFilterDragLeave(filter.id), onDrop: e => this.onFilterDrop(e, prop, filter.id) })) : '', h("div", { class: { 'select-input': true } }, h("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index) }, this.renderSelectOptions(this.filterItems[prop][index].type, true)), extra ? h("div", { class: "filter-extra" }, extra) : ''), h("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, h("div", { onClick: () => this.onRemoveFilter(filter.id) }, h(TrashButton, null))))));
|
|
115
|
+
return (h("div", { key: filter.id, class: FILTER_LIST_CLASS }, h("div", { class: { 'select-input': true } }, h("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index) }, this.renderSelectOptions(this.filterItems[prop][index].type, true)), h("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton), h("div", { onClick: () => this.onRemoveFilter(filter.id) }, h(TrashButton, null))), h("div", null, this.renderExtra(prop, index))));
|
|
119
116
|
}), propFilters.filter(f => !f.hidden).length > 0 ? h("div", { class: "add-filter-divider" }) : ''));
|
|
120
117
|
}
|
|
118
|
+
componentDidRender() {
|
|
119
|
+
this.syncDialog();
|
|
120
|
+
}
|
|
121
|
+
syncDialog() {
|
|
122
|
+
if (!this.dialog) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (!this.changes) {
|
|
126
|
+
if (this.dialog.open) {
|
|
127
|
+
this.dialog.close();
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (!this.dialog.open) {
|
|
132
|
+
this.dialog.show();
|
|
133
|
+
}
|
|
134
|
+
if (this.changes.autoCorrect !== false) {
|
|
135
|
+
requestAnimationFrame(() => this.autoCorrect(this.dialog));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
121
138
|
autoCorrect(el) {
|
|
122
|
-
var _a, _b;
|
|
123
139
|
if (!el) {
|
|
124
140
|
return;
|
|
125
141
|
}
|
|
126
|
-
const
|
|
127
|
-
|
|
142
|
+
const pos = el.getBoundingClientRect();
|
|
143
|
+
const maxLeft = Math.max(0, window.innerWidth - pos.width);
|
|
144
|
+
const maxTop = Math.max(0, window.innerHeight - pos.height);
|
|
145
|
+
if (pos.left > maxLeft) {
|
|
146
|
+
el.style.left = `${maxLeft}px`;
|
|
147
|
+
}
|
|
148
|
+
if (pos.top > maxTop) {
|
|
149
|
+
el.style.top = `${maxTop}px`;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
onDialogMouseDown(e) {
|
|
153
|
+
if (!this.closeOnOutsideClick ||
|
|
154
|
+
e.target !== this.dialog ||
|
|
155
|
+
!this.dialog) {
|
|
128
156
|
return;
|
|
129
157
|
}
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
158
|
+
const rect = this.dialog.getBoundingClientRect();
|
|
159
|
+
const isInside = e.clientX >= rect.left &&
|
|
160
|
+
e.clientX <= rect.right &&
|
|
161
|
+
e.clientY >= rect.top &&
|
|
162
|
+
e.clientY <= rect.bottom;
|
|
163
|
+
if (!isInside) {
|
|
164
|
+
this.onCancel();
|
|
135
165
|
}
|
|
136
166
|
}
|
|
137
167
|
onFilterTypeChange(e, prop, index) {
|
|
@@ -224,49 +254,6 @@ export class FilterPanel {
|
|
|
224
254
|
this.debouncedApplyFilter();
|
|
225
255
|
}
|
|
226
256
|
}
|
|
227
|
-
onFilterDragStart(e, id) {
|
|
228
|
-
this.draggedFilterId = id;
|
|
229
|
-
setFilterReorderData(e.dataTransfer, id);
|
|
230
|
-
}
|
|
231
|
-
onFilterDragOver(e, id) {
|
|
232
|
-
if (this.draggedFilterId === undefined || this.draggedFilterId === id) {
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
e.preventDefault();
|
|
236
|
-
if (e.dataTransfer) {
|
|
237
|
-
e.dataTransfer.dropEffect = 'move';
|
|
238
|
-
}
|
|
239
|
-
this.dragOverFilterId = id;
|
|
240
|
-
}
|
|
241
|
-
onFilterDragLeave(id) {
|
|
242
|
-
if (this.dragOverFilterId === id) {
|
|
243
|
-
this.dragOverFilterId = undefined;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
onFilterDrop(e, prop, targetId) {
|
|
247
|
-
var _a;
|
|
248
|
-
e.preventDefault();
|
|
249
|
-
const sourceId = (_a = this.draggedFilterId) !== null && _a !== void 0 ? _a : getFilterReorderId(e.dataTransfer);
|
|
250
|
-
this.onFilterDragEnd();
|
|
251
|
-
if (sourceId === undefined) {
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
const items = this.filterItems[prop];
|
|
255
|
-
if (!items) {
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
if (!moveFilterItem(items, sourceId, targetId)) {
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
this.filterId++;
|
|
262
|
-
if (!this.disableDynamicFiltering) {
|
|
263
|
-
this.debouncedApplyFilter();
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
onFilterDragEnd() {
|
|
267
|
-
this.draggedFilterId = undefined;
|
|
268
|
-
this.dragOverFilterId = undefined;
|
|
269
|
-
}
|
|
270
257
|
toggleFilterAndOr(id) {
|
|
271
258
|
var _a;
|
|
272
259
|
this.assertChanges();
|
|
@@ -375,30 +362,33 @@ export class FilterPanel {
|
|
|
375
362
|
} }));
|
|
376
363
|
}
|
|
377
364
|
render() {
|
|
378
|
-
var _a, _b, _c, _d, _e;
|
|
379
|
-
if (!this.changes) {
|
|
380
|
-
return h(Host, { style: { display: 'none' } });
|
|
381
|
-
}
|
|
365
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
382
366
|
const style = {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
top: `${this.changes.y}px`,
|
|
367
|
+
left: `${(_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0}px`,
|
|
368
|
+
top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
|
|
386
369
|
};
|
|
387
370
|
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
388
|
-
return (h(Host, { style: style, ref: el => {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
392
|
-
h("
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
h("
|
|
400
|
-
h("
|
|
401
|
-
|
|
371
|
+
return (h(Host, { key: '9fb424017d080876ff7796237917b4f41f617fe0' }, h("dialog", { key: '37b9f870b95f6fe1bd7be359dd7b77ef196e896e', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
|
|
372
|
+
e.preventDefault();
|
|
373
|
+
this.onCancel();
|
|
374
|
+
}, onMouseDown: e => this.onDialogMouseDown(e) }, this.changes && [
|
|
375
|
+
h("slot", { key: '76ec505a92d0a7c1ae0bbb5f4cac63555f3416be', slot: "header" }),
|
|
376
|
+
((_f = (_e = this.changes).extraContent) === null || _f === void 0 ? void 0 : _f.call(_e, this.changes)) || '',
|
|
377
|
+
((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
|
|
378
|
+
h("label", { key: 'c6fd82c95f6005f286c7bc90de34956128a83246' }, capts.title),
|
|
379
|
+
h("div", { key: '5e7dac36ad79ba1b6072a0053b30aa384ade0dde', class: "filter-holder" }, this.getFilterItemsList()),
|
|
380
|
+
h("div", { key: 'd9b6103edbd138d4db845745686ee4c847310a66', class: "add-filter" }, h("select", { key: 'c1b321f2d19458f95ab3f9188d83d94bebdb688e', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
|
|
381
|
+
],
|
|
382
|
+
h("slot", { key: '1571dcbc5c57651deb42a4046272ff60fa74f5a7' }),
|
|
383
|
+
h("div", { key: '4aa7dee532336b084542df0209291b4c60378b49', class: "filter-actions" }, this.disableDynamicFiltering && [
|
|
384
|
+
h("button", { key: '4c1b3054cd1bb7f46877592f00f6634d0f7ecafa', id: "revo-button-save", "aria-label": "save", class: "revo-button green", onClick: () => this.onSave() }, capts.save),
|
|
385
|
+
h("button", { key: 'f31a568c89be18b1a854cdd7d4726e01db24e338', id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.cancel),
|
|
386
|
+
], !this.disableDynamicFiltering && [
|
|
387
|
+
h("button", { key: '5d40e8b1f13f94cff4f5a2e2aefeee8861104a9d', id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.ok),
|
|
388
|
+
h("button", { key: '67eac3abd16f6f6e2ed7089dcfb0d05524ddb7df', id: "revo-button-reset", "aria-label": "reset", class: "revo-button outline", onClick: () => this.onReset() }, capts.reset),
|
|
389
|
+
]),
|
|
390
|
+
h("slot", { key: 'b27a9bb3ef814e1e09dca14eda3e332ff34c654c', slot: "footer" }),
|
|
391
|
+
])));
|
|
402
392
|
}
|
|
403
393
|
static get is() { return "revogr-filter-panel"; }
|
|
404
394
|
static get originalStyleUrls() {
|
|
@@ -542,9 +532,7 @@ export class FilterPanel {
|
|
|
542
532
|
"currentFilterId": {},
|
|
543
533
|
"currentFilterType": {},
|
|
544
534
|
"changes": {},
|
|
545
|
-
"filterItems": {}
|
|
546
|
-
"draggedFilterId": {},
|
|
547
|
-
"dragOverFilterId": {}
|
|
535
|
+
"filterItems": {}
|
|
548
536
|
};
|
|
549
537
|
}
|
|
550
538
|
static get events() {
|
|
@@ -178,7 +178,8 @@ export class FilterPlugin extends BasePlugin {
|
|
|
178
178
|
async headerclick(e) {
|
|
179
179
|
var _a, _b;
|
|
180
180
|
const el = (_a = e.detail.originalEvent) === null || _a === void 0 ? void 0 : _a.target;
|
|
181
|
-
|
|
181
|
+
const filterButton = isFilterBtn(el);
|
|
182
|
+
if (!filterButton) {
|
|
182
183
|
return;
|
|
183
184
|
}
|
|
184
185
|
e.preventDefault();
|
|
@@ -192,9 +193,8 @@ export class FilterPlugin extends BasePlugin {
|
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
194
195
|
// filter button clicked, open filter dialog
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
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, extraBottomContent: this.extraBottomHyperContent });
|
|
196
|
+
const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
|
|
197
|
+
const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x, y: buttonPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
|
|
198
198
|
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
199
199
|
this.pop.show(data);
|
|
200
200
|
}
|
|
@@ -36,12 +36,15 @@ revo-grid[theme^=dark] .revo-button.outline {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
revogr-filter-panel {
|
|
39
|
-
position: absolute;
|
|
40
39
|
display: block;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
revogr-filter-panel .filter-panel-dialog {
|
|
43
|
+
position: fixed;
|
|
41
44
|
top: 0;
|
|
42
45
|
left: 0;
|
|
43
46
|
z-index: 100;
|
|
44
|
-
max-height: calc(
|
|
47
|
+
max-height: calc(100vh - 16px);
|
|
45
48
|
overflow: auto;
|
|
46
49
|
opacity: 1;
|
|
47
50
|
transform: none;
|
|
@@ -51,23 +54,27 @@ revogr-filter-panel {
|
|
|
51
54
|
box-shadow: 0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));
|
|
52
55
|
padding: 10px;
|
|
53
56
|
border-radius: 8px;
|
|
57
|
+
margin: 0;
|
|
54
58
|
min-width: 220px;
|
|
55
59
|
text-align: left;
|
|
56
60
|
animation: revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1);
|
|
57
61
|
}
|
|
58
|
-
revogr-filter-panel .filter-
|
|
62
|
+
revogr-filter-panel .filter-panel-dialog::backdrop {
|
|
63
|
+
background: transparent;
|
|
64
|
+
}
|
|
65
|
+
revogr-filter-panel .filter-panel-dialog .filter-holder > div {
|
|
59
66
|
display: flex;
|
|
60
67
|
flex-direction: column;
|
|
61
68
|
}
|
|
62
|
-
revogr-filter-panel label {
|
|
69
|
+
revogr-filter-panel .filter-panel-dialog label {
|
|
63
70
|
font-size: 13px;
|
|
64
71
|
display: block;
|
|
65
72
|
padding: 8px 0;
|
|
66
73
|
}
|
|
67
|
-
revogr-filter-panel select {
|
|
74
|
+
revogr-filter-panel .filter-panel-dialog select {
|
|
68
75
|
width: 100%;
|
|
69
76
|
}
|
|
70
|
-
revogr-filter-panel input[type=text] {
|
|
77
|
+
revogr-filter-panel .filter-panel-dialog input[type=text] {
|
|
71
78
|
border: 0;
|
|
72
79
|
min-height: 34px;
|
|
73
80
|
margin: 5px 0;
|
|
@@ -77,11 +84,11 @@ revogr-filter-panel input[type=text] {
|
|
|
77
84
|
box-sizing: border-box;
|
|
78
85
|
width: 100%;
|
|
79
86
|
}
|
|
80
|
-
revogr-filter-panel .filter-actions {
|
|
87
|
+
revogr-filter-panel .filter-panel-dialog .filter-actions {
|
|
81
88
|
text-align: right;
|
|
82
89
|
margin-right: -5px;
|
|
83
90
|
}
|
|
84
|
-
revogr-filter-panel .filter-actions button {
|
|
91
|
+
revogr-filter-panel .filter-panel-dialog .filter-actions button {
|
|
85
92
|
margin-top: 10px;
|
|
86
93
|
margin-right: 5px;
|
|
87
94
|
}
|
|
@@ -97,7 +104,7 @@ revogr-filter-panel .filter-actions button {
|
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
106
|
@media (prefers-reduced-motion: reduce) {
|
|
100
|
-
revogr-filter-panel {
|
|
107
|
+
revogr-filter-panel .filter-panel-dialog {
|
|
101
108
|
animation: none;
|
|
102
109
|
}
|
|
103
110
|
}
|
|
@@ -182,15 +189,9 @@ revogr-filter-panel .filter-actions button {
|
|
|
182
189
|
.multi-filter-list div {
|
|
183
190
|
white-space: nowrap;
|
|
184
191
|
}
|
|
185
|
-
.multi-filter-list .multi-filter-list-row {
|
|
186
|
-
display: flex;
|
|
187
|
-
align-items: center;
|
|
188
|
-
gap: 6px;
|
|
189
|
-
}
|
|
190
192
|
.multi-filter-list .multi-filter-list-action {
|
|
191
193
|
display: flex;
|
|
192
|
-
|
|
193
|
-
justify-content: flex-end;
|
|
194
|
+
justify-content: space-between;
|
|
194
195
|
align-items: center;
|
|
195
196
|
}
|
|
196
197
|
.multi-filter-list .and-or-button {
|
|
@@ -208,28 +209,6 @@ revogr-filter-panel .filter-actions button {
|
|
|
208
209
|
.multi-filter-list .trash-button .trash-img {
|
|
209
210
|
width: 1em;
|
|
210
211
|
}
|
|
211
|
-
.multi-filter-list .reorder-button {
|
|
212
|
-
border: 0;
|
|
213
|
-
background: transparent;
|
|
214
|
-
color: var(--revo-grid-filter-panel-reorder-color, #6b7280);
|
|
215
|
-
cursor: grab;
|
|
216
|
-
font-family: monospace;
|
|
217
|
-
font-size: 12px;
|
|
218
|
-
letter-spacing: 0;
|
|
219
|
-
line-height: 1;
|
|
220
|
-
padding: 6px 2px;
|
|
221
|
-
transform: scaleX(0.8);
|
|
222
|
-
width: 16px;
|
|
223
|
-
}
|
|
224
|
-
.multi-filter-list .reorder-button.filter-row-dragging {
|
|
225
|
-
opacity: 0.55;
|
|
226
|
-
}
|
|
227
|
-
.multi-filter-list .reorder-button.filter-row-drag-over {
|
|
228
|
-
color: var(--revo-grid-filter-panel-reorder-accent, #007cb2);
|
|
229
|
-
}
|
|
230
|
-
.multi-filter-list .reorder-button:active {
|
|
231
|
-
cursor: grabbing;
|
|
232
|
-
}
|
|
233
212
|
|
|
234
213
|
.add-filter-divider {
|
|
235
214
|
display: block;
|
|
@@ -240,23 +219,6 @@ revogr-filter-panel .filter-actions button {
|
|
|
240
219
|
|
|
241
220
|
.select-input {
|
|
242
221
|
display: flex;
|
|
222
|
+
justify-content: space-between;
|
|
243
223
|
align-items: center;
|
|
244
|
-
flex: 1 1 auto;
|
|
245
|
-
gap: 6px;
|
|
246
|
-
min-width: 0;
|
|
247
|
-
}
|
|
248
|
-
.select-input .select-filter,
|
|
249
|
-
.select-input .filter-extra {
|
|
250
|
-
flex: 1 1 0;
|
|
251
|
-
min-width: 0;
|
|
252
|
-
}
|
|
253
|
-
.select-input .filter-extra {
|
|
254
|
-
display: flex;
|
|
255
|
-
}
|
|
256
|
-
.select-input .filter-extra > * {
|
|
257
|
-
width: 100%;
|
|
258
|
-
}
|
|
259
|
-
.select-input input[type=text],
|
|
260
|
-
.select-input input[type=date] {
|
|
261
|
-
margin: 0;
|
|
262
224
|
}
|
|
@@ -21,17 +21,12 @@ export const GroupingRowRenderer = (props) => {
|
|
|
21
21
|
const name = model[PSEUDO_GROUP_ITEM];
|
|
22
22
|
const expanded = model[GROUP_EXPANDED];
|
|
23
23
|
const depth = parseInt(model[GROUP_DEPTH], 10) || 0;
|
|
24
|
-
const groupRowAttrs = {
|
|
25
|
-
rowClass: 'groupingRow',
|
|
26
|
-
depth,
|
|
27
|
-
expanded,
|
|
28
|
-
};
|
|
29
24
|
if (groupingCustomRenderer) {
|
|
30
|
-
return (h(RowRenderer, Object.assign({}, props,
|
|
25
|
+
return (h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), h("div", { onClick: e => expandEvent(e, model, itemIndex) }, groupingCustomRenderer(h, Object.assign(Object.assign({}, props), { colType: props.providers.colType, name,
|
|
31
26
|
expanded,
|
|
32
27
|
depth })))));
|
|
33
28
|
}
|
|
34
|
-
return (h(RowRenderer, Object.assign({}, props,
|
|
29
|
+
return (h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), hasExpand && [
|
|
35
30
|
h("button", { class: { [GROUP_EXPAND_BTN]: true }, onClick: e => expandEvent(e, model, itemIndex) }, expandSvgIconVNode(expanded)),
|
|
36
31
|
name,
|
|
37
32
|
]));
|
|
@@ -22,17 +22,8 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
22
22
|
constructor(revogrid, providers) {
|
|
23
23
|
super(revogrid, providers);
|
|
24
24
|
this.moveFunc = debounce((e) => this.doMove(e), 5);
|
|
25
|
-
this.preventHeaderClickAfterDrag = (event) => {
|
|
26
|
-
if (!this.preventNextHeaderClick) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
this.preventNextHeaderClick = false;
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
};
|
|
32
25
|
this.staticDragData = null;
|
|
33
26
|
this.dragData = null;
|
|
34
|
-
this.columnDragMoved = false;
|
|
35
|
-
this.preventNextHeaderClick = false;
|
|
36
27
|
this.localSubscriptions = {};
|
|
37
28
|
this.orderUi = new ColumnOrderHandler();
|
|
38
29
|
revogrid.appendChild(this.orderUi.render());
|
|
@@ -51,13 +42,11 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
51
42
|
callback: (e) => this.move(e),
|
|
52
43
|
};
|
|
53
44
|
this.addEventListener(COLUMN_CLICK, ({ detail }) => this.dragStart(detail));
|
|
54
|
-
this.revogrid.addEventListener('beforeheaderclick', this.preventHeaderClickAfterDrag, { capture: true });
|
|
55
45
|
}
|
|
56
46
|
dragStart({ event, data }) {
|
|
57
47
|
if (event.defaultPrevented) {
|
|
58
48
|
return;
|
|
59
49
|
}
|
|
60
|
-
this.preventNextHeaderClick = false;
|
|
61
50
|
const { defaultPrevented } = dispatch(this.revogrid, COLUMN_DRAG_START_EVENT, data);
|
|
62
51
|
// check if allowed to drag particulat column
|
|
63
52
|
if (defaultPrevented) {
|
|
@@ -79,8 +68,7 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
79
68
|
const cols = this.getDimension(data.pin || 'rgCol');
|
|
80
69
|
const gridRect = this.revogrid.getBoundingClientRect();
|
|
81
70
|
const elRect = dataEl.getBoundingClientRect();
|
|
82
|
-
const startItem = getItemByPosition(cols, getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left) +
|
|
83
|
-
(cols.renderOffset || 0));
|
|
71
|
+
const startItem = getItemByPosition(cols, getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left) + (cols.renderOffset || 0));
|
|
84
72
|
this.staticDragData = {
|
|
85
73
|
startPos: event.x,
|
|
86
74
|
startItem,
|
|
@@ -111,14 +99,10 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
111
99
|
if (rgCol.itemIndex >= this.staticDragData.cols.count) {
|
|
112
100
|
return;
|
|
113
101
|
}
|
|
114
|
-
this.orderUi.showHandler(
|
|
102
|
+
this.orderUi.showHandler(rgCol.end - (this.staticDragData.cols.renderOffset || 0) + dragData.scrollOffset, dragData.gridRect.width);
|
|
115
103
|
}
|
|
116
104
|
}
|
|
117
105
|
move(e) {
|
|
118
|
-
if (this.staticDragData &&
|
|
119
|
-
Math.abs(this.staticDragData.startPos - e.x) > 10) {
|
|
120
|
-
this.columnDragMoved = true;
|
|
121
|
-
}
|
|
122
106
|
dispatch(this.revogrid, COLUMN_DRAG_MOVE_EVENT, e);
|
|
123
107
|
// then do move
|
|
124
108
|
this.moveFunc(e);
|
|
@@ -127,7 +111,6 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
127
111
|
this.clearOrder();
|
|
128
112
|
}
|
|
129
113
|
onMouseUp(e) {
|
|
130
|
-
const suppressClick = this.columnDragMoved;
|
|
131
114
|
// apply new positions
|
|
132
115
|
if (this.dragData && this.staticDragData) {
|
|
133
116
|
let relativePos = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);
|
|
@@ -150,9 +133,6 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
150
133
|
}
|
|
151
134
|
dispatch(this.revogrid, COLUMN_DRAG_END_EVENT, this.getData(this.staticDragData, newItems, source));
|
|
152
135
|
}
|
|
153
|
-
if (suppressClick) {
|
|
154
|
-
this.preventNextHeaderClick = !!e.target.closest('revogr-header');
|
|
155
|
-
}
|
|
156
136
|
this.clearOrder();
|
|
157
137
|
}
|
|
158
138
|
clearLocalSubscriptions() {
|
|
@@ -161,7 +141,6 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
161
141
|
clearOrder() {
|
|
162
142
|
this.staticDragData = null;
|
|
163
143
|
this.dragData = null;
|
|
164
|
-
this.columnDragMoved = false;
|
|
165
144
|
this.clearLocalSubscriptions();
|
|
166
145
|
this.orderUi.stop(this.revogrid);
|
|
167
146
|
}
|
|
@@ -171,7 +150,6 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
171
150
|
clearSubscriptions() {
|
|
172
151
|
super.clearSubscriptions();
|
|
173
152
|
this.clearLocalSubscriptions();
|
|
174
|
-
this.revogrid.removeEventListener('beforeheaderclick', this.preventHeaderClickAfterDrag, { capture: true });
|
|
175
153
|
}
|
|
176
154
|
getData({ gridEl, dataEl, pin }, order, source = []) {
|
|
177
155
|
const gridRect = gridEl.getBoundingClientRect();
|
|
@@ -193,9 +171,3 @@ export class ColumnMovePlugin extends BasePlugin {
|
|
|
193
171
|
export function getLeftRelative(absoluteX, gridPos, offset) {
|
|
194
172
|
return absoluteX - gridPos - offset;
|
|
195
173
|
}
|
|
196
|
-
export function getColumnDragPosition(targetItem, startItem, renderOffset, scrollOffset) {
|
|
197
|
-
const insertionEdge = startItem.itemIndex > targetItem.itemIndex
|
|
198
|
-
? targetItem.start
|
|
199
|
-
: targetItem.end;
|
|
200
|
-
return insertionEdge - renderOffset + scrollOffset;
|
|
201
|
-
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h, f as Build } from './index-Chp_81rd.js';
|
|
5
5
|
import { n as DATA_ROW, w as DRAG_ICON_CLASS, x as DRAGGABLE_CLASS } from './dimension.helpers-CGKwSvw6.js';
|
|
6
|
-
import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-
|
|
6
|
+
import { l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, h as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, O as isRowDragService, B as getCellDataParsed } from './column.service-CC_SD8W3.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Renders sorting direction and optional additive sorting rank.
|
|
@@ -16,22 +16,9 @@ const SortingSign = ({ column }) => {
|
|
|
16
16
|
return (h("span", Object.assign({}, indicatorAttrs), h("i", Object.assign({}, iconAttrs)), (column === null || column === void 0 ? void 0 : column.sortIndex) ? (h("sup", Object.assign({}, orderIndexAttrs), column.sortIndex)) : null));
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
20
|
-
var t = {};
|
|
21
|
-
for (var p in s)
|
|
22
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
23
|
-
t[p] = s[p];
|
|
24
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
25
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
26
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
27
|
-
t[p[i]] = s[p[i]];
|
|
28
|
-
}
|
|
29
|
-
return t;
|
|
30
|
-
};
|
|
31
19
|
const PADDING_DEPTH = 10;
|
|
32
|
-
const RowRenderer = (
|
|
33
|
-
|
|
34
|
-
const props = Object.assign(Object.assign(Object.assign({}, attrs), { [DATA_ROW]: index }), (typeof groupingLevel === 'number'
|
|
20
|
+
const RowRenderer = ({ rowClass, index, size, start, depth, groupingLevel }, cells) => {
|
|
21
|
+
const props = Object.assign({ [DATA_ROW]: index }, (typeof groupingLevel === 'number'
|
|
35
22
|
? { 'data-level': groupingLevel }
|
|
36
23
|
: {}));
|
|
37
24
|
return (h("div", Object.assign({}, props, { class: `rgRow ${rowClass || ''}`, style: {
|
|
@@ -58,17 +45,12 @@ const GroupingRowRenderer = (props) => {
|
|
|
58
45
|
const name = model[PSEUDO_GROUP_ITEM];
|
|
59
46
|
const expanded = model[GROUP_EXPANDED];
|
|
60
47
|
const depth = parseInt(model[GROUP_DEPTH], 10) || 0;
|
|
61
|
-
const groupRowAttrs = {
|
|
62
|
-
rowClass: 'groupingRow',
|
|
63
|
-
depth,
|
|
64
|
-
expanded,
|
|
65
|
-
};
|
|
66
48
|
if (groupingCustomRenderer) {
|
|
67
|
-
return (h(RowRenderer, Object.assign({}, props,
|
|
49
|
+
return (h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), h("div", { onClick: e => expandEvent(e, model, itemIndex) }, groupingCustomRenderer(h, Object.assign(Object.assign({}, props), { colType: props.providers.colType, name,
|
|
68
50
|
expanded,
|
|
69
51
|
depth })))));
|
|
70
52
|
}
|
|
71
|
-
return (h(RowRenderer, Object.assign({}, props,
|
|
53
|
+
return (h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), hasExpand && [
|
|
72
54
|
h("button", { class: { [GROUP_EXPAND_BTN]: true }, onClick: e => expandEvent(e, model, itemIndex) }, expandSvgIconVNode(expanded)),
|
|
73
55
|
name,
|
|
74
56
|
]));
|