Skip to content

Conversation

@dobrinyonkov
Copy link
Contributor

@dobrinyonkov dobrinyonkov commented Jan 8, 2026

Summary

Added alphabetical sorting and filtering for the properties panel in the inspector view.

image

Changes

Alphabetical Sorting

  • Properties and associations are now sorted alphabetically (case-insensitive)
  • Arrays preserve their original order (by index)
  • Added sortKeysAlphabetically() helper function

Filter Input

  • Added search input at the top of the properties panel
  • Filter hides non-matching properties as you type
  • Case-insensitive matching
  • Filter reapplies when expanding collapsed sections
  • Sticky positioning (stays visible while scrolling)

Code Changes

  • app/scripts/modules/ui/DataView.js: Added sorting logic and filter functionality
  • app/styles/less/modules/DataView.less: Added styles for filter input

Tests

  • Added 3 tests for alphabetical sorting (objects, arrays, associations)
  • Added 4 tests for filter functionality (render, hide/show, case-insensitive)

Testing

  • All 309 tests pass
  • Manual testing: select a control in the tree, properties appear sorted A-Z, filter works

Properties and associations in the DataView panel are now sorted
alphabetically (case-insensitive). Arrays preserve their original
order (by index).

- Add sortKeysAlphabetically helper function (non-mutating)
- Sort object keys before rendering
- Sort associations alphabetically
- Update tests to verify sorting behavior
Add a search input at the top of the properties panel that filters
visible properties by key name.

- Filter is case-insensitive
- Filter reapplies when sections are expanded
- Filter value is escaped to prevent XSS
- Uses consistent for-loop instead of forEach
- Adds sticky positioning so filter stays visible
@dobrinyonkov dobrinyonkov force-pushed the sort-and-filter-control-members branch from 1a04db2 to 929bc36 Compare January 8, 2026 14:37
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