@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
85 lines • 7.58 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';
var IframeEventPropagateDirective = /** @class */ (function () {
function IframeEventPropagateDirective(el) {
var _this = this;
this.event = 'click';
this.AddIframeContentDocumentClickListener = (/**
* @return {?}
*/
function () {
/** @type {?} */
var iframe = _this.element.querySelector('iframe');
if (iframe !== null) {
if (iframe.contentDocument !== null) {
iframe.contentDocument.addEventListener(_this.event, _this.dispatchClickEvent);
}
else {
/** @type {?} */
var loadHandler_1 = (/**
* @return {?}
*/
function () {
iframe.contentDocument.addEventListener(_this.event, _this.dispatchClickEvent);
iframe.removeEventListener('load', loadHandler_1);
});
iframe.addEventListener('load', loadHandler_1);
}
_this.element.removeEventListener('DOMSubtreeModified', _this.AddIframeContentDocumentClickListener);
}
});
this.dispatchClickEvent = (/**
* @param {?} $event
* @return {?}
*/
function ($event) {
/** @type {?} */
var event = document.createEvent('MouseEvents');
event.initEvent(_this.event, true, true);
event['originEvent'] = $event;
_this.element.dispatchEvent(event);
});
this.element = el.nativeElement;
}
/**
* @return {?}
*/
IframeEventPropagateDirective.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.element.addEventListener('DOMSubtreeModified', this.AddIframeContentDocumentClickListener);
if (this.element.querySelector('iframe') !== null) {
this.AddIframeContentDocumentClickListener();
}
};
IframeEventPropagateDirective.decorators = [
{ type: Directive, args: [{
selector: '[dIframeEventPropagate]'
},] }
];
/** @nocollapse */
IframeEventPropagateDirective.ctorParameters = function () { return [
{ type: ElementRef }
]; };
IframeEventPropagateDirective.propDecorators = {
event: [{ type: Input }]
};
return IframeEventPropagateDirective;
}());
export { IframeEventPropagateDirective };
if (false) {
/** @type {?} */
IframeEventPropagateDirective.prototype.event;
/** @type {?} */
IframeEventPropagateDirective.prototype.element;
/** @type {?} */
IframeEventPropagateDirective.prototype.AddIframeContentDocumentClickListener;
/** @type {?} */
IframeEventPropagateDirective.prototype.dispatchClickEvent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLWV2ZW50LXByb3BhZ2F0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9jb21tb24vIiwic291cmNlcyI6WyJpZnJhbWUtZXZlbnQtcHJvcGFnYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUU7SUFNRSx1Q0FBWSxFQUFjO1FBQTFCLGlCQUVDO1FBSlEsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQVl6QiwwQ0FBcUM7OztRQUFHOztnQkFDOUIsTUFBTSxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUVuRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUc7Z0JBQ3BCLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7b0JBQ25DLE1BQU0sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsS0FBSSxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztpQkFDOUU7cUJBQU07O3dCQUNDLGFBQVc7OztvQkFBSTt3QkFDakIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFJLENBQUMsS0FBSyxFQUFFLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3dCQUM3RSxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGFBQVcsQ0FBQyxDQUFDO29CQUNwRCxDQUFDLENBQUE7b0JBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxhQUFXLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsS0FBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxLQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQzthQUNwRztRQUNMLENBQUMsRUFBQTtRQUVELHVCQUFrQjs7OztRQUFHLFVBQUMsTUFBTTs7Z0JBQ3BCLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDOUIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUFBO1FBaENDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDOzs7O0lBRUQsdURBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRztZQUNoRCxJQUFJLENBQUMscUNBQXFDLEVBQUUsQ0FBQztTQUNoRDtJQUNILENBQUM7O2dCQWZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQzs7OztnQkFIbUIsVUFBVTs7O3dCQUszQixLQUFLOztJQW9DUixvQ0FBQztDQUFBLEFBeENELElBd0NDO1NBckNZLDZCQUE2Qjs7O0lBQ3hDLDhDQUF5Qjs7SUFDekIsZ0RBQTJCOztJQVczQiw4RUFnQkM7O0lBRUQsMkRBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RJZnJhbWVFdmVudFByb3BhZ2F0ZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZnJhbWVFdmVudFByb3BhZ2F0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGV2ZW50ID0gJ2NsaWNrJztcclxuICBlbGVtZW50OiBIVE1MU2VsZWN0RWxlbWVudDtcclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5lbGVtZW50ID0gZWwubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLkFkZElmcmFtZUNvbnRlbnREb2N1bWVudENsaWNrTGlzdGVuZXIpO1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKSAhPT0gbnVsbCApIHtcclxuICAgICAgICB0aGlzLkFkZElmcmFtZUNvbnRlbnREb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcclxuICAgIH1cclxuICB9XHJcbiAgQWRkSWZyYW1lQ29udGVudERvY3VtZW50Q2xpY2tMaXN0ZW5lciA9ICgpID0+IHtcclxuICAgICAgY29uc3QgaWZyYW1lID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZScpO1xyXG5cclxuICAgICAgaWYgKGlmcmFtZSAhPT0gbnVsbCApIHtcclxuICAgICAgICBpZiAoaWZyYW1lLmNvbnRlbnREb2N1bWVudCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMuZXZlbnQsIHRoaXMuZGlzcGF0Y2hDbGlja0V2ZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbG9hZEhhbmRsZXIgPSAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50LCB0aGlzLmRpc3BhdGNoQ2xpY2tFdmVudCk7XHJcbiAgICAgICAgICAgICAgaWZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkSGFuZGxlcik7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkSGFuZGxlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5BZGRJZnJhbWVDb250ZW50RG9jdW1lbnRDbGlja0xpc3RlbmVyKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcGF0Y2hDbGlja0V2ZW50ID0gKCRldmVudCkgPT4ge1xyXG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTtcclxuICAgIGV2ZW50LmluaXRFdmVudCh0aGlzLmV2ZW50LCB0cnVlLCB0cnVlKTtcclxuICAgIGV2ZW50WydvcmlnaW5FdmVudCddID0gJGV2ZW50O1xyXG4gICAgdGhpcy5lbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=