{"version":3,"file":"tableau-ui-angular-clipboard.mjs","sources":["../../../projects/component-library/clipboard/src/clipboard.service.ts","../../../projects/component-library/clipboard/src/tableau-ui-clipboard.module.ts","../../../projects/component-library/clipboard/src/tableau-ui-angular-clipboard.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { SnackService } from 'tableau-ui-angular/snack';\n@Injectable({\n  providedIn: 'any',\n})\nexport class ClipboardService {\n  snackService = inject(SnackService);\n  async writeText(text: string, handlePermissionError: boolean = true): Promise<void> {\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (!navigator.clipboard) {\n      throw this.getError(handlePermissionError, 'Clipboard is not available in this browser');\n    }\n    const perm = await navigator.permissions.query({\n      name: 'clipboard-write',\n    } as PermissionDescriptor & { name: 'clipboard-write' });\n    if (perm.state === 'denied') {\n      throw this.getError(handlePermissionError, 'Permission to write to clipboard is denied for this site');\n    }\n    try {\n      await navigator.clipboard.writeText(text);\n    } catch (e) {\n      throw this.getError(handlePermissionError, 'Error writing to clipboard', e);\n    }\n  }\n\n  async readText(handlePermissionError: boolean = true): Promise<string> {\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (!navigator.clipboard) {\n      throw this.getError(handlePermissionError, 'Clipboard is not available in this browser');\n    }\n    const perm = await navigator.permissions.query({\n      name: 'clipboard-read',\n    } as PermissionDescriptor & { name: 'clipboard-read' });\n    if (perm.state === 'denied') {\n      throw this.getError(handlePermissionError, 'Permission to write to clipboard is denied for this site');\n    }\n    try {\n      return await navigator.clipboard.readText();\n    } catch (e) {\n      throw this.getError(handlePermissionError, 'Error reading from clipboard', e);\n    }\n  }\n\n  private getError(handleError: boolean, message: string, details?: unknown) {\n    console.error(message, details);\n    if (handleError) {\n      this.snackService.openSnack(message, 5000, 'error');\n    }\n    return new Error(message);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TableauUiSnackModule } from 'tableau-ui-angular/snack';\nimport { ClipboardService } from './clipboard.service';\n\n@NgModule({\n  imports: [TableauUiSnackModule],\n  declarations: [],\n  providers: [ClipboardService],\n  exports: [],\n})\nexport class TableauUiClipboardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}