import { TariffId, ServiceType, Utility } from '../../common/entities/Enums'; import { TariffWithId } from '../../common/entities/Quote'; export function TariffComparisonTableDirectiveFactory() { return new TariffComparisonTableDirective(); } class TariffComparisonTableDirective implements ng.IDirective { restrict = 'E'; bindToController = true; controller = TariffComparisonTableController; controllerAs = 'ctrl'; template = require('./TariffComparisonTable.html'); scope = { tariffs: '=', showSavings: '=', selectTariff: '&', openTilModal: '&' } } class TariffComparisonTableController { tariffs: TariffWithId[]; showSavings: boolean; serviceType: ServiceType; // Callbacks provided in the directive attributes selectTariff: (tariffId: TariffId) => void; openTilModal: (tariffId: TariffId, utility: Utility) => void; }