RomanSS: можете передать параметры через data-атрибуты, в modal получить их через e.target. Если нужно хранить this, то еще и bind в конструктор добавьте, как гласит документация
Пример хороший, но я думаю есть много нюансов, которые он сам вряд ли сможет решить take.ms/Ln4kI. К примеру, если у вас пустой инпут, а вы ставите туда курсор и нажимаете back, или когда у вас 10 символов в инпуте, а вы ставите туда курсор и у вас становится больше символов, или переходить к первому незаполненному input, а не создавать последний
(onChange)="change($event, 'dateFrom')"
что вы там делаете?