UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

82 lines 7.25 kB
/** * @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