ngx-copypaste
Version:
1 lines • 4.05 kB
Source Map (JSON)
{"version":3,"file":"ngx-copypaste.mjs","sources":["../../../projects/ngx-copypaste-lib/src/lib/ngx-copypaste.directive.ts","../../../projects/ngx-copypaste-lib/src/public-api.ts","../../../projects/ngx-copypaste-lib/src/ngx-copypaste.ts"],"sourcesContent":["import { Directive, ElementRef, inject, output } from '@angular/core';\n\n@Directive({\n selector: '[ngxCopyPaste]',\n exportAs: 'copy,ngxCopy',\n standalone: true,\n})\nexport class NgxCopyPasteDirective {\n public successCb = output();\n\n private readonly _elementRef = inject(ElementRef);\n\n private copyWithSelection(): void {\n let select: Selection | null = window.getSelection();\n if (select) {\n select.removeAllRanges();\n }\n const element = this._elementRef.nativeElement as HTMLElement;\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n element.select();\n } else {\n const range: Range = document.createRange();\n range.selectNodeContents(element);\n select = window.getSelection();\n if (select) {\n select.addRange(range);\n }\n }\n this.successCb.emit();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n document.execCommand('copy');\n }\n\n public async copy(): Promise<void> {\n this.copyWithSelection();\n try {\n if (typeof navigator.clipboard === 'undefined') {\n this.copyWithSelection();\n return;\n }\n const element = this._elementRef.nativeElement as HTMLElement;\n const value =\n element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement\n ? element.value\n : element.textContent;\n if (!value) {\n return;\n }\n await navigator.clipboard.writeText(value.trim());\n this.successCb.emit();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Error copying content: ', err);\n }\n }\n}\n","/*\n * Public API Surface of ngx-copypaste-lib\n */\n\nexport * from './lib/ngx-copypaste.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;QAMW,IAAS,CAAA,SAAA,GAAG,MAAM,EAAE;AAEV,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AA6CpD;IA3CW,iBAAiB,GAAA;AACrB,QAAA,IAAI,MAAM,GAAqB,MAAM,CAAC,YAAY,EAAE;QACpD,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,eAAe,EAAE;;AAE5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;QAC7D,IAAI,OAAO,YAAY,gBAAgB,IAAI,OAAO,YAAY,mBAAmB,EAAE;YAC/E,OAAO,CAAC,MAAM,EAAE;;aACb;AACH,YAAA,MAAM,KAAK,GAAU,QAAQ,CAAC,WAAW,EAAE;AAC3C,YAAA,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjC,YAAA,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE;YAC9B,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAG9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;AAErB,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;;AAGzB,IAAA,MAAM,IAAI,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI;AACA,YAAA,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,EAAE;gBACxB;;AAEJ,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;YAC7D,MAAM,KAAK,GACP,OAAO,YAAY,gBAAgB,IAAI,OAAO,YAAY;kBACpD,OAAO,CAAC;AACV,kBAAE,OAAO,CAAC,WAAW;YAC7B,IAAI,CAAC,KAAK,EAAE;gBACR;;YAEJ,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;QACvB,OAAO,GAAG,EAAE;;AAEV,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC;;;8GA7C5C,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}