@revolist/revogrid 4.26.2 → 4.27.0
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-Cf2Pu4S0.js → cell-renderer-C7rdgaov.js} +3 -3
- package/dist/cjs/{column.service-C7p5eC5V.js → column.service-Bbml5C2j.js} +3 -3
- package/dist/cjs/{dimension.helpers-CgHhnN1d.js → dimension.helpers-CptesQOZ.js} +52 -8
- package/dist/cjs/{edit.utils-rAcGublN.js → edit.utils-CBAbQhGP.js} +1 -1
- package/dist/cjs/{header-cell-renderer-DHClfIto.js → header-cell-renderer-BljFI6wj.js} +1 -1
- package/dist/cjs/{index--FdNLz1Z.js → index-BVESmpqW.js} +1 -1
- package/dist/cjs/index.cjs.js +71 -55
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +74 -49
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +51 -19
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
- package/dist/cjs/revogr-data_4.cjs.entry.js +21 -15
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +9 -9
- package/dist/cjs/{column.drag.plugin-CK5HADlW.js → row-resize.plugin-BRQy_qNn.js} +573 -19
- package/dist/cjs/{text-editor-F04kTx53.js → text-editor-CJyQaYei.js} +2 -2
- package/dist/cjs/{throttle-fV6BUmM7.js → throttle-BsaP4fgu.js} +3 -3
- package/dist/cjs/{viewport.store-B4Clk4m9.js → viewport.store-mhsdi61t.js} +1 -1
- package/dist/collection/components/data/revogr-data-style.css +11 -0
- package/dist/collection/components/data/revogr-data.js +14 -8
- package/dist/collection/components/header/revogr-header-style.css +1 -0
- package/dist/collection/components/overlay/keyboard.service.js +33 -3
- package/dist/collection/components/overlay/revogr-overlay-selection.js +12 -10
- package/dist/collection/components/revoGrid/plugin.service.js +2 -2
- package/dist/collection/components/revoGrid/revo-grid.js +44 -10
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js +24 -13
- package/dist/collection/components/revoGrid/viewport.service.js +1 -1
- package/dist/collection/plugins/filter/filter.constants.js +9 -0
- package/dist/collection/plugins/filter/filter.panel.js +8 -8
- package/dist/collection/plugins/filter/filter.plugin.js +109 -10
- package/dist/collection/plugins/filter/filter.style.css +2 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +9 -2
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +1 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +1 -1
- package/dist/collection/plugins/index.js +1 -0
- package/dist/collection/plugins/row-resize/index.js +6 -0
- package/dist/collection/plugins/row-resize/row-resize.plugin.js +385 -0
- package/dist/collection/plugins/row-resize/row-resize.types.js +1 -0
- package/dist/collection/plugins/row-resize/row-resize.utils.js +55 -0
- package/dist/collection/serve/controller.js +1 -1
- package/dist/collection/services/data.provider.js +8 -2
- package/dist/collection/services/local.scroll.timer.js +3 -3
- package/dist/collection/services/selection.store.connector.js +4 -2
- package/dist/collection/store/dataSource/data.pending.plugin.js +21 -0
- package/dist/collection/store/dataSource/data.store.js +25 -3
- package/dist/collection/store/dataSource/trimmed.plugin.js +9 -6
- package/dist/collection/store/dimension/dimension.trim.plugin.js +1 -3
- package/dist/collection/types/events.js +4 -1
- package/dist/collection/utils/column.utils.js +1 -1
- package/dist/esm/{cell-renderer-11cf-lu3.js → cell-renderer-BFpmdV8H.js} +3 -3
- package/dist/esm/{column.service-Cfw3L0PN.js → column.service-CM-wgGs8.js} +3 -3
- package/dist/{revo-grid/dimension.helpers-fl4HSSK9.js → esm/dimension.helpers-Cln9sALu.js} +52 -9
- package/dist/{revo-grid/edit.utils-4e9fsqOR.js → esm/edit.utils-3ZbhQCv_.js} +1 -1
- package/dist/esm/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-Bqh1PrgH.js} +1 -1
- package/dist/esm/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
- package/dist/esm/index.js +14 -11
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +56 -31
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +51 -19
- package/dist/esm/revogr-clipboard_3.entry.js +4 -4
- package/dist/esm/revogr-data_4.entry.js +21 -15
- package/dist/esm/revogr-filter-panel.entry.js +9 -9
- package/dist/esm/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-BRiaHlHA.js} +562 -20
- package/dist/{revo-grid/text-editor-DlMnLkRK.js → esm/text-editor-eHtrwvxH.js} +2 -2
- package/dist/{revo-grid/throttle-Cpk1LoGk.js → esm/throttle-3rhqdcLy.js} +3 -3
- package/dist/{revo-grid/viewport.store-BSXmsiZc.js → esm/viewport.store-DWMKRDSH.js} +1 -1
- package/dist/revo-grid/{cell-renderer-11cf-lu3.js → cell-renderer-BFpmdV8H.js} +3 -3
- package/dist/revo-grid/{column.service-Cfw3L0PN.js → column.service-CM-wgGs8.js} +3 -3
- package/dist/{esm/dimension.helpers-fl4HSSK9.js → revo-grid/dimension.helpers-Cln9sALu.js} +52 -9
- package/dist/{esm/edit.utils-4e9fsqOR.js → revo-grid/edit.utils-3ZbhQCv_.js} +1 -1
- package/dist/revo-grid/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-Bqh1PrgH.js} +1 -1
- package/dist/revo-grid/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
- package/dist/revo-grid/index.esm.js +14 -11
- package/dist/revo-grid/revo-grid.entry.js +56 -31
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +51 -19
- package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
- package/dist/revo-grid/revogr-data_4.entry.js +21 -15
- package/dist/revo-grid/revogr-filter-panel.entry.js +9 -9
- package/dist/revo-grid/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-BRiaHlHA.js} +562 -20
- package/dist/{esm/text-editor-DlMnLkRK.js → revo-grid/text-editor-eHtrwvxH.js} +2 -2
- package/dist/{esm/throttle-Cpk1LoGk.js → revo-grid/throttle-3rhqdcLy.js} +3 -3
- package/dist/{esm/viewport.store-BSXmsiZc.js → revo-grid/viewport.store-DWMKRDSH.js} +1 -1
- package/dist/types/components/data/revogr-data.d.ts +1 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +6 -0
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +3 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +7 -1
- package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +3 -1
- package/dist/types/components.d.ts +23 -10
- package/dist/types/plugins/filter/filter.constants.d.ts +6 -0
- package/dist/types/plugins/filter/filter.plugin.d.ts +15 -0
- package/dist/types/plugins/index.d.ts +1 -0
- package/dist/types/plugins/row-resize/index.d.ts +3 -0
- package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +44 -0
- package/dist/types/plugins/row-resize/row-resize.types.d.ts +40 -0
- package/dist/types/plugins/row-resize/row-resize.utils.d.ts +14 -0
- package/dist/types/services/data.provider.d.ts +2 -0
- package/dist/types/store/dataSource/data.pending.plugin.d.ts +9 -0
- package/dist/types/store/dataSource/data.store.d.ts +10 -0
- package/dist/types/store/dataSource/trimmed.plugin.d.ts +5 -0
- package/dist/types/types/events.d.ts +1 -1
- package/dist/types/types/interfaces.d.ts +3 -1
- package/hydrate/index.js +734 -85
- package/hydrate/index.mjs +734 -85
- package/package.json +1 -1
- package/readme.md +4 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/local.scroll.timer.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/standalone/revogr-row-headers2.js +1 -1
package/hydrate/index.js
CHANGED
|
@@ -7608,7 +7608,7 @@ function moveFilterItem(items, sourceId, targetId) {
|
|
|
7608
7608
|
return true;
|
|
7609
7609
|
}
|
|
7610
7610
|
|
|
7611
|
-
const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.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}`;
|
|
7611
|
+
const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px;position:relative;z-index:1}.rgHeaderCell .rv-filter.active{color:var(--rg-theme-filter-panel-icon-active)}.rgHeaderCell .rv-filter .filter-img{color:var(--rg-theme-filter-panel-icon);width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;color:var(--rg-theme-filter-panel-text);border:1px solid var(--rg-theme-filter-panel-select-border);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--rg-theme-filter-panel-input-bg);background-image:var(--revo-grid-filter-panel-select-arrow, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"));background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css{}.select-css:hover{border-color:var(--rg-theme-filter-panel-select-border)}.select-css{}.select-css:focus{border-color:var(--rg-theme-filter-panel-select-border-hover);box-shadow:var(--rg-theme-filter-panel-focus-ring);outline:none}.select-css{}.select-css option{font-weight:normal}.select-css{}.select-css:disabled,.select-css[aria-disabled=true]{color:var(--rg-theme-filter-panel-muted-text);background-image:var(--revo-grid-filter-panel-select-arrow-disabled, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"))}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--rg-theme-filter-panel-select-border)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--rg-theme-filter-panel-reorder-accent);border-radius:999px;box-shadow:0 0 0 2px var(--rg-theme-filter-panel-bg)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--rg-theme-filter-panel-reorder-color);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--rg-theme-filter-panel-reorder-accent)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--rg-theme-filter-panel-divider);height:10px}.select-input{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}`;
|
|
7612
7612
|
|
|
7613
7613
|
const defaultType = 'none';
|
|
7614
7614
|
const FILTER_LIST_CLASS = 'multi-filter-list';
|
|
@@ -7713,7 +7713,7 @@ class FilterPanel {
|
|
|
7713
7713
|
getFilterItemsList() {
|
|
7714
7714
|
var _a, _b;
|
|
7715
7715
|
const prop = (_a = this.changes) === null || _a === void 0 ? void 0 : _a.prop;
|
|
7716
|
-
if (
|
|
7716
|
+
if (prop === undefined)
|
|
7717
7717
|
return '';
|
|
7718
7718
|
const propFilters = (_b = this.filterItems[prop]) !== null && _b !== void 0 ? _b : [];
|
|
7719
7719
|
const visibleFilterCount = propFilters.filter(filter => !filter.hidden).length;
|
|
@@ -7737,7 +7737,7 @@ class FilterPanel {
|
|
|
7737
7737
|
'filter-row-dragging': isDragging,
|
|
7738
7738
|
'filter-row-drag-over': isDragOver,
|
|
7739
7739
|
} }, canReorder ? (hAsync("button", { type: "button", class: "filter-row-drop-target", tabIndex: -1, "aria-label": `${capts.filterCondition} ${index + 1}`, onDragOver: e => this.onFilterDragOver(e, filter.id), onDragLeave: () => this.onFilterDragLeave(filter.id), onDrop: e => this.onFilterDrop(e, prop, filter.id) })) : '', canReorder ? (hAsync(ReorderButton, { ariaLabel: capts.reorderFilter, dragging: isDragging, dragOver: isDragOver, onDragStart: e => this.onFilterDragStart(e, filter.id), onDragEnd: () => this.onFilterDragEnd(), onKeyDown: e => this.onFilterReorderKeyDown(e, prop, filter.id) })) : '', hAsync("div", { class: { 'select-input': true } }, hAsync("select", { class: "select-css select-filter", onChange: e => this.onFilterTypeChange(e, prop, index) }, this.renderSelectOptions(this.filterItems[prop][index].type, true)), extra ? hAsync("div", { class: "filter-extra" }, extra) : ''), hAsync("div", { class: FILTER_LIST_CLASS_ACTION }, andOrButton, hAsync(TrashButton, { ariaLabel: capts.removeFilter, onClick: () => this.onRemoveFilter(filter.id) })))));
|
|
7740
|
-
})), propFilters.
|
|
7740
|
+
})), propFilters.some(f => !f.hidden) ? hAsync("div", { class: "add-filter-divider" }) : ''));
|
|
7741
7741
|
}
|
|
7742
7742
|
componentDidRender() {
|
|
7743
7743
|
this.syncDialog();
|
|
@@ -8098,7 +8098,7 @@ class FilterPanel {
|
|
|
8098
8098
|
top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
|
|
8099
8099
|
};
|
|
8100
8100
|
const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
|
|
8101
|
-
return (hAsync(Host, { key: '
|
|
8101
|
+
return (hAsync(Host, { key: 'd0e4ebb408750b11b3965da6a25e581733c968e3' }, hAsync("dialog", { key: '3df36777c931ec1063e8574169ca880a99dbfe41', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
|
|
8102
8102
|
e.preventDefault();
|
|
8103
8103
|
this.onCancel();
|
|
8104
8104
|
} }, this.changes && [
|
|
@@ -8107,16 +8107,16 @@ class FilterPanel {
|
|
|
8107
8107
|
((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
|
|
8108
8108
|
hAsync("label", { key: "filter-title" }, capts.title),
|
|
8109
8109
|
hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
|
|
8110
|
-
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '
|
|
8110
|
+
hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: 'e2a8bd29f2090d3e6c933795427b71ca190b82aa', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
|
|
8111
8111
|
],
|
|
8112
8112
|
hAsync("slot", { key: "default-slot" }),
|
|
8113
8113
|
((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
|
|
8114
8114
|
hAsync("div", { key: "filter-actions", class: "filter-actions" }, this.disableDynamicFiltering && [
|
|
8115
|
-
hAsync("button", { key: "save", id: "revo-button-save", "aria-label": "save", class: "revo-button green", onClick: () => this.onSave() }, capts.save),
|
|
8116
|
-
hAsync("button", { key: "cancel", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.cancel),
|
|
8115
|
+
hAsync("button", { key: "save", type: "button", id: "revo-button-save", "aria-label": "save", class: "revo-button green", onClick: () => this.onSave() }, capts.save),
|
|
8116
|
+
hAsync("button", { key: "cancel", type: "button", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.cancel),
|
|
8117
8117
|
], !this.disableDynamicFiltering && [
|
|
8118
|
-
hAsync("button", { key: "ok", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.ok),
|
|
8119
|
-
hAsync("button", { key: "reset", id: "revo-button-reset", "aria-label": "reset", class: "revo-button outline", onClick: () => this.onReset() }, capts.reset),
|
|
8118
|
+
hAsync("button", { key: "ok", type: "button", id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.ok),
|
|
8119
|
+
hAsync("button", { key: "reset", type: "button", id: "revo-button-reset", "aria-label": "reset", class: "revo-button outline", onClick: () => this.onReset() }, capts.reset),
|
|
8120
8120
|
]),
|
|
8121
8121
|
hAsync("slot", { key: "footer-slot", slot: "footer" }),
|
|
8122
8122
|
])));
|
|
@@ -11170,13 +11170,8 @@ const trimmedPlugin$1 = (store) => ({
|
|
|
11170
11170
|
set(k, newVal) {
|
|
11171
11171
|
switch (k) {
|
|
11172
11172
|
case 'trimmed': {
|
|
11173
|
-
// full sorted items list
|
|
11174
|
-
const proxy = store.get('proxyItems');
|
|
11175
|
-
const trimmed = gatherTrimmedItems(newVal);
|
|
11176
|
-
// filter our physical indexes which are not trimmed
|
|
11177
|
-
const newItems = proxy.filter(v => !trimmed[v]);
|
|
11178
11173
|
// set trimmed items in store
|
|
11179
|
-
store.set('items',
|
|
11174
|
+
store.set('items', getVisibleItems(store.get('proxyItems'), newVal));
|
|
11180
11175
|
break;
|
|
11181
11176
|
}
|
|
11182
11177
|
}
|
|
@@ -11192,6 +11187,14 @@ function gatherTrimmedItems(trimmedItems) {
|
|
|
11192
11187
|
}
|
|
11193
11188
|
return trimmed;
|
|
11194
11189
|
}
|
|
11190
|
+
/**
|
|
11191
|
+
* Preserve proxy order while removing physical indexes hidden by any trim
|
|
11192
|
+
* layer.
|
|
11193
|
+
*/
|
|
11194
|
+
function getVisibleItems(proxyItems, trimmedItems) {
|
|
11195
|
+
const trimmed = gatherTrimmedItems(trimmedItems);
|
|
11196
|
+
return proxyItems.filter(index => !trimmed[index]);
|
|
11197
|
+
}
|
|
11195
11198
|
|
|
11196
11199
|
/**
|
|
11197
11200
|
* Sets the given data on the specified store.
|
|
@@ -11498,7 +11501,7 @@ function gatherGroup(res, colData, collection, existingColumnsByType, level = 0)
|
|
|
11498
11501
|
// fill columns
|
|
11499
11502
|
resultItem.push(...collectionItem);
|
|
11500
11503
|
// fill indexes per each viewport
|
|
11501
|
-
res.columnGrouping[type].push(Object.assign(Object.assign({}, group), { indexes: Array(itemLength
|
|
11504
|
+
res.columnGrouping[type].push(Object.assign(Object.assign({}, group), { indexes: Array.from({ length: itemLength }, (_, i) => columnLength + i) }));
|
|
11502
11505
|
}
|
|
11503
11506
|
}
|
|
11504
11507
|
});
|
|
@@ -11722,6 +11725,25 @@ async function timeout(delay = 0) {
|
|
|
11722
11725
|
});
|
|
11723
11726
|
}
|
|
11724
11727
|
|
|
11728
|
+
/**
|
|
11729
|
+
* Keeps the visible item collection empty while an asynchronous data operation
|
|
11730
|
+
* is pending. Proxy, trim, and source updates may still calculate new items,
|
|
11731
|
+
* but they must not expose those items until the owning operation releases the
|
|
11732
|
+
* pending state.
|
|
11733
|
+
*/
|
|
11734
|
+
const pendingItemsPlugin = (store, isPending) => ({
|
|
11735
|
+
set(key, value) {
|
|
11736
|
+
if (key === 'items' &&
|
|
11737
|
+
isPending() &&
|
|
11738
|
+
Array.isArray(value) &&
|
|
11739
|
+
value.length) {
|
|
11740
|
+
// Writing an empty collection does not re-enter this branch, so the
|
|
11741
|
+
// guard safely replaces every attempted non-empty visibility update.
|
|
11742
|
+
store.set('items', []);
|
|
11743
|
+
}
|
|
11744
|
+
},
|
|
11745
|
+
});
|
|
11746
|
+
|
|
11725
11747
|
/**
|
|
11726
11748
|
* Data store
|
|
11727
11749
|
* Manage the state of a data source and provide methods for updating, adding, and refreshing the data.
|
|
@@ -11731,9 +11753,15 @@ class DataStore {
|
|
|
11731
11753
|
return this.dataStore;
|
|
11732
11754
|
}
|
|
11733
11755
|
constructor(type, storeData) {
|
|
11756
|
+
/**
|
|
11757
|
+
* The source, proxy order, and trims may continue changing,
|
|
11758
|
+
* but visible items must remain empty until the operation finishes.
|
|
11759
|
+
*/
|
|
11760
|
+
this.itemsPending = false;
|
|
11734
11761
|
const store = (this.dataStore = createStore(Object.assign({ items: [], proxyItems: [], source: [], groupingDepth: 0, groups: {}, type, trimmed: {}, groupingCustomRenderer: undefined, groupingCellRenderer: undefined }, storeData)));
|
|
11735
11762
|
store.use(proxyPlugin(store));
|
|
11736
11763
|
store.use(trimmedPlugin$1(store));
|
|
11764
|
+
store.use(pendingItemsPlugin(store, () => this.itemsPending));
|
|
11737
11765
|
}
|
|
11738
11766
|
/**
|
|
11739
11767
|
* full data source update
|
|
@@ -11748,7 +11776,7 @@ class DataStore {
|
|
|
11748
11776
|
// if true, current trimmed indexes will be re-applied to the new source
|
|
11749
11777
|
preserveTrimmed = false) {
|
|
11750
11778
|
const trimmed = this.store.get('trimmed');
|
|
11751
|
-
const
|
|
11779
|
+
const preserveCurrentTrimmed = silent && preserveTrimmed;
|
|
11752
11780
|
// during full update we do drop trim
|
|
11753
11781
|
if (!silent) {
|
|
11754
11782
|
this.store.set('trimmed', {});
|
|
@@ -11763,7 +11791,7 @@ class DataStore {
|
|
|
11763
11791
|
});
|
|
11764
11792
|
// Explicit trim preservation is opt-in because physical indexes may change
|
|
11765
11793
|
// across full data refreshes.
|
|
11766
|
-
this.store.set('items',
|
|
11794
|
+
this.store.set('items', preserveCurrentTrimmed ? getVisibleItems(items, trimmed) : items);
|
|
11767
11795
|
// apply grouping if present
|
|
11768
11796
|
if (grouping) {
|
|
11769
11797
|
setStore(this.store, {
|
|
@@ -11780,6 +11808,21 @@ class DataStore {
|
|
|
11780
11808
|
trimmed = Object.assign(Object.assign({}, trimmed), some);
|
|
11781
11809
|
setStore(this.store, { trimmed });
|
|
11782
11810
|
}
|
|
11811
|
+
/**
|
|
11812
|
+
* Keeps visible items empty while an asynchronous source operation is pending.
|
|
11813
|
+
* Releasing the state restores the current proxy order with all trims applied.
|
|
11814
|
+
*/
|
|
11815
|
+
setItemsPending(pending) {
|
|
11816
|
+
if (this.itemsPending === pending) {
|
|
11817
|
+
return;
|
|
11818
|
+
}
|
|
11819
|
+
this.itemsPending = pending;
|
|
11820
|
+
if (pending) {
|
|
11821
|
+
this.store.set('items', []);
|
|
11822
|
+
return;
|
|
11823
|
+
}
|
|
11824
|
+
this.store.set('items', getVisibleItems(this.store.get('proxyItems'), this.store.get('trimmed')));
|
|
11825
|
+
}
|
|
11783
11826
|
setSourceData(items, mutate = true) {
|
|
11784
11827
|
setSourceByVirtualIndex(this.store, items, mutate);
|
|
11785
11828
|
}
|
|
@@ -12157,9 +12200,7 @@ const trimmedPlugin = (storeService) => {
|
|
|
12157
12200
|
}
|
|
12158
12201
|
case 'trimmed': {
|
|
12159
12202
|
const trim = val;
|
|
12160
|
-
|
|
12161
|
-
trimmedPreviousSizes = storeService.store.get('sizes');
|
|
12162
|
-
}
|
|
12203
|
+
trimmedPreviousSizes !== null && trimmedPreviousSizes !== void 0 ? trimmedPreviousSizes : (trimmedPreviousSizes = storeService.store.get('sizes'));
|
|
12163
12204
|
trimmingObject = removeMultipleAndShift(trimmedPreviousSizes, trim || {});
|
|
12164
12205
|
// save a reference to the trimmed object to prevent changes after trimming
|
|
12165
12206
|
storeService.setSizes(trimmingObject);
|
|
@@ -13196,7 +13237,7 @@ function isGrouping(rgRow) {
|
|
|
13196
13237
|
return typeof (rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM]) !== 'undefined';
|
|
13197
13238
|
}
|
|
13198
13239
|
function isGroupingColumn(column) {
|
|
13199
|
-
return
|
|
13240
|
+
return (column === null || column === void 0 ? void 0 : column[PSEUDO_GROUP_COLUMN]) !== undefined;
|
|
13200
13241
|
}
|
|
13201
13242
|
function measureEqualDepth(groupA, groupB) {
|
|
13202
13243
|
const ln = groupA.length;
|
|
@@ -13800,6 +13841,16 @@ const DIRECTION_CODES = [
|
|
|
13800
13841
|
class KeyboardService {
|
|
13801
13842
|
constructor(sv) {
|
|
13802
13843
|
this.sv = sv;
|
|
13844
|
+
/** Keep focus transitions in keydown order so rendering can scroll each cell into view. */
|
|
13845
|
+
this.keyChangeQueue = Promise.resolve(false);
|
|
13846
|
+
this.keyChangeGeneration = 0;
|
|
13847
|
+
this.applyingKeyChange = false;
|
|
13848
|
+
}
|
|
13849
|
+
/** Cancel delayed directional input after focus or edit context changes externally. */
|
|
13850
|
+
invalidatePendingChanges() {
|
|
13851
|
+
if (!this.applyingKeyChange) {
|
|
13852
|
+
this.keyChangeGeneration += 1;
|
|
13853
|
+
}
|
|
13803
13854
|
}
|
|
13804
13855
|
/**
|
|
13805
13856
|
* Appends printable key input that arrives after edit mode was requested
|
|
@@ -13902,13 +13953,33 @@ class KeyboardService {
|
|
|
13902
13953
|
if (!data) {
|
|
13903
13954
|
return false;
|
|
13904
13955
|
}
|
|
13956
|
+
const keyChangeGeneration = this.keyChangeGeneration;
|
|
13905
13957
|
// this interval needed for several cases
|
|
13906
13958
|
// grid could be resized before next click
|
|
13907
13959
|
// at this case to avoid screen jump we use this interval
|
|
13908
13960
|
await timeout(RESIZE_INTERVAL + 30);
|
|
13909
|
-
const
|
|
13910
|
-
|
|
13911
|
-
|
|
13961
|
+
const applyKeyChange = async () => {
|
|
13962
|
+
if (keyChangeGeneration !== this.keyChangeGeneration) {
|
|
13963
|
+
return false;
|
|
13964
|
+
}
|
|
13965
|
+
const range = this.sv.selectionStore.get('range');
|
|
13966
|
+
const focus = this.sv.selectionStore.get('focus');
|
|
13967
|
+
this.applyingKeyChange = true;
|
|
13968
|
+
let changed;
|
|
13969
|
+
try {
|
|
13970
|
+
changed = this.keyPositionChange(data.changes, range, focus, data.isMulti);
|
|
13971
|
+
}
|
|
13972
|
+
finally {
|
|
13973
|
+
this.applyingKeyChange = false;
|
|
13974
|
+
}
|
|
13975
|
+
await new Promise(resolve => requestAnimationFrame(() => {
|
|
13976
|
+
requestAnimationFrame(() => resolve());
|
|
13977
|
+
}));
|
|
13978
|
+
return changed;
|
|
13979
|
+
};
|
|
13980
|
+
const queuedChange = this.keyChangeQueue.then(applyKeyChange, applyKeyChange);
|
|
13981
|
+
this.keyChangeQueue = queuedChange.catch(() => false);
|
|
13982
|
+
return queuedChange;
|
|
13912
13983
|
}
|
|
13913
13984
|
keyPositionChange(changes, range, focus, isMulti = false) {
|
|
13914
13985
|
if (!range || !focus) {
|
|
@@ -14295,6 +14366,8 @@ class OverlaySelection {
|
|
|
14295
14366
|
* Selection & Keyboard
|
|
14296
14367
|
*/
|
|
14297
14368
|
selectionServiceSet(selectionStore) {
|
|
14369
|
+
var _a;
|
|
14370
|
+
(_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.invalidatePendingChanges();
|
|
14298
14371
|
// clear subscriptions
|
|
14299
14372
|
this.unsubscribeSelectionStore.forEach(v => v());
|
|
14300
14373
|
this.unsubscribeSelectionStore.length = 0;
|
|
@@ -14322,6 +14395,7 @@ class OverlaySelection {
|
|
|
14322
14395
|
getData: () => this.getData(),
|
|
14323
14396
|
selectAll: () => this.selectAll.emit(),
|
|
14324
14397
|
});
|
|
14398
|
+
this.unsubscribeSelectionStore.push(selectionStore.onChange('focus', () => { var _a; return (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.invalidatePendingChanges(); }), selectionStore.onChange('edit', () => { var _a; return (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.invalidatePendingChanges(); }));
|
|
14325
14399
|
this.createAutoFillService();
|
|
14326
14400
|
}
|
|
14327
14401
|
/** Autofill */
|
|
@@ -14358,11 +14432,12 @@ class OverlaySelection {
|
|
|
14358
14432
|
this.selectionServiceSet(this.selectionStore);
|
|
14359
14433
|
}
|
|
14360
14434
|
disconnectedCallback() {
|
|
14361
|
-
var _a;
|
|
14435
|
+
var _a, _b;
|
|
14362
14436
|
// clear subscriptions
|
|
14437
|
+
(_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.invalidatePendingChanges();
|
|
14363
14438
|
this.unsubscribeSelectionStore.forEach(v => v());
|
|
14364
14439
|
this.unsubscribeSelectionStore.length = 0;
|
|
14365
|
-
(
|
|
14440
|
+
(_b = this.columnService) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
14366
14441
|
}
|
|
14367
14442
|
async componentWillRender() {
|
|
14368
14443
|
var _a, _b;
|
|
@@ -14374,9 +14449,7 @@ class OverlaySelection {
|
|
|
14374
14449
|
renderRange(range) {
|
|
14375
14450
|
const cell = getCell(range, this.dimensionRow.state, this.dimensionCol.state);
|
|
14376
14451
|
const styles = styleByCellProps(cell);
|
|
14377
|
-
return
|
|
14378
|
-
hAsync("div", { class: SELECTION_BORDER_CLASS, style: styles }, this.isMobileDevice && (hAsync("div", { class: "range-handlers" }, hAsync("span", { class: MOBILE_CLASS }), hAsync("span", { class: MOBILE_CLASS })))),
|
|
14379
|
-
];
|
|
14452
|
+
return (hAsync("div", { class: SELECTION_BORDER_CLASS, style: styles }, this.isMobileDevice && (hAsync("div", { class: "range-handlers" }, hAsync("span", { class: MOBILE_CLASS }), hAsync("span", { class: MOBILE_CLASS })))));
|
|
14380
14453
|
}
|
|
14381
14454
|
renderEditor() {
|
|
14382
14455
|
// Check if edit access
|
|
@@ -14429,7 +14502,7 @@ class OverlaySelection {
|
|
|
14429
14502
|
}
|
|
14430
14503
|
// Range
|
|
14431
14504
|
if (range) {
|
|
14432
|
-
nodes.push(
|
|
14505
|
+
nodes.push(this.renderRange(range));
|
|
14433
14506
|
}
|
|
14434
14507
|
// Autofill
|
|
14435
14508
|
if (focus && !this.readonly && this.range) {
|
|
@@ -14440,9 +14513,9 @@ class OverlaySelection {
|
|
|
14440
14513
|
nodes.push(hAsync("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, rowType: this.types.rowType, onRowdragstartinit: e => this.rowDragStart(e) }));
|
|
14441
14514
|
}
|
|
14442
14515
|
}
|
|
14443
|
-
return (hAsync(Host, { key: '
|
|
14516
|
+
return (hAsync(Host, { key: '230e2122c5c7065c072f02019d616a64949d54d0', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true), onCloseedit: (e) => this.closeEdit(e),
|
|
14444
14517
|
// it's done to be able to throw events from different levels, not just from editor
|
|
14445
|
-
onCelledit: (e) => this.onEditCell(e) }, nodes, hAsync("slot", { key: '
|
|
14518
|
+
onCelledit: (e) => this.onEditCell(e) }, nodes, hAsync("slot", { key: '47740a79c605258b4024384510358be927d000b7', name: "data" })));
|
|
14446
14519
|
}
|
|
14447
14520
|
/**
|
|
14448
14521
|
* Executes the focus operation on the specified range of cells.
|
|
@@ -14639,12 +14712,12 @@ class OverlaySelection {
|
|
|
14639
14712
|
clearCell() {
|
|
14640
14713
|
var _a;
|
|
14641
14714
|
const range = this.selectionStore.get('range');
|
|
14642
|
-
|
|
14715
|
+
const focused = this.selectionStore.get('focus');
|
|
14716
|
+
if (range && (!isRangeSingleCell(range) || !focused)) {
|
|
14643
14717
|
const data = this.columnService.getRangeStaticData(range, '');
|
|
14644
14718
|
(_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(data, range, range);
|
|
14645
14719
|
}
|
|
14646
14720
|
else if (this.canEdit()) {
|
|
14647
|
-
const focused = this.selectionStore.get('focus');
|
|
14648
14721
|
if (!focused) {
|
|
14649
14722
|
return;
|
|
14650
14723
|
}
|
|
@@ -15197,9 +15270,15 @@ class DataProvider {
|
|
|
15197
15270
|
store.addTrimmed(trimmed);
|
|
15198
15271
|
this.dimensionProvider.setTrimmed(trimmed, type);
|
|
15199
15272
|
if (type === 'rgRow') {
|
|
15200
|
-
this.dimensionProvider.setData(
|
|
15273
|
+
this.dimensionProvider.setData(store.store.get('items').length, type);
|
|
15201
15274
|
}
|
|
15202
15275
|
}
|
|
15276
|
+
/** Keep a row source empty until its current asynchronous update is ready. */
|
|
15277
|
+
setItemsPending(pending, type = 'rgRow') {
|
|
15278
|
+
const store = this.stores[type];
|
|
15279
|
+
store.setItemsPending(pending);
|
|
15280
|
+
this.dimensionProvider.setData(store.store.get('items').length, type, type !== 'rgRow');
|
|
15281
|
+
}
|
|
15203
15282
|
}
|
|
15204
15283
|
|
|
15205
15284
|
const FALLBACK_MAX_SCROLL_SIZE = 16000000;
|
|
@@ -16315,6 +16394,13 @@ const filterNames = {
|
|
|
16315
16394
|
lte: '<=',
|
|
16316
16395
|
};
|
|
16317
16396
|
|
|
16397
|
+
/** Fewer rows keep the existing synchronous filtering behavior. */
|
|
16398
|
+
const ASYNC_FILTER_ROW_THRESHOLD = 15000;
|
|
16399
|
+
/** Maximum rows evaluated in one filtering chunk. */
|
|
16400
|
+
const FILTER_CHUNK_SIZE = 1000;
|
|
16401
|
+
/** Yield after approximately this much accumulated filtering work. */
|
|
16402
|
+
const FILTER_TIME_BUDGET_MS = 5;
|
|
16403
|
+
|
|
16318
16404
|
// filter.plugin.tsx
|
|
16319
16405
|
const FILTER_TRIMMED_TYPE = 'filter';
|
|
16320
16406
|
const FILTER_CONFIG_CHANGED_EVENT = 'filterconfigchanged';
|
|
@@ -16359,6 +16445,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
16359
16445
|
this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
|
|
16360
16446
|
this.filterProp = FILTER_PROP;
|
|
16361
16447
|
this.allowDuplicateOperators = true;
|
|
16448
|
+
this.filteringRunId = 0;
|
|
16362
16449
|
if (config) {
|
|
16363
16450
|
this.initConfig(config);
|
|
16364
16451
|
}
|
|
@@ -16367,7 +16454,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
16367
16454
|
...existingNodes,
|
|
16368
16455
|
hAsync("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, allowDuplicateOperators: this.allowDuplicateOperators, ref: e => (this.pop = e) }, ' ', this.extraContent()),
|
|
16369
16456
|
];
|
|
16370
|
-
const aftersourceset =
|
|
16457
|
+
const aftersourceset = () => {
|
|
16371
16458
|
const filterCollectionProps = Object.keys(this.filterCollection);
|
|
16372
16459
|
if (filterCollectionProps.length > 0) {
|
|
16373
16460
|
// handle old way of filtering by reworking FilterCollection to new MultiFilterItem
|
|
@@ -16384,12 +16471,26 @@ class FilterPlugin extends BasePlugin {
|
|
|
16384
16471
|
}
|
|
16385
16472
|
});
|
|
16386
16473
|
}
|
|
16387
|
-
if (
|
|
16474
|
+
if (!this.hasActiveFilters()) {
|
|
16475
|
+
this.cancelFiltering();
|
|
16388
16476
|
return;
|
|
16389
16477
|
}
|
|
16390
|
-
|
|
16391
|
-
await this.runFiltering(this.multiFilterItems);
|
|
16478
|
+
void this.runFiltering(this.multiFilterItems);
|
|
16392
16479
|
};
|
|
16480
|
+
/**
|
|
16481
|
+
* This executes before the data store replaces its source.
|
|
16482
|
+
* For a large source with active filters:
|
|
16483
|
+
* 1. Existing filtering runs are invalidated.
|
|
16484
|
+
* 2. Pending state starts.
|
|
16485
|
+
* 3. Visible rows become empty.
|
|
16486
|
+
* 4. The source is replaced while the DataStore guard prevents it from exposing unfiltered rows.
|
|
16487
|
+
*/
|
|
16488
|
+
this.addEventListener('beforesourceset', ({ detail }) => {
|
|
16489
|
+
if (detail.source.length >= ASYNC_FILTER_ROW_THRESHOLD &&
|
|
16490
|
+
this.hasActiveFilters()) {
|
|
16491
|
+
this.deferFiltering();
|
|
16492
|
+
}
|
|
16493
|
+
});
|
|
16393
16494
|
this.addEventListener('headerclick', e => this.headerclick(e));
|
|
16394
16495
|
this.addEventListener(FILTER_CONFIG_CHANGED_EVENT, ({ detail }) => {
|
|
16395
16496
|
if (!detail) {
|
|
@@ -16550,7 +16651,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
16550
16651
|
// store the filter items
|
|
16551
16652
|
this.multiFilterItems = filterItems;
|
|
16552
16653
|
// run the filtering when the items change
|
|
16553
|
-
this.runFiltering(this.multiFilterItems);
|
|
16654
|
+
await this.runFiltering(this.multiFilterItems);
|
|
16554
16655
|
}
|
|
16555
16656
|
onFilterReset(prop) {
|
|
16556
16657
|
delete this.multiFilterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
@@ -16560,6 +16661,8 @@ class FilterPlugin extends BasePlugin {
|
|
|
16560
16661
|
* Triggers grid filtering
|
|
16561
16662
|
*/
|
|
16562
16663
|
async doFiltering(collection, source, columns, filterItems) {
|
|
16664
|
+
// creates the execution token - owns the actual calculation
|
|
16665
|
+
const runId = this.beginFiltering();
|
|
16563
16666
|
const columnsToUpdate = [];
|
|
16564
16667
|
/**
|
|
16565
16668
|
* Loop through the columns and update the columns that need to be updated with the `hasFilter` property.
|
|
@@ -16584,7 +16687,25 @@ class FilterPlugin extends BasePlugin {
|
|
|
16584
16687
|
column[this.filterProp] = true;
|
|
16585
16688
|
}
|
|
16586
16689
|
});
|
|
16587
|
-
|
|
16690
|
+
let itemsToTrim;
|
|
16691
|
+
const hasFilters = Object.keys(filterItems).length > 0 || this.hasActiveFilters();
|
|
16692
|
+
const isLargeSource = hasFilters && source.length >= ASYNC_FILTER_ROW_THRESHOLD;
|
|
16693
|
+
if (isLargeSource) {
|
|
16694
|
+
this.providers.data.setItemsPending(true);
|
|
16695
|
+
await timeout();
|
|
16696
|
+
}
|
|
16697
|
+
if (!hasFilters) {
|
|
16698
|
+
itemsToTrim = {};
|
|
16699
|
+
}
|
|
16700
|
+
else if (isLargeSource && this.supportsChunkedFiltering()) {
|
|
16701
|
+
itemsToTrim = await this.getRowFilterInChunks(source, filterItems, columnByProp, runId);
|
|
16702
|
+
}
|
|
16703
|
+
else {
|
|
16704
|
+
itemsToTrim = this.getRowFilter(source, filterItems, columnByProp);
|
|
16705
|
+
}
|
|
16706
|
+
if (!itemsToTrim || runId !== this.filteringRunId) {
|
|
16707
|
+
return;
|
|
16708
|
+
}
|
|
16588
16709
|
// check is filter event prevented
|
|
16589
16710
|
const { defaultPrevented, detail } = this.emit('beforefiltertrimmed', {
|
|
16590
16711
|
collection,
|
|
@@ -16592,10 +16713,12 @@ class FilterPlugin extends BasePlugin {
|
|
|
16592
16713
|
source,
|
|
16593
16714
|
filterItems,
|
|
16594
16715
|
});
|
|
16595
|
-
if (defaultPrevented) {
|
|
16716
|
+
if (defaultPrevented || runId !== this.filteringRunId) {
|
|
16717
|
+
this.releaseFiltering(runId);
|
|
16596
16718
|
return;
|
|
16597
16719
|
}
|
|
16598
16720
|
this.providers.data.setTrimmed({ [FILTER_TRIMMED_TYPE]: detail.itemsToFilter });
|
|
16721
|
+
this.releaseFiltering(runId);
|
|
16599
16722
|
// applies the hasFilter to the columns to show filter icon
|
|
16600
16723
|
this.providers.column.updateColumns(columnsToUpdate);
|
|
16601
16724
|
this.emit('afterfilterapply', {
|
|
@@ -16609,6 +16732,10 @@ class FilterPlugin extends BasePlugin {
|
|
|
16609
16732
|
await this.runFiltering(this.multiFilterItems);
|
|
16610
16733
|
}
|
|
16611
16734
|
async runFiltering(multiFilterItems) {
|
|
16735
|
+
// runFiltering: First token: "Is this request still valid after event handlers run?"
|
|
16736
|
+
// doFiltering: Second token: "Is this calculation still the newest one?"
|
|
16737
|
+
// creates a preflight token and sets the grid to a pending state
|
|
16738
|
+
const runId = this.beginFiltering();
|
|
16612
16739
|
const collection = {};
|
|
16613
16740
|
// handle old filterCollection to return the first filter only (if any) from multiFilterItems
|
|
16614
16741
|
const filterProps = Object.keys(multiFilterItems);
|
|
@@ -16632,10 +16759,67 @@ class FilterPlugin extends BasePlugin {
|
|
|
16632
16759
|
columns,
|
|
16633
16760
|
filterItems: this.multiFilterItems,
|
|
16634
16761
|
});
|
|
16635
|
-
if (defaultPrevented) {
|
|
16762
|
+
if (defaultPrevented || runId !== this.filteringRunId) {
|
|
16763
|
+
this.releaseFiltering(runId);
|
|
16636
16764
|
return;
|
|
16637
16765
|
}
|
|
16638
|
-
this.doFiltering(detail.collection, detail.source, detail.columns, detail.filterItems);
|
|
16766
|
+
await this.doFiltering(detail.collection, detail.source, detail.columns, detail.filterItems);
|
|
16767
|
+
}
|
|
16768
|
+
/** Whether this plugin currently owns filter state that must follow a new source. */
|
|
16769
|
+
hasActiveFilters() {
|
|
16770
|
+
return (Object.keys(this.multiFilterItems).length > 0 ||
|
|
16771
|
+
Object.keys(this.filterCollection).length > 0);
|
|
16772
|
+
}
|
|
16773
|
+
/** Preserve whole-source semantics for plugins that override getRowFilter. */
|
|
16774
|
+
supportsChunkedFiltering() {
|
|
16775
|
+
return this.getRowFilter === FilterPlugin.prototype.getRowFilter;
|
|
16776
|
+
}
|
|
16777
|
+
/**
|
|
16778
|
+
* Hide visible rows and invalidate current filtering until a deferred filter
|
|
16779
|
+
* run is ready. Used by filter extensions with their own debounced state.
|
|
16780
|
+
*/
|
|
16781
|
+
deferFiltering() {
|
|
16782
|
+
this.beginFiltering(true);
|
|
16783
|
+
}
|
|
16784
|
+
beginFiltering(pending = false) {
|
|
16785
|
+
const runId = ++this.filteringRunId;
|
|
16786
|
+
if (pending) {
|
|
16787
|
+
this.providers.data.setItemsPending(true);
|
|
16788
|
+
}
|
|
16789
|
+
return runId;
|
|
16790
|
+
}
|
|
16791
|
+
releaseFiltering(runId) {
|
|
16792
|
+
if (runId === this.filteringRunId) {
|
|
16793
|
+
this.providers.data.setItemsPending(false);
|
|
16794
|
+
}
|
|
16795
|
+
}
|
|
16796
|
+
cancelFiltering() {
|
|
16797
|
+
this.releaseFiltering(this.beginFiltering());
|
|
16798
|
+
}
|
|
16799
|
+
async getRowFilterInChunks(rows, filterItems, columnByProp, runId) {
|
|
16800
|
+
const trimmed = {};
|
|
16801
|
+
let sliceStarted = performance.now();
|
|
16802
|
+
for (let offset = 0; offset < rows.length; offset += FILTER_CHUNK_SIZE) {
|
|
16803
|
+
if (runId !== this.filteringRunId) {
|
|
16804
|
+
return;
|
|
16805
|
+
}
|
|
16806
|
+
const end = Math.min(offset + FILTER_CHUNK_SIZE, rows.length);
|
|
16807
|
+
const chunkTrimmed = this.getRowFilter(rows.slice(offset, end), filterItems, columnByProp);
|
|
16808
|
+
// filter that chunk
|
|
16809
|
+
for (const chunkIndex in chunkTrimmed) {
|
|
16810
|
+
trimmed[offset + Number(chunkIndex)] = true;
|
|
16811
|
+
}
|
|
16812
|
+
if (end < rows.length &&
|
|
16813
|
+
performance.now() - sliceStarted >= FILTER_TIME_BUDGET_MS) {
|
|
16814
|
+
await timeout();
|
|
16815
|
+
sliceStarted = performance.now();
|
|
16816
|
+
}
|
|
16817
|
+
}
|
|
16818
|
+
return runId === this.filteringRunId ? trimmed : undefined;
|
|
16819
|
+
}
|
|
16820
|
+
destroy() {
|
|
16821
|
+
this.cancelFiltering();
|
|
16822
|
+
super.destroy();
|
|
16639
16823
|
}
|
|
16640
16824
|
/**
|
|
16641
16825
|
* Get trimmed rows based on filter
|
|
@@ -17910,7 +18094,7 @@ const GroupingRowRenderer = (props) => {
|
|
|
17910
18094
|
depth })))));
|
|
17911
18095
|
}
|
|
17912
18096
|
return (hAsync(RowRenderer, Object.assign({}, props, groupRowAttrs), hasExpand && [
|
|
17913
|
-
hAsync("button", { class: { [GROUP_EXPAND_BTN]: true }, onClick: e => expandEvent(e, model, itemIndex) }, expandSvgIconVNode(expanded)),
|
|
18097
|
+
hAsync("button", { type: "button", class: { [GROUP_EXPAND_BTN]: true }, onClick: e => expandEvent(e, model, itemIndex) }, expandSvgIconVNode(expanded)),
|
|
17914
18098
|
String(name),
|
|
17915
18099
|
]));
|
|
17916
18100
|
};
|
|
@@ -18070,7 +18254,7 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18070
18254
|
customRenderer: options.groupLabelTemplate,
|
|
18071
18255
|
cellRenderer: options.groupCellTemplate,
|
|
18072
18256
|
});
|
|
18073
|
-
this.updateTrimmed(trimmed, oldNewIndexMap, undefined, sourceWithGroups);
|
|
18257
|
+
this.updateTrimmed(trimmed, oldNewIndexMap, undefined, sourceWithGroups, { filterTrimmedMode: 'recompute-after-source-set' });
|
|
18074
18258
|
}
|
|
18075
18259
|
/**
|
|
18076
18260
|
* External call to apply grouping. Called by revogrid when prop changed.
|
|
@@ -18170,10 +18354,17 @@ class GroupingRowPlugin extends BasePlugin {
|
|
|
18170
18354
|
this.providers.data.setData(source, GROUPING_ROW_TYPE, this.revogrid.disableVirtualY, undefined, true);
|
|
18171
18355
|
this.updateTrimmed(undefined, undefined, oldNewIndexes, source);
|
|
18172
18356
|
}
|
|
18173
|
-
updateTrimmed(trimmedGroup = {}, firstLevelMap = {}, secondLevelMap, source = this.getStore().get('source')) {
|
|
18357
|
+
updateTrimmed(trimmedGroup = {}, firstLevelMap = {}, secondLevelMap, source = this.getStore().get('source'), { filterTrimmedMode = 'remap', } = {}) {
|
|
18174
18358
|
// map previously trimmed data
|
|
18175
18359
|
const trimemedOptionsToUpgrade = processDoubleConversionTrimmed(this.getStore().get('trimmed'), firstLevelMap, secondLevelMap);
|
|
18176
18360
|
for (let type in trimemedOptionsToUpgrade) {
|
|
18361
|
+
if (filterTrimmedMode === 'recompute-after-source-set' &&
|
|
18362
|
+
type === FILTER_TRIMMED_TYPE) {
|
|
18363
|
+
// The filter plugin recalculates this trim against the installed source
|
|
18364
|
+
// during aftersourceset. Reapplying remapped old indexes afterwards
|
|
18365
|
+
// would overwrite that fresh result.
|
|
18366
|
+
continue;
|
|
18367
|
+
}
|
|
18177
18368
|
if (type === FILTER_TRIMMED_TYPE) {
|
|
18178
18369
|
/** Regrouping changes physical indexes, so filter trim needs fresh group-header state. */
|
|
18179
18370
|
trimemedOptionsToUpgrade[type] = filterOutEmptyGroupRows(source, trimemedOptionsToUpgrade[type]);
|
|
@@ -18344,7 +18535,7 @@ class ViewportService {
|
|
|
18344
18535
|
const changedItems = {};
|
|
18345
18536
|
for (const i of Object.keys(detail || {})) {
|
|
18346
18537
|
const size = detail[i];
|
|
18347
|
-
const virtualIndex = parseInt(i, 10);
|
|
18538
|
+
const virtualIndex = Number.parseInt(i, 10);
|
|
18348
18539
|
const item = getSourceItem(store, virtualIndex);
|
|
18349
18540
|
if (item) {
|
|
18350
18541
|
changedItems[virtualIndex] = Object.assign(Object.assign({}, item), { size });
|
|
@@ -18473,29 +18664,25 @@ class GridScrollingService {
|
|
|
18473
18664
|
this.elements = {};
|
|
18474
18665
|
}
|
|
18475
18666
|
async proxyScroll(e, key, skipEvent) {
|
|
18476
|
-
var _a;
|
|
18477
18667
|
let newEventPromise;
|
|
18478
18668
|
let event = e;
|
|
18479
|
-
for (
|
|
18669
|
+
for (const elKey in (skipEvent ? {} : this.elements)) {
|
|
18480
18670
|
// skip
|
|
18481
18671
|
if (e.dimension === 'rgCol' && elKey === 'headerRow') {
|
|
18482
18672
|
continue;
|
|
18483
18673
|
// pinned column only
|
|
18484
18674
|
}
|
|
18485
|
-
|
|
18675
|
+
if (this.isPinnedColumn(key) && e.dimension === 'rgCol') {
|
|
18486
18676
|
if (elKey === key || !e.delta) {
|
|
18487
18677
|
continue;
|
|
18488
18678
|
}
|
|
18489
|
-
|
|
18490
|
-
|
|
18491
|
-
|
|
18492
|
-
}
|
|
18679
|
+
const changedEvent = this.changeScroll(this.elements[elKey], e);
|
|
18680
|
+
if (changedEvent) {
|
|
18681
|
+
newEventPromise = changedEvent;
|
|
18493
18682
|
}
|
|
18494
18683
|
}
|
|
18495
18684
|
else {
|
|
18496
|
-
|
|
18497
|
-
await ((_a = el.setScroll) === null || _a === void 0 ? void 0 : _a.call(el, e));
|
|
18498
|
-
}
|
|
18685
|
+
await this.setScroll(this.elements[elKey], e);
|
|
18499
18686
|
}
|
|
18500
18687
|
}
|
|
18501
18688
|
const newEvent = await newEventPromise;
|
|
@@ -18505,12 +18692,27 @@ class GridScrollingService {
|
|
|
18505
18692
|
this.setViewport(skipEvent && this.isPinnedColumn(key)
|
|
18506
18693
|
? Object.assign(Object.assign({}, event), { dimension: key }) : event);
|
|
18507
18694
|
}
|
|
18695
|
+
changeScroll(elements, e) {
|
|
18696
|
+
let changedEvent;
|
|
18697
|
+
for (const element of elements) {
|
|
18698
|
+
if (element.changeScroll) {
|
|
18699
|
+
changedEvent = element.changeScroll(e);
|
|
18700
|
+
}
|
|
18701
|
+
}
|
|
18702
|
+
return changedEvent;
|
|
18703
|
+
}
|
|
18704
|
+
async setScroll(elements, e) {
|
|
18705
|
+
var _a;
|
|
18706
|
+
for (const element of elements) {
|
|
18707
|
+
await ((_a = element.setScroll) === null || _a === void 0 ? void 0 : _a.call(element, e));
|
|
18708
|
+
}
|
|
18709
|
+
}
|
|
18508
18710
|
/**
|
|
18509
18711
|
* Silent scroll update for mobile devices when we have negative scroll top
|
|
18510
18712
|
*/
|
|
18511
18713
|
async scrollSilentService(e, key) {
|
|
18512
18714
|
var _a;
|
|
18513
|
-
for (
|
|
18715
|
+
for (const elKey in this.elements) {
|
|
18514
18716
|
// skip same element update
|
|
18515
18717
|
if (elKey === key) {
|
|
18516
18718
|
continue;
|
|
@@ -18518,7 +18720,7 @@ class GridScrollingService {
|
|
|
18518
18720
|
if (columnTypes.includes(key) &&
|
|
18519
18721
|
(elKey === 'headerRow' ||
|
|
18520
18722
|
columnTypes.includes(elKey))) {
|
|
18521
|
-
for (
|
|
18723
|
+
for (const el of this.elements[elKey]) {
|
|
18522
18724
|
await ((_a = el.changeScroll) === null || _a === void 0 ? void 0 : _a.call(el, e, true));
|
|
18523
18725
|
}
|
|
18524
18726
|
continue;
|
|
@@ -18526,7 +18728,7 @@ class GridScrollingService {
|
|
|
18526
18728
|
}
|
|
18527
18729
|
}
|
|
18528
18730
|
isPinnedColumn(key) {
|
|
18529
|
-
return !!key && ['colPinStart', 'colPinEnd'].
|
|
18731
|
+
return !!key && ['colPinStart', 'colPinEnd'].includes(key);
|
|
18530
18732
|
}
|
|
18531
18733
|
registerElements(els) {
|
|
18532
18734
|
this.elements = els;
|
|
@@ -18807,9 +19009,11 @@ class SelectionStoreConnector {
|
|
|
18807
19009
|
continue;
|
|
18808
19010
|
}
|
|
18809
19011
|
const lastCell = store.store.get('lastCell');
|
|
18810
|
-
if (lastCell) {
|
|
18811
|
-
store.
|
|
19012
|
+
if (!lastCell || lastCell.x <= 0 || lastCell.y <= 0) {
|
|
19013
|
+
store.setRangeArea(null);
|
|
19014
|
+
continue;
|
|
18812
19015
|
}
|
|
19016
|
+
store.setRange({ x: 0, y: 0 }, { x: lastCell.x - 1, y: lastCell.y - 1 });
|
|
18813
19017
|
}
|
|
18814
19018
|
}
|
|
18815
19019
|
}
|
|
@@ -19684,7 +19888,7 @@ class PluginService {
|
|
|
19684
19888
|
return;
|
|
19685
19889
|
}
|
|
19686
19890
|
// Step 1: Identify plugins to remove, compare new and old plugins
|
|
19687
|
-
const pluginsToRemove = (prevPlugins === null || prevPlugins === void 0 ? void 0 : prevPlugins.filter(prevPlugin => !plugins.
|
|
19891
|
+
const pluginsToRemove = (prevPlugins === null || prevPlugins === void 0 ? void 0 : prevPlugins.filter(prevPlugin => !plugins.includes(prevPlugin))) || [];
|
|
19688
19892
|
// Step 2: Remove old plugins
|
|
19689
19893
|
pluginsToRemove.forEach(plugin => {
|
|
19690
19894
|
var _a, _b;
|
|
@@ -19697,7 +19901,7 @@ class PluginService {
|
|
|
19697
19901
|
// Step 3: Register user plugins
|
|
19698
19902
|
plugins === null || plugins === void 0 ? void 0 : plugins.forEach(userPlugin => {
|
|
19699
19903
|
// check if plugin already exists, if so, skip
|
|
19700
|
-
const existingPlugin = this.internalPlugins.
|
|
19904
|
+
const existingPlugin = this.internalPlugins.some(createdPlugin => createdPlugin instanceof userPlugin);
|
|
19701
19905
|
if (existingPlugin) {
|
|
19702
19906
|
return;
|
|
19703
19907
|
}
|
|
@@ -19836,6 +20040,438 @@ class RTLPlugin extends BasePlugin {
|
|
|
19836
20040
|
}
|
|
19837
20041
|
}
|
|
19838
20042
|
|
|
20043
|
+
const DEFAULT_MIN_ROW_HEIGHT = 20;
|
|
20044
|
+
const finiteNumber = (value) => typeof value === 'number' && Number.isFinite(value);
|
|
20045
|
+
function resolveRowResizeConfig(config = {}) {
|
|
20046
|
+
const minHeight = finiteNumber(config.minHeight)
|
|
20047
|
+
? Math.max(1, Math.round(config.minHeight))
|
|
20048
|
+
: DEFAULT_MIN_ROW_HEIGHT;
|
|
20049
|
+
const maxHeight = finiteNumber(config.maxHeight)
|
|
20050
|
+
? Math.max(minHeight, Math.round(config.maxHeight))
|
|
20051
|
+
: undefined;
|
|
20052
|
+
return { minHeight, maxHeight, fullRow: config.fullRow === true };
|
|
20053
|
+
}
|
|
20054
|
+
function clampRowResizeHeight(height, config) {
|
|
20055
|
+
var _a;
|
|
20056
|
+
const rounded = Number.isFinite(height)
|
|
20057
|
+
? Math.round(height)
|
|
20058
|
+
: config.minHeight;
|
|
20059
|
+
return Math.min(Math.max(rounded, config.minHeight), (_a = config.maxHeight) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY);
|
|
20060
|
+
}
|
|
20061
|
+
function getRowResizeIndexes({ rowType, rowIndex, rowCount, selectedRange, selectedRowType, }) {
|
|
20062
|
+
if (!selectedRange ||
|
|
20063
|
+
selectedRowType !== rowType ||
|
|
20064
|
+
rowIndex < Math.min(selectedRange.y, selectedRange.y1) ||
|
|
20065
|
+
rowIndex > Math.max(selectedRange.y, selectedRange.y1)) {
|
|
20066
|
+
return rowIndex >= 0 && rowIndex < rowCount ? [rowIndex] : [];
|
|
20067
|
+
}
|
|
20068
|
+
const start = Math.max(0, Math.min(selectedRange.y, selectedRange.y1));
|
|
20069
|
+
const end = Math.min(rowCount - 1, Math.max(selectedRange.y, selectedRange.y1));
|
|
20070
|
+
return Array.from({ length: Math.max(0, end - start + 1) }, (_, i) => start + i);
|
|
20071
|
+
}
|
|
20072
|
+
function createRowResizePatch(indexes, size) {
|
|
20073
|
+
return indexes.reduce((patch, index) => {
|
|
20074
|
+
patch[index] = size;
|
|
20075
|
+
return patch;
|
|
20076
|
+
}, {});
|
|
20077
|
+
}
|
|
20078
|
+
function mergeRowResizeDefinitions(definitions, rowType, physicalIndexes, size) {
|
|
20079
|
+
const targetIndexes = new Set(physicalIndexes);
|
|
20080
|
+
const existingIndexes = new Set();
|
|
20081
|
+
const merged = definitions.map(definition => {
|
|
20082
|
+
if (definition.type !== rowType || !targetIndexes.has(definition.index)) {
|
|
20083
|
+
return definition;
|
|
20084
|
+
}
|
|
20085
|
+
existingIndexes.add(definition.index);
|
|
20086
|
+
return Object.assign(Object.assign({}, definition), { size });
|
|
20087
|
+
});
|
|
20088
|
+
for (const index of targetIndexes) {
|
|
20089
|
+
if (!existingIndexes.has(index)) {
|
|
20090
|
+
merged.push({ type: rowType, index, size });
|
|
20091
|
+
}
|
|
20092
|
+
}
|
|
20093
|
+
return merged;
|
|
20094
|
+
}
|
|
20095
|
+
|
|
20096
|
+
const ROW_RESIZE_HANDLE_CLASS = 'row-resize-handle';
|
|
20097
|
+
const BEFORE_ROW_RESIZE_EVENT = 'beforerowresize';
|
|
20098
|
+
const ROW_RESIZE_EVENT = 'rowresize';
|
|
20099
|
+
const AFTER_ROW_RESIZE_EVENT = 'afterrowresize';
|
|
20100
|
+
const ROW_RESIZE_CANCEL_EVENT = 'rowresizecancel';
|
|
20101
|
+
class RowResizePlugin extends BasePlugin {
|
|
20102
|
+
static fromGridProperty(revogrid, providers) {
|
|
20103
|
+
const plugin = new RowResizePlugin(revogrid, providers);
|
|
20104
|
+
plugin.controlFromGridProperty();
|
|
20105
|
+
return plugin;
|
|
20106
|
+
}
|
|
20107
|
+
constructor(revogrid, providers, config = {}) {
|
|
20108
|
+
super(revogrid, providers);
|
|
20109
|
+
this.enabled = false;
|
|
20110
|
+
this.gridResizeRow = false;
|
|
20111
|
+
this.gridPlugins = [];
|
|
20112
|
+
this.committedSizes = new Map();
|
|
20113
|
+
this.appliedIndexes = new Map();
|
|
20114
|
+
this.previousBodyCursor = '';
|
|
20115
|
+
this.decorateRow = ({ detail, }) => {
|
|
20116
|
+
if (!this.enabled ||
|
|
20117
|
+
(detail.colType !== 'rowHeaders' && !this.config.fullRow)) {
|
|
20118
|
+
return;
|
|
20119
|
+
}
|
|
20120
|
+
const handle = this.h('div', {
|
|
20121
|
+
'key': `row-resize-${detail.rowType}-${detail.item.itemIndex}`,
|
|
20122
|
+
'class': { [ROW_RESIZE_HANDLE_CLASS]: true },
|
|
20123
|
+
'data-row-resize-index': detail.item.itemIndex,
|
|
20124
|
+
'aria-hidden': 'true',
|
|
20125
|
+
'onPointerDown': (event) => this.startResize(event, detail.rowType, detail.item.itemIndex),
|
|
20126
|
+
});
|
|
20127
|
+
detail.node.$children$ = [...(detail.node.$children$ || []), handle];
|
|
20128
|
+
};
|
|
20129
|
+
this.cancelForDataChange = () => this.cancel('data-change');
|
|
20130
|
+
this.onPointerMove = (event) => {
|
|
20131
|
+
const active = this.active;
|
|
20132
|
+
if ((active === null || active === void 0 ? void 0 : active.pointerId) !== event.pointerId) {
|
|
20133
|
+
return;
|
|
20134
|
+
}
|
|
20135
|
+
event.preventDefault();
|
|
20136
|
+
active.lastEvent = event;
|
|
20137
|
+
this.pendingHeight = clampRowResizeHeight(active.startHeight + event.clientY - active.startY, this.config);
|
|
20138
|
+
if (this.animationFrame === undefined) {
|
|
20139
|
+
const view = this.revogrid.ownerDocument.defaultView;
|
|
20140
|
+
this.animationFrame = view === null || view === void 0 ? void 0 : view.requestAnimationFrame(() => {
|
|
20141
|
+
this.animationFrame = undefined;
|
|
20142
|
+
this.flushPendingResize();
|
|
20143
|
+
});
|
|
20144
|
+
}
|
|
20145
|
+
};
|
|
20146
|
+
this.onPointerUp = (event) => {
|
|
20147
|
+
const active = this.active;
|
|
20148
|
+
if ((active === null || active === void 0 ? void 0 : active.pointerId) !== event.pointerId) {
|
|
20149
|
+
return;
|
|
20150
|
+
}
|
|
20151
|
+
event.preventDefault();
|
|
20152
|
+
active.lastEvent = event;
|
|
20153
|
+
this.pendingHeight = clampRowResizeHeight(active.startHeight + event.clientY - active.startY, this.config);
|
|
20154
|
+
this.flushPendingResize();
|
|
20155
|
+
if (this.active !== active) {
|
|
20156
|
+
return;
|
|
20157
|
+
}
|
|
20158
|
+
const detail = this.eventDetail(active, event, active.currentHeight);
|
|
20159
|
+
this.finishGesture();
|
|
20160
|
+
this.commitResize(active);
|
|
20161
|
+
this.emit(AFTER_ROW_RESIZE_EVENT, detail);
|
|
20162
|
+
};
|
|
20163
|
+
this.onPointerCancel = (event) => {
|
|
20164
|
+
var _a;
|
|
20165
|
+
if (((_a = this.active) === null || _a === void 0 ? void 0 : _a.pointerId) === event.pointerId) {
|
|
20166
|
+
this.active.lastEvent = event;
|
|
20167
|
+
this.cancel('pointercancel');
|
|
20168
|
+
}
|
|
20169
|
+
};
|
|
20170
|
+
this.onKeyDown = (event) => {
|
|
20171
|
+
if (event.key === 'Escape' && this.active) {
|
|
20172
|
+
event.preventDefault();
|
|
20173
|
+
this.cancel('escape');
|
|
20174
|
+
}
|
|
20175
|
+
};
|
|
20176
|
+
this.onWindowBlur = () => this.cancel('blur');
|
|
20177
|
+
this.reapplyCommittedSizes = () => this.applyCommittedSizes(false);
|
|
20178
|
+
this.rebuildCommittedSizes = () => this.applyCommittedSizes(true);
|
|
20179
|
+
this.syncAppliedIndexes = () => {
|
|
20180
|
+
for (const [rowType, committed] of this.committedSizes) {
|
|
20181
|
+
const items = this.providers.data.stores[rowType].store.get('items');
|
|
20182
|
+
const indexes = new Set();
|
|
20183
|
+
items.forEach((physicalIndex, virtualIndex) => {
|
|
20184
|
+
if (committed.has(physicalIndex)) {
|
|
20185
|
+
indexes.add(virtualIndex);
|
|
20186
|
+
}
|
|
20187
|
+
});
|
|
20188
|
+
this.appliedIndexes.set(rowType, indexes);
|
|
20189
|
+
}
|
|
20190
|
+
};
|
|
20191
|
+
this.config = resolveRowResizeConfig(config);
|
|
20192
|
+
this.rowDefinitionsRef = revogrid.rowDefinitions;
|
|
20193
|
+
if (new.target !== RowResizePlugin) {
|
|
20194
|
+
this.enabled = true;
|
|
20195
|
+
this.registerEventListeners();
|
|
20196
|
+
}
|
|
20197
|
+
}
|
|
20198
|
+
registerEventListeners() {
|
|
20199
|
+
this.addEventListener('beforerowrender', this.decorateRow);
|
|
20200
|
+
this.addEventListener('beforeanysource', ({ detail }) => {
|
|
20201
|
+
this.cancel('data-change');
|
|
20202
|
+
const committed = this.committedSizes.get(detail.type);
|
|
20203
|
+
if (!committed) {
|
|
20204
|
+
return;
|
|
20205
|
+
}
|
|
20206
|
+
const removedIndexes = new Set();
|
|
20207
|
+
for (const index of committed.keys()) {
|
|
20208
|
+
if (index >= detail.source.length) {
|
|
20209
|
+
committed.delete(index);
|
|
20210
|
+
removedIndexes.add(index);
|
|
20211
|
+
}
|
|
20212
|
+
}
|
|
20213
|
+
if (removedIndexes.size) {
|
|
20214
|
+
const rowDefinitions = this.revogrid.rowDefinitions.filter(definition => definition.type !== detail.type ||
|
|
20215
|
+
!removedIndexes.has(definition.index));
|
|
20216
|
+
this.rowDefinitionsRef = rowDefinitions;
|
|
20217
|
+
this.revogrid.rowDefinitions = rowDefinitions;
|
|
20218
|
+
}
|
|
20219
|
+
});
|
|
20220
|
+
this.addEventListener('afteranysource', this.rebuildCommittedSizes);
|
|
20221
|
+
this.addEventListener('beforesourcesortingapply', this.cancelForDataChange);
|
|
20222
|
+
this.addEventListener('aftersortingapply', this.reapplyCommittedSizes);
|
|
20223
|
+
this.addEventListener('beforefilterapply', this.cancelForDataChange);
|
|
20224
|
+
this.addEventListener('beforerowdefinition', ({ detail }) => {
|
|
20225
|
+
this.cancel('data-change');
|
|
20226
|
+
if (detail.vals !== this.rowDefinitionsRef) {
|
|
20227
|
+
this.committedSizes.clear();
|
|
20228
|
+
this.appliedIndexes.clear();
|
|
20229
|
+
this.rowDefinitionsRef = detail.vals;
|
|
20230
|
+
}
|
|
20231
|
+
});
|
|
20232
|
+
this.addEventListener('afterthemechanged', this.reapplyCommittedSizes);
|
|
20233
|
+
this.addEventListener('aftertrimmed', this.syncAppliedIndexes);
|
|
20234
|
+
this.addEventListener('roworderchange', () => {
|
|
20235
|
+
queueMicrotask(this.reapplyCommittedSizes);
|
|
20236
|
+
});
|
|
20237
|
+
this.addEventListener(GROUP_EXPAND_EVENT, () => {
|
|
20238
|
+
queueMicrotask(this.reapplyCommittedSizes);
|
|
20239
|
+
});
|
|
20240
|
+
this.addEventListener('rowheaderschanged', ({ detail }) => {
|
|
20241
|
+
if (!detail && !this.config.fullRow) {
|
|
20242
|
+
this.cancel('row-headers-hidden');
|
|
20243
|
+
}
|
|
20244
|
+
});
|
|
20245
|
+
}
|
|
20246
|
+
controlFromGridProperty() {
|
|
20247
|
+
this.gridResizeRow = this.revogrid.resizeRow;
|
|
20248
|
+
this.gridPlugins = this.revogrid.plugins;
|
|
20249
|
+
this.syncGridProperty(false);
|
|
20250
|
+
this.watch('resizeRow', value => {
|
|
20251
|
+
this.gridResizeRow = value;
|
|
20252
|
+
this.syncGridProperty();
|
|
20253
|
+
});
|
|
20254
|
+
this.watch('plugins', value => {
|
|
20255
|
+
this.gridPlugins = value || [];
|
|
20256
|
+
this.syncGridProperty();
|
|
20257
|
+
});
|
|
20258
|
+
}
|
|
20259
|
+
syncGridProperty(refresh = true) {
|
|
20260
|
+
const hasConfiguredPlugin = this.gridPlugins.some(plugin => plugin !== RowResizePlugin &&
|
|
20261
|
+
plugin.prototype instanceof RowResizePlugin);
|
|
20262
|
+
const explicitlyEnabled = this.gridPlugins.includes(RowResizePlugin);
|
|
20263
|
+
const enabled = hasConfiguredPlugin
|
|
20264
|
+
? false
|
|
20265
|
+
: explicitlyEnabled || !!this.gridResizeRow;
|
|
20266
|
+
const config = resolveRowResizeConfig(!hasConfiguredPlugin &&
|
|
20267
|
+
!explicitlyEnabled &&
|
|
20268
|
+
typeof this.gridResizeRow === 'object'
|
|
20269
|
+
? this.gridResizeRow
|
|
20270
|
+
: undefined);
|
|
20271
|
+
const configChanged = config.minHeight !== this.config.minHeight ||
|
|
20272
|
+
config.maxHeight !== this.config.maxHeight ||
|
|
20273
|
+
config.fullRow !== this.config.fullRow;
|
|
20274
|
+
if (enabled === this.enabled && !configChanged) {
|
|
20275
|
+
return;
|
|
20276
|
+
}
|
|
20277
|
+
this.cancel('config-change');
|
|
20278
|
+
this.config = config;
|
|
20279
|
+
if (enabled !== this.enabled) {
|
|
20280
|
+
this.enabled = enabled;
|
|
20281
|
+
if (enabled) {
|
|
20282
|
+
this.rowDefinitionsRef = this.revogrid.rowDefinitions;
|
|
20283
|
+
this.registerEventListeners();
|
|
20284
|
+
}
|
|
20285
|
+
else {
|
|
20286
|
+
this.clearSubscriptions();
|
|
20287
|
+
}
|
|
20288
|
+
}
|
|
20289
|
+
if (refresh) {
|
|
20290
|
+
queueMicrotask(() => void this.revogrid.refresh());
|
|
20291
|
+
}
|
|
20292
|
+
}
|
|
20293
|
+
startResize(event, rowType, index) {
|
|
20294
|
+
var _a, _b;
|
|
20295
|
+
if (!this.enabled ||
|
|
20296
|
+
this.active ||
|
|
20297
|
+
event.defaultPrevented ||
|
|
20298
|
+
!event.isPrimary ||
|
|
20299
|
+
(event.pointerType !== 'touch' && event.button !== 0)) {
|
|
20300
|
+
return;
|
|
20301
|
+
}
|
|
20302
|
+
const dimension = this.providers.dimension.stores[rowType];
|
|
20303
|
+
const dimensionState = dimension.getCurrentState();
|
|
20304
|
+
const item = getItemByIndex(dimensionState, index);
|
|
20305
|
+
const focusedStore = this.providers.selection.focusedStore;
|
|
20306
|
+
const selectedRowType = focusedStore
|
|
20307
|
+
? this.providers.selection.storesYToType[focusedStore.position.y]
|
|
20308
|
+
: undefined;
|
|
20309
|
+
const indexes = getRowResizeIndexes({
|
|
20310
|
+
rowType,
|
|
20311
|
+
rowIndex: index,
|
|
20312
|
+
rowCount: dimensionState.count,
|
|
20313
|
+
selectedRange: this.providers.selection.selectedRange,
|
|
20314
|
+
selectedRowType,
|
|
20315
|
+
});
|
|
20316
|
+
if (!indexes.length) {
|
|
20317
|
+
return;
|
|
20318
|
+
}
|
|
20319
|
+
const previousSizes = indexes.reduce((sizes, rowIndex) => {
|
|
20320
|
+
const row = getItemByIndex(dimensionState, rowIndex);
|
|
20321
|
+
sizes[rowIndex] = row.end - row.start;
|
|
20322
|
+
return sizes;
|
|
20323
|
+
}, {});
|
|
20324
|
+
const startHeight = item.end - item.start;
|
|
20325
|
+
const active = {
|
|
20326
|
+
pointerId: event.pointerId,
|
|
20327
|
+
rowType,
|
|
20328
|
+
index,
|
|
20329
|
+
indexes,
|
|
20330
|
+
startY: event.clientY,
|
|
20331
|
+
startHeight,
|
|
20332
|
+
currentHeight: startHeight,
|
|
20333
|
+
previousSizes,
|
|
20334
|
+
originalCustomSizes: Object.assign({}, dimensionState.sizes),
|
|
20335
|
+
startEvent: event,
|
|
20336
|
+
lastEvent: event,
|
|
20337
|
+
};
|
|
20338
|
+
const beforeEvent = this.emit(BEFORE_ROW_RESIZE_EVENT, this.eventDetail(active, event, startHeight));
|
|
20339
|
+
if (beforeEvent.defaultPrevented) {
|
|
20340
|
+
return;
|
|
20341
|
+
}
|
|
20342
|
+
event.preventDefault();
|
|
20343
|
+
event.stopPropagation();
|
|
20344
|
+
this.active = active;
|
|
20345
|
+
const doc = this.revogrid.ownerDocument;
|
|
20346
|
+
this.previousBodyCursor = ((_a = doc.body) === null || _a === void 0 ? void 0 : _a.style.cursor) || '';
|
|
20347
|
+
if (doc.body) {
|
|
20348
|
+
doc.body.style.cursor = 'row-resize';
|
|
20349
|
+
}
|
|
20350
|
+
doc.addEventListener('pointermove', this.onPointerMove, true);
|
|
20351
|
+
doc.addEventListener('pointerup', this.onPointerUp, true);
|
|
20352
|
+
doc.addEventListener('pointercancel', this.onPointerCancel, true);
|
|
20353
|
+
doc.addEventListener('keydown', this.onKeyDown, true);
|
|
20354
|
+
(_b = doc.defaultView) === null || _b === void 0 ? void 0 : _b.addEventListener('blur', this.onWindowBlur);
|
|
20355
|
+
}
|
|
20356
|
+
flushPendingResize() {
|
|
20357
|
+
const active = this.active;
|
|
20358
|
+
if (!active || this.pendingHeight === undefined) {
|
|
20359
|
+
return;
|
|
20360
|
+
}
|
|
20361
|
+
const size = this.pendingHeight;
|
|
20362
|
+
this.pendingHeight = undefined;
|
|
20363
|
+
if (size === active.currentHeight) {
|
|
20364
|
+
return;
|
|
20365
|
+
}
|
|
20366
|
+
this.providers.dimension.setCustomSizes(active.rowType, createRowResizePatch(active.indexes, size), true);
|
|
20367
|
+
active.currentHeight = size;
|
|
20368
|
+
this.emit(ROW_RESIZE_EVENT, this.eventDetail(active, active.lastEvent, size));
|
|
20369
|
+
}
|
|
20370
|
+
cancel(reason) {
|
|
20371
|
+
const active = this.active;
|
|
20372
|
+
if (!active) {
|
|
20373
|
+
return;
|
|
20374
|
+
}
|
|
20375
|
+
const currentSizes = Object.assign({}, this.providers.dimension.stores[active.rowType].store.get('sizes'));
|
|
20376
|
+
for (const index of active.indexes) {
|
|
20377
|
+
if (Object.hasOwn(active.originalCustomSizes, index)) {
|
|
20378
|
+
currentSizes[index] = active.originalCustomSizes[index];
|
|
20379
|
+
}
|
|
20380
|
+
else {
|
|
20381
|
+
delete currentSizes[index];
|
|
20382
|
+
}
|
|
20383
|
+
}
|
|
20384
|
+
this.providers.dimension.setCustomSizes(active.rowType, currentSizes);
|
|
20385
|
+
const detail = Object.assign(Object.assign({}, this.eventDetail(active, active.lastEvent || active.startEvent, active.startHeight)), { reason });
|
|
20386
|
+
this.finishGesture();
|
|
20387
|
+
this.emit(ROW_RESIZE_CANCEL_EVENT, detail);
|
|
20388
|
+
}
|
|
20389
|
+
eventDetail(active, originalEvent, size) {
|
|
20390
|
+
return {
|
|
20391
|
+
rowType: active.rowType,
|
|
20392
|
+
index: active.index,
|
|
20393
|
+
indexes: [...active.indexes],
|
|
20394
|
+
size,
|
|
20395
|
+
previousSizes: Object.assign({}, active.previousSizes),
|
|
20396
|
+
originalEvent,
|
|
20397
|
+
};
|
|
20398
|
+
}
|
|
20399
|
+
commitResize(active) {
|
|
20400
|
+
if (active.currentHeight === active.startHeight) {
|
|
20401
|
+
return;
|
|
20402
|
+
}
|
|
20403
|
+
const items = this.providers.data.stores[active.rowType].store.get('items');
|
|
20404
|
+
let committed = this.committedSizes.get(active.rowType);
|
|
20405
|
+
if (!committed) {
|
|
20406
|
+
committed = new Map();
|
|
20407
|
+
this.committedSizes.set(active.rowType, committed);
|
|
20408
|
+
}
|
|
20409
|
+
let applied = this.appliedIndexes.get(active.rowType);
|
|
20410
|
+
if (!applied) {
|
|
20411
|
+
applied = new Set();
|
|
20412
|
+
this.appliedIndexes.set(active.rowType, applied);
|
|
20413
|
+
}
|
|
20414
|
+
const physicalIndexes = active.indexes.reduce((result, index) => {
|
|
20415
|
+
const physicalIndex = items[index];
|
|
20416
|
+
if (physicalIndex !== undefined) {
|
|
20417
|
+
committed.set(physicalIndex, active.currentHeight);
|
|
20418
|
+
applied.add(index);
|
|
20419
|
+
result.push(physicalIndex);
|
|
20420
|
+
}
|
|
20421
|
+
return result;
|
|
20422
|
+
}, []);
|
|
20423
|
+
if (physicalIndexes.length) {
|
|
20424
|
+
const rowDefinitions = mergeRowResizeDefinitions(this.revogrid.rowDefinitions, active.rowType, physicalIndexes, active.currentHeight);
|
|
20425
|
+
this.rowDefinitionsRef = rowDefinitions;
|
|
20426
|
+
this.revogrid.rowDefinitions = rowDefinitions;
|
|
20427
|
+
}
|
|
20428
|
+
}
|
|
20429
|
+
applyCommittedSizes(clearAppliedIndexes) {
|
|
20430
|
+
for (const [rowType, committed] of this.committedSizes) {
|
|
20431
|
+
const dimension = this.providers.dimension.stores[rowType];
|
|
20432
|
+
const sizes = Object.assign({}, dimension.store.get('sizes'));
|
|
20433
|
+
if (clearAppliedIndexes) {
|
|
20434
|
+
for (const index of this.appliedIndexes.get(rowType) || []) {
|
|
20435
|
+
delete sizes[index];
|
|
20436
|
+
}
|
|
20437
|
+
}
|
|
20438
|
+
const items = this.providers.data.stores[rowType].store.get('items');
|
|
20439
|
+
const indexes = new Set();
|
|
20440
|
+
items.forEach((physicalIndex, virtualIndex) => {
|
|
20441
|
+
const size = committed.get(physicalIndex);
|
|
20442
|
+
if (size !== undefined) {
|
|
20443
|
+
sizes[virtualIndex] = size;
|
|
20444
|
+
indexes.add(virtualIndex);
|
|
20445
|
+
}
|
|
20446
|
+
});
|
|
20447
|
+
this.appliedIndexes.set(rowType, indexes);
|
|
20448
|
+
this.providers.dimension.setCustomSizes(rowType, sizes);
|
|
20449
|
+
}
|
|
20450
|
+
}
|
|
20451
|
+
finishGesture() {
|
|
20452
|
+
const doc = this.revogrid.ownerDocument;
|
|
20453
|
+
const view = doc.defaultView;
|
|
20454
|
+
if (this.animationFrame !== undefined) {
|
|
20455
|
+
view === null || view === void 0 ? void 0 : view.cancelAnimationFrame(this.animationFrame);
|
|
20456
|
+
}
|
|
20457
|
+
doc.removeEventListener('pointermove', this.onPointerMove, true);
|
|
20458
|
+
doc.removeEventListener('pointerup', this.onPointerUp, true);
|
|
20459
|
+
doc.removeEventListener('pointercancel', this.onPointerCancel, true);
|
|
20460
|
+
doc.removeEventListener('keydown', this.onKeyDown, true);
|
|
20461
|
+
view === null || view === void 0 ? void 0 : view.removeEventListener('blur', this.onWindowBlur);
|
|
20462
|
+
if (doc.body) {
|
|
20463
|
+
doc.body.style.cursor = this.previousBodyCursor;
|
|
20464
|
+
}
|
|
20465
|
+
this.animationFrame = undefined;
|
|
20466
|
+
this.pendingHeight = undefined;
|
|
20467
|
+
this.active = undefined;
|
|
20468
|
+
}
|
|
20469
|
+
destroy() {
|
|
20470
|
+
this.cancel('destroy');
|
|
20471
|
+
super.destroy();
|
|
20472
|
+
}
|
|
20473
|
+
}
|
|
20474
|
+
|
|
19839
20475
|
const revoGridStyleCss = () => `revo-grid:is([theme=default],[theme=dark]),revo-grid:not([theme]){--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 4px);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header,revo-grid:not([theme]) revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd,revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-data,revo-grid:not([theme]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=default],[theme=dark]) revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=material],[theme=darkMaterial]),revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .header-rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]) revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl] revogr-header,revo-grid[dir=rtl] revogr-data{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::";display:inline-block}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]){background-color:transparent}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders{background-color:transparent;color:inherit}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell{color:inherit}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var( --revo-grid-border, rgba(255, 255, 255, 0.2) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var( --revo-grid-focused-bg, rgba(52, 58, 64, 0.5) );--rg-theme-row-hover:var( --revo-grid-row-hover, rgba(80, 80, 80, 0.5) );--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, rgba(52, 58, 64, 0.8) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, rgba(255, 255, 255, 0.8) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{}revo-grid>*{--revo-grid-primary:var(--rg-theme-primary);--revo-grid-primary-transparent:var(--rg-theme-primary-transparent);--revo-grid-background:var(--rg-theme-background);--revo-grid-foreground:var(--rg-theme-foreground);--revo-grid-divider:var(--rg-theme-divider);--revo-grid-shadow:var(--rg-theme-shadow);--revo-grid-text:var(--rg-theme-text);--revo-grid-border:var(--rg-theme-border);--revo-grid-header-bg:var(--rg-theme-header-bg);--revo-grid-header-color:var(--rg-theme-header-color);--revo-grid-header-border:var(--rg-theme-header-border);--revo-grid-header-focused-bg:var(--rg-theme-header-focused-bg);--revo-grid-header-hover-bg:var(--rg-theme-header-hover-bg);--revo-grid-cell-border:var(--rg-theme-cell-border);--revo-grid-cell-vertical-border:var(--rg-theme-cell-vertical-border);--revo-grid-focused-bg:var(--rg-theme-focused-bg);--revo-grid-row-hover:var(--rg-theme-row-hover);--revo-grid-row-headers-bg:var(--rg-theme-row-headers-bg);--revo-grid-row-headers-color:var(--rg-theme-row-headers-color);--revo-grid-cell-disabled-bg:var(--rg-theme-cell-disabled-bg);--revo-grid-filter-panel-bg:var(--rg-theme-filter-panel-bg);--revo-grid-filter-panel-border:var(--rg-theme-filter-panel-border);--revo-grid-filter-panel-shadow:var(--rg-theme-filter-panel-shadow);--revo-grid-filter-panel-input-bg:var(--rg-theme-filter-panel-input-bg);--revo-grid-filter-panel-divider:var(--rg-theme-filter-panel-divider);--revo-grid-filter-panel-select-border:var(--rg-theme-filter-panel-select-border);--revo-grid-filter-panel-select-border-hover:var(--rg-theme-filter-panel-select-border-hover);--revo-grid-filter-panel-reorder-accent:var(--rg-theme-filter-panel-reorder-accent);--revo-grid-filter-panel-reorder-color:var(--rg-theme-filter-panel-reorder-color);--revo-grid-filter-panel-text:var(--rg-theme-filter-panel-text);--revo-grid-filter-panel-muted-text:var(--rg-theme-filter-panel-muted-text);--revo-grid-filter-panel-focus-ring:var(--rg-theme-filter-panel-focus-ring);--revo-grid-filter-panel-icon:var(--rg-theme-filter-panel-icon);--revo-grid-filter-panel-icon-active:var(--rg-theme-filter-panel-icon-active);--revo-grid-font-family:var(--rg-theme-font-family);--revo-grid-font-size:var(--rg-theme-font-size);--revo-grid-header-height:var(--rg-theme-header-height);--revo-grid-header-font-size:var(--rg-theme-header-font-size);--revo-grid-header-font-weight:var(--rg-theme-header-font-weight);--revo-grid-header-text-transform:var(--rg-theme-header-text-transform);--revo-grid-header-text-align:var(--rg-theme-header-text-align);--revo-grid-cell-text-align:var(--rg-theme-cell-text-align);--revo-grid-header-padding:var(--rg-theme-header-padding);--revo-grid-cell-padding:var(--rg-theme-cell-padding);--revo-grid-selection-border:var(--rg-theme-selection-border);--revo-grid-selection-bg:var(--rg-theme-selection-bg);--revo-grid-autofill-handle-bg:var(--rg-theme-autofill-handle-bg);--revo-grid-autofill-handle-border:var(--rg-theme-autofill-handle-border);--revo-grid-range-handle-bg:var(--rg-theme-range-handle-bg);--revo-grid-temporary-range-border:var(--rg-theme-temporary-range-border);--revo-grid-temporary-selection-border:var(--rg-theme-temporary-selection-border);--revo-grid-header-resize-hover:var(--rg-theme-header-resize-hover);--revo-grid-button-text:var(--rg-theme-button-text);--revo-grid-button-bg:var(--rg-theme-button-bg);--revo-grid-button-success-bg:var(--rg-theme-button-success-bg);--revo-grid-button-danger-bg:var(--rg-theme-button-danger-bg);--revo-grid-button-outline-border:var(--rg-theme-button-outline-border);--revo-grid-button-outline-text:var(--rg-theme-button-outline-text)}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`;
|
|
19840
20476
|
|
|
19841
20477
|
const DEFAULT_COLUMN_SIZE = 100;
|
|
@@ -19926,7 +20562,12 @@ class RevoGridComponent {
|
|
|
19926
20562
|
/** When true, grid in read only mode. */
|
|
19927
20563
|
this.readonly = false;
|
|
19928
20564
|
/** When true, columns are resizable. */
|
|
19929
|
-
this.resize =
|
|
20565
|
+
this.resize = true;
|
|
20566
|
+
/**
|
|
20567
|
+
* Enables row resizing. Pass a configuration object to customize the
|
|
20568
|
+
* height limits or enable resize edges across the full row.
|
|
20569
|
+
*/
|
|
20570
|
+
this.resizeRow = false;
|
|
19930
20571
|
/**
|
|
19931
20572
|
* Prevents horizontal scroll state from being mirrored across viewport sections.
|
|
19932
20573
|
*/
|
|
@@ -19997,15 +20638,15 @@ class RevoGridComponent {
|
|
|
19997
20638
|
*/
|
|
19998
20639
|
this.autoSizeColumn = false;
|
|
19999
20640
|
/**
|
|
20000
|
-
* Enables filter plugin.
|
|
20641
|
+
* Enables filter plugin. Enabled by default; set to `false` to opt out.
|
|
20001
20642
|
* Can be boolean.
|
|
20002
20643
|
* Or can be filter collection See `FilterCollection` for more info.
|
|
20003
20644
|
*/
|
|
20004
|
-
this.filter =
|
|
20645
|
+
this.filter = true;
|
|
20005
20646
|
/**
|
|
20006
20647
|
* Enable column move plugin.
|
|
20007
20648
|
*/
|
|
20008
|
-
this.canMoveColumns =
|
|
20649
|
+
this.canMoveColumns = true;
|
|
20009
20650
|
/**
|
|
20010
20651
|
* Trimmed rows.
|
|
20011
20652
|
* Functionality which allows to hide rows from main data set.
|
|
@@ -20015,7 +20656,7 @@ class RevoGridComponent {
|
|
|
20015
20656
|
/**
|
|
20016
20657
|
* Enable export plugin.
|
|
20017
20658
|
*/
|
|
20018
|
-
this.exporting =
|
|
20659
|
+
this.exporting = true;
|
|
20019
20660
|
/**
|
|
20020
20661
|
* Stretch strategy for columns by `StretchColumn` plugin.
|
|
20021
20662
|
* For example if there are more space on the right last column size would be increased.
|
|
@@ -20107,7 +20748,7 @@ class RevoGridComponent {
|
|
|
20107
20748
|
var _a;
|
|
20108
20749
|
if (this.dataProvider && this.columnProvider && !skipDataUpdate) {
|
|
20109
20750
|
const columnProp = (_a = this.columnProvider.getColumn(col, colType)) === null || _a === void 0 ? void 0 : _a.prop;
|
|
20110
|
-
if (
|
|
20751
|
+
if (columnProp !== undefined) {
|
|
20111
20752
|
this.dataProvider.setCellData({
|
|
20112
20753
|
type: rowType,
|
|
20113
20754
|
rowIndex: row,
|
|
@@ -20836,6 +21477,7 @@ class RevoGridComponent {
|
|
|
20836
21477
|
this.pluginService.add(new SortingPlugin(this.element, pluginData));
|
|
20837
21478
|
// register grouping plugin
|
|
20838
21479
|
this.pluginService.add(new GroupingRowPlugin(this.element, pluginData));
|
|
21480
|
+
this.pluginService.add(RowResizePlugin.fromGridProperty(this.element, pluginData));
|
|
20839
21481
|
if (this.canMoveColumns) {
|
|
20840
21482
|
this.pluginService.add(new ColumnMovePlugin(this.element, pluginData));
|
|
20841
21483
|
}
|
|
@@ -21097,6 +21739,7 @@ class RevoGridComponent {
|
|
|
21097
21739
|
"range": [4],
|
|
21098
21740
|
"readonly": [4],
|
|
21099
21741
|
"resize": [4],
|
|
21742
|
+
"resizeRow": [4, "resize-row"],
|
|
21100
21743
|
"noHorizontalScrollTransfer": [4, "no-horizontal-scroll-transfer"],
|
|
21101
21744
|
"canFocus": [4, "can-focus"],
|
|
21102
21745
|
"useClipboard": [4, "use-clipboard"],
|
|
@@ -21335,7 +21978,7 @@ const CellRenderer = ({ renderProps, cellProps, }) => {
|
|
|
21335
21978
|
return (hAsync("div", Object.assign({}, cellProps, { redraw: render }), render()));
|
|
21336
21979
|
};
|
|
21337
21980
|
|
|
21338
|
-
const revogrDataStyleCss = () => `.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}revogr-data{display:block;width:100%;position:relative}revogr-data .rgRow{position:absolute;width:100%;left:0}revogr-data .rgRow.groupingRow{font-weight:600;text-align:left}revogr-data .rgRow.groupingRow .group-expand{width:25px;height:100%;max-height:25px;margin-right:2px;background-color:transparent;border-color:transparent;vertical-align:middle;padding-left:5px;display:inline-flex}revogr-data .rgRow.groupingRow .group-expand svg{width:7px}revogr-data .revo-draggable{border:none;height:32px;display:inline-flex;outline:0;padding:0;font-size:0.8125rem;box-sizing:border-box;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;width:24px;height:100%;cursor:pointer;display:inline-flex}revogr-data .revo-draggable:hover>.revo-drag-icon{opacity:1;zoom:1.2;font-weight:600}revogr-data .revo-draggable>.revo-drag-icon{pointer-events:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, zoom 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}revogr-data .rgCell{top:0;left:0;position:absolute;box-sizing:border-box;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}revogr-data .rgCell.align-center{text-align:center}revogr-data .rgCell.align-left{text-align:left}revogr-data .rgCell.align-right{text-align:right}`;
|
|
21981
|
+
const revogrDataStyleCss = () => `.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}revogr-data{display:block;width:100%;position:relative}revogr-data .rgRow{position:absolute;width:100%;left:0}revogr-data .rgRow>.row-resize-handle{position:absolute;z-index:2;right:0;bottom:-3px;left:0;height:7px;cursor:row-resize;touch-action:none;user-select:none}revogr-data .rgRow.groupingRow{font-weight:600;text-align:left}revogr-data .rgRow.groupingRow .group-expand{width:25px;height:100%;max-height:25px;margin-right:2px;background-color:transparent;border-color:transparent;vertical-align:middle;padding-left:5px;display:inline-flex}revogr-data .rgRow.groupingRow .group-expand svg{width:7px}revogr-data .revo-draggable{border:none;height:32px;display:inline-flex;outline:0;padding:0;font-size:0.8125rem;box-sizing:border-box;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;width:24px;height:100%;cursor:pointer;display:inline-flex}revogr-data .revo-draggable:hover>.revo-drag-icon{opacity:1;zoom:1.2;font-weight:600}revogr-data .revo-draggable>.revo-drag-icon{pointer-events:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, zoom 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}revogr-data .rgCell{top:0;left:0;position:absolute;box-sizing:border-box;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}revogr-data .rgCell.align-center{text-align:center}revogr-data .rgCell.align-left{text-align:left}revogr-data .rgCell.align-right{text-align:right}`;
|
|
21339
21982
|
|
|
21340
21983
|
/**
|
|
21341
21984
|
* This component is responsible for rendering data
|
|
@@ -21445,7 +22088,10 @@ class RevogrData {
|
|
|
21445
22088
|
groupingCellRenderer, additionalData: this.additionalData,
|
|
21446
22089
|
// Only show expand button if grouping is enabled and not in row headers
|
|
21447
22090
|
hasExpand: this.columnService.hasGrouping && this.colType !== 'rowHeaders', columnItems: cols, providers: this.providers });
|
|
21448
|
-
|
|
22091
|
+
const row = hAsync(GroupingRowRenderer, Object.assign({}, gmodel));
|
|
22092
|
+
this.triggerBeforeRowRender(row, rgRow, dataItem);
|
|
22093
|
+
rowsEls.push(row);
|
|
22094
|
+
this.renderedRows.set(rgRow.itemIndex, row);
|
|
21449
22095
|
continue;
|
|
21450
22096
|
}
|
|
21451
22097
|
// #endregion
|
|
@@ -21494,19 +22140,22 @@ class RevogrData {
|
|
|
21494
22140
|
rowClass += ` ${ROW_FOCUSED_CLASS}`;
|
|
21495
22141
|
}
|
|
21496
22142
|
const row = (hAsync(RowRenderer, { index: rgRow.itemIndex, rowClass: rowClass, size: rgRow.size, start: rgRow.start - rowRenderOffset, groupingLevel: groupDepth || undefined }, cells));
|
|
21497
|
-
this.
|
|
21498
|
-
node: row,
|
|
21499
|
-
item: rgRow,
|
|
21500
|
-
model: dataItem,
|
|
21501
|
-
colType: this.columnService.type,
|
|
21502
|
-
rowType: this.type,
|
|
21503
|
-
});
|
|
22143
|
+
this.triggerBeforeRowRender(row, rgRow, dataItem);
|
|
21504
22144
|
rowsEls.push(row);
|
|
21505
22145
|
this.renderedRows.set(rgRow.itemIndex, row);
|
|
21506
22146
|
// #endregion
|
|
21507
22147
|
}
|
|
21508
22148
|
return (hAsync(Host, null, hAsync("slot", null), rowsEls));
|
|
21509
22149
|
}
|
|
22150
|
+
triggerBeforeRowRender(node, item, model) {
|
|
22151
|
+
this.beforerowrender.emit({
|
|
22152
|
+
node,
|
|
22153
|
+
item,
|
|
22154
|
+
model,
|
|
22155
|
+
colType: this.colType,
|
|
22156
|
+
rowType: this.type,
|
|
22157
|
+
});
|
|
22158
|
+
}
|
|
21510
22159
|
triggerBeforeCellRender(model, row, column) {
|
|
21511
22160
|
const detail = {
|
|
21512
22161
|
column,
|
|
@@ -21868,7 +22517,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
21868
22517
|
return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
|
|
21869
22518
|
};
|
|
21870
22519
|
|
|
21871
|
-
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;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell>span:first-of-type{position:relative;z-index:1;margin-left:auto}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}`;
|
|
22520
|
+
const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex;text-align:var(--rg-theme-header-text-align, center)}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{position:absolute;z-index:0;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell>span:first-of-type{position:relative;z-index:1;margin-left:auto}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}`;
|
|
21872
22521
|
|
|
21873
22522
|
class RevogrHeaderComponent {
|
|
21874
22523
|
constructor(hostRef) {
|
|
@@ -22430,7 +23079,7 @@ class LocalScrollTimer {
|
|
|
22430
23079
|
* Remember last mw event time
|
|
22431
23080
|
*/
|
|
22432
23081
|
latestScrollUpdate(dimension) {
|
|
22433
|
-
this.mouseWheelScrollTimestamp[dimension] =
|
|
23082
|
+
this.mouseWheelScrollTimestamp[dimension] = Date.now();
|
|
22434
23083
|
}
|
|
22435
23084
|
isReady(type, coordinate) {
|
|
22436
23085
|
// if there is a callback, clear it
|
|
@@ -22441,7 +23090,7 @@ class LocalScrollTimer {
|
|
|
22441
23090
|
return this.verifyChange(type, coordinate);
|
|
22442
23091
|
}
|
|
22443
23092
|
verifyChange(type, coordinate) {
|
|
22444
|
-
const now =
|
|
23093
|
+
const now = Date.now();
|
|
22445
23094
|
const change = now - this.mouseWheelScrollTimestamp[type];
|
|
22446
23095
|
return change > this.scrollThrottling &&
|
|
22447
23096
|
coordinate !== this.lastKnownScrollCoordinate[type];
|
|
@@ -22459,7 +23108,7 @@ class LocalScrollTimer {
|
|
|
22459
23108
|
// save lastScrollUpdate callback
|
|
22460
23109
|
const callback = this.lastScrollUpdateCallbacks[type] = {
|
|
22461
23110
|
callback: lastScrollUpdate,
|
|
22462
|
-
timestamp:
|
|
23111
|
+
timestamp: Date.now(),
|
|
22463
23112
|
coordinate,
|
|
22464
23113
|
timeout: 0,
|
|
22465
23114
|
};
|