Skip to content

feat: add faceted classification filter sidebar#135

Merged
kyuchia merged 3 commits into
mainfrom
feat/hierarchical-filter
Jun 12, 2026
Merged

feat: add faceted classification filter sidebar#135
kyuchia merged 3 commits into
mainfrom
feat/hierarchical-filter

Conversation

@kyuchia

@kyuchia kyuchia commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Faceted Classification Filter

Adds a sidebar panel for filtering rows by classification hierarchy. This implements a faceted search / faceted navigation pattern for the classification column, allowing users to browse and filter by category/type/modifier using a tree UI, instead of scrolling through a flat list of full classification strings.

Tree structure (Neume shape-small.docx example)

neume (20)
├── tractulus (2)
│   └── episema (1)
├── punctum (1)
├── gravis (1)
├── virga (2)
│   └── episema (1)
├── oriscus (3)
│   ├── curved (1)
│   ├── flat (1)
│   └── wave (1)
├── stropha (2)
│   └── episema (1)
└── pes (9)
    ├── rotundus (2)
    │   └── 2episema (1)
    ├── quadratus (2)
    │   └── 2episema (1)
    └── quassus (5)
        ├── 2episema (1)
        ├── flexus (2)
        │   └── 23episema (1)
        └── ...

Features

  • Toolbar "Filter" button (matches File/Help style) → right sidebar with tree UI
  • Three-state checkboxes (all/some/none) with parent-child propagation
  • Apply/Clear buttons driving Handsontable's by_value filter
  • Resizable sidebar (drag left edge, 200–600px)
  • Data quality warnings (⚠) for en-dash characters in classifications
  • Also includes column sorting and custom dropdownMenu (removes built-in filter UI from column headers)

Files added

src/Editor/hierarchicalFilter/
├── types.ts
├── classificationTreeParser.ts
├── FilterTree.ts
├── FilterSidebar.ts
└── hierarchicalFilter.css

Testing

Tested with Neume shape-small.docx (20 rows) and SQUAREnotation-NEUMElevel.csv (39 rows, mixed categories). No console errors.

Screenshot 2026-04-28 at 23 59 21

@kyuchia kyuchia changed the title feat: add hierarchical classification filter sidebar feat: add faceted classification filter sidebar May 2, 2026
@kyuchia kyuchia requested review from yinanazhou and removed request for yinanazhou May 4, 2026 19:34
@kyuchia kyuchia requested review from homework36 and kunfang98927 and removed request for homework36 May 13, 2026 13:41

@kunfang98927 kunfang98927 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good to me overall. The feature is well-scoped, the UI integration is clean, and the tree/filter separation is nicely structured.

@kyuchia

kyuchia commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review!

@kyuchia kyuchia merged commit c50c6fe into main Jun 12, 2026
2 checks passed
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.

2 participants