export default()

in frontend/src/directives/GridImageSelector.es6 [4:34]


export default ($timeout) => {
    return {
        scope: {
            'image': '=',
            'label': '@',
            'change': '&'
        },
        restrict: 'E',
        template: template,
        controller: 'gridImageSelectorController',
        controllerAs: 'ctrl',
        link: (scope, elem, attrs, ctrl) => {

            let iframe = elem[0].querySelector('iframe');
            scope.$watch('image', function(newValue) {
                ctrl.imageChanged(newValue);
            });
            
            window.addEventListener('message', (event) => {
                if(iframe.contentWindow == event.source) {
                    scope.$apply(function() {
                        ctrl.imageSelected(event.data.image.data, event.data.crop.data, event.origin);
                        if (typeof scope.change === 'function') {
                            $timeout(scope.change, 0);
                        }
                    });
                }
            }, false);
        }
    };
}