UNPKG

@dllcn/ngx-clipboard

Version:
106 lines 8.68 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core'; import { ClipboardService } from './ngx-clipboard.service'; export class ClipboardDirective { /** * @param {?} clipboardSrv */ constructor(clipboardSrv) { this.clipboardSrv = clipboardSrv; this.cbOnSuccess = new EventEmitter(); this.cbOnError = new EventEmitter(); } // tslint:disable-next-line:no-empty /** * @return {?} */ ngOnInit() { } /** * @return {?} */ ngOnDestroy() { this.clipboardSrv.destroy(this.container); } /** * @param {?} event * @return {?} */ onClick(event) { if (!this.clipboardSrv.isSupported) { this.handleResult(false, undefined, event); } else if (this.targetElm && this.clipboardSrv.isTargetValid(this.targetElm)) { this.handleResult(this.clipboardSrv.copyFromInputElement(this.targetElm), this.targetElm.value, event); } else if (this.cbContent) { this.handleResult(this.clipboardSrv.copyFromContent(this.cbContent, this.container), this.cbContent, event); } } /** * Fires an event based on the copy operation result. * @private * @param {?} succeeded * @param {?} copiedContent * @param {?} event * @return {?} */ handleResult(succeeded, copiedContent, event) { /** @type {?} */ let response = { isSuccess: succeeded, event }; if (succeeded) { response = Object.assign(response, { content: copiedContent, successMessage: this.cbSuccessMsg }); this.cbOnSuccess.emit(response); } else { this.cbOnError.emit(response); } this.clipboardSrv.pushCopyReponse(response); } } ClipboardDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxClipboard]' },] } ]; /** @nocollapse */ ClipboardDirective.ctorParameters = () => [ { type: ClipboardService } ]; ClipboardDirective.propDecorators = { targetElm: [{ type: Input, args: ['ngxClipboard',] }], container: [{ type: Input }], cbContent: [{ type: Input }], cbSuccessMsg: [{ type: Input }], cbOnSuccess: [{ type: Output }], cbOnError: [{ type: Output }], onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }] }; if (false) { /** @type {?} */ ClipboardDirective.prototype.targetElm; /** @type {?} */ ClipboardDirective.prototype.container; /** @type {?} */ ClipboardDirective.prototype.cbContent; /** @type {?} */ ClipboardDirective.prototype.cbSuccessMsg; /** @type {?} */ ClipboardDirective.prototype.cbOnSuccess; /** @type {?} */ ClipboardDirective.prototype.cbOnError; /** * @type {?} * @private */ ClipboardDirective.prototype.clipboardSrv; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNsaXBib2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGxsY24vbmd4LWNsaXBib2FyZC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtY2xpcGJvYXJkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzNELE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFrQjNCLFlBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUozQyxnQkFBVyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUd2RixjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDVCxDQUFDOzs7OztJQUcvQyxRQUFRLEtBQUksQ0FBQzs7OztJQUViLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7Ozs7SUFHTSxPQUFPLENBQUMsS0FBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzFHO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvRztJQUNMLENBQUM7Ozs7Ozs7OztJQU1PLFlBQVksQ0FBQyxTQUFrQixFQUFFLGFBQWlDLEVBQUUsS0FBWTs7WUFDaEYsUUFBUSxHQUF1QjtZQUMvQixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLO1NBQ1I7UUFFRCxJQUFJLFNBQVMsRUFBRTtZQUNYLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWTthQUNwQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7WUE5REosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7YUFDN0I7Ozs7WUFKUSxnQkFBZ0I7Ozt3QkFPcEIsS0FBSyxTQUFDLGNBQWM7d0JBRXBCLEtBQUs7d0JBR0wsS0FBSzsyQkFHTCxLQUFLOzBCQUdMLE1BQU07d0JBR04sTUFBTTtzQkFXTixZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDOzs7O0lBekJ4Qyx1Q0FDbUM7O0lBQ25DLHVDQUNtQzs7SUFFbkMsdUNBQ3lCOztJQUV6QiwwQ0FDNEI7O0lBRTVCLHlDQUM4Rjs7SUFFOUYsdUNBQzhEOzs7OztJQUNsRCwwQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2xpcGJvYXJkUmVzcG9uc2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtY2xpcGJvYXJkLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3hDbGlwYm9hcmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnbmd4Q2xpcGJvYXJkJylcbiAgICBwdWJsaWMgdGFyZ2V0RWxtOiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRhaW5lcjogSFRNTElucHV0RWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNiQ29udGVudDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2JTdWNjZXNzTXNnOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2JPblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxJQ2xpcGJvYXJkUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2xpcGJvYXJkUmVzcG9uc2U+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2JPbkVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpcGJvYXJkU3J2OiBDbGlwYm9hcmRTZXJ2aWNlKSB7fVxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5XG4gICAgcHVibGljIG5nT25Jbml0KCkge31cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRTcnYuZGVzdHJveSh0aGlzLmNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNsaXBib2FyZFNydi5pc1N1cHBvcnRlZCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXN1bHQoZmFsc2UsIHVuZGVmaW5lZCwgZXZlbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGFyZ2V0RWxtICYmIHRoaXMuY2xpcGJvYXJkU3J2LmlzVGFyZ2V0VmFsaWQodGhpcy50YXJnZXRFbG0pKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRhcmdldEVsbSksIHRoaXMudGFyZ2V0RWxtLnZhbHVlLCBldmVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jYkNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KHRoaXMuY2xpcGJvYXJkU3J2LmNvcHlGcm9tQ29udGVudCh0aGlzLmNiQ29udGVudCwgdGhpcy5jb250YWluZXIpLCB0aGlzLmNiQ29udGVudCwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYW4gZXZlbnQgYmFzZWQgb24gdGhlIGNvcHkgb3BlcmF0aW9uIHJlc3VsdC5cbiAgICAgKiBAcGFyYW0gc3VjY2VlZGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYW5kbGVSZXN1bHQoc3VjY2VlZGVkOiBib29sZWFuLCBjb3BpZWRDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQsIGV2ZW50OiBFdmVudCkge1xuICAgICAgICBsZXQgcmVzcG9uc2U6IElDbGlwYm9hcmRSZXNwb25zZSA9IHtcbiAgICAgICAgICAgIGlzU3VjY2Vzczogc3VjY2VlZGVkLFxuICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc3VjY2VlZGVkKSB7XG4gICAgICAgICAgICByZXNwb25zZSA9IE9iamVjdC5hc3NpZ24ocmVzcG9uc2UsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3BpZWRDb250ZW50LFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3NNZXNzYWdlOiB0aGlzLmNiU3VjY2Vzc01zZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNiT25TdWNjZXNzLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYk9uRXJyb3IuZW1pdChyZXNwb25zZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsaXBib2FyZFNydi5wdXNoQ29weVJlcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbn1cbiJdfQ==