@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.mjs
CHANGED
|
@@ -7520,9 +7520,10 @@ const AND_OR_BUTTON = 'and-or-button';
|
|
|
7520
7520
|
const TRASH_BUTTON = 'trash-button';
|
|
7521
7521
|
const REORDER_BUTTON = 'reorder-button';
|
|
7522
7522
|
const FilterButton = ({ column }) => {
|
|
7523
|
-
|
|
7523
|
+
const active = !!(column === null || column === void 0 ? void 0 : column[FILTER_PROP]);
|
|
7524
|
+
return (hAsync("span", { class: "filter-button-wrapper" }, hAsync("button", { class: {
|
|
7524
7525
|
[FILTER_BUTTON_CLASS]: true,
|
|
7525
|
-
[FILTER_BUTTON_ACTIVE]:
|
|
7526
|
+
[FILTER_BUTTON_ACTIVE]: active,
|
|
7526
7527
|
} }, 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" }))))));
|
|
7527
7528
|
};
|
|
7528
7529
|
const TrashButton = ({ ariaLabel, onClick }) => {
|
|
@@ -7606,7 +7607,7 @@ function moveFilterItem(items, sourceId, targetId) {
|
|
|
7606
7607
|
return true;
|
|
7607
7608
|
}
|
|
7608
7609
|
|
|
7609
|
-
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{
|
|
7610
|
+
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}`;
|
|
7610
7611
|
|
|
7611
7612
|
const defaultType = 'none';
|
|
7612
7613
|
const FILTER_LIST_CLASS = 'multi-filter-list';
|
|
@@ -7624,6 +7625,7 @@ class FilterPanel {
|
|
|
7624
7625
|
registerInstance(this, hostRef);
|
|
7625
7626
|
this.filterChange = createEvent(this, "filterChange", 7);
|
|
7626
7627
|
this.resetChange = createEvent(this, "resetChange", 7);
|
|
7628
|
+
this.hasChanges = false;
|
|
7627
7629
|
this.filterCaptionsInternal = {
|
|
7628
7630
|
title: 'Filter by',
|
|
7629
7631
|
ok: 'Close',
|
|
@@ -7659,7 +7661,7 @@ class FilterPanel {
|
|
|
7659
7661
|
*/
|
|
7660
7662
|
this.allowDuplicateOperators = true;
|
|
7661
7663
|
this.debouncedApplyFilter = debounce$1(() => {
|
|
7662
|
-
this.
|
|
7664
|
+
this.emitFilterChange();
|
|
7663
7665
|
}, 400);
|
|
7664
7666
|
}
|
|
7665
7667
|
onMouseDown(e) {
|
|
@@ -7689,10 +7691,25 @@ class FilterPanel {
|
|
|
7689
7691
|
}
|
|
7690
7692
|
}
|
|
7691
7693
|
async show(newEntity) {
|
|
7694
|
+
this.hasChanges = false;
|
|
7692
7695
|
this.changes = newEntity;
|
|
7693
|
-
this.filterItems = (newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {};
|
|
7696
|
+
this.filterItems = this.cloneFilterItems((newEntity === null || newEntity === void 0 ? void 0 : newEntity.filterItems) || {});
|
|
7697
|
+
this.draftFilter = undefined;
|
|
7694
7698
|
if (this.changes) {
|
|
7695
7699
|
this.changes.type = this.changes.type || defaultType;
|
|
7700
|
+
const prop = this.changes.prop;
|
|
7701
|
+
const propFilters = prop === undefined ? undefined : this.filterItems[prop];
|
|
7702
|
+
if (!(propFilters === null || propFilters === void 0 ? void 0 : propFilters.length) && this.changes.showDefaultFilter !== false) {
|
|
7703
|
+
const type = this.resolveDraftFilterType(this.changes.defaultFilterType);
|
|
7704
|
+
if (type) {
|
|
7705
|
+
this.draftFilter = {
|
|
7706
|
+
id: ++this.filterId,
|
|
7707
|
+
type,
|
|
7708
|
+
value: '',
|
|
7709
|
+
relation: 'and',
|
|
7710
|
+
};
|
|
7711
|
+
}
|
|
7712
|
+
}
|
|
7696
7713
|
}
|
|
7697
7714
|
}
|
|
7698
7715
|
async getChanges() {
|
|
@@ -7713,29 +7730,42 @@ class FilterPanel {
|
|
|
7713
7730
|
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7714
7731
|
if (prop === undefined)
|
|
7715
7732
|
return '';
|
|
7716
|
-
const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []
|
|
7717
|
-
|
|
7733
|
+
const propFilters = ((_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : []).map((filter, index) => ({
|
|
7734
|
+
filter,
|
|
7735
|
+
index,
|
|
7736
|
+
isDraft: false,
|
|
7737
|
+
}));
|
|
7738
|
+
if (this.draftFilter) {
|
|
7739
|
+
propFilters.push({
|
|
7740
|
+
filter: this.draftFilter,
|
|
7741
|
+
index: propFilters.length,
|
|
7742
|
+
isDraft: true,
|
|
7743
|
+
});
|
|
7744
|
+
}
|
|
7745
|
+
const visibleFilters = propFilters.filter(({ filter }) => !filter.hidden);
|
|
7746
|
+
const visibleFilterCount = visibleFilters.length;
|
|
7718
7747
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
7719
|
-
return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map((filter, index) => {
|
|
7748
|
+
return (hAsync("div", { key: this.filterId }, hAsync("ul", { class: "multi-filter-list-container" }, propFilters.map(({ filter, index, isDraft }) => {
|
|
7749
|
+
var _a;
|
|
7720
7750
|
let andOrButton;
|
|
7721
7751
|
if (filter.hidden) {
|
|
7722
7752
|
return;
|
|
7723
7753
|
}
|
|
7724
7754
|
// hide toggle button if there is only one filter and the last one
|
|
7725
|
-
if (
|
|
7755
|
+
if (((_a = visibleFilters[visibleFilterCount - 1]) === null || _a === void 0 ? void 0 : _a.filter.id) !== filter.id) {
|
|
7726
7756
|
andOrButton = (hAsync(AndOrButton, { text: filter.relation === 'and' ? capts.and : capts.or, onClick: () => this.toggleFilterAndOr(filter.id) }));
|
|
7727
7757
|
}
|
|
7728
|
-
const extra = this.renderExtra(prop, index);
|
|
7758
|
+
const extra = this.renderExtra(prop, index, isDraft);
|
|
7729
7759
|
const isDragging = this.draggedFilterId === filter.id;
|
|
7730
7760
|
const isDragOver = this.dragOverFilterId === filter.id && !isDragging;
|
|
7731
|
-
const canReorder = visibleFilterCount > 1;
|
|
7761
|
+
const canReorder = visibleFilterCount > 1 && !isDraft;
|
|
7732
7762
|
return (hAsync("li", { key: filter.id, class: FILTER_LIST_CLASS, "aria-label": `${capts.filterCondition} ${index + 1}` }, hAsync("div", { class: {
|
|
7733
7763
|
'multi-filter-list-row': true,
|
|
7734
7764
|
'filter-row-drop-active': this.draggedFilterId !== undefined && !isDragging,
|
|
7735
7765
|
'filter-row-dragging': isDragging,
|
|
7736
7766
|
'filter-row-drag-over': isDragOver,
|
|
7737
|
-
} }, 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(
|
|
7738
|
-
})),
|
|
7767
|
+
} }, 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) })))));
|
|
7768
|
+
})), visibleFilterCount ? hAsync("div", { class: "add-filter-divider" }) : ''));
|
|
7739
7769
|
}
|
|
7740
7770
|
componentDidRender() {
|
|
7741
7771
|
this.syncDialog();
|
|
@@ -7784,16 +7814,24 @@ class FilterPanel {
|
|
|
7784
7814
|
el.style.left = `${left}px`;
|
|
7785
7815
|
el.style.top = `${top}px`;
|
|
7786
7816
|
}
|
|
7787
|
-
onFilterTypeChange(e, prop, index) {
|
|
7817
|
+
onFilterTypeChange(e, prop, index, isDraft = false) {
|
|
7788
7818
|
if (!(e.target instanceof HTMLSelectElement)) {
|
|
7789
7819
|
return;
|
|
7790
7820
|
}
|
|
7791
|
-
|
|
7821
|
+
const type = e.target.value;
|
|
7822
|
+
const filter = isDraft
|
|
7823
|
+
? this.promoteDraft(prop, type)
|
|
7824
|
+
: this.filterItems[prop][index];
|
|
7825
|
+
if (!filter) {
|
|
7826
|
+
return;
|
|
7827
|
+
}
|
|
7828
|
+
filter.type = type;
|
|
7829
|
+
this.hasChanges = true;
|
|
7792
7830
|
// this re-renders the input to know if we need extra input
|
|
7793
7831
|
this.filterId++;
|
|
7794
7832
|
// adding setTimeout will wait for the next tick DOM update then focus on input
|
|
7795
7833
|
setTimeout(() => {
|
|
7796
|
-
const input = document.getElementById('filter-input-' +
|
|
7834
|
+
const input = document.getElementById('filter-input-' + filter.id);
|
|
7797
7835
|
if (input instanceof HTMLInputElement) {
|
|
7798
7836
|
input.focus();
|
|
7799
7837
|
}
|
|
@@ -7828,12 +7866,20 @@ class FilterPanel {
|
|
|
7828
7866
|
return;
|
|
7829
7867
|
this.filterId++;
|
|
7830
7868
|
this.currentFilterId = this.filterId;
|
|
7831
|
-
this.
|
|
7832
|
-
id
|
|
7833
|
-
type
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7869
|
+
if (this.draftFilter) {
|
|
7870
|
+
this.draftFilter.id = this.currentFilterId;
|
|
7871
|
+
this.draftFilter.type = this.currentFilterType;
|
|
7872
|
+
this.promoteDraft(prop);
|
|
7873
|
+
}
|
|
7874
|
+
else {
|
|
7875
|
+
this.filterItems[prop].push({
|
|
7876
|
+
id: this.currentFilterId,
|
|
7877
|
+
type: this.currentFilterType,
|
|
7878
|
+
value: '',
|
|
7879
|
+
relation: 'and',
|
|
7880
|
+
});
|
|
7881
|
+
this.hasChanges = true;
|
|
7882
|
+
}
|
|
7837
7883
|
// adding setTimeout will wait for the next tick DOM update then focus on input
|
|
7838
7884
|
setTimeout(() => {
|
|
7839
7885
|
const input = document.getElementById('filter-input-' + this.currentFilterId);
|
|
@@ -7842,7 +7888,9 @@ class FilterPanel {
|
|
|
7842
7888
|
}, 0);
|
|
7843
7889
|
}
|
|
7844
7890
|
onSave() {
|
|
7845
|
-
|
|
7891
|
+
if (this.hasChanges) {
|
|
7892
|
+
this.emitFilterChange();
|
|
7893
|
+
}
|
|
7846
7894
|
}
|
|
7847
7895
|
onCancel() {
|
|
7848
7896
|
this.changes = undefined;
|
|
@@ -7850,16 +7898,25 @@ class FilterPanel {
|
|
|
7850
7898
|
onReset() {
|
|
7851
7899
|
var _a;
|
|
7852
7900
|
this.assertChanges();
|
|
7853
|
-
this.
|
|
7901
|
+
this.draftFilter = undefined;
|
|
7902
|
+
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7903
|
+
if (prop !== undefined) {
|
|
7904
|
+
delete this.filterItems[prop];
|
|
7905
|
+
}
|
|
7906
|
+
this.resetChange.emit(prop);
|
|
7854
7907
|
// this updates the DOM which is used by getFilterItemsList() key
|
|
7855
7908
|
this.filterId++;
|
|
7856
7909
|
}
|
|
7857
7910
|
onRemoveFilter(id) {
|
|
7858
|
-
var _a;
|
|
7911
|
+
var _a, _b;
|
|
7859
7912
|
this.assertChanges();
|
|
7860
7913
|
// this is for reactivity issues for getFilterItemsList()
|
|
7861
7914
|
this.filterId++;
|
|
7862
7915
|
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7916
|
+
if (((_b = this.draftFilter) === null || _b === void 0 ? void 0 : _b.id) === id) {
|
|
7917
|
+
this.draftFilter = undefined;
|
|
7918
|
+
return;
|
|
7919
|
+
}
|
|
7863
7920
|
const items = this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
7864
7921
|
if (!items)
|
|
7865
7922
|
return;
|
|
@@ -7867,6 +7924,7 @@ class FilterPanel {
|
|
|
7867
7924
|
if (index === -1)
|
|
7868
7925
|
return;
|
|
7869
7926
|
items.splice(index, 1);
|
|
7927
|
+
this.hasChanges = true;
|
|
7870
7928
|
// let's remove the prop if no more filters so the filter icon will be removed
|
|
7871
7929
|
if (items.length === 0)
|
|
7872
7930
|
delete this.filterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
@@ -7908,6 +7966,7 @@ class FilterPanel {
|
|
|
7908
7966
|
if (!moveFilterItem(items, sourceId, targetId)) {
|
|
7909
7967
|
return;
|
|
7910
7968
|
}
|
|
7969
|
+
this.hasChanges = true;
|
|
7911
7970
|
this.filterId++;
|
|
7912
7971
|
if (!this.disableDynamicFiltering) {
|
|
7913
7972
|
this.debouncedApplyFilter();
|
|
@@ -7943,6 +8002,7 @@ class FilterPanel {
|
|
|
7943
8002
|
if (!target || !moveFilterItem(items, sourceId, target.id)) {
|
|
7944
8003
|
return;
|
|
7945
8004
|
}
|
|
8005
|
+
this.hasChanges = true;
|
|
7946
8006
|
this.filterId++;
|
|
7947
8007
|
if (!this.disableDynamicFiltering) {
|
|
7948
8008
|
this.debouncedApplyFilter();
|
|
@@ -7961,6 +8021,7 @@ class FilterPanel {
|
|
|
7961
8021
|
if (index === -1)
|
|
7962
8022
|
return;
|
|
7963
8023
|
items[index].relation = items[index].relation === 'and' ? 'or' : 'and';
|
|
8024
|
+
this.hasChanges = true;
|
|
7964
8025
|
if (!this.disableDynamicFiltering) {
|
|
7965
8026
|
this.debouncedApplyFilter();
|
|
7966
8027
|
}
|
|
@@ -8009,12 +8070,22 @@ class FilterPanel {
|
|
|
8009
8070
|
}
|
|
8010
8071
|
return options;
|
|
8011
8072
|
}
|
|
8012
|
-
renderExtra(prop, index) {
|
|
8013
|
-
|
|
8073
|
+
renderExtra(prop, index, isDraft = false) {
|
|
8074
|
+
var _a, _b;
|
|
8075
|
+
const currentFilter = isDraft
|
|
8076
|
+
? this.draftFilter
|
|
8077
|
+
: (_a = this.filterItems[prop]) === null || _a === void 0 ? void 0 : _a[index];
|
|
8014
8078
|
if (!currentFilter)
|
|
8015
8079
|
return '';
|
|
8016
8080
|
const applyFilter = (value) => {
|
|
8017
|
-
|
|
8081
|
+
currentFilter.value = value;
|
|
8082
|
+
if (isDraft && !this.isMeaningfulDraftValue(value)) {
|
|
8083
|
+
return;
|
|
8084
|
+
}
|
|
8085
|
+
if (isDraft && !this.promoteDraft(prop)) {
|
|
8086
|
+
return;
|
|
8087
|
+
}
|
|
8088
|
+
this.hasChanges = true;
|
|
8018
8089
|
if (!this.disableDynamicFiltering) {
|
|
8019
8090
|
this.debouncedApplyFilter();
|
|
8020
8091
|
}
|
|
@@ -8029,11 +8100,11 @@ class FilterPanel {
|
|
|
8029
8100
|
}
|
|
8030
8101
|
};
|
|
8031
8102
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
8032
|
-
const extra = this.filterEntities[currentFilter
|
|
8103
|
+
const extra = (_b = this.filterEntities[currentFilter.type]) === null || _b === void 0 ? void 0 : _b.extra;
|
|
8033
8104
|
if (typeof extra === 'function') {
|
|
8034
8105
|
return extra(hAsync, {
|
|
8035
|
-
value: currentFilter
|
|
8036
|
-
filter: currentFilter
|
|
8106
|
+
value: currentFilter.value,
|
|
8107
|
+
filter: currentFilter,
|
|
8037
8108
|
prop,
|
|
8038
8109
|
index,
|
|
8039
8110
|
placeholder: capts.placeholder,
|
|
@@ -8048,7 +8119,7 @@ class FilterPanel {
|
|
|
8048
8119
|
if (extra !== 'input' && extra !== 'datepicker') {
|
|
8049
8120
|
return '';
|
|
8050
8121
|
}
|
|
8051
|
-
return (hAsync("input", { id: `filter-input-${currentFilter
|
|
8122
|
+
return (hAsync("input", { id: `filter-input-${currentFilter.id}`, placeholder: capts.placeholder, type: extra === 'datepicker' ? 'date' : 'text', value: currentFilter.value, onInput: (e) => {
|
|
8052
8123
|
if (e.target instanceof HTMLInputElement) {
|
|
8053
8124
|
applyFilter(e.target.value);
|
|
8054
8125
|
}
|
|
@@ -8064,6 +8135,42 @@ class FilterPanel {
|
|
|
8064
8135
|
e.stopPropagation();
|
|
8065
8136
|
} }));
|
|
8066
8137
|
}
|
|
8138
|
+
resolveDraftFilterType(preferred) {
|
|
8139
|
+
var _a, _b;
|
|
8140
|
+
const available = Object.values((_b = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.filterTypes) !== null && _b !== void 0 ? _b : {}).flat();
|
|
8141
|
+
const type = preferred && available.includes(preferred)
|
|
8142
|
+
? preferred
|
|
8143
|
+
: available[0];
|
|
8144
|
+
return type;
|
|
8145
|
+
}
|
|
8146
|
+
promoteDraft(prop, type) {
|
|
8147
|
+
if (!this.draftFilter) {
|
|
8148
|
+
return;
|
|
8149
|
+
}
|
|
8150
|
+
if (!this.filterItems[prop]) {
|
|
8151
|
+
this.filterItems[prop] = [];
|
|
8152
|
+
}
|
|
8153
|
+
if (type) {
|
|
8154
|
+
this.draftFilter.type = type;
|
|
8155
|
+
}
|
|
8156
|
+
const filter = this.draftFilter;
|
|
8157
|
+
this.filterItems[prop].push(filter);
|
|
8158
|
+
this.draftFilter = undefined;
|
|
8159
|
+
this.hasChanges = true;
|
|
8160
|
+
return filter;
|
|
8161
|
+
}
|
|
8162
|
+
isMeaningfulDraftValue(value) {
|
|
8163
|
+
return value !== '' && value !== undefined && value !== null;
|
|
8164
|
+
}
|
|
8165
|
+
emitFilterChange() {
|
|
8166
|
+
this.filterChange.emit(this.cloneFilterItems(this.filterItems));
|
|
8167
|
+
}
|
|
8168
|
+
cloneFilterItems(filterItems) {
|
|
8169
|
+
return Object.fromEntries(Object.entries(filterItems).map(([prop, filters]) => [
|
|
8170
|
+
prop,
|
|
8171
|
+
filters.map(filter => (Object.assign({}, filter))),
|
|
8172
|
+
]));
|
|
8173
|
+
}
|
|
8067
8174
|
getAddFilterSelect() {
|
|
8068
8175
|
return this.element.querySelector(`#${FILTER_ID}`);
|
|
8069
8176
|
}
|
|
@@ -8096,7 +8203,7 @@ class FilterPanel {
|
|
|
8096
8203
|
top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
|
|
8097
8204
|
};
|
|
8098
8205
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
8099
|
-
return (hAsync(Host, { key: '
|
|
8206
|
+
return (hAsync(Host, { key: '0bb6ac39407141e989b6a2f54063ee5ed789e40e' }, hAsync("dialog", { key: '28a919ca4184018e8f00bbd31d373e153306d163', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
|
|
8100
8207
|
e.preventDefault();
|
|
8101
8208
|
this.onCancel();
|
|
8102
8209
|
} }, this.changes && [
|
|
@@ -8105,7 +8212,7 @@ class FilterPanel {
|
|
|
8105
8212
|
((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
|
|
8106
8213
|
hAsync("label", { key: "filter-title" }, capts.title),
|
|
8107
8214
|
hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
|
|
8108
|
-
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '
|
|
8215
|
+
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))),
|
|
8109
8216
|
],
|
|
8110
8217
|
hAsync("slot", { key: "default-slot" }),
|
|
8111
8218
|
((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
|
|
@@ -8137,6 +8244,7 @@ class FilterPanel {
|
|
|
8137
8244
|
"currentFilterType": [32],
|
|
8138
8245
|
"changes": [32],
|
|
8139
8246
|
"filterItems": [32],
|
|
8247
|
+
"draftFilter": [32],
|
|
8140
8248
|
"draggedFilterId": [32],
|
|
8141
8249
|
"dragOverFilterId": [32],
|
|
8142
8250
|
"show": [64],
|
|
@@ -13077,6 +13185,7 @@ const GROUP_COLUMN_PROP = `${GRID_INTERNALS}-prop`;
|
|
|
13077
13185
|
const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;
|
|
13078
13186
|
const GROUP_EXPAND_BTN = `group-expand`;
|
|
13079
13187
|
const GROUP_EXPAND_EVENT = `groupexpandclick`;
|
|
13188
|
+
const BEFORE_GROUPING_APPLY_EVENT = `beforegroupingapply`;
|
|
13080
13189
|
const GROUPING_ROW_TYPE = 'rgRow';
|
|
13081
13190
|
|
|
13082
13191
|
function getGroupValueDefault(item, prop, emptyGroupValue) {
|
|
@@ -15373,7 +15482,9 @@ function isVirtualXDimension(type, disableVirtualX = false, virtualX = DEFAULT_V
|
|
|
15373
15482
|
class DimensionProvider {
|
|
15374
15483
|
constructor(viewports, config) {
|
|
15375
15484
|
this.viewports = viewports;
|
|
15376
|
-
|
|
15485
|
+
this.config = config;
|
|
15486
|
+
this.rowDefinitions = [];
|
|
15487
|
+
const sizeChanged = debounce$1((k) => this.config.realSizeChanged(k), RESIZE_INTERVAL);
|
|
15377
15488
|
this.stores = [...rowTypes, ...columnTypes].reduce((sources, t) => {
|
|
15378
15489
|
sources[t] = new DimensionStore(t);
|
|
15379
15490
|
sources[t].store.onChange('realSize', () => sizeChanged(t));
|
|
@@ -15391,6 +15502,20 @@ class DimensionProvider {
|
|
|
15391
15502
|
this.viewports.stores[t].setOriginalSizes(this.stores[t].store.get('originItemSize'));
|
|
15392
15503
|
this.setItemCount(count, t);
|
|
15393
15504
|
}
|
|
15505
|
+
getRowDefinitions() {
|
|
15506
|
+
return this.rowDefinitions;
|
|
15507
|
+
}
|
|
15508
|
+
syncRowDefinitions(definitions) {
|
|
15509
|
+
this.rowDefinitions = definitions;
|
|
15510
|
+
}
|
|
15511
|
+
setRowDefinitions(definitions) {
|
|
15512
|
+
var _a, _b;
|
|
15513
|
+
if (definitions === this.rowDefinitions) {
|
|
15514
|
+
return;
|
|
15515
|
+
}
|
|
15516
|
+
this.syncRowDefinitions(definitions);
|
|
15517
|
+
(_b = (_a = this.config).rowDefinitionsChanged) === null || _b === void 0 ? void 0 : _b.call(_a, definitions);
|
|
15518
|
+
}
|
|
15394
15519
|
/**
|
|
15395
15520
|
* Apply new custom sizes to dimension and view port
|
|
15396
15521
|
* @param type - dimension type
|
|
@@ -16375,6 +16500,11 @@ const filterTypes = {
|
|
|
16375
16500
|
boolean: ['notEmpty', 'empty'],
|
|
16376
16501
|
array: ['notEmpty', 'empty'],
|
|
16377
16502
|
};
|
|
16503
|
+
/** Preferred initial operator for built-in filter families. */
|
|
16504
|
+
const filterTypeDefaults = {
|
|
16505
|
+
string: 'contains',
|
|
16506
|
+
number: 'eqN',
|
|
16507
|
+
};
|
|
16378
16508
|
const filterNames = {
|
|
16379
16509
|
none: 'None',
|
|
16380
16510
|
empty: 'Is blank',
|
|
@@ -16417,6 +16547,8 @@ const FILTE_PANEL = 'revogr-filter-panel';
|
|
|
16417
16547
|
*
|
|
16418
16548
|
* @property {FilterLocalization|undefined} localization - translation for filter popup captions.
|
|
16419
16549
|
*
|
|
16550
|
+
* @property {boolean|undefined} defaultFilter - creates a draft condition when an empty filter panel opens. Defaults to true.
|
|
16551
|
+
*
|
|
16420
16552
|
* @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
|
|
16421
16553
|
*/
|
|
16422
16554
|
/**
|
|
@@ -16438,7 +16570,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
16438
16570
|
* number: ['eqN', 'neqN', 'gt']
|
|
16439
16571
|
* }
|
|
16440
16572
|
*/
|
|
16441
|
-
this.filterByType = Object.
|
|
16573
|
+
this.filterByType = Object.fromEntries(Object.entries(filterTypes).map(([type, filters]) => [type, [...filters]]));
|
|
16442
16574
|
this.filterNameIndexByType = Object.assign({}, filterNames);
|
|
16443
16575
|
this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
|
|
16444
16576
|
this.filterProp = FILTER_PROP;
|
|
@@ -16522,11 +16654,16 @@ class FilterPlugin extends BasePlugin {
|
|
|
16522
16654
|
return null;
|
|
16523
16655
|
}
|
|
16524
16656
|
initConfig(config) {
|
|
16525
|
-
var _a;
|
|
16657
|
+
var _a, _b, _c, _d;
|
|
16526
16658
|
this.config = config;
|
|
16527
16659
|
this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
|
|
16528
16660
|
if (this.pop) {
|
|
16529
16661
|
this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
|
|
16662
|
+
this.pop.disableDynamicFiltering =
|
|
16663
|
+
(_b = config.disableDynamicFiltering) !== null && _b !== void 0 ? _b : false;
|
|
16664
|
+
this.pop.closeOnOutsideClick =
|
|
16665
|
+
(_c = config.closeFilterPanelOnOutsideClick) !== null && _c !== void 0 ? _c : true;
|
|
16666
|
+
this.pop.filterCaptions = (_d = config.localization) === null || _d === void 0 ? void 0 : _d.captions;
|
|
16530
16667
|
}
|
|
16531
16668
|
if (config.multiFilterItems) {
|
|
16532
16669
|
this.multiFilterItems = Object.assign({}, config.multiFilterItems);
|
|
@@ -16615,11 +16752,12 @@ class FilterPlugin extends BasePlugin {
|
|
|
16615
16752
|
}
|
|
16616
16753
|
// filter button clicked, open filter dialog
|
|
16617
16754
|
const buttonPos = (filterButton instanceof HTMLElement ? filterButton : el).getBoundingClientRect();
|
|
16618
|
-
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 });
|
|
16755
|
+
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 });
|
|
16619
16756
|
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
16620
16757
|
this.pop.show(data);
|
|
16621
16758
|
}
|
|
16622
|
-
getColumnFilter(
|
|
16759
|
+
getColumnFilter(config) {
|
|
16760
|
+
const type = this.isColumnFilterOption(config) ? config.type : config;
|
|
16623
16761
|
let filterType = 'string';
|
|
16624
16762
|
if (!type) {
|
|
16625
16763
|
return { [filterType]: this.filterByType[filterType] };
|
|
@@ -16639,6 +16777,41 @@ class FilterPlugin extends BasePlugin {
|
|
|
16639
16777
|
}
|
|
16640
16778
|
return { [filterType]: this.filterByType[filterType] };
|
|
16641
16779
|
}
|
|
16780
|
+
/** Resolve the preferred operator against the column's available filters. */
|
|
16781
|
+
getDefaultFilter(config) {
|
|
16782
|
+
var _a;
|
|
16783
|
+
const filters = this.getColumnFilter(config);
|
|
16784
|
+
const availableFilters = Object.values(filters).flat();
|
|
16785
|
+
const columnDefault = this.isColumnFilterOption(config)
|
|
16786
|
+
? config.default
|
|
16787
|
+
: undefined;
|
|
16788
|
+
if (typeof columnDefault === 'string' &&
|
|
16789
|
+
availableFilters.includes(columnDefault)) {
|
|
16790
|
+
return columnDefault;
|
|
16791
|
+
}
|
|
16792
|
+
const firstFamily = Object.keys(filters)[0];
|
|
16793
|
+
const familyDefault = filterTypeDefaults[firstFamily];
|
|
16794
|
+
if (familyDefault && ((_a = filters[firstFamily]) === null || _a === void 0 ? void 0 : _a.includes(familyDefault))) {
|
|
16795
|
+
return familyDefault;
|
|
16796
|
+
}
|
|
16797
|
+
return availableFilters[0];
|
|
16798
|
+
}
|
|
16799
|
+
/** Resolve grid and column-level draft opt-outs. */
|
|
16800
|
+
shouldShowDefaultFilter(config) {
|
|
16801
|
+
var _a;
|
|
16802
|
+
if (this.isColumnFilterOption(config)) {
|
|
16803
|
+
if (config.default === false) {
|
|
16804
|
+
return false;
|
|
16805
|
+
}
|
|
16806
|
+
if (typeof config.default === 'string') {
|
|
16807
|
+
return true;
|
|
16808
|
+
}
|
|
16809
|
+
}
|
|
16810
|
+
return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultFilter) !== false;
|
|
16811
|
+
}
|
|
16812
|
+
isColumnFilterOption(value) {
|
|
16813
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
16814
|
+
}
|
|
16642
16815
|
isValidType(type) {
|
|
16643
16816
|
return !!(typeof type === 'string' && this.filterByType[type]);
|
|
16644
16817
|
}
|
|
@@ -16921,6 +17094,60 @@ function allAndConditionsSatisfied(pendingResults) {
|
|
|
16921
17094
|
return !pendingResults.includes(true);
|
|
16922
17095
|
}
|
|
16923
17096
|
|
|
17097
|
+
/**
|
|
17098
|
+
* Restores group headers around already-sorted data indexes without rebuilding
|
|
17099
|
+
* the physical source. Group insertion order follows the first sorted member,
|
|
17100
|
+
* matching the order produced by regrouping a sorted source.
|
|
17101
|
+
*/
|
|
17102
|
+
function gatherGroupedRowIndexes(source, sortedDataIndexes) {
|
|
17103
|
+
const groupPathByDataIndex = new Map();
|
|
17104
|
+
const currentGroupPath = [];
|
|
17105
|
+
source.forEach((model, physicalIndex) => {
|
|
17106
|
+
if (isGrouping(model)) {
|
|
17107
|
+
const depth = model[GROUP_DEPTH];
|
|
17108
|
+
if (typeof depth !== 'number') {
|
|
17109
|
+
return;
|
|
17110
|
+
}
|
|
17111
|
+
currentGroupPath.length = depth;
|
|
17112
|
+
currentGroupPath[depth] = physicalIndex;
|
|
17113
|
+
return;
|
|
17114
|
+
}
|
|
17115
|
+
if (model != null) {
|
|
17116
|
+
groupPathByDataIndex.set(physicalIndex, [...currentGroupPath]);
|
|
17117
|
+
}
|
|
17118
|
+
});
|
|
17119
|
+
const root = {
|
|
17120
|
+
children: new Map(),
|
|
17121
|
+
items: [],
|
|
17122
|
+
};
|
|
17123
|
+
for (const physicalIndex of sortedDataIndexes) {
|
|
17124
|
+
const groupPath = groupPathByDataIndex.get(physicalIndex);
|
|
17125
|
+
if (!(groupPath === null || groupPath === void 0 ? void 0 : groupPath.length)) {
|
|
17126
|
+
return undefined;
|
|
17127
|
+
}
|
|
17128
|
+
let node = root;
|
|
17129
|
+
for (const groupIndex of groupPath) {
|
|
17130
|
+
let child = node.children.get(groupIndex);
|
|
17131
|
+
if (!child) {
|
|
17132
|
+
child = { children: new Map(), items: [] };
|
|
17133
|
+
node.children.set(groupIndex, child);
|
|
17134
|
+
}
|
|
17135
|
+
node = child;
|
|
17136
|
+
}
|
|
17137
|
+
node.items.push(physicalIndex);
|
|
17138
|
+
}
|
|
17139
|
+
const groupedIndexes = [];
|
|
17140
|
+
const appendNode = (node) => {
|
|
17141
|
+
node.children.forEach((child, groupIndex) => {
|
|
17142
|
+
groupedIndexes.push(groupIndex);
|
|
17143
|
+
appendNode(child);
|
|
17144
|
+
});
|
|
17145
|
+
groupedIndexes.push(...node.items);
|
|
17146
|
+
};
|
|
17147
|
+
appendNode(root);
|
|
17148
|
+
return groupedIndexes;
|
|
17149
|
+
}
|
|
17150
|
+
|
|
16924
17151
|
/**
|
|
16925
17152
|
* Checks whether a sorting map contains at least one active order.
|
|
16926
17153
|
*
|
|
@@ -17169,18 +17396,6 @@ const SortingSign = ({ column }) => {
|
|
|
17169
17396
|
function getSortableRowIndexes(indexes, source) {
|
|
17170
17397
|
return indexes.filter(index => !isGrouping(source[index]));
|
|
17171
17398
|
}
|
|
17172
|
-
function mergeSortedRowsWithGroups(indexes, source, sortedRows) {
|
|
17173
|
-
if (sortedRows.length === indexes.length) {
|
|
17174
|
-
return sortedRows;
|
|
17175
|
-
}
|
|
17176
|
-
let rowIndex = 0;
|
|
17177
|
-
return indexes.map(index => {
|
|
17178
|
-
if (isGrouping(source[index])) {
|
|
17179
|
-
return index;
|
|
17180
|
-
}
|
|
17181
|
-
return sortedRows[rowIndex++];
|
|
17182
|
-
});
|
|
17183
|
-
}
|
|
17184
17399
|
/**
|
|
17185
17400
|
* Lifecycle
|
|
17186
17401
|
* 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.
|
|
@@ -17340,6 +17555,7 @@ class SortingPlugin extends BasePlugin {
|
|
|
17340
17555
|
storeService.setData({ proxyItems: newItemsOrder });
|
|
17341
17556
|
}
|
|
17342
17557
|
applySortingForStore(type, sorting, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate) {
|
|
17558
|
+
var _a;
|
|
17343
17559
|
const storeService = this.providers.data.stores[type];
|
|
17344
17560
|
// row data
|
|
17345
17561
|
const source = storeService.store.get('source');
|
|
@@ -17347,7 +17563,10 @@ class SortingPlugin extends BasePlugin {
|
|
|
17347
17563
|
const proxyItems = storeService.store.get('proxyItems');
|
|
17348
17564
|
const sortItems = getSortableRowIndexes(proxyItems, source);
|
|
17349
17565
|
const sortedItems = sortIndexByItems([...sortItems], source, sortingFunc, sorting, sortingColumns, sortingOrder);
|
|
17350
|
-
const
|
|
17566
|
+
const hasGroupingRows = sortedItems.length !== proxyItems.length;
|
|
17567
|
+
const newItemsOrder = hasGroupingRows
|
|
17568
|
+
? (_a = gatherGroupedRowIndexes(source, sortedItems)) !== null && _a !== void 0 ? _a : proxyItems
|
|
17569
|
+
: sortedItems;
|
|
17351
17570
|
// take row indexes before trim applied and proxy items
|
|
17352
17571
|
const prevItems = storeService.store.get('items');
|
|
17353
17572
|
storeService.setData({
|
|
@@ -17373,6 +17592,16 @@ class SortingPlugin extends BasePlugin {
|
|
|
17373
17592
|
}
|
|
17374
17593
|
this.postponeSort(order, sortingFunc, sortingColumns, sortingOrder, ignoreViewportUpdate);
|
|
17375
17594
|
}
|
|
17595
|
+
/**
|
|
17596
|
+
* Schedules the current active sort again after another plugin rebuilds row
|
|
17597
|
+
* proxy indexes while keeping the physical source unchanged.
|
|
17598
|
+
*/
|
|
17599
|
+
reapplySorting() {
|
|
17600
|
+
if (!hasActiveSorting(this.sorting) || !this.sortingFunc) {
|
|
17601
|
+
return;
|
|
17602
|
+
}
|
|
17603
|
+
this.startSorting(this.sorting, this.sortingFunc, this.sortingColumns, this.sortingOrder);
|
|
17604
|
+
}
|
|
17376
17605
|
/**
|
|
17377
17606
|
* Applies sorting requested by a sortable header click.
|
|
17378
17607
|
*
|
|
@@ -17891,8 +18120,10 @@ const TRIMMED_GROUPING = 'grouping';
|
|
|
17891
18120
|
* against the grouped physical source can still be remapped. If neither path
|
|
17892
18121
|
* resolves to a number, the caller drops the stale trim entry.
|
|
17893
18122
|
*/
|
|
17894
|
-
function
|
|
17895
|
-
const sourceIndex =
|
|
18123
|
+
function convertGroupingIndex(initialIndex, firstLevelMap, secondLevelMap) {
|
|
18124
|
+
const sourceIndex = typeof initialIndex === 'number'
|
|
18125
|
+
? initialIndex
|
|
18126
|
+
: Number.parseInt(initialIndex, 10);
|
|
17896
18127
|
const firstConversionIndex = firstLevelMap[sourceIndex];
|
|
17897
18128
|
if (!secondLevelMap) {
|
|
17898
18129
|
return firstConversionIndex;
|
|
@@ -17925,7 +18156,7 @@ function processDoubleConversionTrimmed(initiallyTrimed, firstLevelMap, secondLe
|
|
|
17925
18156
|
* if item exists we find it in collection
|
|
17926
18157
|
* we support 2 level of conversions
|
|
17927
18158
|
*/
|
|
17928
|
-
const newConversionIndex =
|
|
18159
|
+
const newConversionIndex = convertGroupingIndex(initialIndex, firstLevelMap, secondLevelMap);
|
|
17929
18160
|
// Group rows do not exist in the ungrouped index map and must not leak into new trims.
|
|
17930
18161
|
if (typeof newConversionIndex !== 'number') {
|
|
17931
18162
|
continue;
|
|
@@ -17986,7 +18217,7 @@ function filterOutEmptyGroupRows(source, filterTrimmed) {
|
|
|
17986
18217
|
return trimmed;
|
|
17987
18218
|
}
|
|
17988
18219
|
|
|
17989
|
-
var __rest
|
|
18220
|
+
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
17990
18221
|
var t = {};
|
|
17991
18222
|
for (var p in s)
|
|
17992
18223
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -18000,7 +18231,7 @@ var __rest$1 = (undefined && undefined.__rest) || function (s, e) {
|
|
|
18000
18231
|
};
|
|
18001
18232
|
const PADDING_DEPTH = 10;
|
|
18002
18233
|
const RowRenderer = (_a, cells) => {
|
|
18003
|
-
var { rowClass, index, size, start, depth, groupingLevel } = _a, attrs = __rest
|
|
18234
|
+
var { rowClass, index, size, start, depth, groupingLevel } = _a, attrs = __rest(_a, ["rowClass", "index", "size", "start", "depth", "groupingLevel"]);
|
|
18004
18235
|
const props = Object.assign(Object.assign(Object.assign({}, attrs), { [DATA_ROW]: index }), (typeof groupingLevel === 'number'
|
|
18005
18236
|
? { 'data-level': groupingLevel }
|
|
18006
18237
|
: {}));
|
|
@@ -18100,18 +18331,6 @@ const expandSvgIconVNode = (expanded = false) => {
|
|
|
18100
18331
|
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" })));
|
|
18101
18332
|
};
|
|
18102
18333
|
|
|
18103
|
-
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
18104
|
-
var t = {};
|
|
18105
|
-
for (var p in s)
|
|
18106
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
18107
|
-
t[p] = s[p];
|
|
18108
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18109
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18110
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18111
|
-
t[p[i]] = s[p[i]];
|
|
18112
|
-
}
|
|
18113
|
-
return t;
|
|
18114
|
-
};
|
|
18115
18334
|
class GroupingRowPlugin extends BasePlugin {
|
|
18116
18335
|
getStore(type = GROUPING_ROW_TYPE) {
|
|
18117
18336
|
return this.providers.data.stores[type].store;
|
|
@@ -18127,15 +18346,16 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18127
18346
|
}
|
|
18128
18347
|
// expand event triggered
|
|
18129
18348
|
onExpand({ virtualIndex }) {
|
|
18130
|
-
const
|
|
18131
|
-
|
|
18132
|
-
let
|
|
18349
|
+
const store = this.getStore();
|
|
18350
|
+
const source = store.get('source');
|
|
18351
|
+
let newTrimmed = store.get('trimmed')[TRIMMED_GROUPING];
|
|
18352
|
+
const i = getPhysical(store, virtualIndex);
|
|
18133
18353
|
const isExpanded = getExpanded(source[i]);
|
|
18134
18354
|
if (!isExpanded) {
|
|
18135
|
-
const { trimmed, items } = doExpand(virtualIndex, source,
|
|
18355
|
+
const { trimmed, items: expandedItems } = doExpand(virtualIndex, source, store.get('items'));
|
|
18136
18356
|
newTrimmed = Object.assign(Object.assign({}, newTrimmed), trimmed);
|
|
18137
|
-
if (
|
|
18138
|
-
setItems(
|
|
18357
|
+
if (expandedItems) {
|
|
18358
|
+
setItems(store, expandedItems);
|
|
18139
18359
|
}
|
|
18140
18360
|
}
|
|
18141
18361
|
else {
|
|
@@ -18143,7 +18363,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18143
18363
|
newTrimmed = Object.assign(Object.assign({}, newTrimmed), trimmed);
|
|
18144
18364
|
this.revogrid.clearFocus();
|
|
18145
18365
|
}
|
|
18146
|
-
|
|
18366
|
+
store.set('source', source);
|
|
18147
18367
|
this.revogrid.addTrimmed(newTrimmed, TRIMMED_GROUPING);
|
|
18148
18368
|
}
|
|
18149
18369
|
setColumnGrouping(cols) {
|
|
@@ -18165,7 +18385,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18165
18385
|
onDrag(e) {
|
|
18166
18386
|
const { from, to } = e.detail;
|
|
18167
18387
|
const isDown = to - from >= 0;
|
|
18168
|
-
const
|
|
18388
|
+
const source = this.getStore().get('source');
|
|
18169
18389
|
const items = this.getStore().get('items');
|
|
18170
18390
|
let i = isDown ? from : to;
|
|
18171
18391
|
const end = isDown ? to : from;
|
|
@@ -18191,21 +18411,13 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18191
18411
|
const source = this.getStore().get('source');
|
|
18192
18412
|
return filterOutEmptyGroupRows(source, trimmed);
|
|
18193
18413
|
}
|
|
18194
|
-
isSortingRunning() {
|
|
18195
|
-
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18196
|
-
return !!(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sortingPromise);
|
|
18197
|
-
}
|
|
18198
18414
|
/**
|
|
18199
|
-
*
|
|
18200
|
-
*
|
|
18201
|
-
*
|
|
18202
|
-
* Reusing them after sorting would reopen groups the user collapsed before
|
|
18203
|
-
* sorting instead of using the current grouped source state.
|
|
18415
|
+
* Sorting changes proxy order without changing the physical source baseline.
|
|
18416
|
+
* Other proxy changes, such as row dragging, are user-authored source order
|
|
18417
|
+
* and must be retained when grouping is rebuilt.
|
|
18204
18418
|
*/
|
|
18205
|
-
|
|
18206
|
-
|
|
18207
|
-
const _b = (_a = this.options) !== null && _a !== void 0 ? _a : {}, options = __rest(_b, ["expandedAll", "prevExpanded"]);
|
|
18208
|
-
return options;
|
|
18419
|
+
isSortingActiveOrPending(sortingPlugin) {
|
|
18420
|
+
return !!(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sortingPromise) || hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting);
|
|
18209
18421
|
}
|
|
18210
18422
|
/**
|
|
18211
18423
|
* Starts global source update with group clearing and applying new one
|
|
@@ -18218,7 +18430,12 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18218
18430
|
* @param newOldIndexMap - provides us mapping with new indexes vs old indexes, we would use it for trimmed mapping
|
|
18219
18431
|
*/
|
|
18220
18432
|
const store = this.getStore();
|
|
18221
|
-
const
|
|
18433
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18434
|
+
const currentSource = store.get('source');
|
|
18435
|
+
const sourceItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18436
|
+
? currentSource.map((_, index) => index)
|
|
18437
|
+
: store.get('proxyItems');
|
|
18438
|
+
const { source, prevExpanded, oldNewIndexes } = getSource(currentSource, sourceItems, true);
|
|
18222
18439
|
const expanded = Object.assign({ prevExpanded }, options);
|
|
18223
18440
|
/**
|
|
18224
18441
|
* Group again
|
|
@@ -18228,8 +18445,13 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18228
18445
|
const customRenderer = options === null || options === void 0 ? void 0 : options.groupLabelTemplate;
|
|
18229
18446
|
const cellRenderer = options === null || options === void 0 ? void 0 : options.groupCellTemplate;
|
|
18230
18447
|
// setup source
|
|
18448
|
+
this.revogrid.dispatchEvent(new CustomEvent(BEFORE_GROUPING_APPLY_EVENT));
|
|
18231
18449
|
this.providers.data.setData(sourceWithGroups, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, { depth, customRenderer, cellRenderer }, true);
|
|
18450
|
+
this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, currentSource, sourceWithGroups);
|
|
18232
18451
|
this.updateTrimmed(trimmed, oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, sourceWithGroups);
|
|
18452
|
+
if (hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting)) {
|
|
18453
|
+
sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.reapplySorting();
|
|
18454
|
+
}
|
|
18233
18455
|
}
|
|
18234
18456
|
/**
|
|
18235
18457
|
* Apply grouping on data set
|
|
@@ -18238,9 +18460,14 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18238
18460
|
*/
|
|
18239
18461
|
onDataSet(data) {
|
|
18240
18462
|
var _a, _b, _c;
|
|
18463
|
+
const currentSource = this.getStore().get('source');
|
|
18464
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18465
|
+
const currentItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18466
|
+
? currentSource.map((_, index) => index)
|
|
18467
|
+
: this.getStore().get('proxyItems');
|
|
18468
|
+
const { prevExpanded, oldNewIndexes } = getSource(currentSource, currentItems, true);
|
|
18241
18469
|
let preservedExpanded = {};
|
|
18242
18470
|
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.preserveGroupingOnUpdate) !== false) {
|
|
18243
|
-
let { prevExpanded } = getSource(this.getStore().get('source'), this.getStore().get('proxyItems'), true);
|
|
18244
18471
|
preservedExpanded = prevExpanded;
|
|
18245
18472
|
}
|
|
18246
18473
|
const source = data.source.filter(s => !isGrouping(s));
|
|
@@ -18252,6 +18479,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18252
18479
|
customRenderer: options.groupLabelTemplate,
|
|
18253
18480
|
cellRenderer: options.groupCellTemplate,
|
|
18254
18481
|
});
|
|
18482
|
+
queueMicrotask(() => this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, oldNewIndexMap, currentSource, sourceWithGroups));
|
|
18255
18483
|
this.updateTrimmed(trimmed, oldNewIndexMap, undefined, sourceWithGroups, { filterTrimmedMode: 'recompute-after-source-set' });
|
|
18256
18484
|
}
|
|
18257
18485
|
/**
|
|
@@ -18287,10 +18515,6 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18287
18515
|
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))) {
|
|
18288
18516
|
return;
|
|
18289
18517
|
}
|
|
18290
|
-
// if sorting is running don't apply grouping, wait for sorting, then it'll apply in @aftersortingapply
|
|
18291
|
-
if (this.isSortingRunning()) {
|
|
18292
|
-
return;
|
|
18293
|
-
}
|
|
18294
18518
|
this.onDataSet(detail);
|
|
18295
18519
|
});
|
|
18296
18520
|
this.addEventListener('beforecolumnsset', ({ detail }) => {
|
|
@@ -18305,17 +18529,6 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18305
18529
|
this.addEventListener('beforefiltertrimmed', ({ detail }) => {
|
|
18306
18530
|
detail.itemsToFilter = this.beforeFilterTrimmed(detail.itemsToFilter);
|
|
18307
18531
|
});
|
|
18308
|
-
/**
|
|
18309
|
-
* sorting applied need to clear grouping and apply again
|
|
18310
|
-
* based on new results whole grouping order will changed
|
|
18311
|
-
*/
|
|
18312
|
-
this.addEventListener('aftersortingapply', () => {
|
|
18313
|
-
var _a, _b;
|
|
18314
|
-
if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
18315
|
-
return;
|
|
18316
|
-
}
|
|
18317
|
-
this.doSourceUpdate(this.getCurrentExpandedOptions());
|
|
18318
|
-
});
|
|
18319
18532
|
/**
|
|
18320
18533
|
* Apply logic for focus inside of grouping
|
|
18321
18534
|
* We can't focus on grouping rows, navigation only inside of groups for now
|
|
@@ -18348,9 +18561,57 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18348
18561
|
}
|
|
18349
18562
|
});
|
|
18350
18563
|
// clear rows
|
|
18351
|
-
const
|
|
18564
|
+
const store = this.getStore();
|
|
18565
|
+
const sortingPlugin = this.providers.plugins.getByClass(SortingPlugin);
|
|
18566
|
+
const currentSource = store.get('source');
|
|
18567
|
+
const sourceItems = this.isSortingActiveOrPending(sortingPlugin)
|
|
18568
|
+
? currentSource.map((_, index) => index)
|
|
18569
|
+
: store.get('proxyItems');
|
|
18570
|
+
const { source, oldNewIndexes } = getSource(currentSource, sourceItems, true);
|
|
18571
|
+
this.revogrid.dispatchEvent(new CustomEvent(BEFORE_GROUPING_APPLY_EVENT));
|
|
18352
18572
|
this.providers.data.setData(source, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, undefined, true);
|
|
18573
|
+
this.remapRowDefinitions(oldNewIndexes !== null && oldNewIndexes !== void 0 ? oldNewIndexes : {}, undefined, currentSource, source);
|
|
18353
18574
|
this.updateTrimmed(undefined, undefined, oldNewIndexes, source);
|
|
18575
|
+
if (hasActiveSorting(sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.sorting)) {
|
|
18576
|
+
sortingPlugin === null || sortingPlugin === void 0 ? void 0 : sortingPlugin.reapplySorting();
|
|
18577
|
+
}
|
|
18578
|
+
}
|
|
18579
|
+
remapRowDefinitions(firstLevelMap, secondLevelMap, previousSource, nextSource) {
|
|
18580
|
+
const definitions = this.providers.dimension.getRowDefinitions();
|
|
18581
|
+
const nextGroupIndexes = new Map();
|
|
18582
|
+
nextSource === null || nextSource === void 0 ? void 0 : nextSource.forEach((row, index) => {
|
|
18583
|
+
const groupId = row[PSEUDO_GROUP_ITEM_ID];
|
|
18584
|
+
if (groupId && !nextGroupIndexes.has(groupId)) {
|
|
18585
|
+
nextGroupIndexes.set(groupId, index);
|
|
18586
|
+
}
|
|
18587
|
+
});
|
|
18588
|
+
let changed = false;
|
|
18589
|
+
const remapped = definitions.flatMap(definition => {
|
|
18590
|
+
if (definition.type !== GROUPING_ROW_TYPE) {
|
|
18591
|
+
return [definition];
|
|
18592
|
+
}
|
|
18593
|
+
const previousRow = previousSource === null || previousSource === void 0 ? void 0 : previousSource[definition.index];
|
|
18594
|
+
const groupId = previousRow === null || previousRow === void 0 ? void 0 : previousRow[PSEUDO_GROUP_ITEM_ID];
|
|
18595
|
+
const index = groupId
|
|
18596
|
+
? nextGroupIndexes.get(groupId)
|
|
18597
|
+
: convertGroupingIndex(definition.index, firstLevelMap, secondLevelMap);
|
|
18598
|
+
if (typeof index !== 'number') {
|
|
18599
|
+
changed = true;
|
|
18600
|
+
return [];
|
|
18601
|
+
}
|
|
18602
|
+
if (index < 0) {
|
|
18603
|
+
changed = true;
|
|
18604
|
+
return [];
|
|
18605
|
+
}
|
|
18606
|
+
if (index === definition.index) {
|
|
18607
|
+
return [definition];
|
|
18608
|
+
}
|
|
18609
|
+
changed = true;
|
|
18610
|
+
return [Object.assign(Object.assign({}, definition), { index })];
|
|
18611
|
+
});
|
|
18612
|
+
if (changed) {
|
|
18613
|
+
this.providers.dimension.setRowDefinitions(remapped);
|
|
18614
|
+
}
|
|
18354
18615
|
}
|
|
18355
18616
|
updateTrimmed(trimmedGroup = {}, firstLevelMap = {}, secondLevelMap, source = this.getStore().get('source'), { filterTrimmedMode = 'remap', } = {}) {
|
|
18356
18617
|
// map previously trimmed data
|
|
@@ -19202,19 +19463,6 @@ const rowDefinitionByType = (newVal = []) => {
|
|
|
19202
19463
|
}
|
|
19203
19464
|
return result;
|
|
19204
19465
|
};
|
|
19205
|
-
const rowDefinitionRemoveByType = (oldVal = []) => {
|
|
19206
|
-
const result = {};
|
|
19207
|
-
for (const v of oldVal) {
|
|
19208
|
-
let rowDefs = result[v.type];
|
|
19209
|
-
if (!rowDefs) {
|
|
19210
|
-
rowDefs = result[v.type] = [];
|
|
19211
|
-
}
|
|
19212
|
-
if (typeof v.size === 'number') {
|
|
19213
|
-
rowDefs.push(v.index);
|
|
19214
|
-
}
|
|
19215
|
-
}
|
|
19216
|
-
return result;
|
|
19217
|
-
};
|
|
19218
19466
|
|
|
19219
19467
|
const COLUMN_DRAG_CLASS = 'column-drag-start';
|
|
19220
19468
|
class ColumnOrderHandler {
|
|
@@ -19774,6 +20022,7 @@ function isMobileDevice() {
|
|
|
19774
20022
|
return /Mobi/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent) || navigator.maxTouchPoints > 0;
|
|
19775
20023
|
}
|
|
19776
20024
|
|
|
20025
|
+
const toAriaIndex = (index) => `${index + 1}`;
|
|
19777
20026
|
/**
|
|
19778
20027
|
* WCAG Plugin is responsible for enhancing the accessibility features of the RevoGrid component.
|
|
19779
20028
|
* It ensures that the grid is fully compliant with Web Content Accessibility Guidelines (WCAG) 2.1.
|
|
@@ -19817,14 +20066,14 @@ class WCAGPlugin extends BasePlugin {
|
|
|
19817
20066
|
column.columnProperties = (...args) => {
|
|
19818
20067
|
const result = (columnProperties === null || columnProperties === void 0 ? void 0 : columnProperties(...args)) || {};
|
|
19819
20068
|
result.role = 'columnheader';
|
|
19820
|
-
result['aria-colindex'] =
|
|
20069
|
+
result['aria-colindex'] = toAriaIndex(index);
|
|
19821
20070
|
return result;
|
|
19822
20071
|
};
|
|
19823
20072
|
column.cellProperties = (...args) => {
|
|
19824
20073
|
const wcagProps = {
|
|
19825
20074
|
['role']: 'gridcell',
|
|
19826
|
-
['aria-colindex']:
|
|
19827
|
-
['aria-rowindex']:
|
|
20075
|
+
['aria-colindex']: toAriaIndex(index),
|
|
20076
|
+
['aria-rowindex']: toAriaIndex(args[0].rowIndex),
|
|
19828
20077
|
['tabindex']: -1,
|
|
19829
20078
|
};
|
|
19830
20079
|
const columnProps = (cellProperties === null || cellProperties === void 0 ? void 0 : cellProperties(...args)) || {};
|
|
@@ -19839,7 +20088,7 @@ class WCAGPlugin extends BasePlugin {
|
|
|
19839
20088
|
revogrid.setAttribute('aria-rowcount', `${detail.source.length}`);
|
|
19840
20089
|
});
|
|
19841
20090
|
this.addEventListener('beforerowrender', ({ detail, }) => {
|
|
19842
|
-
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: detail.item.itemIndex });
|
|
20091
|
+
detail.node.$attrs$ = Object.assign(Object.assign({}, detail.node.$attrs$), { role: 'row', ['aria-rowindex']: toAriaIndex(detail.item.itemIndex) });
|
|
19843
20092
|
});
|
|
19844
20093
|
// focuscell
|
|
19845
20094
|
this.addEventListener('afterfocus', async (e) => {
|
|
@@ -20097,18 +20346,14 @@ const ROW_RESIZE_EVENT = 'rowresize';
|
|
|
20097
20346
|
const AFTER_ROW_RESIZE_EVENT = 'afterrowresize';
|
|
20098
20347
|
const ROW_RESIZE_CANCEL_EVENT = 'rowresizecancel';
|
|
20099
20348
|
class RowResizePlugin extends BasePlugin {
|
|
20100
|
-
static fromGridProperty(revogrid, providers) {
|
|
20101
|
-
const plugin = new RowResizePlugin(revogrid, providers);
|
|
20102
|
-
plugin.controlFromGridProperty();
|
|
20103
|
-
return plugin;
|
|
20104
|
-
}
|
|
20105
20349
|
constructor(revogrid, providers, config = {}) {
|
|
20106
20350
|
super(revogrid, providers);
|
|
20107
20351
|
this.enabled = false;
|
|
20108
|
-
this.
|
|
20109
|
-
this.
|
|
20110
|
-
this.
|
|
20111
|
-
this.
|
|
20352
|
+
this.appliedDefinitionIndexes = new Map();
|
|
20353
|
+
this.pendingBottomAnchor = false;
|
|
20354
|
+
this.keepBottomAnchor = false;
|
|
20355
|
+
this.rowDefinitionRemapQueued = false;
|
|
20356
|
+
this.pendingSourceCounts = new Map();
|
|
20112
20357
|
this.previousBodyCursor = '';
|
|
20113
20358
|
this.decorateRow = ({ detail, }) => {
|
|
20114
20359
|
if (!this.enabled ||
|
|
@@ -20172,22 +20417,72 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20172
20417
|
}
|
|
20173
20418
|
};
|
|
20174
20419
|
this.onWindowBlur = () => this.cancel('blur');
|
|
20175
|
-
this.
|
|
20176
|
-
|
|
20177
|
-
|
|
20178
|
-
|
|
20420
|
+
this.updateBottomAnchorState = ({ detail, }) => {
|
|
20421
|
+
if (detail.dimension !== 'rgRow') {
|
|
20422
|
+
return;
|
|
20423
|
+
}
|
|
20424
|
+
this.keepBottomAnchor = this.isMainViewportAtBottom(detail.coordinate);
|
|
20425
|
+
};
|
|
20426
|
+
this.applyPendingBottomAnchor = () => {
|
|
20427
|
+
if (!this.pendingBottomAnchor) {
|
|
20428
|
+
return;
|
|
20429
|
+
}
|
|
20430
|
+
this.pendingBottomAnchor = false;
|
|
20431
|
+
const dimension = this.providers.dimension.stores.rgRow.store;
|
|
20432
|
+
// Scroll surfaces have slightly different client sizes. Give the shared
|
|
20433
|
+
// scrolling service the content end and let each surface clamp to its own
|
|
20434
|
+
// exact bottom coordinate.
|
|
20435
|
+
void this.revogrid.scrollToCoordinate({ y: dimension.get('realSize') });
|
|
20436
|
+
};
|
|
20437
|
+
this.scheduleRowDefinitionRemap = () => {
|
|
20438
|
+
if (this.rowDefinitionRemapQueued) {
|
|
20439
|
+
return;
|
|
20440
|
+
}
|
|
20441
|
+
this.rowDefinitionRemapQueued = true;
|
|
20442
|
+
queueMicrotask(() => {
|
|
20443
|
+
if (!this.rowDefinitionRemapQueued) {
|
|
20444
|
+
return;
|
|
20445
|
+
}
|
|
20446
|
+
this.pruneRowDefinitions();
|
|
20447
|
+
this.reapplyRowDefinitionSizes();
|
|
20448
|
+
this.rowDefinitionRemapQueued = false;
|
|
20449
|
+
});
|
|
20450
|
+
};
|
|
20451
|
+
/** Map source-indexed row definitions back onto the current virtual order. */
|
|
20452
|
+
this.reapplyRowDefinitionSizes = () => {
|
|
20453
|
+
const rowDefinitions = this.providers.dimension.getRowDefinitions();
|
|
20454
|
+
for (const rowType of rowTypes) {
|
|
20179
20455
|
const items = this.providers.data.stores[rowType].store.get('items');
|
|
20456
|
+
const definitions = new Map(rowDefinitions
|
|
20457
|
+
.filter(definition => definition.type === rowType)
|
|
20458
|
+
.map(definition => [definition.index, definition.size]));
|
|
20459
|
+
const appliedIndexes = this.appliedDefinitionIndexes.get(rowType);
|
|
20460
|
+
if (!definitions.size && !(appliedIndexes === null || appliedIndexes === void 0 ? void 0 : appliedIndexes.size)) {
|
|
20461
|
+
continue;
|
|
20462
|
+
}
|
|
20463
|
+
const dimension = this.providers.dimension.stores[rowType];
|
|
20464
|
+
const currentSizes = dimension.store.get('sizes');
|
|
20465
|
+
const sizes = Object.assign({}, currentSizes);
|
|
20466
|
+
for (const index of appliedIndexes || []) {
|
|
20467
|
+
delete sizes[index];
|
|
20468
|
+
}
|
|
20180
20469
|
const indexes = new Set();
|
|
20181
20470
|
items.forEach((physicalIndex, virtualIndex) => {
|
|
20182
|
-
|
|
20471
|
+
const size = definitions.get(physicalIndex);
|
|
20472
|
+
if (size !== undefined) {
|
|
20473
|
+
sizes[virtualIndex] = size;
|
|
20183
20474
|
indexes.add(virtualIndex);
|
|
20184
20475
|
}
|
|
20185
20476
|
});
|
|
20186
|
-
this.
|
|
20477
|
+
this.appliedDefinitionIndexes.set(rowType, indexes);
|
|
20478
|
+
const sizeKeys = Object.keys(sizes);
|
|
20479
|
+
if (sizeKeys.length !== Object.keys(currentSizes).length ||
|
|
20480
|
+
sizeKeys.some(index => sizes[index] !== currentSizes[index])) {
|
|
20481
|
+
this.providers.dimension.setCustomSizes(rowType, sizes);
|
|
20482
|
+
}
|
|
20187
20483
|
}
|
|
20188
20484
|
};
|
|
20189
20485
|
this.config = resolveRowResizeConfig(config);
|
|
20190
|
-
this.rowDefinitionsRef = revogrid.rowDefinitions;
|
|
20191
20486
|
if (new.target !== RowResizePlugin) {
|
|
20192
20487
|
this.enabled = true;
|
|
20193
20488
|
this.registerEventListeners();
|
|
@@ -20195,77 +20490,53 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20195
20490
|
}
|
|
20196
20491
|
registerEventListeners() {
|
|
20197
20492
|
this.addEventListener('beforerowrender', this.decorateRow);
|
|
20198
|
-
this.addEventListener('beforeanysource', (
|
|
20493
|
+
this.addEventListener('beforeanysource', () => {
|
|
20199
20494
|
this.cancel('data-change');
|
|
20200
|
-
|
|
20201
|
-
|
|
20202
|
-
|
|
20203
|
-
|
|
20204
|
-
|
|
20205
|
-
for (const index of committed.keys()) {
|
|
20206
|
-
if (index >= detail.source.length) {
|
|
20207
|
-
committed.delete(index);
|
|
20208
|
-
removedIndexes.add(index);
|
|
20209
|
-
}
|
|
20210
|
-
}
|
|
20211
|
-
if (removedIndexes.size) {
|
|
20212
|
-
const rowDefinitions = this.revogrid.rowDefinitions.filter(definition => definition.type !== detail.type ||
|
|
20213
|
-
!removedIndexes.has(definition.index));
|
|
20214
|
-
this.rowDefinitionsRef = rowDefinitions;
|
|
20215
|
-
this.revogrid.rowDefinitions = rowDefinitions;
|
|
20216
|
-
}
|
|
20495
|
+
this.keepBottomAnchor = false;
|
|
20496
|
+
});
|
|
20497
|
+
this.addEventListener('afteranysource', ({ detail }) => {
|
|
20498
|
+
this.pendingSourceCounts.set(detail.type, detail.source.length);
|
|
20499
|
+
this.scheduleRowDefinitionRemap();
|
|
20217
20500
|
});
|
|
20218
|
-
this.addEventListener('afteranysource', this.rebuildCommittedSizes);
|
|
20219
20501
|
this.addEventListener('beforesourcesortingapply', this.cancelForDataChange);
|
|
20220
|
-
this.addEventListener('
|
|
20502
|
+
this.addEventListener('beforesortingapply', this.cancelForDataChange);
|
|
20503
|
+
this.addEventListener('sortingconfigchanged', this.cancelForDataChange);
|
|
20504
|
+
this.addEventListener(BEFORE_GROUPING_APPLY_EVENT, this.cancelForDataChange);
|
|
20505
|
+
this.addEventListener('aftersortingapply', this.scheduleRowDefinitionRemap);
|
|
20221
20506
|
this.addEventListener('beforefilterapply', this.cancelForDataChange);
|
|
20222
|
-
this.addEventListener('
|
|
20507
|
+
this.addEventListener('afterfilterapply', this.scheduleRowDefinitionRemap);
|
|
20508
|
+
this.addEventListener('beforerowdefinition', () => {
|
|
20223
20509
|
this.cancel('data-change');
|
|
20224
|
-
|
|
20225
|
-
this.committedSizes.clear();
|
|
20226
|
-
this.appliedIndexes.clear();
|
|
20227
|
-
this.rowDefinitionsRef = detail.vals;
|
|
20228
|
-
}
|
|
20229
|
-
});
|
|
20230
|
-
this.addEventListener('afterthemechanged', this.reapplyCommittedSizes);
|
|
20231
|
-
this.addEventListener('aftertrimmed', this.syncAppliedIndexes);
|
|
20232
|
-
this.addEventListener('roworderchange', () => {
|
|
20233
|
-
queueMicrotask(this.reapplyCommittedSizes);
|
|
20510
|
+
this.scheduleRowDefinitionRemap();
|
|
20234
20511
|
});
|
|
20512
|
+
this.addEventListener('afterthemechanged', this.scheduleRowDefinitionRemap);
|
|
20513
|
+
this.addEventListener('aftertrimmed', this.scheduleRowDefinitionRemap);
|
|
20514
|
+
this.addEventListener('roworderchange', this.scheduleRowDefinitionRemap);
|
|
20235
20515
|
this.addEventListener(GROUP_EXPAND_EVENT, () => {
|
|
20236
|
-
|
|
20516
|
+
if (this.keepBottomAnchor) {
|
|
20517
|
+
this.pendingBottomAnchor = true;
|
|
20518
|
+
}
|
|
20519
|
+
this.scheduleRowDefinitionRemap();
|
|
20237
20520
|
});
|
|
20521
|
+
this.addEventListener('aftergridrender', this.applyPendingBottomAnchor);
|
|
20522
|
+
this.addEventListener('viewportscroll', this.updateBottomAnchorState);
|
|
20238
20523
|
this.addEventListener('rowheaderschanged', ({ detail }) => {
|
|
20239
20524
|
if (!detail && !this.config.fullRow) {
|
|
20240
20525
|
this.cancel('row-headers-hidden');
|
|
20241
20526
|
}
|
|
20242
20527
|
});
|
|
20243
20528
|
}
|
|
20244
|
-
|
|
20245
|
-
|
|
20246
|
-
|
|
20247
|
-
|
|
20248
|
-
this.watch('resizeRow', value => {
|
|
20249
|
-
this.gridResizeRow = value;
|
|
20250
|
-
this.syncGridProperty();
|
|
20251
|
-
});
|
|
20252
|
-
this.watch('plugins', value => {
|
|
20253
|
-
this.gridPlugins = value || [];
|
|
20254
|
-
this.syncGridProperty();
|
|
20255
|
-
});
|
|
20256
|
-
}
|
|
20257
|
-
syncGridProperty(refresh = true) {
|
|
20258
|
-
const hasConfiguredPlugin = this.gridPlugins.some(plugin => plugin !== RowResizePlugin &&
|
|
20529
|
+
syncGridConfig(refresh = true) {
|
|
20530
|
+
const { plugins = [], resizeRow } = this.revogrid;
|
|
20531
|
+
const isCorePlugin = this.constructor === RowResizePlugin;
|
|
20532
|
+
const hasConfiguredPlugin = plugins.some(plugin => plugin !== RowResizePlugin &&
|
|
20259
20533
|
plugin.prototype instanceof RowResizePlugin);
|
|
20260
|
-
const
|
|
20261
|
-
|
|
20262
|
-
|
|
20263
|
-
|
|
20264
|
-
|
|
20265
|
-
|
|
20266
|
-
typeof this.gridResizeRow === 'object'
|
|
20267
|
-
? this.gridResizeRow
|
|
20268
|
-
: undefined);
|
|
20534
|
+
const enabled = !isCorePlugin ||
|
|
20535
|
+
(!hasConfiguredPlugin && !!resizeRow);
|
|
20536
|
+
const resizeConfig = typeof resizeRow === 'object' ? resizeRow : undefined;
|
|
20537
|
+
const config = isCorePlugin
|
|
20538
|
+
? resolveRowResizeConfig(resizeConfig)
|
|
20539
|
+
: this.config;
|
|
20269
20540
|
const configChanged = config.minHeight !== this.config.minHeight ||
|
|
20270
20541
|
config.maxHeight !== this.config.maxHeight ||
|
|
20271
20542
|
config.fullRow !== this.config.fullRow;
|
|
@@ -20277,10 +20548,13 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20277
20548
|
if (enabled !== this.enabled) {
|
|
20278
20549
|
this.enabled = enabled;
|
|
20279
20550
|
if (enabled) {
|
|
20280
|
-
this.rowDefinitionsRef = this.revogrid.rowDefinitions;
|
|
20281
20551
|
this.registerEventListeners();
|
|
20282
20552
|
}
|
|
20283
20553
|
else {
|
|
20554
|
+
this.pendingBottomAnchor = false;
|
|
20555
|
+
this.keepBottomAnchor = false;
|
|
20556
|
+
this.rowDefinitionRemapQueued = false;
|
|
20557
|
+
this.pendingSourceCounts.clear();
|
|
20284
20558
|
this.clearSubscriptions();
|
|
20285
20559
|
}
|
|
20286
20560
|
}
|
|
@@ -20299,6 +20573,7 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20299
20573
|
}
|
|
20300
20574
|
const dimension = this.providers.dimension.stores[rowType];
|
|
20301
20575
|
const dimensionState = dimension.getCurrentState();
|
|
20576
|
+
const viewport = this.providers.viewport.stores[rowType];
|
|
20302
20577
|
const item = getItemByIndex(dimensionState, index);
|
|
20303
20578
|
const focusedStore = this.providers.selection.focusedStore;
|
|
20304
20579
|
const selectedRowType = focusedStore
|
|
@@ -20330,16 +20605,23 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20330
20605
|
currentHeight: startHeight,
|
|
20331
20606
|
previousSizes,
|
|
20332
20607
|
originalCustomSizes: Object.assign({}, dimensionState.sizes),
|
|
20333
|
-
|
|
20608
|
+
bottomAnchored: rowType === 'rgRow' &&
|
|
20609
|
+
this.isMainViewportAtBottom(viewport.lastCoordinate),
|
|
20334
20610
|
lastEvent: event,
|
|
20335
20611
|
};
|
|
20612
|
+
this.active = active;
|
|
20336
20613
|
const beforeEvent = this.emit(BEFORE_ROW_RESIZE_EVENT, this.eventDetail(active, event, startHeight));
|
|
20337
20614
|
if (beforeEvent.defaultPrevented) {
|
|
20615
|
+
if (this.active === active) {
|
|
20616
|
+
this.active = undefined;
|
|
20617
|
+
}
|
|
20618
|
+
return;
|
|
20619
|
+
}
|
|
20620
|
+
if (!this.enabled || this.active !== active) {
|
|
20338
20621
|
return;
|
|
20339
20622
|
}
|
|
20340
20623
|
event.preventDefault();
|
|
20341
20624
|
event.stopPropagation();
|
|
20342
|
-
this.active = active;
|
|
20343
20625
|
const doc = this.revogrid.ownerDocument;
|
|
20344
20626
|
this.previousBodyCursor = ((_a = doc.body) === null || _a === void 0 ? void 0 : _a.style.cursor) || '';
|
|
20345
20627
|
if (doc.body) {
|
|
@@ -20362,6 +20644,7 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20362
20644
|
return;
|
|
20363
20645
|
}
|
|
20364
20646
|
this.providers.dimension.setCustomSizes(active.rowType, createRowResizePatch(active.indexes, size), true);
|
|
20647
|
+
this.requestBottomAnchor(active);
|
|
20365
20648
|
active.currentHeight = size;
|
|
20366
20649
|
this.emit(ROW_RESIZE_EVENT, this.eventDetail(active, active.lastEvent, size));
|
|
20367
20650
|
}
|
|
@@ -20380,7 +20663,8 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20380
20663
|
}
|
|
20381
20664
|
}
|
|
20382
20665
|
this.providers.dimension.setCustomSizes(active.rowType, currentSizes);
|
|
20383
|
-
|
|
20666
|
+
this.requestBottomAnchor(active);
|
|
20667
|
+
const detail = Object.assign(Object.assign({}, this.eventDetail(active, active.lastEvent, active.startHeight)), { reason });
|
|
20384
20668
|
this.finishGesture();
|
|
20385
20669
|
this.emit(ROW_RESIZE_CANCEL_EVENT, detail);
|
|
20386
20670
|
}
|
|
@@ -20399,51 +20683,44 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20399
20683
|
return;
|
|
20400
20684
|
}
|
|
20401
20685
|
const items = this.providers.data.stores[active.rowType].store.get('items');
|
|
20402
|
-
let committed = this.committedSizes.get(active.rowType);
|
|
20403
|
-
if (!committed) {
|
|
20404
|
-
committed = new Map();
|
|
20405
|
-
this.committedSizes.set(active.rowType, committed);
|
|
20406
|
-
}
|
|
20407
|
-
let applied = this.appliedIndexes.get(active.rowType);
|
|
20408
|
-
if (!applied) {
|
|
20409
|
-
applied = new Set();
|
|
20410
|
-
this.appliedIndexes.set(active.rowType, applied);
|
|
20411
|
-
}
|
|
20412
20686
|
const physicalIndexes = active.indexes.reduce((result, index) => {
|
|
20413
20687
|
const physicalIndex = items[index];
|
|
20414
20688
|
if (physicalIndex !== undefined) {
|
|
20415
|
-
committed.set(physicalIndex, active.currentHeight);
|
|
20416
|
-
applied.add(index);
|
|
20417
20689
|
result.push(physicalIndex);
|
|
20418
20690
|
}
|
|
20419
20691
|
return result;
|
|
20420
20692
|
}, []);
|
|
20421
20693
|
if (physicalIndexes.length) {
|
|
20422
|
-
const rowDefinitions = mergeRowResizeDefinitions(this.
|
|
20423
|
-
this.
|
|
20424
|
-
this.
|
|
20694
|
+
const rowDefinitions = mergeRowResizeDefinitions(this.providers.dimension.getRowDefinitions(), active.rowType, physicalIndexes, active.currentHeight);
|
|
20695
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
20696
|
+
this.scheduleRowDefinitionRemap();
|
|
20697
|
+
this.keepBottomAnchor = active.bottomAnchored;
|
|
20698
|
+
this.requestBottomAnchor(active);
|
|
20425
20699
|
}
|
|
20426
20700
|
}
|
|
20427
|
-
|
|
20428
|
-
|
|
20429
|
-
|
|
20430
|
-
|
|
20431
|
-
|
|
20432
|
-
|
|
20433
|
-
|
|
20434
|
-
|
|
20435
|
-
|
|
20436
|
-
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
|
|
20440
|
-
|
|
20441
|
-
|
|
20442
|
-
|
|
20443
|
-
|
|
20444
|
-
|
|
20445
|
-
|
|
20446
|
-
|
|
20701
|
+
requestBottomAnchor(active) {
|
|
20702
|
+
if (active.bottomAnchored) {
|
|
20703
|
+
this.pendingBottomAnchor = true;
|
|
20704
|
+
}
|
|
20705
|
+
}
|
|
20706
|
+
isMainViewportAtBottom(coordinate) {
|
|
20707
|
+
const dimension = this.providers.dimension.stores.rgRow.getCurrentState();
|
|
20708
|
+
const viewport = this.providers.viewport.stores.rgRow.store.state;
|
|
20709
|
+
return (dimension.realSize > viewport.clientSize &&
|
|
20710
|
+
coordinate >= getViewportMaxCoordinate(dimension, viewport.virtualSize));
|
|
20711
|
+
}
|
|
20712
|
+
pruneRowDefinitions() {
|
|
20713
|
+
if (!this.pendingSourceCounts.size) {
|
|
20714
|
+
return;
|
|
20715
|
+
}
|
|
20716
|
+
const definitions = this.providers.dimension.getRowDefinitions();
|
|
20717
|
+
const rowDefinitions = definitions.filter(definition => {
|
|
20718
|
+
const count = this.pendingSourceCounts.get(definition.type);
|
|
20719
|
+
return count === undefined || definition.index < count;
|
|
20720
|
+
});
|
|
20721
|
+
this.pendingSourceCounts.clear();
|
|
20722
|
+
if (rowDefinitions.length !== definitions.length) {
|
|
20723
|
+
this.providers.dimension.setRowDefinitions(rowDefinitions);
|
|
20447
20724
|
}
|
|
20448
20725
|
}
|
|
20449
20726
|
finishGesture() {
|
|
@@ -20466,11 +20743,14 @@ class RowResizePlugin extends BasePlugin {
|
|
|
20466
20743
|
}
|
|
20467
20744
|
destroy() {
|
|
20468
20745
|
this.cancel('destroy');
|
|
20746
|
+
this.keepBottomAnchor = false;
|
|
20747
|
+
this.rowDefinitionRemapQueued = false;
|
|
20748
|
+
this.pendingSourceCounts.clear();
|
|
20469
20749
|
super.destroy();
|
|
20470
20750
|
}
|
|
20471
20751
|
}
|
|
20472
20752
|
|
|
20473
|
-
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}`;
|
|
20753
|
+
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}`;
|
|
20474
20754
|
|
|
20475
20755
|
const DEFAULT_COLUMN_SIZE = 100;
|
|
20476
20756
|
function getColumnSize(size) {
|
|
@@ -21342,29 +21622,31 @@ class RevoGridComponent {
|
|
|
21342
21622
|
vals: after,
|
|
21343
21623
|
oldVals: before,
|
|
21344
21624
|
});
|
|
21345
|
-
|
|
21625
|
+
this.dimensionProvider.syncRowDefinitions(newVal);
|
|
21346
21626
|
const newRows = rowDefinitionByType(newVal);
|
|
21347
|
-
|
|
21348
|
-
|
|
21349
|
-
|
|
21350
|
-
// clear all old data and drop sizes
|
|
21351
|
-
for (const t in remove) {
|
|
21352
|
-
if (remove.hasOwnProperty(t)) {
|
|
21353
|
-
const type = t;
|
|
21354
|
-
const store = this.dataProvider.stores[type];
|
|
21355
|
-
const sourceLength = store.store.get('source').length;
|
|
21356
|
-
this.dimensionProvider.clearSize(type, sourceLength);
|
|
21357
|
-
}
|
|
21358
|
-
}
|
|
21359
|
-
}
|
|
21360
|
-
// set new sizes
|
|
21627
|
+
const oldRows = rowDefinitionByType(oldVal);
|
|
21628
|
+
const dataProvider = this.dataProvider;
|
|
21629
|
+
const dimensionProvider = this.dimensionProvider;
|
|
21361
21630
|
rowTypes.forEach((t) => {
|
|
21362
|
-
var _a;
|
|
21363
21631
|
const newSizes = newRows[t];
|
|
21364
|
-
|
|
21365
|
-
if (newSizes
|
|
21366
|
-
|
|
21632
|
+
const oldSizes = oldRows[t];
|
|
21633
|
+
if (!newSizes && !oldSizes && !forceUpdate) {
|
|
21634
|
+
return;
|
|
21367
21635
|
}
|
|
21636
|
+
const sizes = Object.assign({}, dimensionProvider.stores[t].store.get('sizes'));
|
|
21637
|
+
const definitionSizes = (newSizes === null || newSizes === void 0 ? void 0 : newSizes.sizes) || {};
|
|
21638
|
+
const previousDefinitionSizes = (oldSizes === null || oldSizes === void 0 ? void 0 : oldSizes.sizes) || {};
|
|
21639
|
+
const items = dataProvider.stores[t].store.get('items');
|
|
21640
|
+
items.forEach((physicalIndex, virtualIndex) => {
|
|
21641
|
+
if (Object.hasOwn(previousDefinitionSizes, physicalIndex) &&
|
|
21642
|
+
sizes[virtualIndex] === previousDefinitionSizes[physicalIndex]) {
|
|
21643
|
+
delete sizes[virtualIndex];
|
|
21644
|
+
}
|
|
21645
|
+
if (Object.hasOwn(definitionSizes, physicalIndex)) {
|
|
21646
|
+
sizes[virtualIndex] = definitionSizes[physicalIndex];
|
|
21647
|
+
}
|
|
21648
|
+
});
|
|
21649
|
+
dimensionProvider.setCustomSizes(t, sizes);
|
|
21368
21650
|
});
|
|
21369
21651
|
}
|
|
21370
21652
|
trimmedRowsChanged(newVal = {}) {
|
|
@@ -21413,6 +21695,9 @@ class RevoGridComponent {
|
|
|
21413
21695
|
rowHeadersChange(rowHeaders) {
|
|
21414
21696
|
this.rowheaderschanged.emit(rowHeaders);
|
|
21415
21697
|
}
|
|
21698
|
+
resizeRowChanged() {
|
|
21699
|
+
this.syncRowResizeConfig();
|
|
21700
|
+
}
|
|
21416
21701
|
/**
|
|
21417
21702
|
* Register external VNodes
|
|
21418
21703
|
*/
|
|
@@ -21435,6 +21720,7 @@ class RevoGridComponent {
|
|
|
21435
21720
|
*/
|
|
21436
21721
|
pluginsChanged(plugins = [], prevPlugins) {
|
|
21437
21722
|
this.pluginService.addUserPluginsAndCreate(this.element, plugins, prevPlugins, this.getPluginData());
|
|
21723
|
+
this.syncRowResizeConfig();
|
|
21438
21724
|
}
|
|
21439
21725
|
// #endregion
|
|
21440
21726
|
// #region Plugins
|
|
@@ -21475,11 +21761,15 @@ class RevoGridComponent {
|
|
|
21475
21761
|
this.pluginService.add(new SortingPlugin(this.element, pluginData));
|
|
21476
21762
|
// register grouping plugin
|
|
21477
21763
|
this.pluginService.add(new GroupingRowPlugin(this.element, pluginData));
|
|
21478
|
-
this.pluginService.add(RowResizePlugin
|
|
21764
|
+
this.pluginService.add(new RowResizePlugin(this.element, pluginData));
|
|
21479
21765
|
if (this.canMoveColumns) {
|
|
21480
21766
|
this.pluginService.add(new ColumnMovePlugin(this.element, pluginData));
|
|
21481
21767
|
}
|
|
21482
21768
|
}
|
|
21769
|
+
syncRowResizeConfig() {
|
|
21770
|
+
const plugin = this.pluginService.getByClass(RowResizePlugin);
|
|
21771
|
+
plugin === null || plugin === void 0 ? void 0 : plugin.syncGridConfig();
|
|
21772
|
+
}
|
|
21483
21773
|
getPluginData() {
|
|
21484
21774
|
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider || !this.selectionStoreConnector) {
|
|
21485
21775
|
return;
|
|
@@ -21522,6 +21812,9 @@ class RevoGridComponent {
|
|
|
21522
21812
|
this.themeService.setDefinitions(this.themeDefinitions);
|
|
21523
21813
|
this.dimensionProvider = new DimensionProvider(this.viewportProvider, {
|
|
21524
21814
|
realSizeChanged: (k) => this.contentsizechanged.emit(k),
|
|
21815
|
+
rowDefinitionsChanged: definitions => {
|
|
21816
|
+
this.rowDefinitions = definitions;
|
|
21817
|
+
},
|
|
21525
21818
|
});
|
|
21526
21819
|
this.dimensionProvider.setSettings({ originItemSize: getColumnSize(this.colSize) }, 'rgCol');
|
|
21527
21820
|
this.columnProvider = new ColumnDataProvider();
|
|
@@ -21712,6 +22005,9 @@ class RevoGridComponent {
|
|
|
21712
22005
|
"rowHeaders": [{
|
|
21713
22006
|
"rowHeadersChange": 0
|
|
21714
22007
|
}],
|
|
22008
|
+
"resizeRow": [{
|
|
22009
|
+
"resizeRowChanged": 0
|
|
22010
|
+
}],
|
|
21715
22011
|
"registerVNode": [{
|
|
21716
22012
|
"registerOutsideVNodes": 0
|
|
21717
22013
|
}],
|
|
@@ -22445,19 +22741,20 @@ const HeaderRenderer = (p) => {
|
|
|
22445
22741
|
const hasSortingSign = !!(((_a = p.data) === null || _a === void 0 ? void 0 : _a.sortable) ||
|
|
22446
22742
|
((_b = p.data) === null || _b === void 0 ? void 0 : _b.order) ||
|
|
22447
22743
|
((_c = p.data) === null || _c === void 0 ? void 0 : _c.sortIndex));
|
|
22744
|
+
const hasFilterButton = !!(p.canFilter && ((_d = p.data) === null || _d === void 0 ? void 0 : _d.filter) !== false);
|
|
22448
22745
|
const cellClass = {
|
|
22449
22746
|
[HEADER_CLASS]: true,
|
|
22450
|
-
[HEADER_SORTABLE_CLASS]: !!((
|
|
22747
|
+
[HEADER_SORTABLE_CLASS]: !!((_e = p.data) === null || _e === void 0 ? void 0 : _e.sortable),
|
|
22451
22748
|
};
|
|
22452
|
-
if ((
|
|
22749
|
+
if ((_f = p.data) === null || _f === void 0 ? void 0 : _f.order) {
|
|
22453
22750
|
cellClass[p.data.order] = true;
|
|
22454
22751
|
}
|
|
22455
22752
|
const dataProps = {
|
|
22456
|
-
key: String((
|
|
22753
|
+
key: String((_h = (_g = p.data) === null || _g === void 0 ? void 0 : _g.prop) !== null && _h !== void 0 ? _h : p.column.itemIndex),
|
|
22457
22754
|
[DATA_COL]: p.column.itemIndex,
|
|
22458
22755
|
canResize: p.canResize,
|
|
22459
|
-
minWidth: ((
|
|
22460
|
-
maxWidth: (
|
|
22756
|
+
minWidth: ((_j = p.data) === null || _j === void 0 ? void 0 : _j.minSize) || MIN_COL_SIZE,
|
|
22757
|
+
maxWidth: (_k = p.data) === null || _k === void 0 ? void 0 : _k.maxSize,
|
|
22461
22758
|
active: p.active || ['r'],
|
|
22462
22759
|
class: cellClass,
|
|
22463
22760
|
style: {
|
|
@@ -22493,7 +22790,7 @@ const HeaderRenderer = (p) => {
|
|
|
22493
22790
|
}
|
|
22494
22791
|
}
|
|
22495
22792
|
}
|
|
22496
|
-
return (hAsync(HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, hasSortingSign ? hAsync(
|
|
22793
|
+
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));
|
|
22497
22794
|
};
|
|
22498
22795
|
|
|
22499
22796
|
const HeaderGroupRenderer = (p) => {
|
|
@@ -22515,7 +22812,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
22515
22812
|
return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
|
|
22516
22813
|
};
|
|
22517
22814
|
|
|
22518
|
-
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
|
|
22815
|
+
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}`;
|
|
22519
22816
|
|
|
22520
22817
|
class RevogrHeaderComponent {
|
|
22521
22818
|
constructor(hostRef) {
|