Можно вообще ничего не смешивать. Сделать три поток - outputData, outputFilters, inputFilters. В компоненте с селетктами отправляешь данные в инпутФильтерс, а в сервисе делаешь подписку на эти фильтры, которые в свою очередь отправляют данные в аутпут