{"version":3,"file":"taiga-ui-editor-tools.mjs","sources":["../../../projects/editor/tools/tool-button.ts","../../../projects/editor/tools/tool.ts","../../../projects/editor/tools/buttons/add-row-table.ts","../../../projects/editor/tools/buttons/align-center.ts","../../../projects/editor/tools/buttons/align-justify.ts","../../../projects/editor/tools/buttons/align-left.ts","../../../projects/editor/tools/buttons/align-right.ts","../../../projects/editor/tools/buttons/align.ts","../../../projects/editor/tools/buttons/anchor.ts","../../../projects/editor/tools/buttons/attach.ts","../../../projects/editor/tools/buttons/bold.ts","../../../projects/editor/tools/buttons/clear.ts","../../../projects/editor/tools/buttons/code.ts","../../../projects/editor/tools/buttons/details-add.ts","../../../projects/editor/tools/buttons/details-remove.ts","../../../projects/editor/tools/buttons/italic.ts","../../../projects/editor/tools/buttons/strike.ts","../../../projects/editor/tools/buttons/underline.ts","../../../projects/editor/tools/buttons/font-style.ts","../../../projects/editor/tools/buttons/highlight-color.ts","../../../projects/editor/tools/buttons/hr.ts","../../../projects/editor/tools/buttons/image.ts","../../../projects/editor/tools/buttons/indent.ts","../../../projects/editor/tools/buttons/insert-group.ts","../../../projects/editor/tools/buttons/insert-table.ts","../../../projects/editor/tools/buttons/link.ts","../../../projects/editor/tools/buttons/ordered-list.ts","../../../projects/editor/tools/buttons/outdent.ts","../../../projects/editor/tools/buttons/task-list.ts","../../../projects/editor/tools/buttons/unordered-list.ts","../../../projects/editor/tools/buttons/list-preview.ts","../../../projects/editor/tools/buttons/paint.ts","../../../projects/editor/tools/buttons/quote.ts","../../../projects/editor/tools/buttons/redo.ts","../../../projects/editor/tools/buttons/remove-group.ts","../../../projects/editor/tools/buttons/size.ts","../../../projects/editor/tools/buttons/subscript.ts","../../../projects/editor/tools/buttons/superscript.ts","../../../projects/editor/tools/buttons/table-merge-cell.ts","../../../projects/editor/tools/buttons/tex.ts","../../../projects/editor/tools/buttons/text-color.ts","../../../projects/editor/tools/buttons/undo.ts","../../../projects/editor/tools/taiga-ui-editor-tools.ts"],"sourcesContent":["import {Directive, signal} from '@angular/core';\nimport {\n    TuiButton,\n    tuiButtonOptionsProvider,\n    TuiHintDirective,\n    TuiHintManual,\n    tuiHintOptionsProvider,\n} from '@taiga-ui/core';\n\n@Directive({\n    standalone: true,\n    providers: [\n        tuiHintOptionsProvider({direction: ['top-left', 'top', 'right']}),\n        tuiButtonOptionsProvider({\n            size: 's',\n            appearance: 'icon',\n        }),\n    ],\n    hostDirectives: [\n        TuiHintDirective,\n        TuiHintManual,\n        {\n            directive: TuiButton,\n            inputs: ['size'],\n        },\n    ],\n    host: {\n        tuiItem: '',\n        tuiToolbarTool: '',\n        tuiIconButton: '',\n        type: 'button',\n        '[disabled]': 'disabled()',\n    },\n})\nexport class TuiToolbarButtonTool {\n    public readonly disabled = signal<boolean>(false);\n}\n","import {\n    ChangeDetectorRef,\n    computed,\n    DestroyRef,\n    Directive,\n    inject,\n    Input,\n    type OnInit,\n    signal,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_IS_MOBILE, tuiDirectiveBinding, tuiWatch} from '@taiga-ui/cdk';\nimport {TuiAppearance, TuiHintDirective, TuiHintManual, TuiIcons} from '@taiga-ui/core';\nimport {\n    type AbstractTuiEditor,\n    TUI_EDITOR_OPTIONS,\n    TUI_EDITOR_TOOLBAR_TEXTS,\n    type TuiEditorOptions,\n} from '@taiga-ui/editor/common';\nimport {TuiTiptapEditorService} from '@taiga-ui/editor/directives/tiptap-editor';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {\n    BehaviorSubject,\n    distinctUntilChanged,\n    of,\n    shareReplay,\n    startWith,\n    switchMap,\n} from 'rxjs';\n\nimport {TuiToolbarButtonTool} from './tool-button';\n\n@Directive()\nexport abstract class TuiToolbarTool implements OnInit {\n    private editorInstance: AbstractTuiEditor | null = inject(TuiTiptapEditorService, {\n        optional: true,\n    });\n\n    private readonly editor$ = new BehaviorSubject(this.editorInstance);\n\n    protected readonly cd = inject(ChangeDetectorRef);\n    protected readonly destroy$ = inject(DestroyRef);\n    protected readonly isMobile = inject(TUI_IS_MOBILE);\n    protected readonly options = inject(TUI_EDITOR_OPTIONS);\n\n    protected readonly texts = toSignal(inject(TUI_EDITOR_TOOLBAR_TEXTS));\n    protected readonly readOnly = signal(false);\n    protected readonly activeOnly = signal(false);\n    protected readonly isFocused = signal(false);\n\n    protected readonly disabled = tuiDirectiveBinding(\n        TuiToolbarButtonTool,\n        'disabled',\n        computed(() => this.readOnly()),\n    );\n\n    protected readonly active = tuiDirectiveBinding(\n        TuiAppearance,\n        'tuiAppearanceState',\n        computed(() => (this.activeOnly() && this.isFocused() ? 'active' : null)),\n    );\n\n    protected readonly iconStart = tuiDirectiveBinding(\n        TuiIcons,\n        'iconStart',\n        this.getIcon(this.options.icons),\n    );\n\n    protected readonly tuiHint = tuiDirectiveBinding(\n        TuiHintDirective,\n        'tuiHint',\n        computed((texts = this.texts()) => this.getHint(texts)),\n    );\n\n    protected readonly tuiHintManual = tuiDirectiveBinding(\n        TuiHintManual,\n        'tuiHintManual',\n        !this.isMobile && null,\n    );\n\n    protected getDisableState?(): boolean;\n\n    protected isActive?(): boolean;\n\n    protected abstract getIcon(icons: TuiEditorOptions['icons']): string;\n\n    protected abstract getHint(options?: TuiLanguageEditor['toolbarTools']): string;\n\n    @Input()\n    public set editor(editor: AbstractTuiEditor | null) {\n        this.editorInstance = editor;\n        this.editor$.next(editor);\n    }\n\n    public get editor(): AbstractTuiEditor | null {\n        return this.editorInstance;\n    }\n\n    public ngOnInit(): void {\n        this.editor$\n            .pipe(\n                distinctUntilChanged(),\n                switchMap((editor) => {\n                    this.updateSignals();\n\n                    return editor\n                        ? editor.valueChange$.pipe(\n                              startWith(null),\n                              shareReplay({bufferSize: 1, refCount: true}),\n                              takeUntilDestroyed(this.destroy$),\n                              tuiWatch(this.cd),\n                          )\n                        : of(null);\n                }),\n                takeUntilDestroyed(this.destroy$),\n            )\n            .subscribe(() => this.updateSignals());\n    }\n\n    protected updateSignals(): void {\n        this.isFocused.set(this.editor?.isFocused ?? false);\n        this.readOnly.set(this.getDisableState?.() ?? false);\n        this.activeOnly.set(this.isActive?.() ?? false);\n\n        // caretaker note: trigger computed effect\n        this.cd.detectChanges();\n    }\n}\n","import {AsyncPipe, NgForOf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {\n    TuiDataList,\n    TuiDropdownDirective,\n    TuiOptGroup,\n    TuiOption,\n    TuiTextfield,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {TUI_EDITOR_TABLE_COMMANDS, type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\nexport const TuiTableCommands = {\n    InsertColumnBefore: 0,\n    InsertColumnAfter: 1,\n    InsertRowBefore: 2,\n    InsertRowAfter: 3,\n    DeleteColumn: 4,\n    DeleteRow: 5,\n} as const;\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAddRowTableTool]',\n    imports: [AsyncPipe, NgForOf, TuiDataList, TuiOptGroup, TuiOption, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-data-list>\n                <tui-opt-group\n                    *ngFor=\"let group of tableCommandTexts$ | async; let i = index\"\n                >\n                    <!-- TODO: remove \"magic\" numbers i*2+@Directive({standalone: true, and make code more readable-->\n                    <button\n                        *ngFor=\"let item of group; let j = index\"\n                        tuiOption\n                        type=\"button\"\n                        (click)=\"onTableOption(i * 2 + j)\"\n                    >\n                        {{ item }}\n                    </button>\n                </tui-opt-group>\n            </tui-data-list>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n})\nexport class TuiAddRowTableButtonTool extends TuiToolbarTool {\n    protected readonly tableCommandTexts$ = inject(TUI_EDITOR_TABLE_COMMANDS);\n\n    protected override getDisableState(): boolean {\n        return !(this.editor?.isActive('table') ?? false);\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.addRowTable;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.rowsColumnsManaging ?? '';\n    }\n\n    protected onTableOption(command: number): void {\n        const registry: Record<number, () => void> | null = {\n            [TuiTableCommands.InsertColumnAfter]: () => this.editor?.addColumnAfter(),\n            [TuiTableCommands.InsertColumnBefore]: () => this.editor?.addColumnBefore(),\n            [TuiTableCommands.InsertRowAfter]: () => this.editor?.addRowAfter(),\n            [TuiTableCommands.InsertRowBefore]: () => this.editor?.addRowBefore(),\n            [TuiTableCommands.DeleteColumn]: () => this.editor?.deleteColumn(),\n            [TuiTableCommands.DeleteRow]: () => this.editor?.deleteRow(),\n        };\n\n        registry[command]?.();\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAlignCenterTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.onAlign(\"center\")'},\n})\nexport class TuiAlignCenterButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive({textAlign: 'center'}) ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textAlignCenter;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.justifyCenter ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAlignJustifyTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.onAlign(\"justify\")'},\n})\nexport class TuiAlignJustifyButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive({textAlign: 'justify'}) ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textAlignJustify;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.justifyFull ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAlignLeftTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.onAlign(\"left\")'},\n})\nexport class TuiAlignLeftButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive({textAlign: 'left'}) ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textAlignLeft;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.justifyLeft ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAlignRightTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.onAlign(\"right\")'},\n})\nexport class TuiAlignRightButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive({textAlign: 'right'}) ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textAlignRight;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.justifyRight ?? '';\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\nimport {TuiAlignCenterButtonTool} from './align-center';\nimport {TuiAlignJustifyButtonTool} from './align-justify';\nimport {TuiAlignLeftButtonTool} from './align-left';\nimport {TuiAlignRightButtonTool} from './align-right';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAlignTool]',\n    imports: [\n        TuiAlignCenterButtonTool,\n        TuiAlignJustifyButtonTool,\n        TuiAlignLeftButtonTool,\n        TuiAlignRightButtonTool,\n        TuiTextfield,\n    ],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <div tuiToolbarDropdownContent>\n                <button\n                    tuiAlignLeftTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiAlignCenterTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiAlignRightTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiAlignJustifyTool\n                    [editor]=\"editor\"\n                ></button>\n            </div>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': '\"toolbar__align-button\"'},\n})\nexport class TuiAlignButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return (\n            this.editor?.isActive({textAlign: 'center'}) ||\n            this.editor?.isActive({textAlign: 'justify'}) ||\n            this.editor?.isActive({textAlign: 'left'}) ||\n            this.editor?.isActive({textAlign: 'right'}) ||\n            false\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textAlignPreview;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.justify ?? '');\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {tuiGetCurrentWordBounds} from '@taiga-ui/editor/utils';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAnchorTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'onAnchor()'},\n})\nexport class TuiAnchorButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('jumpAnchor') ?? false;\n    }\n\n    protected override getDisableState(): boolean {\n        return (\n            (this.editor?.isActive('link') ?? false) ||\n            (this.editor?.isActive('jumpAnchor') ?? false) ||\n            (this.editor?.isActive('image') ?? false)\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.anchor;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.insertAnchor ?? '';\n    }\n\n    protected onAnchor(): void {\n        this.editor?.takeSelectionSnapshot();\n\n        const range = this.editor?.getSelectionSnapshot();\n        const editor = this.editor?.getOriginTiptapEditor();\n        const {from = range?.anchor} = editor ? tuiGetCurrentWordBounds(editor) : {};\n\n        this.editor?.setAnchor('');\n        this.editor?.getOriginTiptapEditor()?.commands.focus((from ?? 0) + 1);\n    }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    DestroyRef,\n    type ElementRef,\n    EventEmitter,\n    inject,\n    Output,\n    ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n    TUI_ATTACH_FILES_LOADER,\n    TUI_ATTACH_FILES_OPTIONS,\n    type TuiEditorAttachedFile,\n    type TuiEditorOptions,\n} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {take} from 'rxjs';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiAttachTool]',\n    template: `\n        <input\n            #fileUpload\n            type=\"file\"\n            [accept]=\"attachOptions.accept\"\n            [multiple]=\"attachOptions.multiple\"\n            [tabIndex]=\"-1\"\n            (change)=\"onAttach(fileUpload)\"\n        />\n\n        {{ tuiHint() }}\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'fileUpload?.nativeElement?.click()'},\n})\nexport class TuiAttachButtonTool extends TuiToolbarTool {\n    private readonly destroyRef = inject(DestroyRef);\n    private readonly filesLoader = inject(TUI_ATTACH_FILES_LOADER, {optional: true});\n\n    @ViewChild('fileUpload')\n    protected fileUpload?: ElementRef<HTMLInputElement>;\n\n    protected readonly attachOptions = inject(TUI_ATTACH_FILES_OPTIONS);\n\n    @Output()\n    public readonly fileAttached = new EventEmitter<TuiEditorAttachedFile[]>();\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.attach;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.attach ?? '';\n    }\n\n    protected onAttach(input: HTMLInputElement): void {\n        const files = Array.from(input.files || []);\n\n        input.value = '';\n\n        if (files.length === 0) {\n            return;\n        }\n\n        if (ngDevMode) {\n            console.assert(\n                !!this.filesLoader,\n                'Please provide TUI_ATTACH_FILES_LOADER, more: https://taiga-family.github.io/editor/starter-kit/Options',\n            );\n        }\n\n        this.filesLoader?.(files)\n            .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n            .subscribe((attachedFiles) => this.fileAttached.emit(attachedFiles));\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiBoldTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleBold()'},\n})\nexport class TuiBoldButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('bold') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontStyleBold;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.bold ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiClearTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.removeFormat()'},\n})\nexport class TuiClearButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.clear;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.clear ?? '';\n    }\n}\n","import {AsyncPipe, NgForOf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    inject,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    TuiDataList,\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiOption,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {TUI_EDITOR_CODE_OPTIONS, type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiCodeTool]',\n    imports: [AsyncPipe, NgForOf, TuiDataList, TuiOption, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-data-list>\n                <button\n                    *ngFor=\"let item of codeOptionsTexts$ | async; let index = index\"\n                    tuiOption\n                    type=\"button\"\n                    (click)=\"onCode(!!index)\"\n                >\n                    {{ item }}\n                </button>\n            </tui-data-list>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n})\nexport class TuiCodeButtonTool extends TuiToolbarTool {\n    protected readonly codeOptionsTexts$ = inject(TUI_EDITOR_CODE_OPTIONS);\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return (\n            (this.editor?.isActive('code') || this.editor?.isActive('codeBlock')) ?? false\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.code;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.code ?? '');\n    }\n\n    protected onCode(isCodeBlock: boolean): void {\n        this.editor?.[isCodeBlock ? 'toggleCodeBlock' : 'toggleCode']();\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiDetailsAddTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.setDetails()'},\n})\nexport class TuiDetailsAddButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.detailsAdd;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.setDetails ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiDetailsRemoveTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.unsetDetails()'},\n})\nexport class TuiDetailsRemoveButtonTool extends TuiToolbarTool {\n    protected override getDisableState(): boolean {\n        return !(this.editor?.isActive('details') ?? false);\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.detailsRemove;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.removeDetails ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiItalicTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleItalic()'},\n})\nexport class TuiItalicButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('italic') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontStyleItalic;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.italic ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiStrikeTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleStrike()'},\n})\nexport class TuiStrikeButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('strike') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontStyleStrike;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.strikeThrough ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiUnderlineTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleUnderline()'},\n})\nexport class TuiUnderlineButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('underline') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontStyleUnderline;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.underline ?? '';\n    }\n}\n","import {NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    Input,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {\n    type TuiEditorOptions,\n    TuiEditorTool,\n    type TuiEditorToolType,\n} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\nimport {TuiBoldButtonTool} from './bold';\nimport {TuiItalicButtonTool} from './italic';\nimport {TuiStrikeButtonTool} from './strike';\nimport {TuiUnderlineButtonTool} from './underline';\n\ntype Tools = Set<TuiEditorToolType> | readonly TuiEditorToolType[];\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiFontStyleTool]',\n    imports: [\n        NgIf,\n        TuiBoldButtonTool,\n        TuiItalicButtonTool,\n        TuiStrikeButtonTool,\n        TuiTextfield,\n        TuiUnderlineButtonTool,\n    ],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <div tuiToolbarDropdownContent>\n                <button\n                    *ngIf=\"isEnabled(editorTool.Bold)\"\n                    tuiBoldTool\n                    [editor]=\"editor\"\n                >\n                    Toggle bold\n                </button>\n                <button\n                    *ngIf=\"isEnabled(editorTool.Italic)\"\n                    tuiItalicTool\n                    [editor]=\"editor\"\n                >\n                    Toggle italic\n                </button>\n                <button\n                    *ngIf=\"isEnabled(editorTool.Underline)\"\n                    tuiUnderlineTool\n                    [editor]=\"editor\"\n                >\n                    Toggle underline\n                </button>\n                <button\n                    *ngIf=\"isEnabled(editorTool.Strikethrough)\"\n                    tuiStrikeTool\n                    [editor]=\"editor\"\n                >\n                    Toggle strike\n                </button>\n            </div>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': \"'toolbar__font-style-button'\"},\n})\nexport class TuiFontStyleButtonTool extends TuiToolbarTool {\n    private toolsSet = new Set(this.options.tools);\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n    protected readonly editorTool = TuiEditorTool;\n\n    @Input()\n    public set enabledTools(value: Tools) {\n        this.toolsSet = new Set(value);\n    }\n\n    public isEnabled(tool: TuiEditorToolType): boolean {\n        return this.toolsSet.has(tool);\n    }\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return (\n            this.editor?.isActive('bold') ||\n            this.editor?.isActive('italic') ||\n            this.editor?.isActive('underline') ||\n            this.editor?.isActive('strike') ||\n            false\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontStylePreview;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.fontStyle ?? '');\n    }\n}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    Input,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {TuiPaletteModule} from '@taiga-ui/legacy';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiHighlightColorTool]',\n    imports: [AsyncPipe, NgIf, TuiPaletteModule, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-palette\n                tuiPalette\n                [colors]=\"colors\"\n                (selectedColor)=\"editor?.setBackgroundColor($event)\"\n            />\n        </ng-container>\n\n        <div\n            *ngIf=\"!isBlankColor()\"\n            tuiPlate\n            [style.background]=\"editor?.getBackgroundColor()\"\n        >\n            <ng-container *ngIf=\"editor?.valueChange$ | async\" />\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {\n        tuiPlateHost: '',\n        '[attr.automation-id]': '\"toolbar__hilite-button\"',\n    },\n})\nexport class TuiHighlightColorButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @Input()\n    public colors: ReadonlyMap<string, string> =\n        this.options.backgroundColors ?? this.options.colors;\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return !this.isBlankColor();\n    }\n\n    protected isBlankColor(): boolean {\n        return (\n            this.getBackgroundColor() === this.options.blankColor ||\n            this.getBackgroundColor() === 'transparent'\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textHilite;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.backColor ?? '');\n    }\n\n    protected getBackgroundColor(): string {\n        return this.editor?.getBackgroundColor() ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiHrTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.setHorizontalRule()'},\n})\nexport class TuiHrButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.hr;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.insertHorizontalRule ?? '';\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    DestroyRef,\n    type ElementRef,\n    inject,\n    ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TUI_IMAGE_LOADER, type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {take} from 'rxjs';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiImageTool]',\n    imports: [],\n    template: `\n        <input\n            #image\n            accept=\"image/*\"\n            type=\"file\"\n            (change)=\"onImage(image)\"\n        />\n\n        {{ tuiHint() }}\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'image?.nativeElement?.click()'},\n})\nexport class TuiImageButtonTool extends TuiToolbarTool {\n    private readonly destroyRef = inject(DestroyRef);\n    private readonly imageLoader = inject(TUI_IMAGE_LOADER);\n\n    @ViewChild('image')\n    protected image?: ElementRef<HTMLInputElement>;\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.image;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.image ?? '';\n    }\n\n    protected onImage(input: HTMLInputElement): void {\n        const file = input.files?.[0];\n\n        input.value = '';\n\n        if (!file) {\n            return;\n        }\n\n        this.imageLoader(file)\n            .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n            .subscribe((image) => this.editor?.setImage(image));\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiIndentTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '(click)': 'editor?.sinkListItem()',\n        '[attr.automation-id]': '\"toolbar_indent-button\"',\n    },\n})\nexport class TuiIndentButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.indent;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.indent ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiInsertGroupTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__group-add-button\"',\n        '(click)': 'editor?.setGroup()',\n    },\n})\nexport class TuiInsertGroupButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.groupAdd;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.insertGroup ?? '';\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    inject,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    tuiGetViewportWidth,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\nconst MAX_COLS_NUMBER = 15;\nconst MAX_ROWS_NUMBER = 15;\nconst MIN_DISTANCE_PX = 70;\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiInsertTableTool]',\n    imports: [TuiRepeatTimes, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <div class=\"t-size-selector\">\n                <div\n                    *tuiRepeatTimes=\"let x of columnsNumber\"\n                    class=\"t-column\"\n                >\n                    <div\n                        *tuiRepeatTimes=\"let y of rowsNumber\"\n                        class=\"t-cell\"\n                        [class.t-cell_hovered]=\"tableSelectHovered(y, x)\"\n                        (click)=\"addTable(tableSize)\"\n                        (mouseenter)=\"updateCurrentSize(y + 1, x + 1, $event)\"\n                    ></div>\n                </div>\n                <div class=\"t-description\">\n                    {{ tableSize.cols }}&#215;{{ tableSize.rows }}\n                </div>\n            </div>\n        </ng-container>\n    `,\n    styles: [\n        `\n            .t-size-selector {\n                display: block;\n                padding: 0.75rem;\n            }\n\n            .t-cell {\n                display: inline-block;\n                background-color: var(--tui-background-base);\n                inline-size: 1.25rem;\n                block-size: 1.25rem;\n                border-radius: 0.25rem;\n                margin: 0.125rem;\n                border: 0.0625rem solid var(--tui-border-normal);\n                cursor: pointer;\n            }\n\n            .t-cell_hovered {\n                background-color: var(--tui-background-base-alt);\n            }\n\n            .t-column {\n                white-space: nowrap;\n            }\n\n            .t-description {\n                text-align: center;\n            }\n        `,\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': '\"toolbar__insert-table-button\"'},\n})\nexport class TuiInsertTableButtonTool extends TuiToolbarTool {\n    private readonly win = inject(WINDOW);\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    protected tableSize = {\n        rows: 1,\n        cols: 1,\n    };\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected get columnsNumber(): number {\n        return Math.min(Math.max(3, this.tableSize.cols + 1), MAX_COLS_NUMBER);\n    }\n\n    protected get rowsNumber(): number {\n        return Math.min(Math.max(3, this.tableSize.rows + 1), MAX_ROWS_NUMBER);\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.insertTable;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.insertTable ?? '');\n    }\n\n    protected addTable({rows, cols}: {cols: number; rows: number}): void {\n        this.editor?.enter(); // @note: clear previous styles\n\n        const prevLine = this.editor?.state?.selection.anchor;\n\n        // @note: don't use `setHardBreak`,\n        // it inherits styles of previous lines\n        // required two line after\n        this.editor?.enter();\n        this.editor?.enter();\n\n        this.editor?.setTextSelection(prevLine ?? 0);\n        this.editor?.insertTable(rows, cols);\n    }\n\n    protected tableSelectHovered(x: number, y: number): boolean {\n        return x < this.tableSize.rows && y < this.tableSize.cols;\n    }\n\n    protected updateCurrentSize(rows: number, cols: number, event: MouseEvent): void {\n        if (tuiGetViewportWidth(this.win) - event.clientX > MIN_DISTANCE_PX) {\n            this.tableSize = {rows, cols};\n            this.cd.detectChanges();\n        }\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiLinkTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__link-button\"',\n        '(click)': 'onLink()',\n    },\n})\nexport class TuiLinkButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('link') ?? false;\n    }\n\n    protected override getDisableState(): boolean {\n        return (\n            (this.editor?.isActive('link') ?? false) ||\n            (this.editor?.isActive('jumpAnchor') ?? false) ||\n            (this.editor?.isActive('image', {'data-editing-href': true}) ?? false)\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.link;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.link ?? '';\n    }\n\n    protected onLink(url?: string): void {\n        this.editor?.takeSelectionSnapshot();\n        this.editor?.toggleLink(url ?? '');\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiOrderedListTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '(click)': 'editor?.toggleOrderedList()',\n        '[attr.automation-id]': '\"toolbar__ordered-list-button\"',\n    },\n})\nexport class TuiOrderedListButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('orderedList') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.listOrdered;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.orderedList ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiOutdentTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '(click)': 'editor?.liftListItem()',\n        '[attr.automation-id]': '\"toolbar_outdent-button\"',\n    },\n})\nexport class TuiOutdentButtonTool extends TuiToolbarTool {\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.outdent;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.outdent ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiTaskListTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '(click)': 'editor?.toggleTaskList()',\n        '[attr.automation-id]': '\"toolbar__task-list-button\"',\n    },\n})\nexport class TuiTaskListButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('taskList') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.taskList;\n    }\n\n    protected getHint(): string {\n        return '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiUnorderedListTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '(click)': 'editor?.toggleUnorderedList()',\n        '[attr.automation-id]': '\"toolbar__un-ordered-list-button\"',\n    },\n})\nexport class TuiUnorderedListButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('bulletList') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.listUnOrdered;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.unorderedList ?? '';\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\nimport {TuiIndentButtonTool} from './indent';\nimport {TuiOrderedListButtonTool} from './ordered-list';\nimport {TuiOutdentButtonTool} from './outdent';\nimport {TuiTaskListButtonTool} from './task-list';\nimport {TuiUnorderedListButtonTool} from './unordered-list';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiListTool]',\n    imports: [\n        TuiIndentButtonTool,\n        TuiOrderedListButtonTool,\n        TuiOutdentButtonTool,\n        TuiTaskListButtonTool,\n        TuiTextfield,\n        TuiUnorderedListButtonTool,\n    ],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <div tuiToolbarDropdownContent>\n                <button\n                    tuiUnorderedListTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiOrderedListTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiTaskListTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiIndentTool\n                    [editor]=\"editor\"\n                ></button>\n                <button\n                    tuiOutdentTool\n                    [editor]=\"editor\"\n                ></button>\n            </div>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': '\"toolbar__ordering-list-button\"'},\n})\nexport class TuiListButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return (\n            this.editor?.isActive('bulletList') ||\n            this.editor?.isActive('orderedList') ||\n            this.editor?.isActive('taskList') ||\n            false\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.listPreview;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.list ?? '');\n    }\n}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    Input,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {TuiPaletteModule} from '@taiga-ui/legacy';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiPaintTool]',\n    imports: [AsyncPipe, NgIf, TuiPaletteModule, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-palette\n                tuiPalette\n                [colors]=\"colors\"\n                (selectedColor)=\"setCellColor($event)\"\n            />\n        </ng-container>\n\n        <div\n            *ngIf=\"!isBlankColor()\"\n            tuiPlate\n            [style.background]=\"editor?.getCellColor() ?? editor?.getGroupColor()\"\n        >\n            <ng-container *ngIf=\"editor?.valueChange$ | async\" />\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {tuiPlateHost: ''},\n})\nexport class TuiPaintButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @Input()\n    public colors: ReadonlyMap<string, string> =\n        this.options.backgroundColors ?? this.options.colors;\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return !this.isBlankColor();\n    }\n\n    protected override getDisableState(): boolean {\n        return !(\n            this.editor?.isActive('table') ??\n            this.editor?.isActive('group') ??\n            false\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.paint;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open()\n            ? ''\n            : (this.editor?.isActive('group') && (texts?.hiliteGroup ?? '')) ||\n                  (this.editor?.isActive('table') && (texts?.cellColor ?? '')) ||\n                  '';\n    }\n\n    protected setCellColor(color: string): void {\n        if (this.editor?.isActive('group')) {\n            this.editor.setGroupHilite(color);\n        } else if (this.editor?.isActive('table')) {\n            this.editor.setCellColor(color);\n        }\n    }\n\n    protected isBlankColor(): boolean {\n        return this.getColor() === this.options.blankColor || this.getColor() === '';\n    }\n\n    protected getColor(): string {\n        return this.editor?.getCellColor() ?? this.editor?.getGroupColor() ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiBlockquoteTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__quote-button\"',\n        '(click)': 'editor?.toggleBlockquote()',\n    },\n})\nexport class TuiBlockquoteButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('blockquote') ?? false;\n    }\n\n    protected override getDisableState(): boolean {\n        return this.editor?.isActive('blockquote') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.quote;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.quote ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiRedoTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__redo-button\"',\n        '(click)': 'editor?.redo()',\n    },\n})\nexport class TuiRedoButtonTool extends TuiToolbarTool {\n    protected override getDisableState(): boolean {\n        return this.editor?.redoDisabled() ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.redo;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.redo ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiRemoveGroupTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__group-remove-button\"',\n        '(click)': 'editor?.removeGroup()',\n    },\n})\nexport class TuiRemoveGroupButtonTool extends TuiToolbarTool {\n    protected override getDisableState(): boolean {\n        return !(this.editor?.isActive('group') ?? false);\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.groupRemove;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.removeGroup ?? '';\n    }\n}\n","import {AsyncPipe, LowerCasePipe, NgClass, NgForOf, NgStyle} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    inject,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {TuiItem, tuiPx} from '@taiga-ui/cdk';\nimport {\n    TuiDataList,\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiOption,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {\n    EDITOR_BLANK_COLOR,\n    TUI_EDITOR_FONT_OPTIONS,\n    type TuiEditorFontOption,\n    type TuiEditorOptions,\n} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map} from 'rxjs';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiFontSizeTool]',\n    imports: [\n        AsyncPipe,\n        LowerCasePipe,\n        NgClass,\n        NgForOf,\n        NgStyle,\n        TuiDataList,\n        TuiItem,\n        TuiOption,\n        TuiTextfield,\n    ],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-data-list>\n                <button\n                    *ngFor=\"let item of fontsOptions$ | async\"\n                    tuiItem\n                    tuiOption\n                    type=\"button\"\n                    [attr.automation-id]=\"'tui_font__' + (item.name || '' | lowercase)\"\n                    [ngClass]=\"item?.ngClass || {}\"\n                    [ngStyle]=\"item?.ngStyle || {}\"\n                    [style.font-family]=\"item.family\"\n                    [style.font-size.px]=\"item.px\"\n                    [style.font-weight]=\"item.weight\"\n                    (click)=\"setFontOption(item)\"\n                >\n                    {{ item.name }}\n                </button>\n            </tui-data-list>\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': '\"toolbar__font-size-button\"'},\n})\nexport class TuiFontSizeButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    protected readonly fontsOptions$ = inject(TUI_EDITOR_FONT_OPTIONS).pipe(\n        map((texts) => this.options.fontOptions(texts)),\n    );\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.fontSize;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.font ?? '');\n    }\n\n    protected setFontOption({headingLevel, px}: Partial<TuiEditorFontOption>): void {\n        const color = this.editor?.getFontColor() ?? EDITOR_BLANK_COLOR;\n\n        this.clearPreviousTextStyles();\n\n        if (headingLevel) {\n            this.editor?.setHeading(headingLevel);\n        } else {\n            this.editor?.setParagraph({fontSize: tuiPx(px ?? 0)});\n        }\n\n        if (color !== EDITOR_BLANK_COLOR) {\n            this.editor?.setFontColor(color);\n        }\n    }\n\n    private clearPreviousTextStyles(): void {\n        this.editor?.removeEmptyTextStyle();\n        this.editor?.toggleMark('textStyle');\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiSubscriptTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleSubscript()'},\n})\nexport class TuiSubscriptButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('subscript') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.sub;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.subscript ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiSuperscriptTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'editor?.toggleSuperscript()'},\n})\nexport class TuiSuperscriptButtonTool extends TuiToolbarTool {\n    protected override isActive(): boolean {\n        return this.editor?.isActive('superscript') ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.sup;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.superscript ?? '';\n    }\n}\n","import {ChangeDetectionStrategy, Component, signal} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiTableMergeCellTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'canMergeCells?.() ? editor?.mergeCells() : editor?.splitCell()'},\n})\nexport class TuiTableMergeCellButtonTool extends TuiToolbarTool {\n    protected readonly canMergeCells? = signal<boolean>(false);\n\n    protected override updateSignals(): void {\n        this.canMergeCells?.set(this.editor?.canMergeCells() ?? false);\n\n        super.updateSignals();\n    }\n\n    protected override getDisableState(): boolean {\n        return (\n            !(this.editor?.canMergeCells() ?? false) &&\n            !(this.editor?.canSplitCells() ?? false)\n        );\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return this.canMergeCells?.() ? icons.tableCellMerge : icons.tableCellSplit;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.canMergeCells?.()\n            ? (texts?.mergeCells ?? '')\n            : (texts?.splitCells ?? '');\n    }\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Output} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiTexTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {'(click)': 'texClicked?.emit()'},\n})\nexport class TuiTexButtonTool extends TuiToolbarTool {\n    @Output()\n    public readonly texClicked = new EventEmitter<void>();\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.tex;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.tex ?? '';\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    Input,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {\n    tuiDropdown,\n    TuiDropdownDirective,\n    tuiDropdownOpen,\n    TuiTextfield,\n    TuiTextfieldDropdownDirective,\n    TuiWithDropdownOpen,\n} from '@taiga-ui/core';\nimport {EDITOR_BLANK_COLOR, type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\nimport {TuiPaletteModule} from '@taiga-ui/legacy';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiTextColorTool]',\n    imports: [TuiPaletteModule, TuiTextfield],\n    template: `\n        {{ tuiHint() }}\n\n        <ng-container *tuiTextfieldDropdown>\n            <tui-palette\n                tuiPalette\n                [colors]=\"colors\"\n                (selectedColor)=\"editor?.setFontColor($event)\"\n            />\n        </ng-container>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool, TuiDropdownDirective, TuiWithDropdownOpen],\n    host: {'[attr.automation-id]': '\"toolbar__color-button\"'},\n})\nexport class TuiTextColorButtonTool extends TuiToolbarTool {\n    protected readonly dropdown = tuiDropdown(null);\n    protected readonly open = tuiDropdownOpen();\n\n    @Input()\n    public colors: ReadonlyMap<string, string> =\n        this.options.textColors ?? this.options.colors;\n\n    @ViewChild(forwardRef(() => TuiTextfieldDropdownDirective), {read: TemplateRef})\n    protected set template(template: PolymorpheusContent) {\n        this.dropdown.set(template);\n    }\n\n    protected override isActive(): boolean {\n        return this.editor?.getFontColor() !== EDITOR_BLANK_COLOR;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.textColor;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return this.open() ? '' : (texts?.foreColor ?? '');\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {type TuiEditorOptions} from '@taiga-ui/editor/common';\nimport {type TuiLanguageEditor} from '@taiga-ui/i18n';\n\nimport {TuiToolbarTool} from '../tool';\nimport {TuiToolbarButtonTool} from '../tool-button';\n\n@Component({\n    standalone: true,\n    selector: 'button[tuiUndoTool]',\n    template: '{{ tuiHint() }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiToolbarButtonTool],\n    host: {\n        '[attr.automation-id]': '\"toolbar__undo-button\"',\n        '(click)': 'editor?.undo()',\n    },\n})\nexport class TuiUndoButtonTool extends TuiToolbarTool {\n    protected override getDisableState(): boolean {\n        return this.editor?.undoDisabled() ?? false;\n    }\n\n    protected getIcon(icons: TuiEditorOptions['icons']): string {\n        return icons.undo;\n    }\n\n    protected getHint(texts?: TuiLanguageEditor['toolbarTools']): string {\n        return texts?.undo ?? '';\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.TuiToolbarButtonTool"],"mappings":"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"}