@revolist/revogrid 4.27.0 → 4.27.2
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-C7rdgaov.js → cell-renderer-BDIx0xys.js} +1 -1
- package/dist/cjs/{column.service-Bbml5C2j.js → column.service-D-ENzqyb.js} +2 -0
- package/dist/cjs/{filter.button-F2Bw3UAd.js → filter.button-C6ixuMmr.js} +3 -2
- package/dist/cjs/{header-cell-renderer-BljFI6wj.js → header-cell-renderer-B5Y4fdZC.js} +1 -1
- package/dist/cjs/index.cjs.js +7 -5
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +63 -43
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +12 -11
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +139 -33
- package/dist/cjs/{row-resize.plugin-BRQy_qNn.js → row-resize.plugin-C4YOF1lN.js} +353 -185
- package/dist/collection/components/header/header-renderer.js +7 -6
- package/dist/collection/components/header/revogr-header-style.css +8 -3
- package/dist/collection/components/revoGrid/revo-grid-style.css +12 -2
- package/dist/collection/components/revoGrid/revo-grid.js +37 -21
- package/dist/collection/plugins/filter/filter.button.js +3 -2
- package/dist/collection/plugins/filter/filter.indexed.js +5 -0
- package/dist/collection/plugins/filter/filter.panel.js +138 -31
- package/dist/collection/plugins/filter/filter.plugin.js +48 -5
- package/dist/collection/plugins/filter/filter.style.css +25 -3
- package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +84 -54
- package/dist/collection/plugins/groupingRow/grouping.sorting.service.js +58 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +5 -3
- package/dist/collection/plugins/row-resize/row-resize.plugin.js +144 -113
- package/dist/collection/plugins/sorting/sorting.plugin.js +16 -13
- package/dist/collection/plugins/wcag/index.js +5 -4
- package/dist/collection/services/dimension.provider.js +17 -1
- package/dist/esm/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
- package/dist/esm/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
- package/dist/esm/{filter.button-DMhpuAiw.js → filter.button-CEPUxLUo.js} +3 -2
- package/dist/{revo-grid/header-cell-renderer-Bqh1PrgH.js → esm/header-cell-renderer-YCiVIQ2E.js} +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +63 -43
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +1 -1
- package/dist/esm/revogr-data_4.entry.js +12 -11
- package/dist/esm/revogr-filter-panel.entry.js +139 -33
- package/dist/esm/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-Beu0pMds.js} +354 -187
- package/dist/revo-grid/{cell-renderer-BFpmdV8H.js → cell-renderer-D9ze8OJw.js} +1 -1
- package/dist/revo-grid/{column.service-CM-wgGs8.js → column.service-pu_fdQ0S.js} +2 -1
- package/dist/revo-grid/{filter.button-DMhpuAiw.js → filter.button-CEPUxLUo.js} +3 -2
- package/dist/{esm/header-cell-renderer-Bqh1PrgH.js → revo-grid/header-cell-renderer-YCiVIQ2E.js} +1 -1
- package/dist/revo-grid/index.esm.js +6 -6
- package/dist/revo-grid/revo-grid.entry.js +63 -43
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +12 -11
- package/dist/revo-grid/revogr-filter-panel.entry.js +139 -33
- package/dist/revo-grid/{row-resize.plugin-BRiaHlHA.js → row-resize.plugin-Beu0pMds.js} +354 -187
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -0
- package/dist/types/plugins/filter/filter.indexed.d.ts +2 -0
- package/dist/types/plugins/filter/filter.panel.d.ts +9 -2
- package/dist/types/plugins/filter/filter.plugin.d.ts +8 -1
- package/dist/types/plugins/filter/filter.types.d.ts +8 -0
- package/dist/types/plugins/groupingRow/grouping.const.d.ts +1 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +5 -7
- package/dist/types/plugins/groupingRow/grouping.sorting.service.d.ts +7 -0
- package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +9 -0
- package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +14 -12
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +5 -0
- package/dist/types/services/dimension.provider.d.ts +7 -1
- package/dist/types/types/interfaces.d.ts +13 -1
- package/hydrate/index.js +561 -264
- package/hydrate/index.mjs +561 -264
- package/package.json +1 -1
- 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-header2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
package/hydrate/index.js
CHANGED
|
@@ -7522,9 +7522,10 @@ const AND_OR_BUTTON = 'and-or-button';
|
|
|
7522
7522
|
const TRASH_BUTTON = 'trash-button';
|
|
7523
7523
|
const REORDER_BUTTON = 'reorder-button';
|
|
7524
7524
|
const FilterButton = ({ column }) => {
|
|
7525
|
-
|
|
7525
|
+
const active = !!(column === null || column === void 0 ? void 0 : column[FILTER_PROP]);
|
|
7526
|
+
return (hAsync("span", { class: "filter-button-wrapper" }, hAsync("button", { class: {
|
|
7526
7527
|
[FILTER_BUTTON_CLASS]: true,
|
|
7527
|
-
[FILTER_BUTTON_ACTIVE]:
|
|
7528
|
+
[FILTER_BUTTON_ACTIVE]: active,
|
|
7528
7529
|
} }, 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" }))))));
|
|
7529
7530
|
};
|
|
7530
7531
|
const TrashButton = ({ ariaLabel, onClick }) => {
|
|
@@ -7608,7 +7609,7 @@ function moveFilterItem(items, sourceId, targetId) {
|
|
|
7608
7609
|
return true;
|
|
7609
7610
|
}
|
|
7610
7611
|
|
|
7611
|
-
const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);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:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}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;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);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;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);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(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}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{
|
|
7612
|
+
const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);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:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}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;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);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;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);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(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}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, width 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover:has(.rv-filter) .header-content,.rgHeaderCell:focus-within:has(.rv-filter) .header-content,.rgHeaderCell:has(.rv-filter.active) .header-content{margin-right:24px}.rgHeaderCell:hover:has(.rv-filter):has(.desc) .header-content,.rgHeaderCell:hover:has(.rv-filter):has(.asc) .header-content,.rgHeaderCell:focus-within:has(.rv-filter):has(.desc) .header-content,.rgHeaderCell:focus-within:has(.rv-filter):has(.asc) .header-content,.rgHeaderCell:has(.rv-filter.active):has(.desc) .header-content,.rgHeaderCell:has(.rv-filter.active):has(.asc) .header-content{margin-right:8px;padding-right:24px}.rgHeaderCell:hover .rv-filter,.rgHeaderCell:focus-within .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1;width:24px}@media (hover: none), (pointer: coarse){.rgHeaderCell:has(.rv-filter) .header-content{margin-right:24px}.rgHeaderCell:has(.rv-filter):has(.desc) .header-content,.rgHeaderCell:has(.rv-filter):has(.asc) .header-content{margin-right:8px;padding-right:24px}.rgHeaderCell .rv-filter{opacity:1;width:24px}}.rgHeaderCell .rv-filter{height:24px;width:0;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px;position:relative;z-index:1;padding:0}.rgHeaderCell .rv-filter.active{color:var(--rg-theme-filter-panel-icon-active)}.rgHeaderCell .rv-filter .filter-img{color:var(--rg-theme-filter-panel-icon);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;color:var(--rg-theme-filter-panel-text);border:1px solid var(--rg-theme-filter-panel-select-border);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--rg-theme-filter-panel-input-bg);background-image:var(--revo-grid-filter-panel-select-arrow, 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{}.select-css:hover{border-color:var(--rg-theme-filter-panel-select-border)}.select-css{}.select-css:focus{border-color:var(--rg-theme-filter-panel-select-border-hover);box-shadow:var(--rg-theme-filter-panel-focus-ring);outline:none}.select-css{}.select-css option{font-weight:normal}.select-css{}.select-css:disabled,.select-css[aria-disabled=true]{color:var(--rg-theme-filter-panel-muted-text);background-image:var(--revo-grid-filter-panel-select-arrow-disabled, 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"))}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--rg-theme-filter-panel-select-border)}.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(--rg-theme-filter-panel-reorder-accent);border-radius:999px;box-shadow:0 0 0 2px var(--rg-theme-filter-panel-bg)}.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(--rg-theme-filter-panel-reorder-color);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(--rg-theme-filter-panel-reorder-accent)}.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(--rg-theme-filter-panel-divider);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}`;
|
|
7612
7613
|
|
|
7613
7614
|
const defaultType = 'none';
|
|
7614
7615
|
const FILTER_LIST_CLASS = 'multi-filter-list';
|
|
@@ -7626,6 +7627,7 @@ class FilterPanel {
|
|
|
7626
7627
|
registerInstance(this, hostRef);
|
|
7627
7628
|
this.filterChange = createEvent(this, "filterChange", 7);
|
|
7628
7629
|
this.resetChange = createEvent(this, "resetChange", 7);
|
|
7630
|
+
this.hasChanges = false;
|
|
7629
7631
|
this.filterCaptionsInternal = {
|
|
7630
7632
|
title: 'Filter by',
|
|
7631
7633
|
ok: 'Close',
|
|
@@ -7661,7 +7663,7 @@ class FilterPanel {
|
|
|
7661
7663
|
*/
|
|
7662
7664
|
this.allowDuplicateOperators = true;
|
|
7663
7665
|
this.debouncedApplyFilter = debounce$1(() => {
|
|
7664
|
-
this.
|
|
7666
|
+
this.emitFilterChange();
|
|
7665
7667
|
}, 400);
|
|
7666
7668
|
}
|
|
7667
7669
|
onMouseDown(e) {
|
|
@@ -7691,10 +7693,25 @@ class FilterPanel {
|
|
|
7691
7693
|
}
|
|
7692
7694
|
}
|
|
7693
7695
|
async show(newEntity) {
|
|
7696
|
+
this.hasChanges = false;
|
|
7694
7697
|
this.changes = newEntity;
|
|
7695
|
-
this.filterItems = (newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {};
|
|
7698
|
+
this.filterItems = this.cloneFilterItems((newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {});
|
|
7699
|
+
this.draftFilter = undefined;
|
|
7696
7700
|
if (this.changes) {
|
|
7697
7701
|
this.changes.type = this.changes.type || defaultType;
|
|
7702
|
+
const prop = this.changes.prop;
|
|
7703
|
+
const propFilters = prop === undefined ? undefined : this.filterItems[prop];
|
|
7704
|
+
if (!(propFilters === null || propFilters === void 0 ? void 0 : propFilters.length) && this.changes.showDefaultFilter !== false) {
|
|
7705
|
+
const type = this.resolveDraftFilterType(this.changes.defaultFilterType);
|
|
7706
|
+
if (type) {
|
|
7707
|
+
this.draftFilter = {
|
|
7708
|
+
id: ++this.filterId,
|
|
7709
|
+
type,
|
|
7710
|
+
value: '',
|
|
7711
|
+
relation: 'and',
|
|
7712
|
+
};
|
|
7713
|
+
}
|
|
7714
|
+
}
|
|
7698
7715
|
}
|
|
7699
7716
|
}
|
|
7700
7717
|
async getChanges() {
|
|
@@ -7715,29 +7732,42 @@ class FilterPanel {
|
|
|
7715
7732
|
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7716
7733
|
if (prop === undefined)
|
|
7717
7734
|
return '';
|
|
7718
|
-
const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []
|
|
7719
|
-
|
|
7735
|
+
const propFilters = ((_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []).map((filter, index) => ({
|
|
7736
|
+
filter,
|
|
7737
|
+
index,
|
|
7738
|
+
isDraft: false,
|
|
7739
|
+
}));
|
|
7740
|
+
if (this.draftFilter) {
|
|
7741
|
+
propFilters.push({
|
|
7742
|
+
filter: this.draftFilter,
|
|
7743
|
+
index: propFilters.length,
|
|
7744
|
+
isDraft: true,
|
|
7745
|
+
});
|
|
7746
|
+
}
|
|
7747
|
+
const visibleFilters = propFilters.filter(({ filter }) => !filter.hidden);
|
|
7748
|
+
const visibleFilterCount = visibleFilters.length;
|
|
7720
7749
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7721
|
-
return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
|
|
7750
|
+
return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map(({ filter, index, isDraft }) => {
|
|
7751
|
+
var _a;
|
|
7722
7752
|
let andOrButton;
|
|
7723
7753
|
if (filter.hidden) {
|
|
7724
7754
|
return;
|
|
7725
7755
|
}
|
|
7726
7756
|
// hide toggle button if there is only one filter and the last one
|
|
7727
|
-
if (
|
|
7757
|
+
if (((_a = visibleFilters[visibleFilterCount - 1]) === null || _a === void 0 ? void 0 : _a.filter.id) !== filter.id) {
|
|
7728
7758
|
andOrButton = (hAsync(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
|
|
7729
7759
|
}
|
|
7730
|
-
const extra = this.renderExtra(prop, index);
|
|
7760
|
+
const extra = this.renderExtra(prop, index, isDraft);
|
|
7731
7761
|
const isDragging = this.draggedFilterId === filter.id;
|
|
7732
7762
|
const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
|
|
7733
|
-
const canReorder = visibleFilterCount > 1;
|
|
7763
|
+
const canReorder = visibleFilterCount > 1 && !isDraft;
|
|
7734
7764
|
return (hAsync("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, hAsync("div", { class: {
|
|
7735
7765
|
'multi-filter-list-row': true,
|
|
7736
7766
|
'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
|
|
7737
7767
|
'filter-row-dragging': isDragging,
|
|
7738
7768
|
'filter-row-drag-over': isDragOver,
|
|
7739
|
-
} }, 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(
|
|
7740
|
-
})),
|
|
7769
|
+
} }, canReorder ? (hAsync("button", { type: "button", class: "filter-row-drop-target", tabIndex: -1, "aria-label": `${capts.filterCondition} ${index + 1}`, onDragOver: e => this.onFilterDragOver(e, filter.id), onDragLeave: () => this.onFilterDragLeave(filter.id), onDrop: e => this.onFilterDrop(e, prop, filter.id) })) : '', canReorder ? (hAsync(ReorderButton, { ariaLabel: capts.reorderFilter, dragging: isDragging, dragOver: isDragOver, onDragStart: e => this.onFilterDragStart(e, filter.id), onDragEnd: () => this.onFilterDragEnd(), onKeyDown: e => this.onFilterReorderKeyDown(e, prop, filter.id) })) : '', hAsync("div", { class: { 'select-input': true } }, hAsync("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index, isDraft) }, this.renderSelectOptions(filter.type, true)), extra ? hAsync("div", { class: "filter-extra" }, extra) : ''), hAsync("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, hAsync(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
|
|
7770
|
+
})), visibleFilterCount ? hAsync("div", { class: "add-filter-divider" }) : ''));
|
|
7741
7771
|
}
|
|
7742
7772
|
componentDidRender() {
|
|
7743
7773
|
this.syncDialog();
|
|
@@ -7786,16 +7816,24 @@ class FilterPanel {
|
|
|
7786
7816
|
el.style.left = `${left}px`;
|
|
7787
7817
|
el.style.top = `${top}px`;
|
|
7788
7818
|
}
|
|
7789
|
-
onFilterTypeChange(e, prop, index) {
|
|
7819
|
+
onFilterTypeChange(e, prop, index, isDraft = false) {
|
|
7790
7820
|
if (!(e.target instanceof HTMLSelectElement)) {
|
|
7791
7821
|
return;
|
|
7792
7822
|
}
|
|
7793
|
-
|
|
7823
|
+
const type = e.target.value;
|
|
7824
|
+
const filter = isDraft
|
|
7825
|
+
? this.promoteDraft(prop, type)
|
|
7826
|
+
: this.filterItems[prop][index];
|
|
7827
|
+
if (!filter) {
|
|
7828
|
+
return;
|
|
7829
|
+
}
|
|
7830
|
+
filter.type = type;
|
|
7831
|
+
this.hasChanges = true;
|
|
7794
7832
|
// this re-renders the input to know if we need extra input
|
|
7795
7833
|
this.filterId++;
|
|
7796
7834
|
// adding setTimeout will wait for the next tick DOM update then focus on input
|
|
7797
7835
|
setTimeout(() => {
|
|
7798
|
-
const input = document.getElementById('filter-input-' +
|
|
7836
|
+
const input = document.getElementById('filter-input-' + filter.id);
|
|
7799
7837
|
if (input instanceof HTMLInputElement) {
|
|
7800
7838
|
input.focus();
|
|
7801
7839
|
}
|
|
@@ -7830,12 +7868,20 @@ class FilterPanel {
|
|
|
7830
7868
|
return;
|
|
7831
7869
|
this.filterId++;
|
|
7832
7870
|
this.currentFilterId = this.filterId;
|
|
7833
|
-
this.
|
|
7834
|
-
id
|
|
7835
|
-
type
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7871
|
+
if (this.draftFilter) {
|
|
7872
|
+
this.draftFilter.id = this.currentFilterId;
|
|
7873
|
+
this.draftFilter.type = this.currentFilterType;
|
|
7874
|
+
this.promoteDraft(prop);
|
|
7875
|
+
}
|
|
7876
|
+
else {
|
|
7877
|
+
this.filterItems[prop].push({
|
|
7878
|
+
id: this.currentFilterId,
|
|
7879
|
+
type: this.currentFilterType,
|
|
7880
|
+
value: '',
|
|
7881
|
+
relation: 'and',
|
|
7882
|
+
});
|
|
7883
|
+
this.hasChanges = true;
|
|
7884
|
+
}
|
|
7839
7885
|
// adding setTimeout will wait for the next tick DOM update then focus on input
|
|
7840
7886
|
setTimeout(() => {
|
|
7841
7887
|
const input = document.getElementById('filter-input-' + this.currentFilterId);
|
|
@@ -7844,7 +7890,9 @@ class FilterPanel {
|
|
|
7844
7890
|
}, 0);
|
|
7845
7891
|
}
|
|
7846
7892
|
onSave() {
|
|
7847
|
-
|
|
7893
|
+
if (this.hasChanges) {
|
|
7894
|
+
this.emitFilterChange();
|
|
7895
|
+
}
|
|
7848
7896
|
}
|
|
7849
7897
|
onCancel() {
|
|
7850
7898
|
this.changes = undefined;
|
|
@@ -7852,16 +7900,25 @@ class FilterPanel {
|
|
|
7852
7900
|
onReset() {
|
|
7853
7901
|
var _a;
|
|
7854
7902
|
this.assertChanges();
|
|
7855
|
-
this.
|
|
7903
|
+
this.draftFilter = undefined;
|
|
7904
|
+
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7905
|
+
if (prop !== undefined) {
|
|
7906
|
+
delete this.filterItems[prop];
|
|
7907
|
+
}
|
|
7908
|
+
this.resetChange.emit(prop);
|
|
7856
7909
|
// this updates the DOM which is used by getFilterItemsList() key
|
|
7857
7910
|
this.filterId++;
|
|
7858
7911
|
}
|
|
7859
7912
|
onRemoveFilter(id) {
|
|
7860
|
-
var _a;
|
|
7913
|
+
var _a, _b;
|
|
7861
7914
|
this.assertChanges();
|
|
7862
7915
|
// this is for reactivity issues for getFilterItemsList()
|
|
7863
7916
|
this.filterId++;
|
|
7864
7917
|
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7918
|
+
if (((_b = this.draftFilter) === null || _b === void 0 ? void 0 : _b.id) === id) {
|
|
7919
|
+
this.draftFilter = undefined;
|
|
7920
|
+
return;
|
|
7921
|
+
}
|
|
7865
7922
|
const items = this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
7866
7923
|
if (!items)
|
|
7867
7924
|
return;
|
|
@@ -7869,6 +7926,7 @@ class FilterPanel {
|
|
|
7869
7926
|
if (index === -1)
|
|
7870
7927
|
return;
|
|
7871
7928
|
items.splice(index, 1);
|
|
7929
|
+
this.hasChanges = true;
|
|
7872
7930
|
// let's remove the prop if no more filters so the filter icon will be removed
|
|
7873
7931
|
if (items.length === 0)
|
|
7874
7932
|
delete this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
@@ -7910,6 +7968,7 @@ class FilterPanel {
|
|
|
7910
7968
|
if (!moveFilterItem(items, sourceId, targetId)) {
|
|
7911
7969
|
return;
|
|
7912
7970
|
}
|
|
7971
|
+
this.hasChanges = true;
|
|
7913
7972
|
this.filterId++;
|
|
7914
7973
|
if (!this.disableDynamicFiltering) {
|
|
7915
7974
|
this.debouncedApplyFilter();
|
|
@@ -7945,6 +8004,7 @@ class FilterPanel {
|
|
|
7945
8004
|
if (!target || !moveFilterItem(items, sourceId, target.id)) {
|
|
7946
8005
|
return;
|
|
7947
8006
|
}
|
|
8007
|
+
this.hasChanges = true;
|
|
7948
8008
|
this.filterId++;
|
|
7949
8009
|
if (!this.disableDynamicFiltering) {
|
|
7950
8010
|
this.debouncedApplyFilter();
|
|
@@ -7963,6 +8023,7 @@ class FilterPanel {
|
|
|
7963
8023
|
if (index === -1)
|
|
7964
8024
|
return;
|
|
7965
8025
|
items[index].relation = items[index].relation === 'and' ? 'or' : 'and';
|
|
8026
|
+
this.hasChanges = true;
|
|
7966
8027
|
if (!this.disableDynamicFiltering) {
|
|
7967
8028
|
this.debouncedApplyFilter();
|
|
7968
8029
|
}
|
|
@@ -8011,12 +8072,22 @@ class FilterPanel {
|
|
|
8011
8072
|
}
|
|
8012
8073
|
return options;
|
|
8013
8074
|
}
|
|
8014
|
-
renderExtra(prop, index) {
|
|
8015
|
-
|
|
8075
|
+
renderExtra(prop, index, isDraft = false) {
|
|
8076
|
+
var _a, _b;
|
|
8077
|
+
const currentFilter = isDraft
|
|
8078
|
+
? this.draftFilter
|
|
8079
|
+
: (_a = this.filterItems[prop]) === null || _a === void 0 ? void 0 : _a[index];
|
|
8016
8080
|
if (!currentFilter)
|
|
8017
8081
|
return '';
|
|
8018
8082
|
const applyFilter = (value) => {
|
|
8019
|
-
|
|
8083
|
+
currentFilter.value = value;
|
|
8084
|
+
if (isDraft && !this.isMeaningfulDraftValue(value)) {
|
|
8085
|
+
return;
|
|
8086
|
+
}
|
|
8087
|
+
if (isDraft && !this.promoteDraft(prop)) {
|
|
8088
|
+
return;
|
|
8089
|
+
}
|
|
8090
|
+
this.hasChanges = true;
|
|
8020
8091
|
if (!this.disableDynamicFiltering) {
|
|
8021
8092
|
this.debouncedApplyFilter();
|
|
8022
8093
|
}
|
|
@@ -8031,11 +8102,11 @@ class FilterPanel {
|
|
|
8031
8102
|
}
|
|
8032
8103
|
};
|
|
8033
8104
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
8034
|
-
const extra = this.filterEntities[currentFilter
|
|
8105
|
+
const extra = (_b = this.filterEntities[currentFilter.type]) === null || _b === void 0 ? void 0 : _b.extra;
|
|
8035
8106
|
if (typeof extra === 'function') {
|
|
8036
8107
|
return extra(hAsync, {
|
|
8037
|
-
value: currentFilter
|
|
8038
|
-
filter: currentFilter
|
|
8108
|
+
value: currentFilter.value,
|
|
8109
|
+
filter: currentFilter,
|
|
8039
8110
|
prop,
|
|
8040
8111
|
index,
|
|
8041
8112
|
placeholder: capts.placeholder,
|
|
@@ -8050,7 +8121,7 @@ class FilterPanel {
|
|
|
8050
8121
|
if (extra !== 'input' && extra !== 'datepicker') {
|
|
8051
8122
|
return '';
|
|
8052
8123
|
}
|
|
8053
|
-
return (hAsync("input", { id: `filter-input-${currentFilter
|
|
8124
|
+
return (hAsync("input", { id: `filter-input-${currentFilter.id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter.value, onInput: (e) => {
|
|
8054
8125
|
if (e.target instanceof HTMLInputElement) {
|
|
8055
8126
|
applyFilter(e.target.value);
|
|
8056
8127
|
}
|
|
@@ -8066,6 +8137,42 @@ class FilterPanel {
|
|
|
8066
8137
|
e.stopPropagation();
|
|
8067
8138
|
} }));
|
|
8068
8139
|
}
|
|
8140
|
+
resolveDraftFilterType(preferred) {
|
|
8141
|
+
var _a, _b;
|
|
8142
|
+
const available = Object.values((_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.filterTypes) !== null && _b !== void 0 ? _b : {}).flat();
|
|
8143
|
+
const type = preferred && available.includes(preferred)
|
|
8144
|
+
? preferred
|
|
8145
|
+
: available[0];
|
|
8146
|
+
return type;
|
|
8147
|
+
}
|
|
8148
|
+
promoteDraft(prop, type) {
|
|
8149
|
+
if (!this.draftFilter) {
|
|
8150
|
+
return;
|
|
8151
|
+
}
|
|
8152
|
+
if (!this.filterItems[prop]) {
|
|
8153
|
+
this.filterItems[prop] = [];
|
|
8154
|
+
}
|
|
8155
|
+
if (type) {
|
|
8156
|
+
this.draftFilter.type = type;
|
|
8157
|
+
}
|
|
8158
|
+
const filter = this.draftFilter;
|
|
8159
|
+
this.filterItems[prop].push(filter);
|
|
8160
|
+
this.draftFilter = undefined;
|
|
8161
|
+
this.hasChanges = true;
|
|
8162
|
+
return filter;
|
|
8163
|
+
}
|
|
8164
|
+
isMeaningfulDraftValue(value) {
|
|
8165
|
+
return value !== '' && value !== undefined && value !== null;
|
|
8166
|
+
}
|
|
8167
|
+
emitFilterChange() {
|
|
8168
|
+
this.filterChange.emit(this.cloneFilterItems(this.filterItems));
|
|
8169
|
+
}
|
|
8170
|
+
cloneFilterItems(filterItems) {
|
|
8171
|
+
return Object.fromEntries(Object.entries(filterItems).map(([prop, filters]) => [
|
|
8172
|
+
prop,
|
|
8173
|
+
filters.map(filter => (Object.assign({}, filter))),
|
|
8174
|
+
]));
|
|
8175
|
+
}
|
|
8069
8176
|
getAddFilterSelect() {
|
|
8070
8177
|
return this.element.querySelector(`#${FILTER_ID}`);
|
|
8071
8178
|
}
|
|
@@ -8098,7 +8205,7 @@ class FilterPanel {
|
|
|
8098
8205
|
top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
|
|
8099
8206
|
};
|
|
8100
8207
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
8101
|
-
return (hAsync(Host, { key: '
|
|
8208
|
+
return (hAsync(Host, { key: '0bb6ac39407141e989b6a2f54063ee5ed789e40e' }, hAsync("dialog", { key: '28a919ca4184018e8f00bbd31d373e153306d163', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
|
|
8102
8209
|
e.preventDefault();
|
|
8103
8210
|
this.onCancel();
|
|
8104
8211
|
} }, this.changes && [
|
|
@@ -8107,7 +8214,7 @@ class FilterPanel {
|
|
|
8107
8214
|
((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
|
|
8108
8215
|
hAsync("label", { key: "filter-title" }, capts.title),
|
|
8109
8216
|
hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
|
|
8110
|
-
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '
|
|
8217
|
+
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: 'c5816b6699d8608bd8ec2621bbbd4c70daf52a1e', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
|
|
8111
8218
|
],
|
|
8112
8219
|
hAsync("slot", { key: "default-slot" }),
|
|
8113
8220
|
((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
|
|
@@ -8139,6 +8246,7 @@ class FilterPanel {
|
|
|
8139
8246
|
"currentFilterType": [32],
|
|
8140
8247
|
"changes": [32],
|
|
8141
8248
|
"filterItems": [32],
|
|
8249
|
+
"draftFilter": [32],
|
|
8142
8250
|
"draggedFilterId": [32],
|
|
8143
8251
|
"dragOverFilterId": [32],
|
|
8144
8252
|
"show": [64],
|
|
@@ -13079,6 +13187,7 @@ const GROUP_COLUMN_PROP = `${GRID_INTERNALS}-prop`;
|
|
|
13079
13187
|
const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;
|
|
13080
13188
|
const GROUP_EXPAND_BTN = `group-expand`;
|
|
13081
13189
|
const GROUP_EXPAND_EVENT = `groupexpandclick`;
|
|
13190
|
+
const BEFORE_GROUPING_APPLY_EVENT = `beforegroupingapply`;
|
|
13082
13191
|
const GROUPING_ROW_TYPE = 'rgRow';
|
|
13083
13192
|
|
|
13084
13193
|
function getGroupValueDefault(item, prop, emptyGroupValue) {
|
|
@@ -15375,7 +15484,9 @@ function isVirtualXDimension(type, disableVirtualX = false, virtualX = DEFAULT_V
|
|
|
15375
15484
|
class DimensionProvider {
|
|
15376
15485
|
constructor(viewports, config) {
|
|
15377
15486
|
this.viewports = viewports;
|
|
15378
|
-
|
|
15487
|
+
this.config = config;
|
|
15488
|
+
this.rowDefinitions = [];
|
|
15489
|
+
const sizeChanged = debounce$1((k) => this.config.realSizeChanged(k), RESIZE_INTERVAL);
|
|
15379
15490
|
this.stores = [...rowTypes, ...columnTypes].reduce((sources, t) => {
|
|
15380
15491
|
sources[t] = new DimensionStore(t);
|
|
15381
15492
|
sources[t].store.onChange('realSize', () => sizeChanged(t));
|
|
@@ -15393,6 +15504,20 @@ class DimensionProvider {
|
|
|
15393
15504
|
this.viewports.stores[t].setOriginalSizes(this.stores[t].store.get('originItemSize'));
|
|
15394
15505
|
this.setItemCount(count, t);
|
|
15395
15506
|
}
|
|
15507
|
+
getRowDefinitions() {
|
|
15508
|
+
return this.rowDefinitions;
|
|
15509
|
+
}
|
|
15510
|
+
syncRowDefinitions(definitions) {
|
|
15511
|
+
this.rowDefinitions = definitions;
|
|
15512
|
+
}
|
|
15513
|
+
setRowDefinitions(definitions) {
|
|
15514
|
+
var _a, _b;
|
|
15515
|
+
if (definitions === this.rowDefinitions) {
|
|
15516
|
+
return;
|
|
15517
|
+
}
|
|
15518
|
+
this.syncRowDefinitions(definitions);
|
|
15519
|
+
(_b = (_a = this.config).rowDefinitionsChanged) === null || _b === void 0 ? void 0 : _b.call(_a, definitions);
|
|
15520
|
+
}
|
|
15396
15521
|
/**
|
|
15397
15522
|
* Apply new custom sizes to dimension and view port
|
|
15398
15523
|
* @param type - dimension type
|
|
@@ -16377,6 +16502,11 @@ const filterTypes = {
|
|
|
16377
16502
|
boolean: ['notEmpty', 'empty'],
|
|
16378
16503
|
array: ['notEmpty', 'empty'],
|
|
16379
16504
|
};
|
|
16505
|
+
/** Preferred initial operator for built-in filter families. */
|
|
16506
|
+
const filterTypeDefaults = {
|
|
16507
|
+
string: 'contains',
|
|
16508
|
+
number: 'eqN',
|
|
16509
|
+
};
|
|
16380
16510
|
const filterNames = {
|
|
16381
16511
|
none: 'None',
|
|
16382
16512
|
empty: 'Is blank',
|
|
@@ -16419,6 +16549,8 @@ const FILTE_PANEL = 'revogr-filter-panel';
|
|
|
16419
16549
|
*
|
|
16420
16550
|
* @property {FilterLocalization|undefined} localization - translation for filter popup captions.
|
|
16421
16551
|
*
|
|
16552
|
+
* @property {boolean|undefined} defaultFilter - creates a draft condition when an empty filter panel opens. Defaults to true.
|
|
16553
|
+
*
|
|
16422
16554
|
* @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
|
|
16423
16555
|
*/
|
|
16424
16556
|
/**
|
|
@@ -16440,7 +16572,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
16440
16572
|
* number: ['eqN', 'neqN', 'gt']
|
|
16441
16573
|
* }
|
|
16442
16574
|
*/
|
|
16443
|
-
this.filterByType = Object.
|
|
16575
|
+
this.filterByType = Object.fromEntries(Object.entries(filterTypes).map(([type, filters]) => [type, [...filters]]));
|
|
16444
16576
|
this.filterNameIndexByType = Object.assign({}, filterNames);
|
|
16445
16577
|
this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
|
|
16446
16578
|
this.filterProp = FILTER_PROP;
|
|
@@ -16524,11 +16656,16 @@ class FilterPlugin extends BasePlugin {
|
|
|
16524
16656
|
return null;
|
|
16525
16657
|
}
|
|
16526
16658
|
initConfig(config) {
|
|
16527
|
-
var _a;
|
|
16659
|
+
var _a, _b, _c, _d;
|
|
16528
16660
|
this.config = config;
|
|
16529
16661
|
this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
|
|
16530
16662
|
if (this.pop) {
|
|
16531
16663
|
this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
|
|
16664
|
+
this.pop.disableDynamicFiltering =
|
|
16665
|
+
(_b = config.disableDynamicFiltering) !== null && _b !== void 0 ? _b : false;
|
|
16666
|
+
this.pop.closeOnOutsideClick =
|
|
16667
|
+
(_c = config.closeFilterPanelOnOutsideClick) !== null && _c !== void 0 ? _c : true;
|
|
16668
|
+
this.pop.filterCaptions = (_d = config.localization) === null || _d === void 0 ? void 0 : _d.captions;
|
|
16532
16669
|
}
|
|
16533
16670
|
if (config.multiFilterItems) {
|
|
16534
16671
|
this.multiFilterItems = Object.assign({}, config.multiFilterItems);
|
|
@@ -16617,11 +16754,12 @@ class FilterPlugin extends BasePlugin {
|
|
|
16617
16754
|
}
|
|
16618
16755
|
// filter button clicked, open filter dialog
|
|
16619
16756
|
const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
|
|
16620
|
-
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 });
|
|
16757
|
+
const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x, y: buttonPos.y + buttonPos.height, anchorY: buttonPos.y, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), defaultFilterType: this.getDefaultFilter(e.detail.filter), showDefaultFilter: this.shouldShowDefaultFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent, extraBottomContent: this.extraBottomHyperContent });
|
|
16621
16758
|
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
16622
16759
|
this.pop.show(data);
|
|
16623
16760
|
}
|
|
16624
|
-
getColumnFilter(
|
|
16761
|
+
getColumnFilter(config) {
|
|
16762
|
+
const type = this.isColumnFilterOption(config) ? config.type : config;
|
|
16625
16763
|
let filterType = 'string';
|
|
16626
16764
|
if (!type) {
|
|
16627
16765
|
return { [filterType]: this.filterByType[filterType] };
|
|
@@ -16641,6 +16779,41 @@ class FilterPlugin extends BasePlugin {
|
|
|
16641
16779
|
}
|
|
16642
16780
|
return { [filterType]: this.filterByType[filterType] };
|
|
16643
16781
|
}
|
|
16782
|
+
/** Resolve the preferred operator against the column's available filters. */
|
|
16783
|
+
getDefaultFilter(config) {
|
|
16784
|
+
var _a;
|
|
16785
|
+
const filters = this.getColumnFilter(config);
|
|
16786
|
+
const availableFilters = Object.values(filters).flat();
|
|
16787
|
+
const columnDefault = this.isColumnFilterOption(config)
|
|
16788
|
+
? config.default
|
|
16789
|
+
: undefined;
|
|
16790
|
+
if (typeof columnDefault === 'string' &&
|
|
16791
|
+
availableFilters.includes(columnDefault)) {
|
|
16792
|
+
return columnDefault;
|
|
16793
|
+
}
|
|
16794
|
+
const firstFamily = Object.keys(filters)[0];
|
|
16795
|
+
const familyDefault = filterTypeDefaults[firstFamily];
|
|
16796
|
+
if (familyDefault && ((_a = filters[firstFamily]) === null || _a === void 0 ? void 0 : _a.includes(familyDefault))) {
|
|
16797
|
+
return familyDefault;
|
|
16798
|
+
}
|
|
16799
|
+
return availableFilters[0];
|
|
16800
|
+
}
|
|
16801
|
+
/** Resolve grid and column-level draft opt-outs. */
|
|
16802
|
+
shouldShowDefaultFilter(config) {
|
|
16803
|
+
var _a;
|
|
16804
|
+
if (this.isColumnFilterOption(config)) {
|
|
16805
|
+
if (config.default === false) {
|
|
16806
|
+
return false;
|
|
16807
|
+
}
|
|
16808
|
+
if (typeof config.default === 'string') {
|
|
16809
|
+
return true;
|
|
16810
|
+
}
|
|
16811
|
+
}
|
|
16812
|
+
return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultFilter) !== false;
|
|
16813
|
+
}
|
|
16814
|
+
isColumnFilterOption(value) {
|
|
16815
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
16816
|
+
}
|
|
16644
16817
|
isValidType(type) {
|
|
16645
16818
|
return !!(typeof type === 'string' && this.filterByType[type]);
|
|
16646
16819
|
}
|
|
@@ -16923,6 +17096,60 @@ function allAndConditionsSatisfied(pendingResults) {
|
|
|
16923
17096
|
return !pendingResults.includes(true);
|
|
16924
17097
|
}
|
|
16925
17098
|
|
|
17099
|
+
/**
|
|
17100
|
+
* Restores group headers around already-sorted data indexes without rebuilding
|
|
17101
|
+
* the physical source. Group insertion order follows the first sorted member,
|
|
17102
|
+
* matching the order produced by regrouping a sorted source.
|
|
17103
|
+
*/
|
|
17104
|
+
function gatherGroupedRowIndexes(source, sortedDataIndexes) {
|
|
17105
|
+
const groupPathByDataIndex = new Map();
|
|
17106
|
+
const currentGroupPath = [];
|
|
17107
|
+
source.forEach((model, physicalIndex) => {
|
|
17108
|
+
if (isGrouping(model)) {
|
|
17109
|
+
const depth = model[GROUP_DEPTH];
|
|
17110
|
+
if (typeof depth !== 'number') {
|
|
17111
|
+
return;
|
|
17112
|
+
}
|
|
17113
|
+
currentGroupPath.length = depth;
|
|
17114
|
+
currentGroupPath[depth] = physicalIndex;
|
|
17115
|
+
return;
|
|
17116
|
+
}
|
|
17117
|
+
if (model != null) {
|
|
17118
|
+
groupPathByDataIndex.set(physicalIndex, [...currentGroupPath]);
|
|
17119
|
+
}
|
|
17120
|
+
});
|
|
17121
|
+
const root = {
|
|
17122
|
+
children: new Map(),
|
|
17123
|
+
items: [],
|
|
17124
|
+
};
|
|
17125
|
+
for (const physicalIndex of sortedDataIndexes) {
|
|
17126
|
+
const groupPath = groupPathByDataIndex.get(physicalIndex);
|
|
17127
|
+
if (!(groupPath === null || groupPath === void 0 ? void 0 : groupPath.length)) {
|
|
17128
|
+
return undefined;
|
|
17129
|
+
}
|
|
17130
|
+
let node = root;
|
|
17131
|
+
for (const groupIndex of groupPath) {
|
|
17132
|
+
let child = node.children.get(groupIndex);
|
|
17133
|
+
if (!child) {
|
|
17134
|
+
child = { children: new Map(), items: [] };
|
|
17135
|
+
node.children.set(groupIndex, child);
|
|
17136
|
+
}
|
|
17137
|
+
node = child;
|
|
17138
|
+
}
|
|
17139
|
+
node.items.push(physicalIndex);
|
|
17140
|
+
}
|
|
17141
|
+
const groupedIndexes = [];
|
|
17142
|
+
const appendNode = (node) => {
|
|
17143
|
+
node.children.forEach((child, groupIndex) => {
|
|
17144
|
+
groupedIndexes.push(groupIndex);
|
|
17145
|
+
appendNode(child);
|
|
17146
|
+
});
|
|
17147
|
+
groupedIndexes.push(...node.items);
|
|
17148
|
+
};
|
|
17149
|
+
appendNode(root);
|
|
17150
|
+
return groupedIndexes;
|
|
17151
|
+
}
|
|
17152
|
+
|
|
16926
17153
|
/**
|
|
16927
17154
|
* Checks whether a sorting map contains at least one active order.
|
|
16928
17155
|
*
|
|
@@ -17171,18 +17398,6 @@ const SortingSign = ({ column }) => {
|
|
|
17171
17398
|
function getSortableRowIndexes(indexes, source) {
|
|
17172
17399
|
return indexes.filter(index => !isGrouping(source[index]));
|
|
17173
17400
|
}
|
|
17174
|
-
function mergeSortedRowsWithGroups(indexes, source, sortedRows) {
|
|
17175
|
-
if (sortedRows.length === indexes.length) {
|
|
17176
|
-
return sortedRows;
|
|
17177
|
-
}
|
|
17178
|
-
let rowIndex = 0;
|
|
17179
|
-
return indexes.map(index => {
|
|
17180
|
-
if (isGrouping(source[index])) {
|
|
17181
|
-
return index;
|
|
17182
|
-
}
|
|
17183
|
-
return sortedRows[rowIndex++];
|
|
17184
|
-
});
|
|
17185
|
-
}
|
|
17186
17401
|
/**
|
|
17187
17402
|
* Lifecycle
|
|
17188
17403
|
* 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
|
|
@@ -17342,6 +17557,7 @@ class SortingPlugin extends BasePlugin {
|
|
|
17342
17557
|
storeService.setData({ proxyItems: newItemsOrder });
|
|
17343
17558
|
}
|
|
17344
17559
|
applySortingForStore(type, sorting, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
17560
|
+
var _a;
|
|
17345
17561
|
const storeService = this.providers.data.stores[type];
|
|
17346
17562
|
// row data
|
|
17347
17563
|
const source = storeService.store.get('source');
|
|
@@ -17349,7 +17565,10 @@ class SortingPlugin extends BasePlugin {
|
|
|
17349
17565
|
const proxyItems = storeService.store.get('proxyItems');
|
|
17350
17566
|
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
17351
17567
|
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, sortingColumns, sortingOrder);
|
|
17352
|
-
const
|
|
17568
|
+
const hasGroupingRows = sortedItems.length !== proxyItems.length;
|
|
17569
|
+
const newItemsOrder = hasGroupingRows
|
|
17570
|
+
? (_a = gatherGroupedRowIndexes(source, sortedItems)) !== null && _a !== void 0 ? _a : proxyItems
|
|
17571
|
+
: sortedItems;
|
|
17353
17572
|
// take row indexes before trim applied and proxy items
|
|
17354
17573
|
const prevItems = storeService.store.get('items');
|
|
17355
17574
|
storeService.setData({
|
|
@@ -17375,6 +17594,16 @@ class SortingPlugin extends BasePlugin {
|
|
|
17375
17594
|
}
|
|
17376
17595
|
this.postponeSort(order, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate);
|
|
17377
17596
|
}
|
|
17597
|
+
/**
|
|
17598
|
+
* Schedules the current active sort again after another plugin rebuilds row
|
|
17599
|
+
* proxy indexes while keeping the physical source unchanged.
|
|
17600
|
+
*/
|
|
17601
|
+
reapplySorting() {
|
|
17602
|
+
if (!hasActiveSorting(this.sorting) || !this.sortingFunc) {
|
|
17603
|
+
return;
|
|
17604
|
+
}
|
|
17605
|
+
this.startSorting(this.sorting, this.sortingFunc, this.sortingColumns, this.sortingOrder);
|
|
17606
|
+
}
|
|
17378
17607
|
/**
|
|
17379
17608
|
* Applies sorting requested by a sortable header click.
|
|
17380
17609
|
*
|
|
@@ -17893,8 +18122,10 @@ const TRIMMED_GROUPING = 'grouping';
|
|
|
17893
18122
|
* against the grouped physical source can still be remapped. If neither path
|
|
17894
18123
|
* resolves to a number, the caller drops the stale trim entry.
|
|
17895
18124
|
*/
|
|
17896
|
-
function
|
|
17897
|
-
const sourceIndex =
|
|
18125
|
+
function convertGroupingIndex(initialIndex, firstLevelMap, secondLevelMap) {
|
|
18126
|
+
const sourceIndex = typeof initialIndex === 'number'
|
|
18127
|
+
? initialIndex
|
|
18128
|
+
: Number.parseInt(initialIndex, 10);
|
|
17898
18129
|
const firstConversionIndex = firstLevelMap[sourceIndex];
|
|
17899
18130
|
if (!secondLevelMap) {
|
|
17900
18131
|
return firstConversionIndex;
|
|
@@ -17927,7 +18158,7 @@ function processDoubleConversionTrimmed(initiallyTrimed, firstLevelMap, secondLe
|
|
|
17927
18158
|
* if item exists we find it in collection
|
|
17928
18159
|
* we support 2 level of conversions
|
|
17929
18160
|
*/
|
|
17930
|
-
const newConversionIndex =
|
|
18161
|
+
const newConversionIndex = convertGroupingIndex(initialIndex, firstLevelMap, secondLevelMap);
|
|
17931
18162
|
// Group rows do not exist in the ungrouped index map and must not leak into new trims.
|
|
17932
18163
|
if (typeof newConversionIndex !== 'number') {
|
|
17933
18164
|
continue;
|
|
@@ -17988,7 +18219,7 @@ function filterOutEmptyGroupRows(source, filterTrimmed) {
|
|
|
17988
18219
|
return trimmed;
|
|
17989
18220
|
}
|
|
17990
18221
|
|
|
17991
|
-
var __rest
|
|
18222
|
+
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
17992
18223
|
var t = {};
|
|
17993
18224
|
for (var p in s)
|
|
17994
18225
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -18002,7 +18233,7 @@ var __rest$1 = (undefined && undefined.__rest) || function (s, e) {
|
|
|
18002
18233
|
};
|
|
18003
18234
|
const PADDING_DEPTH = 10;
|
|
18004
18235
|
const RowRenderer = (_a, cells) => {
|
|
18005
|
-
var { rowClass, index, size, start, depth, groupingLevel } = _a, attrs = __rest
|
|
18236
|
+
var { rowClass, index, size, start, depth, groupingLevel } = _a, attrs = __rest(_a, ["rowClass", "index", "size", "start", "depth", "groupingLevel"]);
|
|
18006
18237
|
const props = Object.assign(Object.assign(Object.assign({}, attrs), { [DATA_ROW]: index }), (typeof groupingLevel === 'number'
|
|
18007
18238
|
? { 'data-level': groupingLevel }
|
|
18008
18239
|
: {}));
|
|
@@ -18102,18 +18333,6 @@ const expandSvgIconVNode = (expanded = false) => {
|
|
|
18102
18333
|
return (hAsync("svg", { "aria-hidden": "true", style: { transform: `rotate(${!expanded ? -90 : 0}deg)` }, focusable: "false", viewBox: "0 0 448 512" }, hAsync("path", { fill: "currentColor", d: "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" })));
|
|
18103
18334
|
};
|
|
18104
18335
|
|
|
18105
|
-
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
18106
|
-
var t = {};
|
|
18107
|
-
for (var p in s)
|
|
18108
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
18109
|
-
t[p] = s[p];
|
|
18110
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18111
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18112
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18113
|
-
t[p[i]] = s[p[i]];
|
|
18114
|
-
}
|
|
18115
|
-
return t;
|
|
18116
|
-
};
|
|
18117
18336
|
class GroupingRowPlugin extends BasePlugin {
|
|
18118
18337
|
getStore(type = GROUPING_ROW_TYPE) {
|
|
18119
18338
|
return this.providers.data.stores[type].store;
|
|
@@ -18129,15 +18348,16 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18129
18348
|
}
|
|
18130
18349
|
// expand event triggered
|
|
18131
18350
|
onExpand({ virtualIndex }) {
|
|
18132
|
-
const
|
|
18133
|
-
|
|
18134
|
-
let
|
|
18351
|
+
const store = this.getStore();
|
|
18352
|
+
const source = store.get('source');
|
|
18353
|
+
let newTrimmed = store.get('trimmed')[TRIMMED_GROUPING];
|
|
18354
|
+
const i = getPhysical(store, virtualIndex);
|
|
18135
18355
|
const isExpanded = getExpanded(source[i]);
|
|
18136
18356
|
if (!isExpanded) {
|
|
18137
|
-
const { trimmed, items } = doExpand(virtualIndex, source,
|
|
18357
|
+
const { trimmed, items: expandedItems } = doExpand(virtualIndex, source, store.get('items'));
|
|
18138
18358
|
newTrimmed = Object.assign(Object.assign({}, newTrimmed), trimmed);
|
|
18139
|
-
if (
|
|
18140
|
-
setItems(
|
|
18359
|
+
if (expandedItems) {
|
|
18360
|
+
setItems(store, expandedItems);
|
|
18141
18361
|
}
|
|
18142
18362
|
}
|
|
18143
18363
|
else {
|
|
@@ -18145,7 +18365,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18145
18365
|
newTrimmed = Object.assign(Object.assign({}, newTrimmed), trimmed);
|
|
18146
18366
|
this.revogrid.clearFocus();
|
|
18147
18367
|
}
|
|
18148
|
-
|
|
18368
|
+
store.set('source', source);
|
|
18149
18369
|
this.revogrid.addTrimmed(newTrimmed, TRIMMED_GROUPING);
|
|
18150
18370
|
}
|
|
18151
18371
|
setColumnGrouping(cols) {
|
|
@@ -18167,7 +18387,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18167
18387
|
onDrag(e) {
|
|
18168
18388
|
const { from, to } = e.detail;
|
|
18169
18389
|
const isDown = to - from >= 0;
|
|
18170
|
-
const
|
|
18390
|
+
const source = this.getStore().get('source');
|
|
18171
18391
|
const items = this.getStore().get('items');
|
|
18172
18392
|
let i = isDown ? from : to;
|
|
18173
18393
|
const end = isDown ? to : from;
|
|
@@ -18193,21 +18413,13 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18193
18413
|
const source = this.getStore().get('source');
|
|
18194
18414
|
return filterOutEmptyGroupRows(source, trimmed);
|
|
18195
18415
|
}
|
|
18196
|
-
isSortingRunning() {
|
|
18197
|
-
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18198
|
-
return !!(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sortingPromise);
|
|
18199
|
-
}
|
|
18200
18416
|
/**
|
|
18201
|
-
*
|
|
18202
|
-
*
|
|
18203
|
-
*
|
|
18204
|
-
* Reusing them after sorting would reopen groups the user collapsed before
|
|
18205
|
-
* sorting instead of using the current grouped source state.
|
|
18417
|
+
* Sorting changes proxy order without changing the physical source baseline.
|
|
18418
|
+
* Other proxy changes, such as row dragging, are user-authored source order
|
|
18419
|
+
* and must be retained when grouping is rebuilt.
|
|
18206
18420
|
*/
|
|
18207
|
-
|
|
18208
|
-
|
|
18209
|
-
const _b = (_a = this.options) !== null && _a !== void 0 ? _a : {}, options = __rest(_b, ["expandedAll", "prevExpanded"]);
|
|
18210
|
-
return options;
|
|
18421
|
+
isSortingActiveOrPending(sortingPlugin) {
|
|
18422
|
+
return !!(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sortingPromise) || hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting);
|
|
18211
18423
|
}
|
|
18212
18424
|
/**
|
|
18213
18425
|
* Starts global source update with group clearing and applying new one
|
|
@@ -18220,7 +18432,12 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18220
18432
|
* @param newOldIndexMap - provides us mapping with new indexes vs old indexes, we would use it for trimmed mapping
|
|
18221
18433
|
*/
|
|
18222
18434
|
const store = this.getStore();
|
|
18223
|
-
const
|
|
18435
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18436
|
+
const currentSource = store.get('source');
|
|
18437
|
+
const sourceItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18438
|
+
? currentSource.map((_, index) => index)
|
|
18439
|
+
: store.get('proxyItems');
|
|
18440
|
+
const { source, prevExpanded, oldNewIndexes } = getSource(currentSource, sourceItems, true);
|
|
18224
18441
|
const expanded = Object.assign({ prevExpanded }, options);
|
|
18225
18442
|
/**
|
|
18226
18443
|
* Group again
|
|
@@ -18230,8 +18447,13 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18230
18447
|
const customRenderer = options === null || options === void 0 ? void 0 : options.groupLabelTemplate;
|
|
18231
18448
|
const cellRenderer = options === null || options === void 0 ? void 0 : options.groupCellTemplate;
|
|
18232
18449
|
// setup source
|
|
18450
|
+
this.revogrid.dispatchEvent(new CustomEvent(BEFORE_GROUPING_APPLY_EVENT));
|
|
18233
18451
|
this.providers.data.setData(sourceWithGroups, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, { depth, customRenderer, cellRenderer }, true);
|
|
18452
|
+
this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, currentSource, sourceWithGroups);
|
|
18234
18453
|
this.updateTrimmed(trimmed, oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, sourceWithGroups);
|
|
18454
|
+
if (hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting)) {
|
|
18455
|
+
sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.reapplySorting();
|
|
18456
|
+
}
|
|
18235
18457
|
}
|
|
18236
18458
|
/**
|
|
18237
18459
|
* Apply grouping on data set
|
|
@@ -18240,9 +18462,14 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18240
18462
|
*/
|
|
18241
18463
|
onDataSet(data) {
|
|
18242
18464
|
var _a, _b, _c;
|
|
18465
|
+
const currentSource = this.getStore().get('source');
|
|
18466
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18467
|
+
const currentItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18468
|
+
? currentSource.map((_, index) => index)
|
|
18469
|
+
: this.getStore().get('proxyItems');
|
|
18470
|
+
const { prevExpanded, oldNewIndexes } = getSource(currentSource, currentItems, true);
|
|
18243
18471
|
let preservedExpanded = {};
|
|
18244
18472
|
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.preserveGroupingOnUpdate) !== false) {
|
|
18245
|
-
let { prevExpanded } = getSource(this.getStore().get('source'), this.getStore().get('proxyItems'), true);
|
|
18246
18473
|
preservedExpanded = prevExpanded;
|
|
18247
18474
|
}
|
|
18248
18475
|
const source = data.source.filter(s => !isGrouping(s));
|
|
@@ -18254,6 +18481,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18254
18481
|
customRenderer: options.groupLabelTemplate,
|
|
18255
18482
|
cellRenderer: options.groupCellTemplate,
|
|
18256
18483
|
});
|
|
18484
|
+
queueMicrotask(() => this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, currentSource, sourceWithGroups));
|
|
18257
18485
|
this.updateTrimmed(trimmed, oldNewIndexMap, undefined, sourceWithGroups, { filterTrimmedMode: 'recompute-after-source-set' });
|
|
18258
18486
|
}
|
|
18259
18487
|
/**
|
|
@@ -18289,10 +18517,6 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18289
18517
|
if (!(((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length) && ((_c = detail === null || detail === void 0 ? void 0 : detail.source) === null || _c === void 0 ? void 0 : _c.length))) {
|
|
18290
18518
|
return;
|
|
18291
18519
|
}
|
|
18292
|
-
// if sorting is running don't apply grouping, wait for sorting, then it'll apply in @aftersortingapply
|
|
18293
|
-
if (this.isSortingRunning()) {
|
|
18294
|
-
return;
|
|
18295
|
-
}
|
|
18296
18520
|
this.onDataSet(detail);
|
|
18297
18521
|
});
|
|
18298
18522
|
this.addEventListener('beforecolumnsset', ({ detail }) => {
|
|
@@ -18307,17 +18531,6 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18307
18531
|
this.addEventListener('beforefiltertrimmed', ({ detail }) => {
|
|
18308
18532
|
detail.itemsToFilter = this.beforeFilterTrimmed(detail.itemsToFilter);
|
|
18309
18533
|
});
|
|
18310
|
-
/**
|
|
18311
|
-
* sorting applied need to clear grouping and apply again
|
|
18312
|
-
* based on new results whole grouping order will changed
|
|
18313
|
-
*/
|
|
18314
|
-
this.addEventListener('aftersortingapply', () => {
|
|
18315
|
-
var _a, _b;
|
|
18316
|
-
if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
18317
|
-
return;
|
|
18318
|
-
}
|
|
18319
|
-
this.doSourceUpdate(this.getCurrentExpandedOptions());
|
|
18320
|
-
});
|
|
18321
18534
|
/**
|
|
18322
18535
|
* Apply logic for focus inside of grouping
|
|
18323
18536
|
* We can't focus on grouping rows, navigation only inside of groups for now
|
|
@@ -18350,9 +18563,57 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18350
18563
|
}
|
|
18351
18564
|
});
|
|
18352
18565
|
// clear rows
|
|
18353
|
-
const
|
|
18566
|
+
const store = this.getStore();
|
|
18567
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18568
|
+
const currentSource = store.get('source');
|
|
18569
|
+
const sourceItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18570
|
+
? currentSource.map((_, index) => index)
|
|
18571
|
+
: store.get('proxyItems');
|
|
18572
|
+
const { source, oldNewIndexes } = getSource(currentSource, sourceItems, true);
|
|
18573
|
+
this.revogrid.dispatchEvent(new CustomEvent(BEFORE_GROUPING_APPLY_EVENT));
|
|
18354
18574
|
this.providers.data.setData(source, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, undefined, true);
|
|
18575
|
+
this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, undefined, currentSource, source);
|
|
18355
18576
|
this.updateTrimmed(undefined, undefined, oldNewIndexes, source);
|
|
18577
|
+
if (hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting)) {
|
|
18578
|
+
sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.reapplySorting();
|
|
18579
|
+
}
|
|
18580
|
+
}
|
|
18581
|
+
remapRowDefinitions(firstLevelMap, secondLevelMap, previousSource, nextSource) {
|
|
18582
|
+
const definitions = this.providers.dimension.getRowDefinitions();
|
|
18583
|
+
const nextGroupIndexes = new Map();
|
|
18584
|
+
nextSource === null || nextSource === void 0 ? void 0 : nextSource.forEach((row, index) => {
|
|
18585
|
+
const groupId = row[PSEUDO_GROUP_ITEM_ID];
|
|
18586
|
+
if (groupId && !nextGroupIndexes.has(groupId)) {
|
|
18587
|
+
nextGroupIndexes.set(groupId, index);
|
|
18588
|
+
}
|
|
18589
|
+
});
|
|
18590
|
+
let changed = false;
|
|
18591
|
+
const remapped = definitions.flatMap(definition => {
|
|
18592
|
+
if (definition.type !== GROUPING_ROW_TYPE) {
|
|
18593
|
+
return [definition];
|
|
18594
|
+
}
|
|
18595
|
+
const previousRow = previousSource === null || previousSource === void 0 ? void 0 : previousSource[definition.index];
|
|
18596
|
+
const groupId = previousRow === null || previousRow === void 0 ? void 0 : previousRow[PSEUDO_GROUP_ITEM_ID];
|
|
18597
|
+
const index = groupId
|
|
18598
|
+
? nextGroupIndexes.get(groupId)
|
|
18599
|
+
: convertGroupingIndex(definition.index, firstLevelMap, secondLevelMap);
|
|
18600
|
+
if (typeof index !== 'number') {
|
|
18601
|
+
changed = true;
|
|
18602
|
+
return [];
|
|
18603
|
+
}
|
|
18604
|
+
if (index < 0) {
|
|
18605
|
+
changed = true;
|
|
18606
|
+
return [];
|
|
18607
|
+
}
|
|
18608
|
+
if (index === definition.index) {
|
|
18609
|
+
return [definition];
|
|
18610
|
+
}
|
|
18611
|
+
changed = true;
|
|
18612
|
+
return [Object.assign(Object.assign({}, definition), { index })];
|
|
18613
|
+
});
|
|
18614
|
+
if (changed) {
|
|
18615
|
+
this.providers.dimension.setRowDefinitions(remapped);
|
|
18616
|
+
}
|
|
18356
18617
|
}
|
|
18357
18618
|
updateTrimmed(trimmedGroup = {}, firstLevelMap = {}, secondLevelMap, source = this.getStore().get('source'), { filterTrimmedMode = 'remap', } = {}) {
|
|
18358
18619
|
// map previously trimmed data
|
|
@@ -19204,19 +19465,6 @@ const rowDefinitionByType = (newVal = []) => {
|
|
|
19204
19465
|
}
|
|
19205
19466
|
return result;
|
|
19206
19467
|
};
|
|
19207
|
-
const rowDefinitionRemoveByType = (oldVal = []) => {
|
|
19208
|
-
const result = {};
|
|
19209
|
-
for (const v of oldVal) {
|
|
19210
|
-
let rowDefs = result[v.type];
|
|
19211
|
-
if (!rowDefs) {
|
|
19212
|
-
rowDefs = result[v.type] = [];
|
|
19213
|
-
}
|
|
19214
|
-
if (typeof v.size === 'number') {
|
|
19215
|
-
rowDefs.push(v.index);
|
|
19216
|
-
}
|
|
19217
|
-
}
|
|
19218
|
-
return result;
|
|
19219
|
-
};
|
|
19220
19468
|
|
|
19221
19469
|
const COLUMN_DRAG_CLASS = 'column-drag-start';
|
|
19222
19470
|
class ColumnOrderHandler {
|
|
@@ -19776,6 +20024,7 @@ function isMobileDevice() {
|
|
|
19776
20024
|
return /Mobi/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent) || navigator.maxTouchPoints > 0;
|
|
19777
20025
|
}
|
|
19778
20026
|
|
|
20027
|
+
const toAriaIndex = (index) => `${index + 1}`;
|
|
19779
20028
|
/**
|
|
19780
20029
|
* WCAG Plugin is responsible for enhancing the accessibility features of the RevoGrid component.
|
|
19781
20030
|
* It ensures that the grid is fully compliant with Web Content Accessibility Guidelines (WCAG) 2.1.
|
|
@@ -19819,14 +20068,14 @@ class WCAGPlugin extends BasePlugin {
|
|
|
19819
20068
|
column.columnProperties = (...args) => {
|
|
19820
20069
|
const result = (columnProperties === null || columnProperties === void 0 ? void 0 : columnProperties(...args)) || {};
|
|
19821
20070
|
result.role = 'columnheader';
|
|
19822
|
-
result['aria-colindex'] =
|
|
20071
|
+
result['aria-colindex'] = toAriaIndex(index);
|
|
19823
20072
|
return result;
|
|
19824
20073
|
};
|
|
19825
20074
|
column.cellProperties = (...args) => {
|
|
19826
20075
|
const wcagProps = {
|
|
19827
20076
|
['role']: 'gridcell',
|
|
19828
|
-
['aria-colindex']:
|
|
19829
|
-
['aria-rowindex']:
|
|
20077
|
+
['aria-colindex']: toAriaIndex(index),
|
|
20078
|
+
['aria-rowindex']: toAriaIndex(args[0].rowIndex),
|
|
19830
20079
|
['tabindex']: -1,
|
|
19831
20080
|
};
|
|
19832
20081
|
const columnProps = (cellProperties === null || cellProperties === void 0 ? void 0 : cellProperties(...args)) || {};
|
|
@@ -19841,7 +20090,7 @@ class WCAGPlugin extends BasePlugin {
|
|
|
19841
20090
|
revogrid.setAttribute('aria-rowcount', `${detail.source.length}`);
|
|
19842
20091
|
});
|
|
19843
20092
|
this.addEventListener('beforerowrender', ({ detail, }) => {
|
|
19844
|
-
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: detail.item.itemIndex });
|
|
20093
|
+
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: toAriaIndex(detail.item.itemIndex) });
|
|
19845
20094
|
});
|
|
19846
20095
|
// focuscell
|
|
19847
20096
|
this.addEventListener('afterfocus', async (e) => {
|
|
@@ -20099,18 +20348,14 @@ const ROW_RESIZE_EVENT = 'rowresize';
|
|
|
20099
20348
|
const AFTER_ROW_RESIZE_EVENT = 'afterrowresize';
|
|
20100
20349
|
const ROW_RESIZE_CANCEL_EVENT = 'rowresizecancel';
|
|
20101
20350
|
class RowResizePlugin extends BasePlugin {
|
|
20102
|
-
static fromGridProperty(revogrid, providers) {
|
|
20103
|
-
const plugin = new RowResizePlugin(revogrid, providers);
|
|
20104
|
-
plugin.controlFromGridProperty();
|
|
20105
|
-
return plugin;
|
|
20106
|
-
}
|
|
20107
20351
|
constructor(revogrid, providers, config = {}) {
|
|
20108
20352
|
super(revogrid, providers);
|
|
20109
20353
|
this.enabled = false;
|
|
20110
|
-
this.
|
|
20111
|
-
this.
|
|
20112
|
-
this.
|
|
20113
|
-
this.
|
|
20354
|
+
this.appliedDefinitionIndexes = new Map();
|
|
20355
|
+
this.pendingBottomAnchor = false;
|
|
20356
|
+
this.keepBottomAnchor = false;
|
|
20357
|
+
this.rowDefinitionRemapQueued = false;
|
|
20358
|
+
this.pendingSourceCounts = new Map();
|
|
20114
20359
|
this.previousBodyCursor = '';
|
|
20115
20360
|
this.decorateRow = ({ detail, }) => {
|
|
20116
20361
|
if (!this.enabled ||
|
|
@@ -20174,22 +20419,72 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20174
20419
|
}
|
|
20175
20420
|
};
|
|
20176
20421
|
this.onWindowBlur = () => this.cancel('blur');
|
|
20177
|
-
this.
|
|
20178
|
-
|
|
20179
|
-
|
|
20180
|
-
|
|
20422
|
+
this.updateBottomAnchorState = ({ detail, }) => {
|
|
20423
|
+
if (detail.dimension !== 'rgRow') {
|
|
20424
|
+
return;
|
|
20425
|
+
}
|
|
20426
|
+
this.keepBottomAnchor = this.isMainViewportAtBottom(detail.coordinate);
|
|
20427
|
+
};
|
|
20428
|
+
this.applyPendingBottomAnchor = () => {
|
|
20429
|
+
if (!this.pendingBottomAnchor) {
|
|
20430
|
+
return;
|
|
20431
|
+
}
|
|
20432
|
+
this.pendingBottomAnchor = false;
|
|
20433
|
+
const dimension = this.providers.dimension.stores.rgRow.store;
|
|
20434
|
+
// Scroll surfaces have slightly different client sizes. Give the shared
|
|
20435
|
+
// scrolling service the content end and let each surface clamp to its own
|
|
20436
|
+
// exact bottom coordinate.
|
|
20437
|
+
void this.revogrid.scrollToCoordinate({ y: dimension.get('realSize') });
|
|
20438
|
+
};
|
|
20439
|
+
this.scheduleRowDefinitionRemap = () => {
|
|
20440
|
+
if (this.rowDefinitionRemapQueued) {
|
|
20441
|
+
return;
|
|
20442
|
+
}
|
|
20443
|
+
this.rowDefinitionRemapQueued = true;
|
|
20444
|
+
queueMicrotask(() => {
|
|
20445
|
+
if (!this.rowDefinitionRemapQueued) {
|
|
20446
|
+
return;
|
|
20447
|
+
}
|
|
20448
|
+
this.pruneRowDefinitions();
|
|
20449
|
+
this.reapplyRowDefinitionSizes();
|
|
20450
|
+
this.rowDefinitionRemapQueued = false;
|
|
20451
|
+
});
|
|
20452
|
+
};
|
|
20453
|
+
/** Map source-indexed row definitions back onto the current virtual order. */
|
|
20454
|
+
this.reapplyRowDefinitionSizes = () => {
|
|
20455
|
+
const rowDefinitions = this.providers.dimension.getRowDefinitions();
|
|
20456
|
+
for (const rowType of rowTypes) {
|
|
20181
20457
|
const items = this.providers.data.stores[rowType].store.get('items');
|
|
20458
|
+
const definitions = new Map(rowDefinitions
|
|
20459
|
+
.filter(definition => definition.type === rowType)
|
|
20460
|
+
.map(definition => [definition.index, definition.size]));
|
|
20461
|
+
const appliedIndexes = this.appliedDefinitionIndexes.get(rowType);
|
|
20462
|
+
if (!definitions.size && !(appliedIndexes === null || appliedIndexes === void 0 ? void 0 : appliedIndexes.size)) {
|
|
20463
|
+
continue;
|
|
20464
|
+
}
|
|
20465
|
+
const dimension = this.providers.dimension.stores[rowType];
|
|
20466
|
+
const currentSizes = dimension.store.get('sizes');
|
|
20467
|
+
const sizes = Object.assign({}, currentSizes);
|
|
20468
|
+
for (const index of appliedIndexes || []) {
|
|
20469
|
+
delete sizes[index];
|
|
20470
|
+
}
|
|
20182
20471
|
const indexes = new Set();
|
|
20183
20472
|
items.forEach((physicalIndex, virtualIndex) => {
|
|
20184
|
-
|
|
20473
|
+
const size = definitions.get(physicalIndex);
|
|
20474
|
+
if (size !== undefined) {
|
|
20475
|
+
sizes[virtualIndex] = size;
|
|
20185
20476
|
indexes.add(virtualIndex);
|
|
20186
20477
|
}
|
|
20187
20478
|
});
|
|
20188
|
-
this.
|
|
20479
|
+
this.appliedDefinitionIndexes.set(rowType, indexes);
|
|
20480
|
+
const sizeKeys = Object.keys(sizes);
|
|
20481
|
+
if (sizeKeys.length !== Object.keys(currentSizes).length ||
|
|
20482
|
+
sizeKeys.some(index => sizes[index] !== currentSizes[index])) {
|
|
20483
|
+
this.providers.dimension.setCustomSizes(rowType, sizes);
|
|
20484
|
+
}
|
|
20189
20485
|
}
|
|
20190
20486
|
};
|
|
20191
20487
|
this.config = resolveRowResizeConfig(config);
|
|
20192
|
-
this.rowDefinitionsRef = revogrid.rowDefinitions;
|
|
20193
20488
|
if (new.target !== RowResizePlugin) {
|
|
20194
20489
|
this.enabled = true;
|
|
20195
20490
|
this.registerEventListeners();
|
|
@@ -20197,77 +20492,53 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20197
20492
|
}
|
|
20198
20493
|
registerEventListeners() {
|
|
20199
20494
|
this.addEventListener('beforerowrender', this.decorateRow);
|
|
20200
|
-
this.addEventListener('beforeanysource', (
|
|
20495
|
+
this.addEventListener('beforeanysource', () => {
|
|
20201
20496
|
this.cancel('data-change');
|
|
20202
|
-
|
|
20203
|
-
|
|
20204
|
-
|
|
20205
|
-
|
|
20206
|
-
|
|
20207
|
-
for (const index of committed.keys()) {
|
|
20208
|
-
if (index >= detail.source.length) {
|
|
20209
|
-
committed.delete(index);
|
|
20210
|
-
removedIndexes.add(index);
|
|
20211
|
-
}
|
|
20212
|
-
}
|
|
20213
|
-
if (removedIndexes.size) {
|
|
20214
|
-
const rowDefinitions = this.revogrid.rowDefinitions.filter(definition => definition.type !== detail.type ||
|
|
20215
|
-
!removedIndexes.has(definition.index));
|
|
20216
|
-
this.rowDefinitionsRef = rowDefinitions;
|
|
20217
|
-
this.revogrid.rowDefinitions = rowDefinitions;
|
|
20218
|
-
}
|
|
20497
|
+
this.keepBottomAnchor = false;
|
|
20498
|
+
});
|
|
20499
|
+
this.addEventListener('afteranysource', ({ detail }) => {
|
|
20500
|
+
this.pendingSourceCounts.set(detail.type, detail.source.length);
|
|
20501
|
+
this.scheduleRowDefinitionRemap();
|
|
20219
20502
|
});
|
|
20220
|
-
this.addEventListener('afteranysource', this.rebuildCommittedSizes);
|
|
20221
20503
|
this.addEventListener('beforesourcesortingapply', this.cancelForDataChange);
|
|
20222
|
-
this.addEventListener('
|
|
20504
|
+
this.addEventListener('beforesortingapply', this.cancelForDataChange);
|
|
20505
|
+
this.addEventListener('sortingconfigchanged', this.cancelForDataChange);
|
|
20506
|
+
this.addEventListener(BEFORE_GROUPING_APPLY_EVENT, this.cancelForDataChange);
|
|
20507
|
+
this.addEventListener('aftersortingapply', this.scheduleRowDefinitionRemap);
|
|
20223
20508
|
this.addEventListener('beforefilterapply', this.cancelForDataChange);
|
|
20224
|
-
this.addEventListener('
|
|
20509
|
+
this.addEventListener('afterfilterapply', this.scheduleRowDefinitionRemap);
|
|
20510
|
+
this.addEventListener('beforerowdefinition', () => {
|
|
20225
20511
|
this.cancel('data-change');
|
|
20226
|
-
|
|
20227
|
-
this.committedSizes.clear();
|
|
20228
|
-
this.appliedIndexes.clear();
|
|
20229
|
-
this.rowDefinitionsRef = detail.vals;
|
|
20230
|
-
}
|
|
20231
|
-
});
|
|
20232
|
-
this.addEventListener('afterthemechanged', this.reapplyCommittedSizes);
|
|
20233
|
-
this.addEventListener('aftertrimmed', this.syncAppliedIndexes);
|
|
20234
|
-
this.addEventListener('roworderchange', () => {
|
|
20235
|
-
queueMicrotask(this.reapplyCommittedSizes);
|
|
20512
|
+
this.scheduleRowDefinitionRemap();
|
|
20236
20513
|
});
|
|
20514
|
+
this.addEventListener('afterthemechanged', this.scheduleRowDefinitionRemap);
|
|
20515
|
+
this.addEventListener('aftertrimmed', this.scheduleRowDefinitionRemap);
|
|
20516
|
+
this.addEventListener('roworderchange', this.scheduleRowDefinitionRemap);
|
|
20237
20517
|
this.addEventListener(GROUP_EXPAND_EVENT, () => {
|
|
20238
|
-
|
|
20518
|
+
if (this.keepBottomAnchor) {
|
|
20519
|
+
this.pendingBottomAnchor = true;
|
|
20520
|
+
}
|
|
20521
|
+
this.scheduleRowDefinitionRemap();
|
|
20239
20522
|
});
|
|
20523
|
+
this.addEventListener('aftergridrender', this.applyPendingBottomAnchor);
|
|
20524
|
+
this.addEventListener('viewportscroll', this.updateBottomAnchorState);
|
|
20240
20525
|
this.addEventListener('rowheaderschanged', ({ detail }) => {
|
|
20241
20526
|
if (!detail && !this.config.fullRow) {
|
|
20242
20527
|
this.cancel('row-headers-hidden');
|
|
20243
20528
|
}
|
|
20244
20529
|
});
|
|
20245
20530
|
}
|
|
20246
|
-
|
|
20247
|
-
|
|
20248
|
-
|
|
20249
|
-
|
|
20250
|
-
this.watch('resizeRow', value => {
|
|
20251
|
-
this.gridResizeRow = value;
|
|
20252
|
-
this.syncGridProperty();
|
|
20253
|
-
});
|
|
20254
|
-
this.watch('plugins', value => {
|
|
20255
|
-
this.gridPlugins = value || [];
|
|
20256
|
-
this.syncGridProperty();
|
|
20257
|
-
});
|
|
20258
|
-
}
|
|
20259
|
-
syncGridProperty(refresh = true) {
|
|
20260
|
-
const hasConfiguredPlugin = this.gridPlugins.some(plugin => plugin !== RowResizePlugin &&
|
|
20531
|
+
syncGridConfig(refresh = true) {
|
|
20532
|
+
const { plugins = [], resizeRow } = this.revogrid;
|
|
20533
|
+
const isCorePlugin = this.constructor === RowResizePlugin;
|
|
20534
|
+
const hasConfiguredPlugin = plugins.some(plugin => plugin !== RowResizePlugin &&
|
|
20261
20535
|
plugin.prototype instanceof RowResizePlugin);
|
|
20262
|
-
const
|
|
20263
|
-
|
|
20264
|
-
|
|
20265
|
-
|
|
20266
|
-
|
|
20267
|
-
|
|
20268
|
-
typeof this.gridResizeRow === 'object'
|
|
20269
|
-
? this.gridResizeRow
|
|
20270
|
-
: undefined);
|
|
20536
|
+
const enabled = !isCorePlugin ||
|
|
20537
|
+
(!hasConfiguredPlugin && !!resizeRow);
|
|
20538
|
+
const resizeConfig = typeof resizeRow === 'object' ? resizeRow : undefined;
|
|
20539
|
+
const config = isCorePlugin
|
|
20540
|
+
? resolveRowResizeConfig(resizeConfig)
|
|
20541
|
+
: this.config;
|
|
20271
20542
|
const configChanged = config.minHeight !== this.config.minHeight ||
|
|
20272
20543
|
config.maxHeight !== this.config.maxHeight ||
|
|
20273
20544
|
config.fullRow !== this.config.fullRow;
|
|
@@ -20279,10 +20550,13 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20279
20550
|
if (enabled !== this.enabled) {
|
|
20280
20551
|
this.enabled = enabled;
|
|
20281
20552
|
if (enabled) {
|
|
20282
|
-
this.rowDefinitionsRef = this.revogrid.rowDefinitions;
|
|
20283
20553
|
this.registerEventListeners();
|
|
20284
20554
|
}
|
|
20285
20555
|
else {
|
|
20556
|
+
this.pendingBottomAnchor = false;
|
|
20557
|
+
this.keepBottomAnchor = false;
|
|
20558
|
+
this.rowDefinitionRemapQueued = false;
|
|
20559
|
+
this.pendingSourceCounts.clear();
|
|
20286
20560
|
this.clearSubscriptions();
|
|
20287
20561
|
}
|
|
20288
20562
|
}
|
|
@@ -20301,6 +20575,7 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20301
20575
|
}
|
|
20302
20576
|
const dimension = this.providers.dimension.stores[rowType];
|
|
20303
20577
|
const dimensionState = dimension.getCurrentState();
|
|
20578
|
+
const viewport = this.providers.viewport.stores[rowType];
|
|
20304
20579
|
const item = getItemByIndex(dimensionState, index);
|
|
20305
20580
|
const focusedStore = this.providers.selection.focusedStore;
|
|
20306
20581
|
const selectedRowType = focusedStore
|
|
@@ -20332,16 +20607,23 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20332
20607
|
currentHeight: startHeight,
|
|
20333
20608
|
previousSizes,
|
|
20334
20609
|
originalCustomSizes: Object.assign({}, dimensionState.sizes),
|
|
20335
|
-
|
|
20610
|
+
bottomAnchored: rowType === 'rgRow' &&
|
|
20611
|
+
this.isMainViewportAtBottom(viewport.lastCoordinate),
|
|
20336
20612
|
lastEvent: event,
|
|
20337
20613
|
};
|
|
20614
|
+
this.active = active;
|
|
20338
20615
|
const beforeEvent = this.emit(BEFORE_ROW_RESIZE_EVENT, this.eventDetail(active, event, startHeight));
|
|
20339
20616
|
if (beforeEvent.defaultPrevented) {
|
|
20617
|
+
if (this.active === active) {
|
|
20618
|
+
this.active = undefined;
|
|
20619
|
+
}
|
|
20620
|
+
return;
|
|
20621
|
+
}
|
|
20622
|
+
if (!this.enabled || this.active !== active) {
|
|
20340
20623
|
return;
|
|
20341
20624
|
}
|
|
20342
20625
|
event.preventDefault();
|
|
20343
20626
|
event.stopPropagation();
|
|
20344
|
-
this.active = active;
|
|
20345
20627
|
const doc = this.revogrid.ownerDocument;
|
|
20346
20628
|
this.previousBodyCursor = ((_a = doc.body) === null || _a === void 0 ? void 0 : _a.style.cursor) || '';
|
|
20347
20629
|
if (doc.body) {
|
|
@@ -20364,6 +20646,7 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20364
20646
|
return;
|
|
20365
20647
|
}
|
|
20366
20648
|
this.providers.dimension.setCustomSizes(active.rowType, createRowResizePatch(active.indexes, size), true);
|
|
20649
|
+
this.requestBottomAnchor(active);
|
|
20367
20650
|
active.currentHeight = size;
|
|
20368
20651
|
this.emit(ROW_RESIZE_EVENT, this.eventDetail(active, active.lastEvent, size));
|
|
20369
20652
|
}
|
|
@@ -20382,7 +20665,8 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20382
20665
|
}
|
|
20383
20666
|
}
|
|
20384
20667
|
this.providers.dimension.setCustomSizes(active.rowType, currentSizes);
|
|
20385
|
-
|
|
20668
|
+
this.requestBottomAnchor(active);
|
|
20669
|
+
const detail = Object.assign(Object.assign({}, this.eventDetail(active, active.lastEvent, active.startHeight)), { reason });
|
|
20386
20670
|
this.finishGesture();
|
|
20387
20671
|
this.emit(ROW_RESIZE_CANCEL_EVENT, detail);
|
|
20388
20672
|
}
|
|
@@ -20401,51 +20685,44 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20401
20685
|
return;
|
|
20402
20686
|
}
|
|
20403
20687
|
const items = this.providers.data.stores[active.rowType].store.get('items');
|
|
20404
|
-
let committed = this.committedSizes.get(active.rowType);
|
|
20405
|
-
if (!committed) {
|
|
20406
|
-
committed = new Map();
|
|
20407
|
-
this.committedSizes.set(active.rowType, committed);
|
|
20408
|
-
}
|
|
20409
|
-
let applied = this.appliedIndexes.get(active.rowType);
|
|
20410
|
-
if (!applied) {
|
|
20411
|
-
applied = new Set();
|
|
20412
|
-
this.appliedIndexes.set(active.rowType, applied);
|
|
20413
|
-
}
|
|
20414
20688
|
const physicalIndexes = active.indexes.reduce((result, index) => {
|
|
20415
20689
|
const physicalIndex = items[index];
|
|
20416
20690
|
if (physicalIndex !== undefined) {
|
|
20417
|
-
committed.set(physicalIndex, active.currentHeight);
|
|
20418
|
-
applied.add(index);
|
|
20419
20691
|
result.push(physicalIndex);
|
|
20420
20692
|
}
|
|
20421
20693
|
return result;
|
|
20422
20694
|
}, []);
|
|
20423
20695
|
if (physicalIndexes.length) {
|
|
20424
|
-
const rowDefinitions = mergeRowResizeDefinitions(this.
|
|
20425
|
-
this.
|
|
20426
|
-
this.
|
|
20696
|
+
const rowDefinitions = mergeRowResizeDefinitions(this.providers.dimension.getRowDefinitions(), active.rowType, physicalIndexes, active.currentHeight);
|
|
20697
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
20698
|
+
this.scheduleRowDefinitionRemap();
|
|
20699
|
+
this.keepBottomAnchor = active.bottomAnchored;
|
|
20700
|
+
this.requestBottomAnchor(active);
|
|
20427
20701
|
}
|
|
20428
20702
|
}
|
|
20429
|
-
|
|
20430
|
-
|
|
20431
|
-
|
|
20432
|
-
|
|
20433
|
-
|
|
20434
|
-
|
|
20435
|
-
|
|
20436
|
-
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
|
|
20440
|
-
|
|
20441
|
-
|
|
20442
|
-
|
|
20443
|
-
|
|
20444
|
-
|
|
20445
|
-
|
|
20446
|
-
|
|
20447
|
-
|
|
20448
|
-
|
|
20703
|
+
requestBottomAnchor(active) {
|
|
20704
|
+
if (active.bottomAnchored) {
|
|
20705
|
+
this.pendingBottomAnchor = true;
|
|
20706
|
+
}
|
|
20707
|
+
}
|
|
20708
|
+
isMainViewportAtBottom(coordinate) {
|
|
20709
|
+
const dimension = this.providers.dimension.stores.rgRow.getCurrentState();
|
|
20710
|
+
const viewport = this.providers.viewport.stores.rgRow.store.state;
|
|
20711
|
+
return (dimension.realSize > viewport.clientSize &&
|
|
20712
|
+
coordinate >= getViewportMaxCoordinate(dimension, viewport.virtualSize));
|
|
20713
|
+
}
|
|
20714
|
+
pruneRowDefinitions() {
|
|
20715
|
+
if (!this.pendingSourceCounts.size) {
|
|
20716
|
+
return;
|
|
20717
|
+
}
|
|
20718
|
+
const definitions = this.providers.dimension.getRowDefinitions();
|
|
20719
|
+
const rowDefinitions = definitions.filter(definition => {
|
|
20720
|
+
const count = this.pendingSourceCounts.get(definition.type);
|
|
20721
|
+
return count === undefined || definition.index < count;
|
|
20722
|
+
});
|
|
20723
|
+
this.pendingSourceCounts.clear();
|
|
20724
|
+
if (rowDefinitions.length !== definitions.length) {
|
|
20725
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
20449
20726
|
}
|
|
20450
20727
|
}
|
|
20451
20728
|
finishGesture() {
|
|
@@ -20468,11 +20745,14 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20468
20745
|
}
|
|
20469
20746
|
destroy() {
|
|
20470
20747
|
this.cancel('destroy');
|
|
20748
|
+
this.keepBottomAnchor = false;
|
|
20749
|
+
this.rowDefinitionRemapQueued = false;
|
|
20750
|
+
this.pendingSourceCounts.clear();
|
|
20471
20751
|
super.destroy();
|
|
20472
20752
|
}
|
|
20473
20753
|
}
|
|
20474
20754
|
|
|
20475
|
-
const revoGridStyleCss = () => `revo-grid:is([theme=default],[theme=dark]),revo-grid:not([theme]){--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 4px);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header,revo-grid:not([theme]) revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd,revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-data,revo-grid:not([theme]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=default],[theme=dark]) revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=material],[theme=darkMaterial]),revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .header-rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]) revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl] revogr-header,revo-grid[dir=rtl] revogr-data{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::";display:inline-block}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]){background-color:transparent}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders{background-color:transparent;color:inherit}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell{color:inherit}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var( --revo-grid-border, rgba(255, 255, 255, 0.2) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var( --revo-grid-focused-bg, rgba(52, 58, 64, 0.5) );--rg-theme-row-hover:var( --revo-grid-row-hover, rgba(80, 80, 80, 0.5) );--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, rgba(52, 58, 64, 0.8) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, rgba(255, 255, 255, 0.8) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{}revo-grid>*{--revo-grid-primary:var(--rg-theme-primary);--revo-grid-primary-transparent:var(--rg-theme-primary-transparent);--revo-grid-background:var(--rg-theme-background);--revo-grid-foreground:var(--rg-theme-foreground);--revo-grid-divider:var(--rg-theme-divider);--revo-grid-shadow:var(--rg-theme-shadow);--revo-grid-text:var(--rg-theme-text);--revo-grid-border:var(--rg-theme-border);--revo-grid-header-bg:var(--rg-theme-header-bg);--revo-grid-header-color:var(--rg-theme-header-color);--revo-grid-header-border:var(--rg-theme-header-border);--revo-grid-header-focused-bg:var(--rg-theme-header-focused-bg);--revo-grid-header-hover-bg:var(--rg-theme-header-hover-bg);--revo-grid-cell-border:var(--rg-theme-cell-border);--revo-grid-cell-vertical-border:var(--rg-theme-cell-vertical-border);--revo-grid-focused-bg:var(--rg-theme-focused-bg);--revo-grid-row-hover:var(--rg-theme-row-hover);--revo-grid-row-headers-bg:var(--rg-theme-row-headers-bg);--revo-grid-row-headers-color:var(--rg-theme-row-headers-color);--revo-grid-cell-disabled-bg:var(--rg-theme-cell-disabled-bg);--revo-grid-filter-panel-bg:var(--rg-theme-filter-panel-bg);--revo-grid-filter-panel-border:var(--rg-theme-filter-panel-border);--revo-grid-filter-panel-shadow:var(--rg-theme-filter-panel-shadow);--revo-grid-filter-panel-input-bg:var(--rg-theme-filter-panel-input-bg);--revo-grid-filter-panel-divider:var(--rg-theme-filter-panel-divider);--revo-grid-filter-panel-select-border:var(--rg-theme-filter-panel-select-border);--revo-grid-filter-panel-select-border-hover:var(--rg-theme-filter-panel-select-border-hover);--revo-grid-filter-panel-reorder-accent:var(--rg-theme-filter-panel-reorder-accent);--revo-grid-filter-panel-reorder-color:var(--rg-theme-filter-panel-reorder-color);--revo-grid-filter-panel-text:var(--rg-theme-filter-panel-text);--revo-grid-filter-panel-muted-text:var(--rg-theme-filter-panel-muted-text);--revo-grid-filter-panel-focus-ring:var(--rg-theme-filter-panel-focus-ring);--revo-grid-filter-panel-icon:var(--rg-theme-filter-panel-icon);--revo-grid-filter-panel-icon-active:var(--rg-theme-filter-panel-icon-active);--revo-grid-font-family:var(--rg-theme-font-family);--revo-grid-font-size:var(--rg-theme-font-size);--revo-grid-header-height:var(--rg-theme-header-height);--revo-grid-header-font-size:var(--rg-theme-header-font-size);--revo-grid-header-font-weight:var(--rg-theme-header-font-weight);--revo-grid-header-text-transform:var(--rg-theme-header-text-transform);--revo-grid-header-text-align:var(--rg-theme-header-text-align);--revo-grid-cell-text-align:var(--rg-theme-cell-text-align);--revo-grid-header-padding:var(--rg-theme-header-padding);--revo-grid-cell-padding:var(--rg-theme-cell-padding);--revo-grid-selection-border:var(--rg-theme-selection-border);--revo-grid-selection-bg:var(--rg-theme-selection-bg);--revo-grid-autofill-handle-bg:var(--rg-theme-autofill-handle-bg);--revo-grid-autofill-handle-border:var(--rg-theme-autofill-handle-border);--revo-grid-range-handle-bg:var(--rg-theme-range-handle-bg);--revo-grid-temporary-range-border:var(--rg-theme-temporary-range-border);--revo-grid-temporary-selection-border:var(--rg-theme-temporary-selection-border);--revo-grid-header-resize-hover:var(--rg-theme-header-resize-hover);--revo-grid-button-text:var(--rg-theme-button-text);--revo-grid-button-bg:var(--rg-theme-button-bg);--revo-grid-button-success-bg:var(--rg-theme-button-success-bg);--revo-grid-button-danger-bg:var(--rg-theme-button-danger-bg);--revo-grid-button-outline-border:var(--rg-theme-button-outline-border);--revo-grid-button-outline-text:var(--rg-theme-button-outline-text)}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`;
|
|
20755
|
+
const revoGridStyleCss = () => `revo-grid:is([theme=default],[theme=dark]),revo-grid:not([theme]){--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 4px);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header,revo-grid:not([theme]) revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd,revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-data,revo-grid:not([theme]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=default],[theme=dark]) revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=material],[theme=darkMaterial]),revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:0;text-overflow:ellipsis}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell .header-content,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell .header-content{padding:var(--rg-theme-header-padding)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .header-rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:0;text-overflow:ellipsis}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell .header-content{padding:var(--rg-theme-header-padding)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]) revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl] revogr-header,revo-grid[dir=rtl] revogr-data{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::";display:inline-block}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]){background-color:transparent}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders{background-color:transparent;color:inherit}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell{color:inherit}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var( --revo-grid-border, rgba(255, 255, 255, 0.2) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var( --revo-grid-focused-bg, rgba(52, 58, 64, 0.5) );--rg-theme-row-hover:var( --revo-grid-row-hover, rgba(80, 80, 80, 0.5) );--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, rgba(52, 58, 64, 0.8) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, rgba(255, 255, 255, 0.8) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{}revo-grid>*{--revo-grid-primary:var(--rg-theme-primary);--revo-grid-primary-transparent:var(--rg-theme-primary-transparent);--revo-grid-background:var(--rg-theme-background);--revo-grid-foreground:var(--rg-theme-foreground);--revo-grid-divider:var(--rg-theme-divider);--revo-grid-shadow:var(--rg-theme-shadow);--revo-grid-text:var(--rg-theme-text);--revo-grid-border:var(--rg-theme-border);--revo-grid-header-bg:var(--rg-theme-header-bg);--revo-grid-header-color:var(--rg-theme-header-color);--revo-grid-header-border:var(--rg-theme-header-border);--revo-grid-header-focused-bg:var(--rg-theme-header-focused-bg);--revo-grid-header-hover-bg:var(--rg-theme-header-hover-bg);--revo-grid-cell-border:var(--rg-theme-cell-border);--revo-grid-cell-vertical-border:var(--rg-theme-cell-vertical-border);--revo-grid-focused-bg:var(--rg-theme-focused-bg);--revo-grid-row-hover:var(--rg-theme-row-hover);--revo-grid-row-headers-bg:var(--rg-theme-row-headers-bg);--revo-grid-row-headers-color:var(--rg-theme-row-headers-color);--revo-grid-cell-disabled-bg:var(--rg-theme-cell-disabled-bg);--revo-grid-filter-panel-bg:var(--rg-theme-filter-panel-bg);--revo-grid-filter-panel-border:var(--rg-theme-filter-panel-border);--revo-grid-filter-panel-shadow:var(--rg-theme-filter-panel-shadow);--revo-grid-filter-panel-input-bg:var(--rg-theme-filter-panel-input-bg);--revo-grid-filter-panel-divider:var(--rg-theme-filter-panel-divider);--revo-grid-filter-panel-select-border:var(--rg-theme-filter-panel-select-border);--revo-grid-filter-panel-select-border-hover:var(--rg-theme-filter-panel-select-border-hover);--revo-grid-filter-panel-reorder-accent:var(--rg-theme-filter-panel-reorder-accent);--revo-grid-filter-panel-reorder-color:var(--rg-theme-filter-panel-reorder-color);--revo-grid-filter-panel-text:var(--rg-theme-filter-panel-text);--revo-grid-filter-panel-muted-text:var(--rg-theme-filter-panel-muted-text);--revo-grid-filter-panel-focus-ring:var(--rg-theme-filter-panel-focus-ring);--revo-grid-filter-panel-icon:var(--rg-theme-filter-panel-icon);--revo-grid-filter-panel-icon-active:var(--rg-theme-filter-panel-icon-active);--revo-grid-font-family:var(--rg-theme-font-family);--revo-grid-font-size:var(--rg-theme-font-size);--revo-grid-header-height:var(--rg-theme-header-height);--revo-grid-header-font-size:var(--rg-theme-header-font-size);--revo-grid-header-font-weight:var(--rg-theme-header-font-weight);--revo-grid-header-text-transform:var(--rg-theme-header-text-transform);--revo-grid-header-text-align:var(--rg-theme-header-text-align);--revo-grid-cell-text-align:var(--rg-theme-cell-text-align);--revo-grid-header-padding:var(--rg-theme-header-padding);--revo-grid-cell-padding:var(--rg-theme-cell-padding);--revo-grid-selection-border:var(--rg-theme-selection-border);--revo-grid-selection-bg:var(--rg-theme-selection-bg);--revo-grid-autofill-handle-bg:var(--rg-theme-autofill-handle-bg);--revo-grid-autofill-handle-border:var(--rg-theme-autofill-handle-border);--revo-grid-range-handle-bg:var(--rg-theme-range-handle-bg);--revo-grid-temporary-range-border:var(--rg-theme-temporary-range-border);--revo-grid-temporary-selection-border:var(--rg-theme-temporary-selection-border);--revo-grid-header-resize-hover:var(--rg-theme-header-resize-hover);--revo-grid-button-text:var(--rg-theme-button-text);--revo-grid-button-bg:var(--rg-theme-button-bg);--revo-grid-button-success-bg:var(--rg-theme-button-success-bg);--revo-grid-button-danger-bg:var(--rg-theme-button-danger-bg);--revo-grid-button-outline-border:var(--rg-theme-button-outline-border);--revo-grid-button-outline-text:var(--rg-theme-button-outline-text)}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`;
|
|
20476
20756
|
|
|
20477
20757
|
const DEFAULT_COLUMN_SIZE = 100;
|
|
20478
20758
|
function getColumnSize(size) {
|
|
@@ -21344,29 +21624,31 @@ class RevoGridComponent {
|
|
|
21344
21624
|
vals: after,
|
|
21345
21625
|
oldVals: before,
|
|
21346
21626
|
});
|
|
21347
|
-
|
|
21627
|
+
this.dimensionProvider.syncRowDefinitions(newVal);
|
|
21348
21628
|
const newRows = rowDefinitionByType(newVal);
|
|
21349
|
-
|
|
21350
|
-
|
|
21351
|
-
|
|
21352
|
-
// clear all old data and drop sizes
|
|
21353
|
-
for (const t in remove) {
|
|
21354
|
-
if (remove.hasOwnProperty(t)) {
|
|
21355
|
-
const type = t;
|
|
21356
|
-
const store = this.dataProvider.stores[type];
|
|
21357
|
-
const sourceLength = store.store.get('source').length;
|
|
21358
|
-
this.dimensionProvider.clearSize(type, sourceLength);
|
|
21359
|
-
}
|
|
21360
|
-
}
|
|
21361
|
-
}
|
|
21362
|
-
// set new sizes
|
|
21629
|
+
const oldRows = rowDefinitionByType(oldVal);
|
|
21630
|
+
const dataProvider = this.dataProvider;
|
|
21631
|
+
const dimensionProvider = this.dimensionProvider;
|
|
21363
21632
|
rowTypes.forEach((t) => {
|
|
21364
|
-
var _a;
|
|
21365
21633
|
const newSizes = newRows[t];
|
|
21366
|
-
|
|
21367
|
-
if (newSizes
|
|
21368
|
-
|
|
21634
|
+
const oldSizes = oldRows[t];
|
|
21635
|
+
if (!newSizes && !oldSizes && !forceUpdate) {
|
|
21636
|
+
return;
|
|
21369
21637
|
}
|
|
21638
|
+
const sizes = Object.assign({}, dimensionProvider.stores[t].store.get('sizes'));
|
|
21639
|
+
const definitionSizes = (newSizes === null || newSizes === void 0 ? void 0 : newSizes.sizes) || {};
|
|
21640
|
+
const previousDefinitionSizes = (oldSizes === null || oldSizes === void 0 ? void 0 : oldSizes.sizes) || {};
|
|
21641
|
+
const items = dataProvider.stores[t].store.get('items');
|
|
21642
|
+
items.forEach((physicalIndex, virtualIndex) => {
|
|
21643
|
+
if (Object.hasOwn(previousDefinitionSizes, physicalIndex) &&
|
|
21644
|
+
sizes[virtualIndex] === previousDefinitionSizes[physicalIndex]) {
|
|
21645
|
+
delete sizes[virtualIndex];
|
|
21646
|
+
}
|
|
21647
|
+
if (Object.hasOwn(definitionSizes, physicalIndex)) {
|
|
21648
|
+
sizes[virtualIndex] = definitionSizes[physicalIndex];
|
|
21649
|
+
}
|
|
21650
|
+
});
|
|
21651
|
+
dimensionProvider.setCustomSizes(t, sizes);
|
|
21370
21652
|
});
|
|
21371
21653
|
}
|
|
21372
21654
|
trimmedRowsChanged(newVal = {}) {
|
|
@@ -21415,6 +21697,9 @@ class RevoGridComponent {
|
|
|
21415
21697
|
rowHeadersChange(rowHeaders) {
|
|
21416
21698
|
this.rowheaderschanged.emit(rowHeaders);
|
|
21417
21699
|
}
|
|
21700
|
+
resizeRowChanged() {
|
|
21701
|
+
this.syncRowResizeConfig();
|
|
21702
|
+
}
|
|
21418
21703
|
/**
|
|
21419
21704
|
* Register external VNodes
|
|
21420
21705
|
*/
|
|
@@ -21437,6 +21722,7 @@ class RevoGridComponent {
|
|
|
21437
21722
|
*/
|
|
21438
21723
|
pluginsChanged(plugins = [], prevPlugins) {
|
|
21439
21724
|
this.pluginService.addUserPluginsAndCreate(this.element, plugins, prevPlugins, this.getPluginData());
|
|
21725
|
+
this.syncRowResizeConfig();
|
|
21440
21726
|
}
|
|
21441
21727
|
// #endregion
|
|
21442
21728
|
// #region Plugins
|
|
@@ -21477,11 +21763,15 @@ class RevoGridComponent {
|
|
|
21477
21763
|
this.pluginService.add(new SortingPlugin(this.element, pluginData));
|
|
21478
21764
|
// register grouping plugin
|
|
21479
21765
|
this.pluginService.add(new GroupingRowPlugin(this.element, pluginData));
|
|
21480
|
-
this.pluginService.add(RowResizePlugin
|
|
21766
|
+
this.pluginService.add(new RowResizePlugin(this.element, pluginData));
|
|
21481
21767
|
if (this.canMoveColumns) {
|
|
21482
21768
|
this.pluginService.add(new ColumnMovePlugin(this.element, pluginData));
|
|
21483
21769
|
}
|
|
21484
21770
|
}
|
|
21771
|
+
syncRowResizeConfig() {
|
|
21772
|
+
const plugin = this.pluginService.getByClass(RowResizePlugin);
|
|
21773
|
+
plugin === null || plugin === void 0 ? void 0 : plugin.syncGridConfig();
|
|
21774
|
+
}
|
|
21485
21775
|
getPluginData() {
|
|
21486
21776
|
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider || !this.selectionStoreConnector) {
|
|
21487
21777
|
return;
|
|
@@ -21524,6 +21814,9 @@ class RevoGridComponent {
|
|
|
21524
21814
|
this.themeService.setDefinitions(this.themeDefinitions);
|
|
21525
21815
|
this.dimensionProvider = new DimensionProvider(this.viewportProvider, {
|
|
21526
21816
|
realSizeChanged: (k) => this.contentsizechanged.emit(k),
|
|
21817
|
+
rowDefinitionsChanged: definitions => {
|
|
21818
|
+
this.rowDefinitions = definitions;
|
|
21819
|
+
},
|
|
21527
21820
|
});
|
|
21528
21821
|
this.dimensionProvider.setSettings({ originItemSize: getColumnSize(this.colSize) }, 'rgCol');
|
|
21529
21822
|
this.columnProvider = new ColumnDataProvider();
|
|
@@ -21714,6 +22007,9 @@ class RevoGridComponent {
|
|
|
21714
22007
|
"rowHeaders": [{
|
|
21715
22008
|
"rowHeadersChange": 0
|
|
21716
22009
|
}],
|
|
22010
|
+
"resizeRow": [{
|
|
22011
|
+
"resizeRowChanged": 0
|
|
22012
|
+
}],
|
|
21717
22013
|
"registerVNode": [{
|
|
21718
22014
|
"registerOutsideVNodes": 0
|
|
21719
22015
|
}],
|
|
@@ -22447,19 +22743,20 @@ const HeaderRenderer = (p) => {
|
|
|
22447
22743
|
const hasSortingSign = !!(((_a = p.data) === null || _a === void 0 ? void 0 : _a.sortable) ||
|
|
22448
22744
|
((_b = p.data) === null || _b === void 0 ? void 0 : _b.order) ||
|
|
22449
22745
|
((_c = p.data) === null || _c === void 0 ? void 0 : _c.sortIndex));
|
|
22746
|
+
const hasFilterButton = !!(p.canFilter && ((_d = p.data) === null || _d === void 0 ? void 0 : _d.filter) !== false);
|
|
22450
22747
|
const cellClass = {
|
|
22451
22748
|
[HEADER_CLASS]: true,
|
|
22452
|
-
[HEADER_SORTABLE_CLASS]: !!((
|
|
22749
|
+
[HEADER_SORTABLE_CLASS]: !!((_e = p.data) === null || _e === void 0 ? void 0 : _e.sortable),
|
|
22453
22750
|
};
|
|
22454
|
-
if ((
|
|
22751
|
+
if ((_f = p.data) === null || _f === void 0 ? void 0 : _f.order) {
|
|
22455
22752
|
cellClass[p.data.order] = true;
|
|
22456
22753
|
}
|
|
22457
22754
|
const dataProps = {
|
|
22458
|
-
key: String((
|
|
22755
|
+
key: String((_h = (_g = p.data) === null || _g === void 0 ? void 0 : _g.prop) !== null && _h !== void 0 ? _h : p.column.itemIndex),
|
|
22459
22756
|
[DATA_COL]: p.column.itemIndex,
|
|
22460
22757
|
canResize: p.canResize,
|
|
22461
|
-
minWidth: ((
|
|
22462
|
-
maxWidth: (
|
|
22758
|
+
minWidth: ((_j = p.data) === null || _j === void 0 ? void 0 : _j.minSize) || MIN_COL_SIZE,
|
|
22759
|
+
maxWidth: (_k = p.data) === null || _k === void 0 ? void 0 : _k.maxSize,
|
|
22463
22760
|
active: p.active || ['r'],
|
|
22464
22761
|
class: cellClass,
|
|
22465
22762
|
style: {
|
|
@@ -22495,7 +22792,7 @@ const HeaderRenderer = (p) => {
|
|
|
22495
22792
|
}
|
|
22496
22793
|
}
|
|
22497
22794
|
}
|
|
22498
|
-
return (hAsync(HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, hasSortingSign ? hAsync(
|
|
22795
|
+
return (hAsync(HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, hasSortingSign || hasFilterButton ? (hAsync("span", { class: "header-controls" }, hasSortingSign ? hAsync(SortingSign, { column: p.data }) : null, hasFilterButton ? hAsync(FilterButton, { column: p.data }) : null)) : null));
|
|
22499
22796
|
};
|
|
22500
22797
|
|
|
22501
22798
|
const HeaderGroupRenderer = (p) => {
|
|
@@ -22517,7 +22814,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
22517
22814
|
return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
|
|
22518
22815
|
};
|
|
22519
22816
|
|
|
22520
|
-
const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex;text-align:var(--rg-theme-header-text-align, center)}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{position:absolute;z-index:0;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell
|
|
22817
|
+
const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex;text-align:var(--rg-theme-header-text-align, center)}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{position:absolute;z-index:0;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .header-controls{position:absolute;top:0;right:1px;bottom:1px;min-width:15px;z-index:1;display:flex;align-items:center}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`;
|
|
22521
22818
|
|
|
22522
22819
|
class RevogrHeaderComponent {
|
|
22523
22820
|
constructor(hostRef) {
|