import ngModule from '../../module';

/**
 * Component used to fill slots with content.
 */
export default class Portal {
    constructor($transclude, vnSlotService) {
        this.$transclude = $transclude;
        this.vnSlotService = vnSlotService;
    }

    $postLink() {
        this.vnSlotService.push(this.slot, this.$transclude);
    }

    $onDestroy() {
        this.vnSlotService.pop(this.slot);
    }
}
Portal.$inject = ['$transclude', 'vnSlotService'];

ngModule.vnComponent('vnPortal', {
    controller: Portal,
    transclude: true,
    bindings: {
        slot: '@'
    }
});