{"version":3,"file":"taiga-ui-kit-directives-copy.mjs","sources":["../../../projects/kit/directives/copy/copy.options.ts","../../../projects/kit/directives/copy/button-copy.component.ts","../../../projects/kit/directives/copy/copy.component.ts","../../../projects/kit/directives/copy/copy.template.html","../../../projects/kit/directives/copy/copy.directive.ts","../../../projects/kit/directives/copy/copy.ts","../../../projects/kit/directives/copy/index.ts","../../../projects/kit/directives/copy/taiga-ui-kit-directives-copy.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCopyOptions {\n    readonly icon: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] =\n    tuiCreateOptions<TuiCopyOptions>({icon: '@tui.copy'});\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    inject,\n    Input,\n    signal,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgIf} from '@angular/common';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Component({\n    standalone: true,\n    selector: '[tuiButtonCopy]',\n    imports: [NgIf],\n    template: `\n        <ng-container *ngIf=\"copied(); else notCopied\">\n            {{ copiedText() }}\n        </ng-container>\n        <ng-template #notCopied>\n            <ng-content />\n        </ng-template>\n    `,\n    styleUrls: ['./button-copy.styles.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiButtonOptionsProvider({appearance: 'flat-grayscale', size: 's'})],\n    hostDirectives: [TuiButton],\n    host: {\n        tuiButton: '',\n        type: 'button',\n        '[attr.tuiTheme]':\n            'appearance === \"dark\" ? \"light\" : darkMode() ? \"light\" : \"dark\"',\n        '(document:click.capture)': 'copy($event.target)',\n    },\n})\nexport class TuiButtonCopyComponent {\n    private readonly el = tuiInjectElement();\n    private readonly clipboard = inject(Clipboard);\n    private readonly options = inject(TUI_COPY_OPTIONS);\n    private readonly copyTexts = toSignal(inject(TUI_COPY_TEXTS));\n    private readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n    private readonly hint = inject(TuiHintDirective);\n\n    private readonly check = tuiIsString(this.notification.icon)\n        ? this.notification.icon\n        : this.notification.icon('positive');\n\n    protected readonly appearance =\n        this.hint.appearance ||\n        this.hint.el.closest('[tuiTheme]')?.getAttribute('tuiTheme');\n\n    protected readonly darkMode = inject(TUI_DARK_MODE);\n\n    protected readonly copied = signal(false);\n    protected readonly copiedText = computed(() => this.copyTexts()?.[1] ?? '');\n    protected readonly icon = tuiDirectiveBinding(\n        TuiIcons,\n        'iconStart',\n        computed(() => {\n            if (this.copied()) {\n                return this.check;\n            }\n\n            return typeof this.options.icon === 'string'\n                ? this.options.icon\n                : this.options.icon('s');\n        }),\n    );\n\n    @Input()\n    public tuiButtonCopy = '';\n\n    protected copy(target: HTMLElement): void {\n        const copied = this.el === target;\n\n        if (copied) {\n            this.clipboard.copy(this.tuiButtonCopy);\n        }\n\n        this.copied.set(copied);\n    }\n}\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiCopyProcessor} from '@taiga-ui/cdk/directives/copy-processor';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, map, startWith, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Component({\n    standalone: true,\n    selector: 'tui-copy',\n    imports: [ClipboardModule, TuiButton, TuiHint, TuiIcon],\n    templateUrl: './copy.template.html',\n    styleUrls: ['./copy.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[attr.data-size]': 'size',\n        '(pointerdown)': 'copied$.next(false)',\n    },\n})\nexport class TuiCopyComponent {\n    private readonly processor = inject(TuiCopyProcessor, {optional: true});\n\n    protected readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n    protected readonly options = inject(TUI_COPY_OPTIONS);\n    protected readonly copied$ = new BehaviorSubject<boolean>(false);\n    protected readonly texts = toSignal(inject(TUI_COPY_TEXTS));\n    protected readonly hint = toSignal(\n        this.copied$.pipe(\n            switchMap((copied) =>\n                timer(2000).pipe(map(TUI_FALSE_HANDLER), startWith(copied)),\n            ),\n        ),\n    );\n\n    @Input()\n    public size: TuiSizeL = 'm';\n\n    protected get icon(): string {\n        return tuiIsString(this.options.icon)\n            ? this.options.icon\n            : this.options.icon(this.size);\n    }\n\n    protected get check(): string {\n        return tuiIsString(this.notification.icon)\n            ? this.notification.icon\n            : this.notification.icon('positive');\n    }\n\n    protected process(value: string | null | undefined): string {\n        const source = value ?? '';\n\n        return this.processor?.tuiCopyProcessor(source) ?? source.trim();\n    }\n}\n","<span\n    #content\n    tuiHintAppearance=\"dark\"\n    tuiHintDirection=\"top\"\n    class=\"t-content\"\n    [cdkCopyToClipboard]=\"process(content.textContent)\"\n    [tuiHint]=\"template\"\n    [tuiHintManual]=\"!!hint()\"\n    (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n>\n    <ng-content />\n</span>\n<button\n    appearance=\"icon\"\n    size=\"xs\"\n    tuiIconButton\n    type=\"button\"\n    class=\"t-button\"\n    [attr.aria-label]=\"texts()?.[0]\"\n    [cdkCopyToClipboard]=\"process(content.textContent)\"\n    [iconStart]=\"icon\"\n    (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n></button>\n<ng-template #template>\n    <tui-icon\n        class=\"t-icon\"\n        [icon]=\"check\"\n    />\n    {{ texts()?.[1] }}\n</ng-template>\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n    TUI_APPEARANCE_OPTIONS,\n    TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Directive({\n    standalone: true,\n    selector: 'tui-icon[tuiCopy]',\n    providers: [\n        {\n            provide: TUI_APPEARANCE_OPTIONS,\n            useValue: {appearance: 'icon'},\n        },\n    ],\n    hostDirectives: [\n        TuiWithAppearance,\n        {\n            directive: TuiHintDirective,\n            inputs: ['tuiHintAppearance', 'tuiHintContext'],\n        },\n    ],\n    host: {\n        style: 'cursor: pointer',\n        '(click)': 'copy()',\n        '[style.pointer-events]': 'disabled ? \"none\" : null',\n        '[style.opacity]': 'disabled ? \"var(--tui-disabled-opacity)\" : null',\n        '[style.border-width.rem]': 'textfield.options.size() === \"l\" ? null : 0.25',\n    },\n})\nexport class TuiCopyDirective {\n    private readonly options = inject(TUI_COPY_OPTIONS);\n    private readonly copied$ = new Subject<void>();\n    private readonly doc = inject(DOCUMENT);\n\n    protected readonly textfield = inject(TuiTextfieldComponent);\n    protected readonly hint = tuiDirectiveBinding(\n        TuiHintDirective,\n        'tuiHint',\n        toSignal(\n            inject(TUI_COPY_TEXTS).pipe(\n                switchMap(([copy, copied]) =>\n                    this.copied$.pipe(\n                        switchMap(() =>\n                            timer(3000).pipe(\n                                map(() => copy),\n                                startWith(copied),\n                            ),\n                        ),\n                        startWith(copy),\n                    ),\n                ),\n            ),\n            {initialValue: ''},\n        ),\n    );\n\n    protected readonly icons = tuiDirectiveBinding(\n        TuiIcon,\n        'icon',\n        computed((size = this.textfield.options.size()) =>\n            tuiIsString(this.options.icon) ? this.options.icon : this.options.icon(size),\n        ),\n    );\n\n    @Input()\n    public tuiCopy = '';\n\n    protected get disabled(): boolean {\n        return !this.textfield.input?.nativeElement.value;\n    }\n\n    protected copy(): void {\n        this.textfield.input?.nativeElement.select();\n        this.doc.execCommand('copy');\n        this.copied$.next();\n    }\n}\n","import {TuiButtonCopyComponent} from './button-copy.component';\nimport {TuiCopyComponent} from './copy.component';\nimport {TuiCopyDirective} from './copy.directive';\n\nexport const TuiCopy = [\n    TuiCopyComponent,\n    TuiCopyDirective,\n    TuiButtonCopyComponent,\n] as const;\n","// TODO: Move to components in v5\nexport * from './button-copy.component';\nexport * from './copy';\nexport * from './copy.component';\nexport * from './copy.directive';\nexport * from './copy.options';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}