Skip to content

Conversation

ChristianKrebel
Copy link

Items starting before the visible range and ending after it were not always shown if zoomed in too much because of the binary search used for it. I tried to fix the conditions but I could not get it to work with a binary search (maybe someone has a better way?). Also, different approaches like spatial index logic fixed the problem but did not improve performance. So I kept it simple and removed the binary search case for items that have an end time and always brute force check them for visibility. This may worsen performance when having many items with end times but in my manual testing (private repo) it is not performant either way.

Question: Should we make this fix optional per config because it may have a bigger impact?

Module: timeline/component/group

Fixes #1657

Remove binary search for items having an end time because items starting before range and ending after it were left out.

Fixes visjs#1657
_resetSubgroups() {
for (const subgroup in this.subgroups) {
if (this.subgroups.hasOwnProperty(subgroup)) {
if (Object.prototype.hasOwnProperty.call(this.subgroups, subgroup)) {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not related to the fix but the pre-commit-hook did not let me commit without fixing it because it lints the whole file instead of only the changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Long items disappear from group if data are set

1 participant