{"version":3,"file":"taiga-ui-editor-components-toolbar.mjs","sources":["../../../projects/editor/components/toolbar/toolbar.component.ts","../../../projects/editor/components/toolbar/toolbar.template.html","../../../projects/editor/components/toolbar/taiga-ui-editor-components-toolbar.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {\n    type AbstractTuiEditor,\n    TUI_EDITOR_DEFAULT_TOOLS,\n    TUI_EDITOR_OPTIONS,\n    type TuiEditorAttachedFile,\n    TuiEditorTool,\n    type TuiEditorToolType,\n} from '@taiga-ui/editor/common';\nimport {TuiTiptapEditorService} from '@taiga-ui/editor/directives/tiptap-editor';\nimport {\n    TuiAddRowTableButtonTool,\n    TuiAlignButtonTool,\n    TuiAnchorButtonTool,\n    TuiAttachButtonTool,\n    TuiBlockquoteButtonTool,\n    TuiClearButtonTool,\n    TuiCodeButtonTool,\n    TuiDetailsAddButtonTool,\n    TuiDetailsRemoveButtonTool,\n    TuiFontSizeButtonTool,\n    TuiFontStyleButtonTool,\n    TuiHighlightColorButtonTool,\n    TuiHrButtonTool,\n    TuiImageButtonTool,\n    TuiInsertGroupButtonTool,\n    TuiInsertTableButtonTool,\n    TuiLinkButtonTool,\n    TuiListButtonTool,\n    TuiPaintButtonTool,\n    TuiRedoButtonTool,\n    TuiRemoveGroupButtonTool,\n    TuiSubscriptButtonTool,\n    TuiSuperscriptButtonTool,\n    TuiTableMergeCellButtonTool,\n    TuiTexButtonTool,\n    TuiTextColorButtonTool,\n    TuiUndoButtonTool,\n} from '@taiga-ui/editor/tools';\n\n@Component({\n    standalone: true,\n    selector: 'tui-toolbar',\n    imports: [\n        NgIf,\n        TuiAddRowTableButtonTool,\n        TuiAlignButtonTool,\n        TuiAnchorButtonTool,\n        TuiAttachButtonTool,\n        TuiBlockquoteButtonTool,\n        TuiClearButtonTool,\n        TuiCodeButtonTool,\n        TuiDetailsAddButtonTool,\n        TuiDetailsRemoveButtonTool,\n        TuiFontSizeButtonTool,\n        TuiFontStyleButtonTool,\n        TuiHighlightColorButtonTool,\n        TuiHrButtonTool,\n        TuiImageButtonTool,\n        TuiInsertGroupButtonTool,\n        TuiInsertTableButtonTool,\n        TuiLinkButtonTool,\n        TuiListButtonTool,\n        TuiPaintButtonTool,\n        TuiRedoButtonTool,\n        TuiRemoveGroupButtonTool,\n        TuiSubscriptButtonTool,\n        TuiSuperscriptButtonTool,\n        TuiTableMergeCellButtonTool,\n        TuiTexButtonTool,\n        TuiTextColorButtonTool,\n        TuiUndoButtonTool,\n    ],\n    templateUrl: './toolbar.template.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {tuiToolbar: ''},\n})\nexport class TuiToolbar {\n    protected readonly options = inject(TUI_EDITOR_OPTIONS);\n    protected readonly tool: typeof TuiEditorTool = TuiEditorTool;\n    protected toolsSet = new Set<TuiEditorToolType>(TUI_EDITOR_DEFAULT_TOOLS);\n\n    @Input('editor')\n    public editor: AbstractTuiEditor | null = inject(TuiTiptapEditorService, {\n        optional: true,\n    });\n\n    /**\n     * @deprecated use provideTuiEditorOptions({ textColors, backgroundColors })\n     */\n    @Input()\n    public colors: ReadonlyMap<string, string> = this.options.colors;\n\n    /**\n     * @deprecated\n     */\n    @Input()\n    public disabled = false;\n\n    @Output()\n    public readonly linkAdded = new EventEmitter<string>();\n\n    @Output()\n    public readonly texClicked = new EventEmitter<void>();\n\n    @Output()\n    public readonly fileAttached = new EventEmitter<TuiEditorAttachedFile[]>();\n\n    public readonly el: HTMLElement | null =\n        inject(ElementRef, {optional: true})?.nativeElement ?? null;\n\n    @Input()\n    public set tools(value: Set<TuiEditorToolType> | readonly TuiEditorToolType[]) {\n        this.toolsSet = new Set(value);\n    }\n\n    protected get formatEnabled(): boolean {\n        return (\n            this.enabled(TuiEditorTool.Bold) ||\n            this.enabled(TuiEditorTool.Italic) ||\n            this.enabled(TuiEditorTool.Underline) ||\n            this.enabled(TuiEditorTool.Strikethrough)\n        );\n    }\n\n    protected get firstBigBlockEnabled(): boolean {\n        return (\n            this.formatEnabled ||\n            this.enabled(TuiEditorTool.Align) ||\n            this.enabled(TuiEditorTool.List) ||\n            this.enabled(TuiEditorTool.Quote) ||\n            this.enabled(TuiEditorTool.Link) ||\n            this.enabled(TuiEditorTool.Anchor) ||\n            this.enabled(TuiEditorTool.Attach)\n        );\n    }\n\n    protected get secondBigBlockEnabled(): boolean {\n        return (\n            this.enabled(TuiEditorTool.Code) ||\n            this.enabled(TuiEditorTool.Tex) ||\n            this.enabled(TuiEditorTool.Img) ||\n            this.enabled(TuiEditorTool.HR)\n        );\n    }\n\n    protected enabled(tool: TuiEditorToolType): boolean {\n        return this.toolsSet.has(tool);\n    }\n}\n","<section\n    *ngIf=\"enabled(tool.Undo)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiUndoTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        tuiRedoTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Size)\"\n    tuiToolbarBlock\n>\n    <button tuiFontSizeTool></button>\n</section>\n<section\n    *ngIf=\"firstBigBlockEnabled\"\n    tuiToolbarBlock\n>\n    <button\n        *ngIf=\"formatEnabled\"\n        tuiFontStyleTool\n        [editor]=\"editor\"\n        [enabledTools]=\"toolsSet\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Align)\"\n        tuiAlignTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.List)\"\n        tuiListTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Quote)\"\n        tuiBlockquoteTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Link)\"\n        tuiLinkTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Anchor)\"\n        tuiAnchorTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Attach)\"\n        tuiAttachTool\n        [editor]=\"editor\"\n        (fileAttached)=\"fileAttached.emit($event)\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Sub) || enabled(tool.Sup)\"\n    tuiToolbarBlock\n>\n    <button\n        *ngIf=\"enabled(tool.Sub)\"\n        tuiSubscriptTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Sup)\"\n        tuiSuperscriptTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Color) || enabled(tool.Hilite)\"\n    tuiToolbarBlock\n>\n    <button\n        *ngIf=\"enabled(tool.Color)\"\n        tuiTextColorTool\n        [colors]=\"options.textColors ?? options.colors\"\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Hilite)\"\n        tuiHighlightColorTool\n        [colors]=\"options.backgroundColors ?? options.colors\"\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"secondBigBlockEnabled\"\n    tuiToolbarBlock\n>\n    <button\n        *ngIf=\"enabled(tool.Code)\"\n        tuiCodeTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Tex)\"\n        tuiTexTool\n        [editor]=\"editor\"\n        (texClicked)=\"texClicked.emit($event)\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.Img)\"\n        tuiImageTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        *ngIf=\"enabled(tool.HR)\"\n        tuiHrTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Clear)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiClearTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Details)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiDetailsAddTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        tuiDetailsRemoveTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Group)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiInsertGroupTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        tuiRemoveGroupTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.Table)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiInsertTableTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        tuiAddRowTableTool\n        [editor]=\"editor\"\n    ></button>\n    <button\n        tuiTableMergeCellTool\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section\n    *ngIf=\"enabled(tool.CellColor)\"\n    tuiToolbarBlock\n>\n    <button\n        tuiPaintTool\n        [colors]=\"options.backgroundColors ?? options.colors\"\n        [editor]=\"editor\"\n    ></button>\n</section>\n<section tuiToolbarBlock>\n    <ng-content />\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}