Comparing version 1.3.1 to 1.3.2
@@ -220,6 +220,4 @@ | ||
return null; | ||
} | ||
} | ||
return ( | ||
@@ -230,3 +228,3 @@ isOpen && | ||
onContextMenu={ e => e.preventDefault() } | ||
className="context-menu"> | ||
className="context-menu no-deselect"> | ||
{ | ||
@@ -233,0 +231,0 @@ contextMenuComponents && |
@@ -8,6 +8,2 @@ import ContextMenuComponent from './components/ContextMenuComponent'; | ||
components.onGetComponent('table.before', () => ContextMenuComponent); | ||
const container = renderer.getContainer(); | ||
container.addEventListener('scroll', this.close.bind(this)); | ||
} | ||
@@ -14,0 +10,0 @@ |
@@ -52,7 +52,3 @@ import { closest as domClosest } from 'min-dom'; | ||
const node = | ||
domClosest(target, 'th') || | ||
target.tagName === 'TH' ? target : false || | ||
domClosest(target, 'td') || | ||
target.tagName === 'TD' ? target : false; | ||
const node = findClosestCell(target); | ||
@@ -78,2 +74,15 @@ if (!node) { | ||
'eventBus' | ||
]; | ||
]; | ||
////////// helpers ////////// | ||
function findClosestCell(element) { | ||
const closest = domClosest(element, 'th') || domClosest(element, 'td'), | ||
isCell = element.tagName.toLowerCase() === 'th' || element.tagName.toLowerCase() === 'td'; | ||
if (isCell) { | ||
return element; | ||
} else if (closest) { | ||
return closest; | ||
} | ||
} |
@@ -1,2 +0,2 @@ | ||
import { closest as domClosest } from 'min-dom'; | ||
import { classes as domClasses, closest as domClosest } from 'min-dom'; | ||
@@ -60,13 +60,12 @@ /** | ||
// do not deselect on context menu interaction | ||
if (domClasses(target).has('no-deselect') || domClosest(target, '.no-deselect')) { | ||
return; | ||
} | ||
if (!contains) { | ||
this._selection.deselect(); | ||
} else { | ||
const node = findClosestCell(target); | ||
// TODO: implement rules that can be used instead | ||
const node = | ||
domClosest(target, 'th') || | ||
target.tagName === 'TH' ? target : false || | ||
domClosest(target, 'td') || | ||
target.tagName === 'TD' ? target : false; | ||
if (!node) { | ||
@@ -96,2 +95,15 @@ this._selection.deselect(); | ||
'selection' | ||
]; | ||
]; | ||
////////// helpers ////////// | ||
function findClosestCell(element) { | ||
const closest = domClosest(element, 'th') || domClosest(element, 'td'), | ||
isCell = element.tagName.toLowerCase() === 'th' || element.tagName.toLowerCase() === 'td'; | ||
if (isCell) { | ||
return element; | ||
} else if (closest) { | ||
return closest; | ||
} | ||
} |
{ | ||
"name": "table-js", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"scripts": { | ||
@@ -5,0 +5,0 @@ "all": "npm run lint && npm run test", |
691295
13244