И такой функционал со вкладками мне нужен в нескольких модулях.
Если тебе нужно заюзать тот же компонент
Создай ShareModule и туда сделай exports, declarations этого компонента.
А потом импортируй.
Я могу копировать логику между файлами и менять название функций после копирования, или лучше делать абстрактные компоненты?
Если тебе нужно вытащить часть логики компоненты и перенести ее в другую компоненту, то можешь использовать класс. При необходимости сделать абстрактный класс или интерфейс.