When a filter is active (not "All"), only the matching files, their
ancestor directories and the MF root stay; every other directory is
hidden. The ancestors come from the standard file list (name -> paths):
pysimFsFilterMatchingPaths unions the registry paths of every matching
name, and pysimFsFilterShow keeps a directory iff it matches itself
(e.g. DF.GSM for svc:GPRS) or its canonical path prefixes a matching
path. Custom files contribute their own paths; the not-loaded window
keeps directories rather than hiding everything.
Frontend 1160 tests green (+8). (Version/sw bump still deferred.)
In the SST/UST/IST/EST decoded editors, each service row backed by files
gains a small "To EF filter" action that sets the file-tree filter to
exactly that service's option:
- The four service-table fields carry a `table` key (sst/ust/est/ist);
servicesFeatureByNumber() inverts SERVICES_CROSS_REF into per-table
number->feature maps (lazy, cached).
- pysimFsFilterBtnHtml(table, n) renders the button only for file-backed
features; pysimFsSetFilterToService(table, n) sets pysimFsFilter to
['svc:<feature>'], persists, and re-renders the dropdown + tree.
- i18n: "To EF filter" (EN/RU). No CSS rebuild needed.
Frontend 1152 tests green (+6). (Version/sw bump still deferred.)