@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
82 lines • 7.25 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: iframe-event-propagate.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, Input } from '@angular/core';
export class IframeEventPropagateDirective {
/**
* @param {?} el
*/
constructor(el) {
this.event = 'click';
this.AddIframeContentDocumentClickListener = (/**
* @return {?}
*/
() => {
/** @type {?} */
const iframe = this.element.querySelector('iframe');
if (iframe !== null) {
if (iframe.contentDocument !== null) {
iframe.contentDocument.addEventListener(this.event, this.dispatchClickEvent);
}
else {
/** @type {?} */
const loadHandler = (/**
* @return {?}
*/
() => {
iframe.contentDocument.addEventListener(this.event, this.dispatchClickEvent);
iframe.removeEventListener('load', loadHandler);
});
iframe.addEventListener('load', loadHandler);
}
this.element.removeEventListener('DOMSubtreeModified', this.AddIframeContentDocumentClickListener);
}
});
this.dispatchClickEvent = (/**
* @param {?} $event
* @return {?}
*/
($event) => {
/** @type {?} */
const event = document.createEvent('MouseEvents');
event.initEvent(this.event, true, true);
event['originEvent'] = $event;
this.element.dispatchEvent(event);
});
this.element = el.nativeElement;
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.element.addEventListener('DOMSubtreeModified', this.AddIframeContentDocumentClickListener);
if (this.element.querySelector('iframe') !== null) {
this.AddIframeContentDocumentClickListener();
}
}
}
IframeEventPropagateDirective.decorators = [
{ type: Directive, args: [{
selector: '[dIframeEventPropagate]'
},] }
];
/** @nocollapse */
IframeEventPropagateDirective.ctorParameters = () => [
{ type: ElementRef }
];
IframeEventPropagateDirective.propDecorators = {
event: [{ type: Input }]
};
if (false) {
/** @type {?} */
IframeEventPropagateDirective.prototype.event;
/** @type {?} */
IframeEventPropagateDirective.prototype.element;
/** @type {?} */
IframeEventPropagateDirective.prototype.AddIframeContentDocumentClickListener;
/** @type {?} */
IframeEventPropagateDirective.prototype.dispatchClickEvent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLWV2ZW50LXByb3BhZ2F0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9jb21tb24vIiwic291cmNlcyI6WyJpZnJhbWUtZXZlbnQtcHJvcGFnYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUUsTUFBTSxPQUFPLDZCQUE2Qjs7OztJQUd4QyxZQUFZLEVBQWM7UUFGakIsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQVl6QiwwQ0FBcUM7OztRQUFHLEdBQUcsRUFBRTs7a0JBQ25DLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFFbkQsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFHO2dCQUNwQixJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO29CQUNuQyxNQUFNLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7aUJBQzlFO3FCQUFNOzswQkFDQyxXQUFXOzs7b0JBQUksR0FBRyxFQUFFO3dCQUN0QixNQUFNLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBQzdFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ3BELENBQUMsQ0FBQTtvQkFDRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2lCQUM5QztnQkFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO2FBQ3BHO1FBQ0wsQ0FBQyxFQUFBO1FBRUQsdUJBQWtCOzs7O1FBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTs7a0JBQ3hCLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUFBO1FBaENDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUc7WUFDaEQsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLENBQUM7U0FDaEQ7SUFDSCxDQUFDOzs7WUFmRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjthQUNwQzs7OztZQUhtQixVQUFVOzs7b0JBSzNCLEtBQUs7Ozs7SUFBTiw4Q0FBeUI7O0lBQ3pCLGdEQUEyQjs7SUFXM0IsOEVBZ0JDOztJQUVELDJEQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkSWZyYW1lRXZlbnRQcm9wYWdhdGVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWZyYW1lRXZlbnRQcm9wYWdhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBldmVudCA9ICdjbGljayc7XHJcbiAgZWxlbWVudDogSFRNTFNlbGVjdEVsZW1lbnQ7XHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuZWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5BZGRJZnJhbWVDb250ZW50RG9jdW1lbnRDbGlja0xpc3RlbmVyKTtcclxuICAgIGlmICh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcignaWZyYW1lJykgIT09IG51bGwgKSB7XHJcbiAgICAgICAgdGhpcy5BZGRJZnJhbWVDb250ZW50RG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEFkZElmcmFtZUNvbnRlbnREb2N1bWVudENsaWNrTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKTtcclxuXHJcbiAgICAgIGlmIChpZnJhbWUgIT09IG51bGwgKSB7XHJcbiAgICAgICAgaWYgKGlmcmFtZS5jb250ZW50RG9jdW1lbnQgIT09IG51bGwpIHtcclxuICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50LCB0aGlzLmRpc3BhdGNoQ2xpY2tFdmVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGxvYWRIYW5kbGVyID0gICgpID0+IHtcclxuICAgICAgICAgICAgICBpZnJhbWUuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ldmVudCwgdGhpcy5kaXNwYXRjaENsaWNrRXZlbnQpO1xyXG4gICAgICAgICAgICAgIGlmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZEhhbmRsZXIpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZEhhbmRsZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIHRoaXMuQWRkSWZyYW1lQ29udGVudERvY3VtZW50Q2xpY2tMaXN0ZW5lcik7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGRpc3BhdGNoQ2xpY2tFdmVudCA9ICgkZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7XHJcbiAgICBldmVudC5pbml0RXZlbnQodGhpcy5ldmVudCwgdHJ1ZSwgdHJ1ZSk7XHJcbiAgICBldmVudFsnb3JpZ2luRXZlbnQnXSA9ICRldmVudDtcclxuICAgIHRoaXMuZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19