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