{"version":3,"file":"taiga-ui-kit-components-copy.mjs","sources":["../../../projects/kit/components/copy/copy.options.ts","../../../projects/kit/components/copy/button-copy.component.ts","../../../projects/kit/components/copy/copy.component.ts","../../../projects/kit/components/copy/copy.template.html","../../../projects/kit/components/copy/copy.directive.ts","../../../projects/kit/components/copy/copy.ts","../../../projects/kit/components/copy/index.ts","../../../projects/kit/components/copy/taiga-ui-kit-components-copy.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCopyOptions {\n    readonly icon: string;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] = tuiCreateOptions({\n    icon: '@tui.copy',\n});\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 {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {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 {tuiIconStart} from '@taiga-ui/core/directives/icons';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Component({\n    selector: '[tuiButtonCopy]',\n    template: `\n        @if (copied()) {\n            {{ copiedText() }}\n        } @else {\n            <ng-content />\n        }\n    `,\n    styles: `\n        [data-tui-version='${TUI_VERSION}'] {\n            @import './button-copy.styles.less';\n        }\n    `,\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        '(document:click.capture)': 'copy($event.target)',\n    },\n})\nexport class TuiButtonCopy {\n    private readonly el = tuiInjectElement();\n    private readonly clipboard = inject(Clipboard);\n    private readonly options = inject(TUI_COPY_OPTIONS);\n    private readonly copyTexts = inject(TUI_COPY_TEXTS);\n    private readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n\n    private readonly check = tuiIsString(this.notification.icon)\n        ? this.notification.icon\n        : this.notification.icon('positive');\n\n    protected readonly copied = signal(false);\n    protected readonly copiedText = computed(() => this.copyTexts()[1]);\n\n    protected readonly icon = tuiIconStart(\n        computed(() => (this.copied() ? this.check : this.options.icon)),\n    );\n\n    public readonly tuiButtonCopy = input('');\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 {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/portals/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    selector: 'tui-copy',\n    imports: [ClipboardModule, TuiButton, TuiHint, TuiIcon],\n    templateUrl: './copy.template.html',\n    styleUrl: './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    protected readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n    protected readonly options = inject(TUI_COPY_OPTIONS);\n    protected readonly copied$ = new BehaviorSubject(false);\n    protected readonly texts = inject(TUI_COPY_TEXTS);\n\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    public readonly size = input<TuiSizeL>('m');\n\n    protected get check(): string {\n        return tuiIsString(this.notification.icon)\n            ? this.notification.icon\n            : this.notification.icon('positive');\n    }\n}\n","<span\n    #content\n    tuiHintAppearance=\"floating\"\n    tuiHintDirection=\"top\"\n    class=\"t-content\"\n    [cdkCopyToClipboard]=\"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]=\"content.textContent ?? ''\"\n    [iconStart]=\"options.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 {Clipboard} from '@angular/cdk/clipboard';\nimport {Directive, inject} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n    TUI_APPEARANCE_OPTIONS,\n    TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiHintDirective} from '@taiga-ui/core/portals/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    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        '[style.border-width.rem]': 'textfield.options.size() === \"l\" ? null : 0.25',\n        '[style.opacity]': 'hasValue ? null : \"var(--tui-disabled-opacity)\"',\n        '[style.pointer-events]': 'hasValue ? null : \"none\"',\n        '(click)': 'copy()',\n    },\n})\nexport class TuiCopyDirective {\n    private readonly copied$ = new Subject<void>();\n    private readonly clipboard = inject(Clipboard);\n    private readonly stringify = inject(TUI_ITEMS_HANDLERS).stringify;\n    protected readonly textfield = inject(TuiTextfieldComponent);\n    protected readonly icons = tuiIconEnd(inject(TUI_COPY_OPTIONS).icon);\n    protected readonly copyTexts = inject(TUI_COPY_TEXTS);\n\n    protected readonly hint = tuiDirectiveBinding(\n        TuiHintDirective,\n        'content',\n        toSignal(\n            toObservable(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 get hasValue(): boolean {\n        return this.multi\n            ? !!this.textfield.control()?.value.length\n            : !!this.textfield.value();\n    }\n\n    protected copy(): void {\n        if (this.multi) {\n            this.clipboard.copy(\n                this.textfield.control()?.value.map(this.stringify()).join(', '),\n            );\n        } else {\n            this.textfield.input()?.nativeElement.select();\n            this.clipboard.copy(this.textfield.value());\n        }\n\n        this.copied$.next();\n    }\n\n    private get multi(): boolean {\n        return Array.isArray(this.textfield.control()?.value);\n    }\n}\n","import {TuiButtonCopy} from './button-copy.component';\nimport {TuiCopyComponent} from './copy.component';\nimport {TuiCopyDirective} from './copy.directive';\n\nexport const TuiCopy = [TuiCopyComponent, TuiCopyDirective, TuiButtonCopy] 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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"}