@acorex/components 22.4.1 → 22.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-text-editor.mjs","sources":["../../../../packages/components/text-editor/src/lib/text-editor.types.ts","../../../../packages/components/text-editor/src/lib/text-editor.commands.ts","../../../../packages/components/text-editor/src/lib/text-editor.service.ts","../../../../packages/components/text-editor/src/lib/text-editor.slot.ts","../../../../packages/components/text-editor/src/lib/command/text-editor-command.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.extensions.ts","../../../../packages/components/text-editor/src/lib/content/text-editor-content.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.component.html","../../../../packages/components/text-editor/src/lib/toolbar/text-editor-toolbar.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-alignment.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-blocks.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-color-swatches.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-colors.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-font-style.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-heading.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-history.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-link.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-list.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-table.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-script.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-zoom.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.module.ts","../../../../packages/components/text-editor/src/acorex-components-text-editor.ts"],"sourcesContent":["export type AXTextEditorOutputFormat = 'json' | 'html';\n\nexport type AXTextEditorValue = string | Record<string, unknown> | null;\n\nexport interface AXTextEditorHostBridge {\n placeHolder(): string;\n outputFormat(): AXTextEditorOutputFormat;\n value(): AXTextEditorValue;\n disabled(): boolean;\n readonly(): boolean;\n notifyFocus(event?: FocusEvent): void;\n notifyBlur(event?: FocusEvent): void;\n notifyValue(value: AXTextEditorValue): void;\n}\n\nexport type AXTextEditorCommandAttrs = Record<string, unknown>;\n\nexport const AX_TEXT_EDITOR_ZOOM_PRESETS = [40, 50, 75, 90, 100, 125, 150, 175, 200] as const;\nexport const AX_TEXT_EDITOR_ZOOM_MIN = 40;\nexport const AX_TEXT_EDITOR_ZOOM_MAX = 200;\n\nexport const AX_TEXT_EDITOR_DEFAULT_TEXT_COLORS = [\n '#f59e0b',\n '#eab308',\n '#22c55e',\n '#06b6d4',\n '#3b82f6',\n '#a855f7',\n '#ec4899',\n '#ef4444',\n];\n\nexport const AX_TEXT_EDITOR_DEFAULT_BACKGROUND_COLORS = [\n '#ffffff',\n '#f5e6c8',\n '#fde68a',\n '#f9a8d4',\n '#bbf7d0',\n '#ddd6fe',\n '#fbcfe8',\n '#fdba74',\n];\n\nexport interface AXTextEditorRecentColor {\n color: string;\n kind: 'text' | 'background';\n}\n\nexport type AXTextEditorCommandType =\n | 'undo'\n | 'redo'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strike'\n | 'heading'\n | 'paragraph'\n | 'align'\n | 'direction'\n | 'color'\n | 'highlight'\n | 'bulletList'\n | 'orderedList'\n | 'superscript'\n | 'subscript'\n | 'link'\n | 'unlink'\n | 'blockquote'\n | 'code'\n | 'codeBlock'\n | 'horizontalRule'\n | 'insertTable'\n | 'addColumnBefore'\n | 'addColumnAfter'\n | 'deleteColumn'\n | 'addRowBefore'\n | 'addRowAfter'\n | 'deleteRow'\n | 'toggleHeaderRow'\n | 'deleteTable';\n","import type { Editor } from '@tiptap/core';\nimport type { AXTextEditorCommandAttrs, AXTextEditorCommandType } from './text-editor.types';\n\nfunction escapeHtml(value: string): string {\n return value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('\"', '&quot;');\n}\n\nfunction normalizeHref(value: string): string {\n const href = value.trim();\n if (!href) return '';\n if (/^(https?:|mailto:|tel:|#|\\/)/i.test(href)) return href;\n return `https://${href}`;\n}\n\nfunction headingLevel(attrs?: AXTextEditorCommandAttrs): 1 | 2 | 3 | undefined {\n const level = Number(attrs?.['level']);\n return level === 1 || level === 2 || level === 3 ? level : undefined;\n}\n\nexport function isTextEditorCommandActive(\n editor: Editor,\n command: AXTextEditorCommandType,\n attrs?: AXTextEditorCommandAttrs,\n): boolean {\n switch (command) {\n case 'heading': {\n const level = headingLevel(attrs);\n return level ? editor.isActive('heading', { level }) : editor.isActive('heading');\n }\n case 'paragraph':\n return editor.isActive('paragraph');\n case 'align':\n return editor.isActive({ textAlign: attrs?.['align'] });\n case 'direction':\n return editor.isActive({ dir: attrs?.['direction'] });\n case 'link':\n return editor.isActive('link');\n case 'insertTable':\n return editor.isActive('table');\n case 'unlink':\n case 'color':\n case 'highlight':\n case 'undo':\n case 'redo':\n case 'horizontalRule':\n return false;\n default:\n return editor.isActive(command);\n }\n}\n\nexport function canRunTextEditorCommand(\n editor: Editor,\n command: AXTextEditorCommandType,\n attrs?: AXTextEditorCommandAttrs,\n): boolean {\n switch (command) {\n case 'undo':\n return editor.can().undo();\n case 'redo':\n return editor.can().redo();\n case 'heading': {\n const level = headingLevel(attrs);\n return level ? editor.can().setHeading({ level }) : editor.can().setParagraph();\n }\n case 'paragraph':\n return editor.can().setParagraph();\n case 'align':\n return editor.can().setTextAlign(String(attrs?.['align'] ?? 'left'));\n case 'direction':\n return true;\n case 'color':\n return attrs?.['color'] ? editor.can().setColor(String(attrs['color'])) : editor.can().unsetColor();\n case 'highlight':\n return attrs?.['color']\n ? editor.can().setHighlight({ color: String(attrs['color']) })\n : editor.can().unsetHighlight();\n case 'link':\n return editor.isEditable;\n case 'unlink':\n return editor.isEditable && editor.can().unsetLink();\n case 'insertTable':\n return editor.can().insertTable({\n rows: Number(attrs?.['rows'] ?? 3),\n cols: Number(attrs?.['cols'] ?? 3),\n withHeaderRow: Boolean(attrs?.['withHeaderRow'] ?? false),\n });\n case 'addColumnBefore':\n return editor.can().addColumnBefore();\n case 'addColumnAfter':\n return editor.can().addColumnAfter();\n case 'deleteColumn':\n return editor.can().deleteColumn();\n case 'addRowBefore':\n return editor.can().addRowBefore();\n case 'addRowAfter':\n return editor.can().addRowAfter();\n case 'deleteRow':\n return editor.can().deleteRow();\n case 'toggleHeaderRow':\n return editor.can().toggleHeaderRow();\n case 'deleteTable':\n return editor.can().deleteTable();\n case 'blockquote':\n return editor.can().toggleBlockquote();\n case 'code':\n return editor.can().toggleCode();\n case 'codeBlock':\n return editor.can().toggleCodeBlock();\n case 'horizontalRule':\n return editor.can().setHorizontalRule();\n case 'bulletList':\n return editor.isEditable && Boolean(editor.schema.nodes['bulletList']);\n case 'orderedList':\n return editor.isEditable && Boolean(editor.schema.nodes['orderedList']);\n case 'superscript':\n return editor.can().toggleSuperscript();\n case 'subscript':\n return editor.can().toggleSubscript();\n case 'bold':\n return editor.can().toggleBold();\n case 'italic':\n return editor.can().toggleItalic();\n case 'underline':\n return editor.can().toggleUnderline();\n case 'strike':\n return editor.can().toggleStrike();\n default:\n return false;\n }\n}\n\nexport function runTextEditorCommand(\n editor: Editor,\n command: AXTextEditorCommandType,\n attrs?: AXTextEditorCommandAttrs,\n): boolean {\n const chain = editor.chain().focus();\n switch (command) {\n case 'undo':\n return chain.undo().run();\n case 'redo':\n return chain.redo().run();\n case 'heading': {\n const level = headingLevel(attrs);\n return level ? chain.setHeading({ level }).run() : chain.setParagraph().run();\n }\n case 'paragraph':\n return chain.setParagraph().run();\n case 'align':\n return chain.setTextAlign(String(attrs?.['align'] ?? 'left')).run();\n case 'direction': {\n const direction = attrs?.['direction'] === 'rtl' ? 'rtl' : 'ltr';\n return chain\n .updateAttributes('paragraph', { dir: direction })\n .updateAttributes('heading', { dir: direction })\n .run();\n }\n case 'color':\n return attrs?.['color'] ? chain.setColor(String(attrs['color'])).run() : chain.unsetColor().run();\n case 'highlight':\n return attrs?.['color']\n ? chain.setHighlight({ color: String(attrs['color']) }).run()\n : chain.unsetHighlight().run();\n case 'link': {\n const href = normalizeHref(String(attrs?.['href'] ?? ''));\n if (!href) {\n return chain.extendMarkRange('link').unsetLink().run();\n }\n if (editor.state.selection.empty) {\n const safeHref = escapeHtml(href);\n return chain.insertContent(`<a href=\"${safeHref}\">${safeHref}</a>`).run();\n }\n return chain.extendMarkRange('link').setLink({ href }).run();\n }\n case 'unlink':\n return chain.extendMarkRange('link').unsetLink().run();\n case 'insertTable':\n return chain\n .insertTable({\n rows: Number(attrs?.['rows'] ?? 3),\n cols: Number(attrs?.['cols'] ?? 3),\n withHeaderRow: Boolean(attrs?.['withHeaderRow'] ?? false),\n })\n .run();\n case 'addColumnBefore':\n return chain.addColumnBefore().run();\n case 'addColumnAfter':\n return chain.addColumnAfter().run();\n case 'deleteColumn':\n return chain.deleteColumn().run();\n case 'addRowBefore':\n return chain.addRowBefore().run();\n case 'addRowAfter':\n return chain.addRowAfter().run();\n case 'deleteRow':\n return chain.deleteRow().run();\n case 'toggleHeaderRow':\n return chain.toggleHeaderRow().run();\n case 'deleteTable':\n return chain.deleteTable().run();\n case 'blockquote':\n return chain.toggleBlockquote().run();\n case 'code':\n return chain.toggleCode().run();\n case 'codeBlock':\n return chain.toggleCodeBlock().run();\n case 'horizontalRule':\n return chain.setHorizontalRule().run();\n case 'bulletList':\n return chain.toggleBulletList().run();\n case 'orderedList':\n return chain.toggleOrderedList().run();\n case 'superscript':\n return chain.toggleSuperscript().run();\n case 'subscript':\n return chain.toggleSubscript().run();\n case 'bold':\n return chain.toggleBold().run();\n case 'italic':\n return chain.toggleItalic().run();\n case 'underline':\n return chain.toggleUnderline().run();\n case 'strike':\n return chain.toggleStrike().run();\n default:\n return false;\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport type { ChainedCommands, Content, Editor, JSONContent } from '@tiptap/core';\nimport {\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n type AXTextEditorCommandAttrs,\n type AXTextEditorCommandType,\n type AXTextEditorHostBridge,\n} from './text-editor.types';\nimport { canRunTextEditorCommand, isTextEditorCommandActive, runTextEditorCommand } from './text-editor.commands';\n\n/**\n * Per-editor Tiptap facade. Provided on `ax-text-editor`, so projected tools and\n * custom toolbar children can `inject(AXTextEditorService)` and use either the\n * named-command helpers or the full Tiptap instance.\n */\n@Injectable()\nexport class AXTextEditorService {\n private readonly _editor = signal<Editor | null>(null);\n private host: AXTextEditorHostBridge | null = null;\n private preservedRange: { from: number; to: number } | null = null;\n readonly editor = this._editor.asReadonly();\n readonly version = signal(0);\n readonly disabled = signal(false);\n readonly readonly = signal(false);\n readonly editable = computed(() => !this.disabled() && !this.readonly());\n readonly textColor = signal<string | null>(null);\n readonly highlightColor = signal<string | null>(null);\n readonly zoom = signal(100);\n readonly zoomFactor = computed(() => this.zoom() / 100);\n\n bindHost(host: AXTextEditorHostBridge): void {\n this.host = host;\n this.syncHostState();\n }\n\n syncHostState(): void {\n this.disabled.set(Boolean(this.host?.disabled()));\n this.readonly.set(Boolean(this.host?.readonly()));\n this.setEditable(this.editable());\n }\n\n getHost(): AXTextEditorHostBridge | null {\n return this.host;\n }\n\n setEditor(editor: Editor | null): void {\n this._editor.set(editor);\n this.refresh();\n }\n\n refresh(): void {\n this.version.update((value) => value + 1);\n const editor = this._editor();\n if (!editor) {\n this.textColor.set(null);\n this.highlightColor.set(null);\n return;\n }\n this.textColor.set((editor.getAttributes('textStyle')?.['color'] as string) ?? null);\n this.highlightColor.set((editor.getAttributes('highlight')?.['color'] as string) ?? null);\n }\n\n chain(): ChainedCommands | null {\n return this._editor()?.chain() ?? null;\n }\n\n get commands(): Editor['commands'] | undefined {\n return this._editor()?.commands;\n }\n\n get canCommands(): ReturnType<Editor['can']> | undefined {\n return this._editor()?.can();\n }\n\n isActive(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n this.version();\n const editor = this._editor();\n return editor ? isTextEditorCommandActive(editor, command, attrs) : false;\n }\n\n can(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n this.version();\n if (!this.editable()) return false;\n const editor = this._editor();\n return editor ? canRunTextEditorCommand(editor, command, attrs) : false;\n }\n\n preserveSelection(): void {\n const editor = this._editor();\n if (!editor) return;\n const { from, to } = editor.state.selection;\n this.preservedRange = { from, to };\n }\n\n clearPreservedSelection(): void {\n this.preservedRange = null;\n }\n\n run(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n const editor = this._editor();\n if (!editor || !this.editable()) return false;\n this.restorePreservedSelection(editor);\n return runTextEditorCommand(editor, command, attrs);\n }\n\n private restorePreservedSelection(editor: Editor): void {\n const range = this.preservedRange;\n if (!range) return;\n const max = editor.state.doc.content.size;\n const from = Math.max(0, Math.min(range.from, max));\n const to = Math.max(0, Math.min(range.to, max));\n if (editor.state.selection.from === from && editor.state.selection.to === to) return;\n editor.commands.setTextSelection({ from, to });\n }\n\n getJSON(): JSONContent | null {\n return this._editor()?.getJSON() ?? null;\n }\n\n getHTML(): string {\n return this._editor()?.getHTML() ?? '';\n }\n\n getText(options?: { blockSeparator?: string }): string {\n return this._editor()?.getText(options) ?? '';\n }\n\n setContent(content: Content, emitUpdate = false): boolean {\n return this._editor()?.commands.setContent(content, { emitUpdate }) ?? false;\n }\n\n insertContent(value: Content): boolean {\n return this._editor()?.chain().focus().insertContent(value).run() ?? false;\n }\n\n clearContent(): boolean {\n return this._editor()?.commands.clearContent() ?? false;\n }\n\n focus(): boolean {\n return this._editor()?.commands.focus() ?? false;\n }\n\n blur(): boolean {\n return this._editor()?.commands.blur() ?? false;\n }\n\n isEmpty(): boolean {\n return this._editor()?.isEmpty ?? true;\n }\n\n isFocused(): boolean {\n return this._editor()?.isFocused ?? false;\n }\n\n isEditable(): boolean {\n return this._editor()?.isEditable ?? false;\n }\n\n setEditable(editable: boolean): void {\n const editor = this._editor();\n if (!editor || editor.isEditable === editable) return;\n editor.setEditable(editable, false);\n this.refresh();\n }\n\n setZoom(value: number): void {\n if (!Number.isFinite(value)) return;\n this.zoom.set(Math.min(AX_TEXT_EDITOR_ZOOM_MAX, Math.max(AX_TEXT_EDITOR_ZOOM_MIN, Math.round(value))));\n }\n\n zoomIn(step = 10): void {\n this.setZoom(this.zoom() + step);\n }\n\n zoomOut(step = 10): void {\n this.setZoom(this.zoom() - step);\n }\n\n fitToPage(): void {\n const editor = this._editor();\n if (!editor) {\n this.setZoom(100);\n return;\n }\n const prose = editor.view.dom as HTMLElement;\n const viewport = (prose.closest('ax-text-editor-content') as HTMLElement | null) ?? prose.parentElement;\n if (!viewport) {\n this.setZoom(100);\n return;\n }\n const factor = Math.max(this.zoom() / 100, 0.01);\n const unscaledWidth = prose.scrollWidth / factor;\n const available = viewport.clientWidth;\n if (unscaledWidth <= 0 || available <= 0 || unscaledWidth <= available) {\n this.setZoom(100);\n return;\n }\n this.setZoom(Math.floor((available / unscaledWidth) * 100));\n }\n}\n","/**\n * Marker base for projected editor tools and slots.\n */\nexport abstract class AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input } from '@angular/core';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\nimport type { AXTextEditorCommandAttrs, AXTextEditorCommandType } from '../text-editor.types';\n\nconst TOGGLE_COMMANDS = new Set<AXTextEditorCommandType>([\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'bulletList',\n 'orderedList',\n 'superscript',\n 'subscript',\n 'blockquote',\n 'code',\n 'codeBlock',\n 'direction',\n]);\n\n@Component({\n selector: 'ax-text-editor-command',\n template: `\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [text]=\"label()\"\n [toggleable]=\"toggleable()\"\n [selected]=\"active()\"\n [disabled]=\"!enabled()\"\n (onClick)=\"execute()\"\n >\n @if (icon()) {\n <ax-icon class=\"ax-icon {{ icon() }}\"></ax-icon>\n }\n </ax-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.title]': 'label()',\n },\n imports: [AXButtonComponent, AXDecoratorIconComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorCommandComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorCommandComponent },\n ],\n})\nexport class AXTextEditorCommandComponent extends AXTextEditorSlot {\n private readonly editorService = inject(AXTextEditorService);\n\n readonly command = input.required<AXTextEditorCommandType>();\n readonly attrs = input<AXTextEditorCommandAttrs>({});\n readonly icon = input('');\n readonly label = input('');\n\n protected readonly toggleable = computed(() => TOGGLE_COMMANDS.has(this.command()));\n protected readonly active = computed(() => this.editorService.isActive(this.command(), this.attrs()));\n protected readonly enabled = computed(() => this.editorService.can(this.command(), this.attrs()));\n\n protected execute(): void {\n this.editorService.run(this.command(), this.attrs());\n }\n}\n","import { Highlight } from '@tiptap/extension-highlight';\nimport { TableKit } from '@tiptap/extension-table/kit';\nimport { TextAlign } from '@tiptap/extension-text-align';\nimport { Color, TextStyle } from '@tiptap/extension-text-style';\nimport { Placeholder } from '@tiptap/extensions';\nimport { StarterKit } from '@tiptap/starter-kit';\nimport { Extension, Mark, mergeAttributes } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n superscript: {\n toggleSuperscript: () => ReturnType;\n };\n subscript: {\n toggleSubscript: () => ReturnType;\n };\n }\n}\n\nconst Superscript = Mark.create({\n name: 'superscript',\n excludes: 'subscript',\n parseHTML() {\n return [{ tag: 'sup' }];\n },\n renderHTML({ HTMLAttributes }) {\n return ['sup', mergeAttributes(HTMLAttributes), 0];\n },\n addCommands() {\n return {\n toggleSuperscript:\n () =>\n ({ commands }) =>\n commands.toggleMark(this.name),\n };\n },\n});\n\nconst Subscript = Mark.create({\n name: 'subscript',\n excludes: 'superscript',\n parseHTML() {\n return [{ tag: 'sub' }];\n },\n renderHTML({ HTMLAttributes }) {\n return ['sub', mergeAttributes(HTMLAttributes), 0];\n },\n addCommands() {\n return {\n toggleSubscript:\n () =>\n ({ commands }) =>\n commands.toggleMark(this.name),\n };\n },\n});\n\nconst keepSelectionKey = new PluginKey('axKeepSelection');\n\nconst KeepSelection = Extension.create({\n name: 'keepSelection',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: keepSelectionKey,\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply(tr, set) {\n const meta = tr.getMeta(keepSelectionKey) as { from: number; to: number } | 'clear' | undefined;\n if (meta === 'clear') return DecorationSet.empty;\n if (meta && meta.from !== meta.to) {\n return DecorationSet.create(tr.doc, [\n Decoration.inline(meta.from, meta.to, { class: 'ax-text-editor-kept-selection' }),\n ]);\n }\n return set.map(tr.mapping, tr.doc);\n },\n },\n props: {\n decorations(state) {\n return keepSelectionKey.getState(state);\n },\n handleDOMEvents: {\n blur(view) {\n const { from, to } = view.state.selection;\n if (from !== to) {\n view.dispatch(view.state.tr.setMeta(keepSelectionKey, { from, to }));\n }\n return false;\n },\n focus(view) {\n const decorations = keepSelectionKey.getState(view.state) as DecorationSet | undefined;\n if (decorations?.find().length) {\n view.dispatch(view.state.tr.setMeta(keepSelectionKey, 'clear'));\n }\n return false;\n },\n },\n },\n }),\n ];\n },\n});\n\nconst TextDirection = Extension.create({\n name: 'textDirection',\n addGlobalAttributes() {\n return [\n {\n types: ['paragraph', 'heading'],\n attributes: {\n dir: {\n default: null,\n parseHTML: (element) => element.getAttribute('dir'),\n renderHTML: (attributes) => (attributes['dir'] ? { dir: attributes['dir'] } : {}),\n },\n },\n },\n ];\n },\n});\n\nexport function createTextEditorExtensions(placeholder: string | (() => string) = ''): Extension[] {\n const placeholderFn = typeof placeholder === 'function' ? placeholder : () => placeholder;\n return [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3],\n HTMLAttributes: {\n class: 'ax-text-editor-heading',\n },\n },\n link: {\n openOnClick: false,\n HTMLAttributes: {\n class: 'ax-text-editor-link',\n },\n },\n code: {\n HTMLAttributes: {\n class: 'ax-text-editor-code',\n },\n },\n codeBlock: {\n HTMLAttributes: {\n class: 'ax-text-editor-code-block',\n },\n },\n bulletList: {\n HTMLAttributes: {\n class: 'ax-text-editor-bullet-list',\n },\n },\n orderedList: {\n HTMLAttributes: {\n class: 'ax-text-editor-ordered-list',\n },\n },\n listItem: {\n HTMLAttributes: {\n class: 'ax-text-editor-list-item',\n },\n },\n }),\n Superscript,\n Subscript,\n TextStyle,\n Color,\n Highlight.configure({ multicolor: true }),\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n }),\n TextDirection,\n KeepSelection,\n TableKit.configure({\n table: {\n resizable: true,\n lastColumnResizable: true,\n cellMinWidth: 64,\n HTMLAttributes: {\n class: 'ax-text-editor-table',\n },\n },\n }),\n Placeholder.configure({\n placeholder: placeholderFn,\n showOnlyCurrent: true,\n }),\n ] as Extension[];\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n PLATFORM_ID,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n} from '@angular/core';\nimport { Editor } from '@tiptap/core';\nimport { isEqual } from 'lodash-es';\nimport { createTextEditorExtensions } from '../text-editor.extensions';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\nimport type { AXTextEditorHostBridge, AXTextEditorValue } from '../text-editor.types';\n\n@Component({\n selector: 'ax-text-editor-content',\n template: `<div class=\"ax-text-editor-surface\" #surface></div>`,\n styleUrl: './text-editor-content.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorContentComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorContentComponent },\n ],\n})\nexport class AXTextEditorContentComponent extends AXTextEditorSlot implements OnDestroy {\n private readonly editorService = inject(AXTextEditorService);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly platformId = inject(PLATFORM_ID);\n private editor: Editor | null = null;\n\n constructor() {\n super();\n afterNextRender(() => this.createEditor());\n effect(() => {\n if (!this.editorService.editor()) return;\n this.editorService.setEditable(this.editorService.editable());\n });\n }\n\n private host(): AXTextEditorHostBridge | null {\n return this.editorService.getHost();\n }\n\n ngOnDestroy(): void {\n this.editor?.destroy();\n this.editor = null;\n this.editorService.setEditor(null);\n }\n\n private createEditor(): void {\n if (!isPlatformBrowser(this.platformId) || this.editor) return;\n const host = this.host();\n const element = this.elementRef.nativeElement.querySelector('.ax-text-editor-surface') as HTMLElement | null;\n if (!host || !element) return;\n\n this.editor = new Editor({\n element,\n extensions: createTextEditorExtensions(() => this.host()?.placeHolder() ?? ''),\n content: this.toContent(host.value()),\n editable: this.editorService.editable(),\n editorProps: {\n attributes: {\n class: 'ax-text-editor-prose',\n },\n handleDOMEvents: {\n mousedown: () => {\n this.editorService.clearPreservedSelection();\n return false;\n },\n },\n },\n onUpdate: () => this.emitValue(),\n onSelectionUpdate: () => this.editorService.refresh(),\n onTransaction: () => this.editorService.refresh(),\n onFocus: () => this.host()?.notifyFocus(),\n onBlur: () => this.host()?.notifyBlur(),\n });\n this.editorService.setEditor(this.editor);\n }\n\n private emitValue(): void {\n const host = this.host();\n const next = this.serialize();\n if (!host || isEqual(next, host.value())) {\n this.editorService.refresh();\n return;\n }\n host.notifyValue(next);\n this.editorService.refresh();\n }\n\n private serialize(): AXTextEditorValue {\n if (!this.editor || this.editor.isEmpty) return null;\n return this.host()?.outputFormat() === 'html' ? this.editor.getHTML() : this.editor.getJSON();\n }\n\n private toContent(value: AXTextEditorValue) {\n if (value == null || value === '') return '';\n return value;\n }\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ViewEncapsulation,\n computed,\n contentChild,\n forwardRef,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXTextEditorContentComponent } from './content/text-editor-content.component';\nimport { AXTextEditorService } from './text-editor.service';\nimport type { AXTextEditorOutputFormat, AXTextEditorValue } from './text-editor.types';\n\n@Component({\n selector: 'ax-text-editor',\n templateUrl: './text-editor.component.html',\n styleUrl: './text-editor.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'look'],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n ],\n host: {\n '[style.--ax-comp-text-editor-initial-line]': 'initialLine()',\n '[style.--ax-comp-text-editor-zoom]': 'zoomFactor()',\n '[class.ax-state-disabled]': 'disabled',\n '[class.ax-state-readonly]': 'readonly && !disabled',\n class: 'ax-text-editor',\n },\n providers: [\n AXTextEditorService,\n { provide: AXComponent, useExisting: AXTextEditorComponent },\n { provide: AXFocusableComponent, useExisting: AXTextEditorComponent },\n { provide: AXValuableComponent, useExisting: AXTextEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTextEditorComponent),\n multi: true,\n },\n ],\n imports: [AXTextEditorContentComponent],\n})\nexport class AXTextEditorComponent extends classes(MXInputBaseValueComponent<AXTextEditorValue>, MXLookComponent) {\n private readonly editorService = inject(AXTextEditorService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly projected = contentChild(AXTextEditorContentComponent);\n private syncingFromEditor = false;\n\n readonly placeHolder = input('');\n readonly outputFormat = input<AXTextEditorOutputFormat>('json');\n readonly initialLine = input(6);\n protected readonly zoomFactor = computed(() => this.editorService.zoomFactor());\n\n constructor() {\n super();\n this.editorService.bindHost({\n placeHolder: () => this.placeHolder(),\n outputFormat: () => this.outputFormat(),\n value: () => this.value,\n disabled: () => this.disabled,\n readonly: () => this.readonly,\n notifyFocus: (event) => this.notifyEditorFocus(event),\n notifyBlur: (event) => this.notifyEditorBlur(event),\n notifyValue: (value) => this.notifyEditorValue(value),\n });\n this.disabledChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.editorService.syncHostState());\n this.readonlyChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.editorService.syncHostState());\n }\n\n protected readonly projectedContent = computed(() => this.projected() != null);\n\n getEditor() {\n return this.editorService.editor();\n }\n\n getEditorService() {\n return this.editorService;\n }\n\n /** @ignore */\n notifyEditorFocus(event?: FocusEvent): void {\n this.emitOnFocusEvent(event);\n }\n\n /** @ignore */\n notifyEditorBlur(event?: FocusEvent): void {\n this.emitOnBlurEvent(event);\n }\n\n /** @ignore */\n notifyEditorValue(value: AXTextEditorValue): void {\n this.syncingFromEditor = true;\n this.value = value;\n this.syncingFromEditor = false;\n }\n\n protected override internalValueChanged(value: AXTextEditorValue): void {\n if (this.syncingFromEditor) return;\n const editor = this.editorService.editor();\n if (!editor) return;\n if (editor.isEmpty && (value == null || value === '')) return;\n this.editorService.setContent(value == null ? '' : (value as never), false);\n }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n @if (!projectedContent()) {\n <ax-text-editor-content></ax-text-editor-content>\n }\n</div>\n","import { AXComponent, type AXOrientation } from '@acorex/cdk/common';\nimport { AXHorizontalScrollDirective } from '@acorex/cdk/horizontal-scroll';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-toolbar',\n template: `\n <div class=\"ax-text-editor-toolbar-content\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-text-editor-toolbar-tools\" axHorizontalScroll [orientation]=\"orientation()\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"ax-suffix\"></ng-content>\n </div>\n `,\n styleUrl: './text-editor-toolbar.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-text-editor-toolbar',\n '[class.ax-orientation-vertical]': 'orientation() === \"vertical\"',\n '[class.ax-orientation-horizontal]': 'orientation() === \"horizontal\"',\n '(mousedown)': 'onMouseDown($event)',\n },\n imports: [AXHorizontalScrollDirective],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorToolbarComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorToolbarComponent },\n ],\n})\nexport class AXTextEditorToolbarComponent extends AXTextEditorSlot {\n private readonly editorService = inject(AXTextEditorService);\n readonly orientation = input<AXOrientation>('horizontal');\n\n protected onMouseDown(event: MouseEvent): void {\n const target = event.target as HTMLElement | null;\n if (target?.closest('input, textarea, select, [contenteditable=\"true\"]')) return;\n this.editorService.preserveSelection();\n event.preventDefault();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-alignment',\n template: `\n <ax-text-editor-command command=\"align\" [attrs]=\"{ align: 'left' }\" icon=\"ax-icon-align-left\" label=\"Align left\" />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'center' }\"\n icon=\"ax-icon-align-center\"\n label=\"Align center\"\n />\n <ax-text-editor-command command=\"align\" [attrs]=\"{ align: 'right' }\" icon=\"ax-icon-align-right\" label=\"Align right\" />\n <ax-text-editor-command command=\"align\" [attrs]=\"{ align: 'justify' }\" icon=\"ax-icon-align-justify\" label=\"Justify\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorAlignmentComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorAlignmentComponent },\n ],\n})\nexport class AXTextEditorAlignmentComponent extends AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-blocks',\n template: `\n <ax-text-editor-command command=\"codeBlock\" icon=\"ax-icon-code-block\" label=\"Code block\" />\n <ax-text-editor-command command=\"horizontalRule\" icon=\"ax-icon-horizontal-rule\" label=\"Horizontal rule\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorBlocksComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorBlocksComponent },\n ],\n})\nexport class AXTextEditorBlocksComponent extends AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {\n AX_TEXT_EDITOR_DEFAULT_BACKGROUND_COLORS,\n AX_TEXT_EDITOR_DEFAULT_TEXT_COLORS,\n type AXTextEditorRecentColor,\n} from '../text-editor.types';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-color-swatches',\n template: `\n <ax-dropdown-button class=\"ax-sm\" look=\"blank\" mode=\"dropdown\" [iconOnly]=\"true\" text=\"Colors\">\n <ax-prefix>\n <span\n class=\"ax-text-editor-swatches-trigger\"\n [style.color]=\"editorService.textColor() || 'currentColor'\"\n [style.background-color]=\"editorService.highlightColor() || 'transparent'\"\n >\n A\n </span>\n </ax-prefix>\n <div class=\"ax-text-editor-swatches-panel\" (click)=\"$event.stopPropagation()\" (mousedown)=\"$event.stopPropagation()\">\n @if (recentColors().length) {\n <div class=\"ax-text-editor-swatches-section\">\n <div class=\"ax-text-editor-swatches-title\">Recently Used</div>\n <div class=\"ax-text-editor-swatches-row\">\n @for (item of recentColors(); track item.kind + item.color) {\n <button\n type=\"button\"\n class=\"ax-text-editor-swatch\"\n [class.ax-text-editor-swatch-letter]=\"item.kind === 'text'\"\n [class.ax-text-editor-swatch-dot]=\"item.kind === 'background'\"\n [style.background-color]=\"item.kind === 'background' ? item.color : null\"\n [attr.title]=\"item.color\"\n (click)=\"applyRecent(item)\"\n >\n @if (item.kind === 'text') {\n <span [style.color]=\"item.color\">A</span>\n }\n </button>\n }\n </div>\n </div>\n }\n <div class=\"ax-text-editor-swatches-section\">\n <div class=\"ax-text-editor-swatches-title\">Text Color</div>\n <div class=\"ax-text-editor-swatches-row\">\n @for (color of resolvedTextColors(); track color) {\n <button\n type=\"button\"\n class=\"ax-text-editor-swatch ax-text-editor-swatch-letter\"\n [class.ax-state-selected]=\"isTextSelected(color)\"\n [attr.title]=\"color\"\n (click)=\"applyText(color)\"\n >\n <span [style.color]=\"color\">A</span>\n </button>\n }\n </div>\n </div>\n <div class=\"ax-text-editor-swatches-section\">\n <div class=\"ax-text-editor-swatches-title\">Highlight Color</div>\n <div class=\"ax-text-editor-swatches-row\">\n @for (color of resolvedBackgroundColors(); track color) {\n <button\n type=\"button\"\n class=\"ax-text-editor-swatch ax-text-editor-swatch-dot\"\n [class.ax-state-selected]=\"isBackgroundSelected(color)\"\n [style.background-color]=\"color\"\n [attr.title]=\"color\"\n (click)=\"applyBackground(color)\"\n ></button>\n }\n </div>\n </div>\n </div>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-color-swatches.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXDropdownButtonComponent, AXDecoratorGenericComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorColorSwatchesComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorColorSwatchesComponent },\n ],\n})\nexport class AXTextEditorColorSwatchesComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n\n readonly textColors = input<string[]>([]);\n readonly backgroundColors = input<string[]>([]);\n readonly recentColors = model<AXTextEditorRecentColor[]>([]);\n\n protected readonly resolvedTextColors = computed(() =>\n this.textColors().length ? this.textColors() : AX_TEXT_EDITOR_DEFAULT_TEXT_COLORS,\n );\n protected readonly resolvedBackgroundColors = computed(() =>\n this.backgroundColors().length ? this.backgroundColors() : AX_TEXT_EDITOR_DEFAULT_BACKGROUND_COLORS,\n );\n\n protected isTextSelected(color: string): boolean {\n return sameColor(this.editorService.textColor(), color);\n }\n\n protected isBackgroundSelected(color: string): boolean {\n return sameColor(this.editorService.highlightColor(), color);\n }\n\n protected applyText(color: string): void {\n this.editorService.run('color', { color });\n this.remember({ color, kind: 'text' });\n }\n\n protected applyBackground(color: string): void {\n this.editorService.run('highlight', { color });\n this.remember({ color, kind: 'background' });\n }\n\n protected applyRecent(item: AXTextEditorRecentColor): void {\n if (item.kind === 'text') this.applyText(item.color);\n else this.applyBackground(item.color);\n }\n\n private remember(item: AXTextEditorRecentColor): void {\n const next = [item, ...this.recentColors().filter((entry) => entry.kind !== item.kind || !sameColor(entry.color, item.color))];\n this.recentColors.set(next.slice(0, 8));\n }\n}\n\nfunction sameColor(left: string | null | undefined, right: string): boolean {\n return (left ?? '').replaceAll(' ', '').toLowerCase() === right.replaceAll(' ', '').toLowerCase();\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXBadgeComponent } from '@acorex/components/badge';\nimport {\n AXColorPaletteComponent,\n AXColorPaletteInputComponent,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n} from '@acorex/components/color-palette';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-colors',\n template: `\n <ax-dropdown-button class=\"ax-sm\" look=\"blank\" mode=\"dropdown\" [iconOnly]=\"true\" text=\"Text color\">\n <ax-prefix class=\"ax-text-editor-color-trigger\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n <ax-badge\n text=\"\"\n class=\"ax-text-editor-color-badge\"\n [look]=\"editorService.textColor() ? 'solid' : 'outline'\"\n [style.background-color]=\"editorService.textColor()\"\n ></ax-badge>\n </ax-prefix>\n <ax-color-palette\n class=\"ax-text-editor-color-palette\"\n [ngModel]=\"editorService.textColor()\"\n (ngModelChange)=\"setColor($event)\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ax-dropdown-button>\n\n <ax-dropdown-button class=\"ax-sm\" look=\"blank\" mode=\"dropdown\" [iconOnly]=\"true\" text=\"Highlight\">\n <ax-prefix class=\"ax-text-editor-color-trigger\">\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n <ax-badge\n text=\"\"\n class=\"ax-text-editor-color-badge\"\n [look]=\"editorService.highlightColor() ? 'solid' : 'outline'\"\n [style.background-color]=\"editorService.highlightColor()\"\n ></ax-badge>\n </ax-prefix>\n <ax-color-palette\n class=\"ax-text-editor-color-palette\"\n [ngModel]=\"editorService.highlightColor()\"\n (ngModelChange)=\"setHighlight($event)\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-colors.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDropdownButtonComponent,\n AXDecoratorGenericComponent,\n AXDecoratorIconComponent,\n AXBadgeComponent,\n AXColorPaletteComponent,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n AXColorPaletteInputComponent,\n FormsModule,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorColorsComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorColorsComponent },\n ],\n})\nexport class AXTextEditorColorsComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n\n protected setColor(color: string | null): void {\n if (color) this.editorService.run('color', { color });\n else this.editorService.run('color');\n }\n\n protected setHighlight(color: string | null): void {\n if (color) this.editorService.run('highlight', { color });\n else this.editorService.run('highlight');\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-font-style',\n template: `\n <ax-text-editor-command command=\"bold\" icon=\"ax-icon-bold\" label=\"Bold\" />\n <ax-text-editor-command command=\"italic\" icon=\"ax-icon-italic\" label=\"Italic\" />\n <ax-text-editor-command command=\"underline\" icon=\"ax-icon-under-line\" label=\"Underline\" />\n <ax-text-editor-command command=\"strike\" icon=\"ax-icon-strike\" label=\"Strikethrough\" />\n <ax-text-editor-command command=\"code\" icon=\"ax-icon-code\" label=\"Code\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorFontStyleComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorFontStyleComponent },\n ],\n})\nexport class AXTextEditorFontStyleComponent extends AXTextEditorSlot {}\n","import { AXClickEvent, AXComponent } from '@acorex/cdk/common';\nimport { AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-heading',\n template: `\n <ax-dropdown-button\n class=\"ax-sm\"\n look=\"blank\"\n mode=\"dropdown\"\n [iconOnly]=\"true\"\n text=\"Paragraph\"\n [disabled]=\"!editorReady()\"\n [attr.title]=\"currentLabel()\"\n >\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-paragraph\"></ax-icon>\n </ax-prefix>\n <ax-button-item-list (mousedown)=\"$event.preventDefault()\" (onItemClick)=\"onSelect($event)\">\n <ax-button-item text=\"Paragraph\" [data]=\"{ level: null }\" [selected]=\"isParagraphSelected()\"></ax-button-item>\n <ax-button-item text=\"Heading 1\" [data]=\"{ level: 1 }\" [selected]=\"isH1()\"></ax-button-item>\n <ax-button-item text=\"Heading 2\" [data]=\"{ level: 2 }\" [selected]=\"isH2()\"></ax-button-item>\n <ax-button-item text=\"Heading 3\" [data]=\"{ level: 3 }\" [selected]=\"isH3()\"></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n <ax-text-editor-command command=\"direction\" [attrs]=\"{ direction: 'ltr' }\" icon=\"ax-icon-ltr\" label=\"LTR\" />\n <ax-text-editor-command command=\"direction\" [attrs]=\"{ direction: 'rtl' }\" icon=\"ax-icon-rtl\" label=\"RTL\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styles: `\n ax-text-editor-heading .ax-icon-rtl {\n transform: scaleX(-1);\n }\n `,\n imports: [\n AXDropdownButtonComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AXDecoratorIconComponent,\n AXDecoratorGenericComponent,\n AXTextEditorCommandComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorHeadingComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorHeadingComponent },\n ],\n})\nexport class AXTextEditorHeadingComponent extends AXTextEditorSlot {\n private readonly editorService = inject(AXTextEditorService);\n\n protected readonly editorReady = computed(() => this.editorService.editor() != null);\n protected readonly isParagraphSelected = computed(() => this.editorService.isActive('paragraph'));\n protected readonly isH1 = computed(() => this.editorService.isActive('heading', { level: 1 }));\n protected readonly isH2 = computed(() => this.editorService.isActive('heading', { level: 2 }));\n protected readonly isH3 = computed(() => this.editorService.isActive('heading', { level: 3 }));\n protected readonly currentLabel = computed(() => {\n if (this.isH1()) return 'H1';\n if (this.isH2()) return 'H2';\n if (this.isH3()) return 'H3';\n return 'Paragraph';\n });\n\n protected onSelect(event: AXClickEvent): void {\n const data = (event.data ?? {}) as { level?: 1 | 2 | 3 | null };\n const level = Number(data.level);\n if (level === 1 || level === 2 || level === 3) {\n this.editorService.run('heading', { level });\n } else {\n this.editorService.run('paragraph');\n }\n setTimeout(() => this.editorService.focus());\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-history',\n template: `\n <ax-text-editor-command command=\"undo\" icon=\"ax-icon-undo\" label=\"Undo\" />\n <ax-text-editor-command command=\"redo\" icon=\"ax-icon-redo\" label=\"Redo\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorHistoryComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorHistoryComponent },\n ],\n})\nexport class AXTextEditorHistoryComponent extends AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-link',\n template: `\n <ax-dropdown-button\n #dropdown\n class=\"ax-sm\"\n look=\"blank\"\n mode=\"dropdown\"\n [iconOnly]=\"true\"\n text=\"Link\"\n [selected]=\"active()\"\n [attr.title]=\"'Link'\"\n (onClick)=\"syncHref()\"\n >\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-link\"></ax-icon>\n </ax-prefix>\n <div class=\"ax-text-editor-link-panel\" (click)=\"$event.stopPropagation()\" (mousedown)=\"$event.stopPropagation()\">\n <input\n class=\"ax-text-editor-link-input\"\n type=\"url\"\n placeholder=\"https://\"\n [ngModel]=\"href()\"\n (ngModelChange)=\"href.set($event)\"\n (keydown.enter)=\"apply(); $event.preventDefault()\"\n />\n <ax-button class=\"ax-xs\" look=\"solid\" color=\"primary\" text=\"Apply\" (onClick)=\"apply()\"></ax-button>\n <ax-button class=\"ax-xs\" look=\"blank\" text=\"Remove\" (onClick)=\"remove()\"></ax-button>\n </div>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-link.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDropdownButtonComponent,\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXDecoratorGenericComponent,\n FormsModule,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorLinkComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorLinkComponent },\n ],\n})\nexport class AXTextEditorLinkComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n private readonly dropdown = viewChild<AXDropdownButtonComponent>('dropdown');\n protected readonly href = signal('');\n protected readonly active = computed(() => this.editorService.isActive('link'));\n private savedFrom = 0;\n private savedTo = 0;\n\n protected syncHref(): void {\n const editor = this.editorService.editor();\n this.savedFrom = editor?.state.selection.from ?? 0;\n this.savedTo = editor?.state.selection.to ?? 0;\n this.href.set((editor?.getAttributes('link')?.['href'] as string) ?? '');\n }\n\n protected apply(): void {\n const editor = this.editorService.editor();\n const value = this.href().trim();\n if (!value) {\n this.remove();\n return;\n }\n editor?.chain().setTextSelection({ from: this.savedFrom, to: this.savedTo }).run();\n this.editorService.run('link', { href: value });\n this.dropdown()?.close();\n }\n\n protected remove(): void {\n const editor = this.editorService.editor();\n editor?.chain().setTextSelection({ from: this.savedFrom, to: this.savedTo }).run();\n this.editorService.run('unlink');\n this.href.set('');\n this.dropdown()?.close();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-list',\n template: `\n <ax-text-editor-command command=\"bulletList\" icon=\"ax-icon-un-order-list\" label=\"Bullet list\" />\n <ax-text-editor-command command=\"orderedList\" icon=\"ax-icon-order-list\" label=\"Ordered list\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorListComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorListComponent },\n ],\n})\nexport class AXTextEditorListComponent extends AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-table',\n template: `\n <ax-dropdown-button #dropdown class=\"ax-sm\" look=\"blank\" mode=\"dropdown\" [iconOnly]=\"true\" text=\"Insert table\">\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-table\"></ax-icon>\n </ax-prefix>\n <div class=\"ax-text-editor-table-picker\" (mousedown)=\"$event.preventDefault()\" (mouseleave)=\"hover.set({ rows: 0, cols: 0 })\">\n <div class=\"ax-text-editor-table-grid\">\n @for (row of cells; track row) {\n @for (col of cells; track col) {\n <button\n type=\"button\"\n class=\"ax-text-editor-table-cell\"\n [class.ax-state-active]=\"isHighlighted(row, col)\"\n (mouseenter)=\"hover.set({ rows: row, cols: col })\"\n (click)=\"insert(row, col)\"\n ></button>\n }\n }\n </div>\n <div class=\"ax-text-editor-table-size\">{{ sizeLabel() }}</div>\n </div>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-table.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXDropdownButtonComponent, AXDecoratorIconComponent, AXDecoratorGenericComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorTableComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorTableComponent },\n ],\n})\nexport class AXTextEditorTableComponent extends AXTextEditorSlot {\n private readonly editorService = inject(AXTextEditorService);\n private readonly dropdown = viewChild<AXDropdownButtonComponent>('dropdown');\n\n protected readonly cells = [1, 2, 3, 4, 5, 6, 7, 8];\n protected readonly hover = signal({ rows: 0, cols: 0 });\n protected readonly sizeLabel = computed(() => {\n const { rows, cols } = this.hover();\n return rows && cols ? `${rows} × ${cols}` : 'Insert table';\n });\n\n protected isHighlighted(row: number, col: number): boolean {\n const hover = this.hover();\n return hover.rows > 0 && hover.cols > 0 && row <= hover.rows && col <= hover.cols;\n }\n\n protected insert(rows: number, cols: number): void {\n this.editorService.run('insertTable', { rows, cols, withHeaderRow: false });\n this.dropdown()?.close();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-script',\n template: `\n <ax-text-editor-command command=\"superscript\" icon=\"ax-icon-superscript\" label=\"Superscript\" />\n <ax-text-editor-command command=\"subscript\" icon=\"ax-icon-subscript\" label=\"Subscript\" />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextEditorCommandComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorScriptComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorScriptComponent },\n ],\n})\nexport class AXTextEditorScriptComponent extends AXTextEditorSlot {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n AX_TEXT_EDITOR_ZOOM_PRESETS,\n} from '../text-editor.types';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-zoom',\n template: `\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n text=\"Zoom out\"\n [disabled]=\"!canZoomOut()\"\n (onClick)=\"editorService.zoomOut()\"\n >\n <ax-icon class=\"fa-regular fa-minus\"></ax-icon>\n </ax-button>\n <ax-dropdown-button\n #dropdown\n class=\"ax-sm ax-text-editor-zoom-value\"\n look=\"blank\"\n mode=\"dropdown\"\n [text]=\"zoomLabel()\"\n (onClick)=\"syncDraft()\"\n >\n <div class=\"ax-text-editor-zoom-panel\" (click)=\"$event.stopPropagation()\" (mousedown)=\"$event.stopPropagation()\">\n <input\n class=\"ax-text-editor-zoom-input\"\n type=\"text\"\n inputmode=\"numeric\"\n [value]=\"draft()\"\n (input)=\"onDraftInput($event)\"\n (keydown.enter)=\"commitDraft(); $event.preventDefault()\"\n />\n <ax-button-item-list>\n <ax-button-item text=\"Fit to page\" (onClick)=\"fitToPage()\">\n <ax-prefix>\n <ax-icon class=\"fa-regular fa-expand\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @for (preset of presets; track preset) {\n <ax-button-item\n [text]=\"preset + '%'\"\n [selected]=\"editorService.zoom() === preset\"\n (onClick)=\"applyPreset(preset)\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-dropdown-button>\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n text=\"Zoom in\"\n [disabled]=\"!canZoomIn()\"\n (onClick)=\"editorService.zoomIn()\"\n >\n <ax-icon class=\"fa-regular fa-plus\"></ax-icon>\n </ax-button>\n `,\n styleUrl: './text-editor-zoom.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-text-editor-zoom',\n },\n imports: [\n AXButtonComponent,\n AXDropdownButtonComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AXDecoratorIconComponent,\n AXDecoratorGenericComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorZoomComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorZoomComponent },\n ],\n})\nexport class AXTextEditorZoomComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n private readonly dropdown = viewChild<AXDropdownButtonComponent>('dropdown');\n protected readonly presets = AX_TEXT_EDITOR_ZOOM_PRESETS;\n protected readonly draft = signal('100');\n protected readonly zoomLabel = computed(() => `${this.editorService.zoom()}%`);\n protected readonly canZoomOut = computed(() => this.editorService.zoom() > AX_TEXT_EDITOR_ZOOM_MIN);\n protected readonly canZoomIn = computed(() => this.editorService.zoom() < AX_TEXT_EDITOR_ZOOM_MAX);\n\n protected syncDraft(): void {\n this.draft.set(String(this.editorService.zoom()));\n }\n\n protected onDraftInput(event: Event): void {\n this.draft.set((event.target as HTMLInputElement).value);\n }\n\n protected commitDraft(): void {\n const next = Number.parseInt(this.draft(), 10);\n if (Number.isFinite(next)) this.editorService.setZoom(next);\n this.dropdown()?.close();\n }\n\n protected applyPreset(value: number): void {\n this.editorService.setZoom(value);\n this.dropdown()?.close();\n }\n\n protected fitToPage(): void {\n this.editorService.fitToPage();\n this.dropdown()?.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXTextEditorCommandComponent } from './command/text-editor-command.component';\nimport { AXTextEditorContentComponent } from './content/text-editor-content.component';\nimport { AXTextEditorComponent } from './text-editor.component';\nimport { AXTextEditorToolbarComponent } from './toolbar/text-editor-toolbar.component';\nimport { AXTextEditorAlignmentComponent } from './tools/text-editor-alignment.component';\nimport { AXTextEditorBlocksComponent } from './tools/text-editor-blocks.component';\nimport { AXTextEditorColorSwatchesComponent } from './tools/text-editor-color-swatches.component';\nimport { AXTextEditorColorsComponent } from './tools/text-editor-colors.component';\nimport { AXTextEditorFontStyleComponent } from './tools/text-editor-font-style.component';\nimport { AXTextEditorHeadingComponent } from './tools/text-editor-heading.component';\nimport { AXTextEditorHistoryComponent } from './tools/text-editor-history.component';\nimport { AXTextEditorLinkComponent } from './tools/text-editor-link.component';\nimport { AXTextEditorListComponent } from './tools/text-editor-list.component';\nimport { AXTextEditorTableComponent } from './tools/text-editor-table.component';\nimport { AXTextEditorScriptComponent } from './tools/text-editor-script.component';\nimport { AXTextEditorZoomComponent } from './tools/text-editor-zoom.component';\n\nconst COMPONENTS = [\n AXTextEditorComponent,\n AXTextEditorToolbarComponent,\n AXTextEditorContentComponent,\n AXTextEditorCommandComponent,\n AXTextEditorHistoryComponent,\n AXTextEditorHeadingComponent,\n AXTextEditorFontStyleComponent,\n AXTextEditorAlignmentComponent,\n AXTextEditorColorsComponent,\n AXTextEditorColorSwatchesComponent,\n AXTextEditorListComponent,\n AXTextEditorLinkComponent,\n AXTextEditorBlocksComponent,\n AXTextEditorTableComponent,\n AXTextEditorScriptComponent,\n AXTextEditorZoomComponent,\n];\n\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class AXTextEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.4.1",
3
+ "version": "22.4.3",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.4.1",
6
- "@acorex/cdk": "22.4.1",
5
+ "@acorex/core": "22.4.3",
6
+ "@acorex/cdk": "22.4.3",
7
7
  "@angular/aria": ">=22.1.0",
8
8
  "polytype": ">=0.17.0",
9
9
  "hammerjs": ">=2.0.8",
@@ -20,10 +20,12 @@
20
20
  "@tiptap/extension-color": ">=3.31.4",
21
21
  "@tiptap/extension-highlight": ">=3.31.4",
22
22
  "@tiptap/extension-image": ">=3.31.4",
23
+ "@tiptap/extension-table": ">=3.31.4",
23
24
  "@tiptap/extension-text-align": ">=3.31.4",
24
25
  "@tiptap/extension-text-style": ">=3.31.4",
25
26
  "@tiptap/extension-underline": ">=3.31.4",
26
27
  "@tiptap/extensions": ">=3.31.4",
28
+ "@tiptap/pm": ">=3.31.4",
27
29
  "@tiptap/starter-kit": ">=3.31.4",
28
30
  "@codemirror/state": ">=6.4.0",
29
31
  "@codemirror/view": ">=6.30.0",
@@ -472,6 +474,10 @@
472
474
  "types": "./types/acorex-components-text-box.d.ts",
473
475
  "default": "./fesm2022/acorex-components-text-box.mjs"
474
476
  },
477
+ "./text-editor": {
478
+ "types": "./types/acorex-components-text-editor.d.ts",
479
+ "default": "./fesm2022/acorex-components-text-editor.mjs"
480
+ },
475
481
  "./time-duration": {
476
482
  "types": "./types/acorex-components-time-duration.d.ts",
477
483
  "default": "./fesm2022/acorex-components-time-duration.mjs"
@@ -0,0 +1,3 @@
1
+ # Text Editor
2
+
3
+ A lightweight, modular Tiptap wrapper. Project `ax-text-editor-toolbar` and the tools you need; content is created automatically when omitted.
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@acorex/cdk/common';
2
2
  import { AXSortOrder, MXBaseComponent, AXDataSource, AXStyleColorType, AXEvent, AXButtonClickEvent, AXStyleLookType, AXClickEvent, AXItemClickEvent, AXValueChangedEvent } from '@acorex/cdk/common';
3
3
  import * as i0 from '@angular/core';
4
- import { QueryList, TemplateRef, EventEmitter, WritableSignal, ChangeDetectorRef, OnInit, AfterViewInit, Signal } from '@angular/core';
4
+ import { QueryList, TemplateRef, EventEmitter, WritableSignal, DestroyRef, ChangeDetectorRef, OnInit, AfterViewInit, Signal } from '@angular/core';
5
5
  import * as i11 from '@acorex/core/format';
6
6
  import { AXFormatOptions } from '@acorex/core/format';
7
7
  import * as i8 from '@acorex/components/button';
@@ -174,7 +174,7 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
174
174
  private readonly cellCssClassCache;
175
175
  private readonly highlightService;
176
176
  private readonly platformId;
177
- private readonly destroyRef;
177
+ protected readonly destroyRef: DestroyRef;
178
178
  private _highlightText?;
179
179
  private highlightOrder;
180
180
  private textHighlightFrame?;
@@ -493,6 +493,13 @@ declare abstract class AXBaseRowCommandColumnComponent extends AXDataTableColumn
493
493
  allowSorting: boolean;
494
494
  get loadingEnabled(): boolean;
495
495
  get cssClass(): string;
496
+ /**
497
+ * Command cells already include their own padding in measurement.
498
+ * Extra fit padding would leave empty space around the icon buttons.
499
+ */
500
+ get autoFitPadding(): number;
501
+ /** One icon button plus the command cell's horizontal padding. */
502
+ get minAutoWidth(): number;
496
503
  protected resolveCommandId(rowData: unknown, commandName: string): string;
497
504
  protected setCommandLoadingState(commandId: string, loading: boolean): void;
498
505
  onItemClick: EventEmitter<AXRowCommandItemClickEvent>;
@@ -539,8 +546,6 @@ declare class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumn
539
546
  * Returns the name identifier for the column component.
540
547
  */
541
548
  get name(): string;
542
- get autoFitPadding(): number;
543
- get minAutoWidth(): number;
544
549
  /**
545
550
  * @ignore
546
551
  */
@@ -979,10 +984,24 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
979
984
  */
980
985
  protected normalColumnsList: Signal<AXDataTableColumnComponent[]>;
981
986
  /**
982
- * True when a text column owns the tree expander. That column stays `width: auto`
983
- * so leftover table space is used for nested indent instead of the empty spacer.
987
+ * True when a text column owns the tree expander. Leftover table space is added
988
+ * to that column for nested indent. Its content width is a minimum, so the table
989
+ * scrolls horizontally instead of collapsing the column.
984
990
  */
985
991
  protected hasTreeFillColumn: Signal<boolean>;
992
+ /**
993
+ * Pixel width of the table. At least the sum of column content widths, and at least
994
+ * the wrapper width so a short table still fills the container.
995
+ *
996
+ * @ignore
997
+ */
998
+ protected readonly tableWidth: WritableSignal<string>;
999
+ /**
1000
+ * Minimum table width in pixels. Wider than the wrapper, this produces horizontal scroll.
1001
+ *
1002
+ * @ignore
1003
+ */
1004
+ protected readonly tableMinWidth: WritableSignal<string>;
986
1005
  /**
987
1006
  * @ignore
988
1007
  */
@@ -1073,6 +1092,19 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1073
1092
  * @ignore
1074
1093
  */
1075
1094
  private userResizedColumns;
1095
+ /**
1096
+ * Content width of tree-expander columns. Used as a floor so those columns are not
1097
+ * squeezed when the other columns are wider than the wrapper.
1098
+ * @ignore
1099
+ */
1100
+ private treeFillContentWidths;
1101
+ /**
1102
+ * Rendered width of tree-expander columns: content width, plus leftover wrapper space.
1103
+ * @ignore
1104
+ */
1105
+ private readonly treeFillResolvedWidths;
1106
+ /** @ignore */
1107
+ private resizeObserver;
1076
1108
  /**
1077
1109
  * @ignore
1078
1110
  */
@@ -1251,7 +1283,7 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1251
1283
  ngAfterViewInit(): void;
1252
1284
  private captureAutoFitIntentColumns;
1253
1285
  /**
1254
- * Tree expand columns must keep `width: auto` so nested indent can use leftover table space.
1286
+ * Tree expand columns keep a content minimum and grow into leftover table space for nested indent.
1255
1287
  */
1256
1288
  private isTreeFillColumn;
1257
1289
  /**
@@ -1402,6 +1434,37 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1402
1434
  * @param columnIndex - 0-based index in the columns `QueryList`.
1403
1435
  */
1404
1436
  autoFitColumn(columnIndex: number, options?: AXDataTableAutoFitColumnOptions): void;
1437
+ /**
1438
+ * Measures a column's content width without writing it back.
1439
+ * Tree-expander columns use the result as a minimum so they can still grow.
1440
+ */
1441
+ private measureColumnContentWidth;
1442
+ private isCommandColumn;
1443
+ /**
1444
+ * Command buttons are a fixed icon size inside the table. Cloning them outside
1445
+ * `ax-data-table` drops that size and measures default button padding instead.
1446
+ * Read the live controls, then add the cell's own horizontal padding and border.
1447
+ */
1448
+ private measureCommandColumnWidth;
1449
+ private readCommandControlsWidth;
1450
+ /** Horizontal padding and borders already painted inside the command cell. */
1451
+ private readCommandCellChrome;
1452
+ /** Lets cloned header/cells report their text width instead of the collapsed column width. */
1453
+ private prepareMeasuredCell;
1454
+ /**
1455
+ * Stores the content width of tree-expander columns, including visible nested indent.
1456
+ */
1457
+ private measureTreeFillColumns;
1458
+ /** Deepest visible nested-row indent, which content measurement does not include. */
1459
+ private readTreeIndentPadding;
1460
+ private readPixelWidth;
1461
+ /**
1462
+ * Sizes the table to the sum of column widths so columns keep their content width
1463
+ * and the wrapper scrolls horizontally when that sum exceeds the container.
1464
+ * Tree-expander columns receive any leftover container width.
1465
+ */
1466
+ private updateColumnLayoutWidths;
1467
+ private observeTableWrapper;
1405
1468
  /**
1406
1469
  * Auto-fits a single column by its `name` / data field.
1407
1470
  */
@@ -40,6 +40,12 @@ declare class AXDropdownButtonComponent extends MXButtonBaseComponent implements
40
40
  * @defaultValue 'split'
41
41
  */
42
42
  mode: 'split' | 'dropdown';
43
+ /**
44
+ * Hides the button text and keeps only the projected icon.
45
+ *
46
+ * @defaultValue false
47
+ */
48
+ iconOnly: boolean;
43
49
  /**
44
50
  * @ignore
45
51
  */
@@ -76,9 +82,8 @@ declare class AXDropdownButtonComponent extends MXButtonBaseComponent implements
76
82
  * @returns void - No return value. The dropdown panel is closed.
77
83
  */
78
84
  close(): void;
79
- private get __hostClass();
80
85
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDropdownButtonComponent, never>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDropdownButtonComponent, "ax-dropdown-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "text": { "alias": "text"; "required": false; }; "dropdownColor": { "alias": "color"; "required": false; }; "dropdownLook": { "alias": "look"; "required": false; }; "type": { "alias": "type"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "selectedChange": "selectedChange"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; }, never, ["ax-button-item-list", "ax-prefix, ax-loading, ax-loading-spinner"], true, never>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDropdownButtonComponent, "ax-dropdown-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "dropdownColor": { "alias": "color"; "required": false; }; "dropdownLook": { "alias": "look"; "required": false; }; "type": { "alias": "type"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "iconOnly": { "alias": "iconOnly"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "selectedChange": "selectedChange"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; }, never, ["ax-prefix, ax-loading, ax-loading-spinner", "*"], true, never>;
82
87
  }
83
88
 
84
89
  declare class AXDropdownButtonModule {