@revolist/revogrid 4.23.13 → 4.23.15
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/{column.drag.plugin-D_Dfhp4f.js → column.drag.plugin-ByDJ7Rk3.js} +5 -5
- package/dist/cjs/{filter.button-B9EzJrr1.js → filter.button-C4xpvyyE.js} +10 -16
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/revo-grid.cjs.entry.js +2 -2
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +119 -41
- package/dist/collection/components/clipboard/revogr-clipboard.js +1 -1
- package/dist/collection/plugins/filter/filter.button.js +10 -16
- package/dist/collection/plugins/filter/filter.panel.js +117 -39
- package/dist/collection/plugins/filter/filter.plugin.js +4 -4
- package/dist/collection/plugins/filter/filter.style.css +65 -13
- package/dist/{revo-grid/column.drag.plugin-UNSHSmgo.js → esm/column.drag.plugin-BZacA8n_.js} +5 -5
- package/dist/{revo-grid/filter.button-BFwo1uvz.js → esm/filter.button-B-RBiF67.js} +10 -16
- package/dist/esm/index.js +3 -3
- package/dist/esm/revo-grid.entry.js +2 -2
- package/dist/esm/revogr-clipboard_3.entry.js +1 -1
- package/dist/esm/revogr-data_4.entry.js +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +119 -41
- package/dist/{esm/column.drag.plugin-UNSHSmgo.js → revo-grid/column.drag.plugin-BZacA8n_.js} +5 -5
- package/dist/{esm/filter.button-BFwo1uvz.js → revo-grid/filter.button-B-RBiF67.js} +10 -16
- package/dist/revo-grid/index.esm.js +3 -3
- package/dist/revo-grid/revo-grid.entry.js +2 -2
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js +119 -41
- package/dist/types/plugins/filter/filter.button.d.ts +13 -3
- package/dist/types/plugins/filter/filter.panel.d.ts +4 -0
- package/dist/types/plugins/filter/filter.types.d.ts +7 -0
- package/hydrate/index.js +133 -61
- package/hydrate/index.mjs +133 -61
- package/package.json +1 -1
- package/standalone/filter.button.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-clipboard2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
package/hydrate/index.mjs
CHANGED
|
@@ -6856,7 +6856,7 @@ class Clipboard {
|
|
|
6856
6856
|
}
|
|
6857
6857
|
getData(e) {
|
|
6858
6858
|
return (e.clipboardData ||
|
|
6859
|
-
(
|
|
6859
|
+
(globalThis === null || globalThis === void 0 ? void 0 : globalThis.clipboardData));
|
|
6860
6860
|
}
|
|
6861
6861
|
static get cmpMeta() { return {
|
|
6862
6862
|
"$flags$": 0,
|
|
@@ -7364,24 +7364,18 @@ const FilterButton = ({ column }) => {
|
|
|
7364
7364
|
[FILTER_BUTTON_ACTIVE]: column && !!column[FILTER_PROP],
|
|
7365
7365
|
} }, hAsync("svg", { class: "filter-img", viewBox: "0 0 64 64" }, hAsync("g", { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, hAsync("path", { d: "M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z", fill: "currentColor" }))))));
|
|
7366
7366
|
};
|
|
7367
|
-
const TrashButton = () => {
|
|
7368
|
-
return (hAsync("
|
|
7367
|
+
const TrashButton = ({ ariaLabel, onClick }) => {
|
|
7368
|
+
return (hAsync("button", { type: "button", class: { [TRASH_BUTTON]: true }, "aria-label": ariaLabel, onClick: onClick }, hAsync("svg", { class: "trash-img", viewBox: "0 0 24 24" }, hAsync("path", { fill: "currentColor", d: "M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" }))));
|
|
7369
7369
|
};
|
|
7370
|
-
const AndOrButton = ({ text }) => {
|
|
7371
|
-
return hAsync("button", { class: { [AND_OR_BUTTON]: true, 'light revo-button': true } }, text);
|
|
7370
|
+
const AndOrButton = ({ text, onClick }) => {
|
|
7371
|
+
return hAsync("button", { type: "button", class: { [AND_OR_BUTTON]: true, 'light revo-button': true }, onClick: onClick }, text);
|
|
7372
7372
|
};
|
|
7373
|
-
const ReorderButton = ({ dragging, dragOver, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, }) => {
|
|
7374
|
-
|
|
7375
|
-
|
|
7376
|
-
|
|
7377
|
-
|
|
7378
|
-
|
|
7379
|
-
REORDER_BUTTON,
|
|
7380
|
-
dragging ? 'filter-row-dragging' : '',
|
|
7381
|
-
dragOver ? 'filter-row-drag-over' : '',
|
|
7382
|
-
].filter(Boolean).join(' ');
|
|
7383
|
-
};
|
|
7384
|
-
return (hAsync("button", { type: "button", ref: applyClass, draggable: true, title: "Reorder filter", "aria-label": "reorder filter", onDragStart: onDragStart, onDragEnd: onDragEnd, onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop }, "::"));
|
|
7373
|
+
const ReorderButton = ({ ariaLabel, dragging, dragOver, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, onKeyDown, }) => {
|
|
7374
|
+
return (hAsync("button", { type: "button", class: {
|
|
7375
|
+
[REORDER_BUTTON]: true,
|
|
7376
|
+
'filter-row-dragging': !!dragging,
|
|
7377
|
+
'filter-row-drag-over': !!dragOver,
|
|
7378
|
+
}, draggable: true, title: ariaLabel, "aria-label": ariaLabel, onDragStart: onDragStart, onDragEnd: onDragEnd, onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop, onKeyDown: onKeyDown }, "::"));
|
|
7385
7379
|
};
|
|
7386
7380
|
function isFilterBtn(e) {
|
|
7387
7381
|
if (e.classList.contains(FILTER_BUTTON_CLASS)) {
|
|
@@ -7451,12 +7445,13 @@ function moveFilterItem(items, sourceId, targetId) {
|
|
|
7451
7445
|
return true;
|
|
7452
7446
|
}
|
|
7453
7447
|
|
|
7454
|
-
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{
|
|
7448
|
+
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{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);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));box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog 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-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--revo-grid-filter-panel-bg, #fff);border-top:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9)}revogr-filter-panel .filter-panel-dialog .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 .filter-panel-dialog{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-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--revo-grid-filter-panel-reorder-accent, #007cb2);border-radius:999px;box-shadow:0 0 0 2px var(--revo-grid-filter-panel-bg, #fff)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;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;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--revo-grid-filter-panel-reorder-color, #6b7280);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--revo-grid-filter-panel-reorder-accent, #007cb2)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.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;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}`;
|
|
7455
7449
|
|
|
7456
7450
|
const defaultType = 'none';
|
|
7457
7451
|
const FILTER_LIST_CLASS = 'multi-filter-list';
|
|
7458
7452
|
const FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';
|
|
7459
7453
|
const FILTER_ID = 'add-filter';
|
|
7454
|
+
const VIEWPORT_PADDING = 8;
|
|
7460
7455
|
/**
|
|
7461
7456
|
* Filter panel for editing filters
|
|
7462
7457
|
*/
|
|
@@ -7479,6 +7474,9 @@ class FilterPanel {
|
|
|
7479
7474
|
placeholder: 'Enter value...',
|
|
7480
7475
|
and: 'and',
|
|
7481
7476
|
or: 'or',
|
|
7477
|
+
filterCondition: 'Filter condition',
|
|
7478
|
+
removeFilter: 'Remove filter',
|
|
7479
|
+
reorderFilter: 'Reorder filter',
|
|
7482
7480
|
};
|
|
7483
7481
|
this.isFilterIdSet = false;
|
|
7484
7482
|
this.filterId = 0;
|
|
@@ -7553,36 +7551,75 @@ class FilterPanel {
|
|
|
7553
7551
|
return '';
|
|
7554
7552
|
const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : [];
|
|
7555
7553
|
const visibleFilterCount = propFilters.filter(filter => !filter.hidden).length;
|
|
7556
|
-
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
7557
|
-
return (hAsync("div", { key: this.filterId }, propFilters.map((filter, index) => {
|
|
7554
|
+
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7555
|
+
return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
|
|
7558
7556
|
let andOrButton;
|
|
7559
7557
|
if (filter.hidden) {
|
|
7560
7558
|
return;
|
|
7561
7559
|
}
|
|
7562
7560
|
// hide toggle button if there is only one filter and the last one
|
|
7563
7561
|
if (index !== this.filterItems[prop].length - 1) {
|
|
7564
|
-
andOrButton = (hAsync(
|
|
7562
|
+
andOrButton = (hAsync(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
|
|
7565
7563
|
}
|
|
7566
7564
|
const extra = this.renderExtra(prop, index);
|
|
7567
|
-
|
|
7568
|
-
|
|
7565
|
+
const isDragging = this.draggedFilterId === filter.id;
|
|
7566
|
+
const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
|
|
7567
|
+
const canReorder = visibleFilterCount > 1;
|
|
7568
|
+
return (hAsync("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, hAsync("div", { class: {
|
|
7569
|
+
'multi-filter-list-row': true,
|
|
7570
|
+
'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
|
|
7571
|
+
'filter-row-dragging': isDragging,
|
|
7572
|
+
'filter-row-drag-over': isDragOver,
|
|
7573
|
+
} }, 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) })))));
|
|
7574
|
+
})), propFilters.filter(f => !f.hidden).length > 0 ? hAsync("div", { class: "add-filter-divider" }) : ''));
|
|
7569
7575
|
}
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7576
|
+
componentDidRender() {
|
|
7577
|
+
this.syncDialog();
|
|
7578
|
+
}
|
|
7579
|
+
syncDialog() {
|
|
7580
|
+
if (!this.dialog) {
|
|
7573
7581
|
return;
|
|
7574
7582
|
}
|
|
7575
|
-
|
|
7576
|
-
|
|
7583
|
+
if (!this.changes) {
|
|
7584
|
+
if (this.dialog.open) {
|
|
7585
|
+
this.dialog.close();
|
|
7586
|
+
}
|
|
7577
7587
|
return;
|
|
7578
7588
|
}
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
if (
|
|
7583
|
-
|
|
7589
|
+
if (!this.dialog.open) {
|
|
7590
|
+
this.dialog.show();
|
|
7591
|
+
}
|
|
7592
|
+
if (this.changes.autoCorrect !== false) {
|
|
7593
|
+
this.autoCorrect(this.dialog);
|
|
7594
|
+
requestAnimationFrame(() => this.autoCorrect(this.dialog));
|
|
7584
7595
|
}
|
|
7585
7596
|
}
|
|
7597
|
+
autoCorrect(el) {
|
|
7598
|
+
var _a;
|
|
7599
|
+
if (!el || !this.changes) {
|
|
7600
|
+
return;
|
|
7601
|
+
}
|
|
7602
|
+
el.style.maxHeight = '';
|
|
7603
|
+
el.style.left = `${this.changes.x}px`;
|
|
7604
|
+
el.style.top = `${this.changes.y}px`;
|
|
7605
|
+
const pos = el.getBoundingClientRect();
|
|
7606
|
+
const anchorTop = (_a = this.changes.anchorY) !== null && _a !== void 0 ? _a : this.changes.y;
|
|
7607
|
+
const anchorBottom = this.changes.y;
|
|
7608
|
+
const spaceAbove = Math.max(0, anchorTop - VIEWPORT_PADDING);
|
|
7609
|
+
const spaceBelow = Math.max(0, window.innerHeight - anchorBottom - VIEWPORT_PADDING);
|
|
7610
|
+
const openAbove = pos.height > spaceBelow && spaceAbove > spaceBelow;
|
|
7611
|
+
const availableHeight = Math.max(VIEWPORT_PADDING, openAbove ? spaceAbove : spaceBelow);
|
|
7612
|
+
el.style.maxHeight = `${availableHeight}px`;
|
|
7613
|
+
const adjustedPos = el.getBoundingClientRect();
|
|
7614
|
+
const maxLeft = Math.max(VIEWPORT_PADDING, window.innerWidth - adjustedPos.width - VIEWPORT_PADDING);
|
|
7615
|
+
const maxTop = Math.max(VIEWPORT_PADDING, window.innerHeight - adjustedPos.height - VIEWPORT_PADDING);
|
|
7616
|
+
const left = Math.min(Math.max(VIEWPORT_PADDING, this.changes.x), maxLeft);
|
|
7617
|
+
const top = openAbove
|
|
7618
|
+
? Math.min(Math.max(VIEWPORT_PADDING, anchorTop - adjustedPos.height), maxTop)
|
|
7619
|
+
: Math.min(Math.max(VIEWPORT_PADDING, anchorBottom), maxTop);
|
|
7620
|
+
el.style.left = `${left}px`;
|
|
7621
|
+
el.style.top = `${top}px`;
|
|
7622
|
+
}
|
|
7586
7623
|
onFilterTypeChange(e, prop, index) {
|
|
7587
7624
|
if (!(e.target instanceof HTMLSelectElement)) {
|
|
7588
7625
|
return;
|
|
@@ -7716,6 +7753,37 @@ class FilterPanel {
|
|
|
7716
7753
|
this.draggedFilterId = undefined;
|
|
7717
7754
|
this.dragOverFilterId = undefined;
|
|
7718
7755
|
}
|
|
7756
|
+
onFilterReorderKeyDown(e, prop, sourceId) {
|
|
7757
|
+
let direction = 0;
|
|
7758
|
+
if (e.key === 'ArrowUp') {
|
|
7759
|
+
direction = -1;
|
|
7760
|
+
}
|
|
7761
|
+
else if (e.key === 'ArrowDown') {
|
|
7762
|
+
direction = 1;
|
|
7763
|
+
}
|
|
7764
|
+
else {
|
|
7765
|
+
return;
|
|
7766
|
+
}
|
|
7767
|
+
const items = this.filterItems[prop];
|
|
7768
|
+
if (!items) {
|
|
7769
|
+
return;
|
|
7770
|
+
}
|
|
7771
|
+
const visibleItems = items.filter(item => !item.hidden);
|
|
7772
|
+
const sourceIndex = visibleItems.findIndex(item => item.id === sourceId);
|
|
7773
|
+
if (sourceIndex === -1) {
|
|
7774
|
+
return;
|
|
7775
|
+
}
|
|
7776
|
+
e.preventDefault();
|
|
7777
|
+
e.stopPropagation();
|
|
7778
|
+
const target = visibleItems[sourceIndex + direction];
|
|
7779
|
+
if (!target || !moveFilterItem(items, sourceId, target.id)) {
|
|
7780
|
+
return;
|
|
7781
|
+
}
|
|
7782
|
+
this.filterId++;
|
|
7783
|
+
if (!this.disableDynamicFiltering) {
|
|
7784
|
+
this.debouncedApplyFilter();
|
|
7785
|
+
}
|
|
7786
|
+
}
|
|
7719
7787
|
toggleFilterAndOr(id) {
|
|
7720
7788
|
var _a;
|
|
7721
7789
|
this.assertChanges();
|
|
@@ -7754,7 +7822,7 @@ class FilterPanel {
|
|
|
7754
7822
|
});
|
|
7755
7823
|
});
|
|
7756
7824
|
if (!isDefaultTypeRemoved) {
|
|
7757
|
-
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
7825
|
+
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7758
7826
|
options.push(hAsync("option", { selected: this.currentFilterType === defaultType, value: defaultType }, prop && this.filterItems[prop] && this.filterItems[prop].length > 0
|
|
7759
7827
|
? capts.add
|
|
7760
7828
|
: this.filterNames[defaultType]));
|
|
@@ -7787,7 +7855,7 @@ class FilterPanel {
|
|
|
7787
7855
|
select.focus();
|
|
7788
7856
|
}
|
|
7789
7857
|
};
|
|
7790
|
-
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
7858
|
+
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7791
7859
|
const extra = this.filterEntities[currentFilter[index].type].extra;
|
|
7792
7860
|
if (typeof extra === 'function') {
|
|
7793
7861
|
return extra(hAsync, {
|
|
@@ -7824,30 +7892,34 @@ class FilterPanel {
|
|
|
7824
7892
|
} }));
|
|
7825
7893
|
}
|
|
7826
7894
|
render() {
|
|
7827
|
-
var _a, _b, _c, _d, _e;
|
|
7828
|
-
if (!this.changes) {
|
|
7829
|
-
return hAsync(Host, { style: { display: 'none' } });
|
|
7830
|
-
}
|
|
7895
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
7831
7896
|
const style = {
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
top: `${this.changes.y}px`,
|
|
7897
|
+
left: `${(_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0}px`,
|
|
7898
|
+
top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
|
|
7835
7899
|
};
|
|
7836
|
-
const capts = Object.assign(this.filterCaptionsInternal, this.filterCaptions);
|
|
7837
|
-
return (hAsync(Host, { style: style, ref: el => {
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
} },
|
|
7841
|
-
hAsync("
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
hAsync("
|
|
7849
|
-
|
|
7850
|
-
|
|
7900
|
+
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7901
|
+
return (hAsync(Host, { key: '4e969f8b7033363c885c94b1f7770917786669f2' }, hAsync("dialog", { key: '79b2713724684fa99f56621fe43645a0b0ad54bf', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
|
|
7902
|
+
e.preventDefault();
|
|
7903
|
+
this.onCancel();
|
|
7904
|
+
} }, this.changes && [
|
|
7905
|
+
hAsync("slot", { key: "header-slot", slot: "header" }),
|
|
7906
|
+
((_f = (_e = this.changes).extraContent) === null || _f === void 0 ? void 0 : _f.call(_e, this.changes)) || '',
|
|
7907
|
+
((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
|
|
7908
|
+
hAsync("label", { key: "filter-title" }, capts.title),
|
|
7909
|
+
hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
|
|
7910
|
+
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: 'fc894bdfae1ff35d5c49adc7646dd3182b7bd49e', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
|
|
7911
|
+
],
|
|
7912
|
+
hAsync("slot", { key: "default-slot" }),
|
|
7913
|
+
((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
|
|
7914
|
+
hAsync("div", { key: "filter-actions", class: "filter-actions" }, this.disableDynamicFiltering && [
|
|
7915
|
+
hAsync("button", { key: "save", id: "revo-button-save", "aria-label": "save", class: "revo-button green", onClick: () => this.onSave() }, capts.save),
|
|
7916
|
+
hAsync("button", { key: "cancel", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.cancel),
|
|
7917
|
+
], !this.disableDynamicFiltering && [
|
|
7918
|
+
hAsync("button", { key: "ok", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.ok),
|
|
7919
|
+
hAsync("button", { key: "reset", id: "revo-button-reset", "aria-label": "reset", class: "revo-button outline", onClick: () => this.onReset() }, capts.reset),
|
|
7920
|
+
]),
|
|
7921
|
+
hAsync("slot", { key: "footer-slot", slot: "footer" }),
|
|
7922
|
+
])));
|
|
7851
7923
|
}
|
|
7852
7924
|
get element() { return getElement(this); }
|
|
7853
7925
|
static get style() { return filterStyleCss(); }
|
|
@@ -15882,7 +15954,8 @@ class FilterPlugin extends BasePlugin {
|
|
|
15882
15954
|
async headerclick(e) {
|
|
15883
15955
|
var _a, _b;
|
|
15884
15956
|
const el = (_a = e.detail.originalEvent) === null || _a === void 0 ? void 0 : _a.target;
|
|
15885
|
-
|
|
15957
|
+
const filterButton = isFilterBtn(el);
|
|
15958
|
+
if (!filterButton) {
|
|
15886
15959
|
return;
|
|
15887
15960
|
}
|
|
15888
15961
|
e.preventDefault();
|
|
@@ -15896,9 +15969,8 @@ class FilterPlugin extends BasePlugin {
|
|
|
15896
15969
|
return;
|
|
15897
15970
|
}
|
|
15898
15971
|
// filter button clicked, open filter dialog
|
|
15899
|
-
const
|
|
15900
|
-
const
|
|
15901
|
-
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 });
|
|
15972
|
+
const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
|
|
15973
|
+
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 });
|
|
15902
15974
|
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
15903
15975
|
this.pop.show(data);
|
|
15904
15976
|
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{h as
|
|
4
|
+
import{h as a}from"@stencil/core/internal/client";const t="rv-filter",o="active",r="hasFilter",n="and-or-button",e="trash-button",l="reorder-button",i=({column:n})=>a("span",null,a("button",{class:{[t]:!0,[o]:n&&!!n[r]}},a("svg",{class:"filter-img",viewBox:"0 0 64 64"},a("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},a("path",{d:"M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z",fill:"currentColor"}))))),s=({ariaLabel:t,onClick:o})=>a("button",{type:"button",class:{[e]:!0},"aria-label":t,onClick:o},a("svg",{class:"trash-img",viewBox:"0 0 24 24"},a("path",{fill:"currentColor",d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"}))),g=({text:t,onClick:o})=>a("button",{type:"button",class:{[n]:!0,"light revo-button":!0},onClick:o},t),c=({ariaLabel:t,dragging:o,dragOver:r,onDragStart:n,onDragEnd:e,onDragOver:i,onDragLeave:s,onDrop:g,onKeyDown:c})=>a("button",{type:"button",class:{[l]:!0,"filter-row-dragging":!!o,"filter-row-drag-over":!!r},draggable:!0,title:t,"aria-label":t,onDragStart:n,onDragEnd:e,onDragOver:i,onDragLeave:s,onDrop:g,onKeyDown:c},"::");function u(a){return!!a.classList.contains(t)||(null==a?void 0:a.closest(`.${t}`))}export{n as A,t as F,l as R,e as T,o as a,r as b,i as c,s as d,g as e,c as f,u as i}
|