import coreModule from './core_module'; /** @ngInject */ export function autofillEventFix($compile: any) { return { link: ($scope: any, elem: any) => { const input = elem[0]; const dispatchChangeEvent = () => { const event = new Event('change'); return input.dispatchEvent(event); }; const onAnimationStart = ({ animationName }: AnimationEvent) => { switch (animationName) { case 'onAutoFillStart': return dispatchChangeEvent(); case 'onAutoFillCancel': return dispatchChangeEvent(); } return null; }; // const onChange = (evt: Event) => console.log(evt); input.addEventListener('animationstart', onAnimationStart); // input.addEventListener('change', onChange); $scope.$on('$destroy', () => { input.removeEventListener('animationstart', onAnimationStart); // input.removeEventListener('change', onChange); }); }, }; } coreModule.directive('autofillEventFix', autofillEventFix);