@andreasnicolaou/ngx-copy-to-clipboard
Version:
A lightweight, standalone Angular directive for copying text to the clipboard using the Clipboard API.
1 lines • 3.72 kB
Source Map (JSON)
{"version":3,"file":"andreasnicolaou-ngx-copy-to-clipboard.mjs","sources":["../../../projects/ngx-copy-to-clipboard/src/lib/ngx-copy-to-clipboard.directive.ts","../../../projects/ngx-copy-to-clipboard/src/lib/ngx-copy-to-clipboard.module.ts","../../../projects/ngx-copy-to-clipboard/src/public-api.ts","../../../projects/ngx-copy-to-clipboard/src/andreasnicolaou-ngx-copy-to-clipboard.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[ngxCopyToClipboard]',\r\n})\r\nexport class NgxCopyToClipboardDirective {\r\n @Input() public textToCopy: string | null = null;\r\n @Input() public successMessage = 'Successfully copied';\r\n @Input() public errorMessage = 'Could not copy';\r\n\r\n @Output() public readonly onCopyEvent: EventEmitter<string> = new EventEmitter();\r\n @Output() public readonly onErrorEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n @HostListener('click')\r\n public async onClick(): Promise<void> {\r\n if (typeof document === 'undefined' || this.textToCopy == null) {\r\n this.onErrorEvent.emit(this.errorMessage);\r\n return;\r\n }\r\n\r\n try {\r\n await navigator.clipboard.writeText(this.textToCopy);\r\n this.onCopyEvent.emit(this.successMessage);\r\n } catch {\r\n this.onErrorEvent.emit(this.errorMessage);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NgxCopyToClipboardDirective } from './ngx-copy-to-clipboard.directive';\r\n@NgModule({\r\n imports: [NgxCopyToClipboardDirective],\r\n exports: [NgxCopyToClipboardDirective],\r\n})\r\nexport class NgxCopyToClipboardModule {}\r\n","/*\n * Public API Surface of ngx-copy-to-clipboard\n */\n\nexport * from './lib/ngx-copy-to-clipboard.module';\nexport * from './lib/ngx-copy-to-clipboard.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,2BAA2B,CAAA;AAJxC,IAAA,WAAA,GAAA;QAKkB,IAAU,CAAA,UAAA,GAAkB,IAAI;QAChC,IAAc,CAAA,cAAA,GAAG,qBAAqB;QACtC,IAAY,CAAA,YAAA,GAAG,gBAAgB;AAErB,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAE;AACtD,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,YAAY,EAAE;AAgBlF;AAbQ,IAAA,MAAM,OAAO,GAAA;QAClB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC;;AAGF,QAAA,IAAI;YACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;;AAC1C,QAAA,MAAM;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;;+GAnBlC,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;8BAEiB,UAAU,EAAA,CAAA;sBAAzB;gBACe,cAAc,EAAA,CAAA;sBAA7B;gBACe,YAAY,EAAA,CAAA;sBAA3B;gBAEyB,WAAW,EAAA,CAAA;sBAApC;gBACyB,YAAY,EAAA,CAAA;sBAArC;gBAGY,OAAO,EAAA,CAAA;sBADnB,YAAY;uBAAC,OAAO;;;MCRV,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAxB,wBAAwB,EAAA,OAAA,EAAA,CAHzB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAC3B,2BAA2B,CAAA,EAAA,CAAA,CAAA;gHAE1B,wBAAwB,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;;ACLD;;AAEG;;ACFH;;AAEG;;;;"}