1 | import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
2 | import { ClipboardService } from './ngx-clipboard.service';
|
3 | export class ClipboardDirective {
|
4 | constructor(clipboardSrv) {
|
5 | this.clipboardSrv = clipboardSrv;
|
6 | this.cbOnSuccess = new EventEmitter();
|
7 | this.cbOnError = new EventEmitter();
|
8 | }
|
9 | // tslint:disable-next-line:no-empty
|
10 | ngOnInit() { }
|
11 | ngOnDestroy() {
|
12 | this.clipboardSrv.destroy(this.container);
|
13 | }
|
14 | onClick(event) {
|
15 | if (!this.clipboardSrv.isSupported) {
|
16 | this.handleResult(false, undefined, event);
|
17 | }
|
18 | else if (this.targetElm && this.clipboardSrv.isTargetValid(this.targetElm)) {
|
19 | this.handleResult(this.clipboardSrv.copyFromInputElement(this.targetElm), this.targetElm.value, event);
|
20 | }
|
21 | else if (this.cbContent) {
|
22 | this.handleResult(this.clipboardSrv.copyFromContent(this.cbContent, this.container), this.cbContent, event);
|
23 | }
|
24 | }
|
25 | /**
|
26 | * Fires an event based on the copy operation result.
|
27 | * @param succeeded
|
28 | */
|
29 | handleResult(succeeded, copiedContent, event) {
|
30 | let response = {
|
31 | isSuccess: succeeded,
|
32 | event
|
33 | };
|
34 | if (succeeded) {
|
35 | response = Object.assign(response, {
|
36 | content: copiedContent,
|
37 | successMessage: this.cbSuccessMsg
|
38 | });
|
39 | this.cbOnSuccess.emit(response);
|
40 | }
|
41 | else {
|
42 | this.cbOnError.emit(response);
|
43 | }
|
44 | this.clipboardSrv.pushCopyResponse(response);
|
45 | }
|
46 | }
|
47 | ClipboardDirective.decorators = [
|
48 | { type: Directive, args: [{
|
49 | selector: '[ngxClipboard]'
|
50 | },] }
|
51 | ];
|
52 | ClipboardDirective.ctorParameters = () => [
|
53 | { type: ClipboardService }
|
54 | ];
|
55 | ClipboardDirective.propDecorators = {
|
56 | targetElm: [{ type: Input, args: ['ngxClipboard',] }],
|
57 | container: [{ type: Input }],
|
58 | cbContent: [{ type: Input }],
|
59 | cbSuccessMsg: [{ type: Input }],
|
60 | cbOnSuccess: [{ type: Output }],
|
61 | cbOnError: [{ type: Output }],
|
62 | onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
|
63 | };
|
64 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNsaXBib2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2xpcGJvYXJkL3NyYy9saWIvbmd4LWNsaXBib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzNELE1BQU0sT0FBTyxrQkFBa0I7SUFtQjNCLFlBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUozQyxnQkFBVyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUd2RixjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDVCxDQUFDO0lBRXRELG9DQUFvQztJQUM3QixRQUFRLEtBQUksQ0FBQztJQUViLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUdNLE9BQU8sQ0FBQyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDOUM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDMUc7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQy9HO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxTQUFrQixFQUFFLGFBQWlDLEVBQUUsS0FBWTtRQUNwRixJQUFJLFFBQVEsR0FBdUI7WUFDL0IsU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSztTQUNSLENBQUM7UUFFRixJQUFJLFNBQVMsRUFBRTtZQUNYLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWTthQUNwQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OztZQS9ESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjthQUM3Qjs7O1lBSlEsZ0JBQWdCOzs7d0JBUXBCLEtBQUssU0FBQyxjQUFjO3dCQUVwQixLQUFLO3dCQUdMLEtBQUs7MkJBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLE1BQU07c0JBV04sWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJQ2xpcGJvYXJkUmVzcG9uc2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XHJcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICcuL25neC1jbGlwYm9hcmQuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW25neENsaXBib2FyZF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF4aXNhbS9uZ3gtY2xpcGJvYXJkL2lzc3Vlcy8yMzkjaXNzdWVjb21tZW50LTYyMzMzMDYyNFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gICAgQElucHV0KCduZ3hDbGlwYm9hcmQnKVxyXG4gICAgcHVibGljIHRhcmdldEVsbTogSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQgfCB1bmRlZmluZWQgfCAnJztcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNiQ29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2JTdWNjZXNzTXNnOiBzdHJpbmc7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2JPblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxJQ2xpcGJvYXJkUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2xpcGJvYXJkUmVzcG9uc2U+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2JPbkVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmRTcnY6IENsaXBib2FyZFNlcnZpY2UpIHt9XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5XHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7fVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsaXBib2FyZFNydi5kZXN0cm95KHRoaXMuY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNsaXBib2FyZFNydi5pc1N1cHBvcnRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3VsdChmYWxzZSwgdW5kZWZpbmVkLCBldmVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRhcmdldEVsbSAmJiB0aGlzLmNsaXBib2FyZFNydi5pc1RhcmdldFZhbGlkKHRoaXMudGFyZ2V0RWxtKSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRhcmdldEVsbSksIHRoaXMudGFyZ2V0RWxtLnZhbHVlLCBldmVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNiQ29udGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUNvbnRlbnQodGhpcy5jYkNvbnRlbnQsIHRoaXMuY29udGFpbmVyKSwgdGhpcy5jYkNvbnRlbnQsIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlcyBhbiBldmVudCBiYXNlZCBvbiB0aGUgY29weSBvcGVyYXRpb24gcmVzdWx0LlxyXG4gICAgICogQHBhcmFtIHN1Y2NlZWRlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGhhbmRsZVJlc3VsdChzdWNjZWVkZWQ6IGJvb2xlYW4sIGNvcGllZENvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlOiBJQ2xpcGJvYXJkUmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgIGlzU3VjY2Vzczogc3VjY2VlZGVkLFxyXG4gICAgICAgICAgICBldmVudFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChzdWNjZWVkZWQpIHtcclxuICAgICAgICAgICAgcmVzcG9uc2UgPSBPYmplY3QuYXNzaWduKHJlc3BvbnNlLCB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3BpZWRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgc3VjY2Vzc01lc3NhZ2U6IHRoaXMuY2JTdWNjZXNzTXNnXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmNiT25TdWNjZXNzLmVtaXQocmVzcG9uc2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2JPbkVycm9yLmVtaXQocmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRTcnYucHVzaENvcHlSZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICB9XHJcbn1cclxuIl19 |
\ | No newline at end of file |