Skip to content

Commit

Permalink
draggable.grid.header.toolbar.SortZone: add support for the row scrol…
Browse files Browse the repository at this point in the history
…l position #6375
  • Loading branch information
tobiu committed Feb 4, 2025
1 parent b069fac commit 094fbf9
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
.neo-dragproxy {
.neo-grid-container {
border: none;

* {
scrollbar-width: none;
}
}

.neo-grid-header-toolbar {
Expand All @@ -23,10 +27,6 @@
border-right: 1px solid var(--grid-container-border-color);
}
}

.neo-grid-row {
position: unset;
}
}

.neo-grid-header-toolbar {
Expand Down
47 changes: 31 additions & 16 deletions src/draggable/grid/header/toolbar/SortZone.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -52,28 +52,29 @@ class SortZone extends BaseSortZone {
return await super.createDragProxy(data, createComponent)
}

let me = this,
grid = me.owner.parent,
{view} = grid,
gridRows = view.getVdomRoot().cn,
columnIndex = me.dragElement['aria-colindex'] - 1,
{dataField} = view.columnPositions[columnIndex],
cells = view.getColumnCells(dataField),
rows = [],
config = await super.createDragProxy(data, false),
rect = await grid.getDomRect(),
let me = this,
grid = me.owner.parent,
{view} = grid,
gridRows = view.getVdomRoot().cn,
columnIndex = me.dragElement['aria-colindex'] - 1,
{dataField} = view.columnPositions[columnIndex],
cells = view.getColumnCells(dataField),
rows = [],
config = await super.createDragProxy(data, false),
rect = await grid.getDomRect(),
viewWrapperId = Neo.getId('grid-view-wrapper'),
row;

config.cls = ['neo-grid-wrapper', me.owner.getTheme()];

config.style.height = `${rect.height - 2}px`; // minus border-bottom & border-top

cells.forEach((cell, index) => {
row = VdomUtil.clone({cls: gridRows[index].cls, cn: [cell]}); // clone to remove ids

row.style = {
height: view.rowHeight + 'px'
};
row = VdomUtil.clone({ // clone to remove ids
cls : gridRows[index].cls,
cn : [cell],
style: gridRows[index].style
});

delete row.cn[0].style.left;

Expand All @@ -84,10 +85,24 @@ class SortZone extends BaseSortZone {
{cn: [
{cls: ['neo-grid-container'], cn: [
{...config.vdom, cls: ['neo-grid-header-toolbar', 'neo-toolbar']},
{cls: ['neo-grid-view'], cn: rows}
{cls: ['neo-grid-view-wrapper'], id: viewWrapperId, cn: [
{cls: ['neo-grid-view'], cn: rows},
{cls: ['neo-grid-scrollbar'], style: {height: view.vdom.cn[1].height}}
]}
]}
]};

config.listeners = {
mounted() {
Neo.main.DomAccess.scrollTo({
direction: 'top',
id : viewWrapperId,
value : view.scrollPosition.y,
windowId : this.windowId
})
}
};

if (createComponent) {
return me.dragProxy = Neo.create(config)
}
Expand Down

0 comments on commit 094fbf9

Please sign in to comment.