@acorex/components 22.4.11 → 22.4.13
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.
- package/fesm2022/acorex-components-calendar.mjs +10 -13
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +2 -2
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +15 -4
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +15 -2
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-text-editor.mjs +4 -4
- package/fesm2022/acorex-components-text-editor.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-drawer.d.ts +2 -2
- package/types/acorex-components-lookup.d.ts +2 -0
- package/types/acorex-components-text-editor.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-text-editor.mjs","sources":["../../../../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/content/text-editor-content.component.ts","../../../../packages/components/text-editor/src/lib/text-editor-i18n.keys.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/tools/text-editor-font-size.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-media.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.module.ts","../../../../packages/components/text-editor/src/acorex-components-text-editor.ts"],"sourcesContent":["import {\n AXTextEditor,\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n type AXTextEditorCommandAttrs,\n type AXTextEditorCommandType,\n type AXTextEditorTiptapChain,\n type AXTextEditorTiptapContent,\n type AXTextEditorTiptapEditor,\n type AXTextEditorTiptapJSON,\n} from '@acorex/cdk/text-editor';\nimport { Injectable, computed, inject, signal } from '@angular/core';\nimport type { AXTextEditorHostBridge } from './text-editor.types';\n\n/**\n * Per-editor facade for `ax-text-editor`. Wraps headless {@link AXTextEditor} from `@acorex/cdk/text-editor`.\n * Projected toolbar tools inject this service for commands, selection preservation, and zoom.\n */\n@Injectable()\nexport class AXTextEditorService {\n private readonly core = inject(AXTextEditor);\n private host: AXTextEditorHostBridge | null = null;\n private preservedRange: { from: number; to: number } | null = null;\n\n readonly editor = this.core.editor;\n readonly state = this.core.state;\n readonly version = this.core.version;\n readonly disabled = signal(false);\n readonly readonly = signal(false);\n readonly editable = computed(() => !this.disabled() && !this.readonly());\n readonly textColor = computed(() => this.core.state().textColor);\n readonly highlightColor = computed(() => this.core.state().highlightColor);\n readonly fontSize = computed(() => this.core.state().fontSize);\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 refresh(): void {\n this.core.refresh();\n }\n\n chain(): AXTextEditorTiptapChain | null {\n return this.core.chain();\n }\n\n get commands(): AXTextEditorTiptapEditor['commands'] | undefined {\n return this.core.commands;\n }\n\n get canCommands(): ReturnType<AXTextEditorTiptapEditor['can']> | undefined {\n return this.core.editor()?.can();\n }\n\n isActive(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n return this.core.isActive(command, attrs);\n }\n\n can(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n if (!this.editable()) return false;\n return this.core.can(command, attrs);\n }\n\n preserveSelection(): void {\n const editor = this.core.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 if (!this.editable()) return false;\n const editor = this.core.editor();\n if (!editor) return false;\n this.restorePreservedSelection(editor);\n return this.core.run(command, attrs);\n }\n\n private restorePreservedSelection(editor: AXTextEditorTiptapEditor): 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(): AXTextEditorTiptapJSON | null {\n return this.core.getJSON();\n }\n\n getHTML(): string {\n return this.core.getHTML();\n }\n\n getText(options?: { blockSeparator?: string }): string {\n return this.core.getText(options);\n }\n\n setContent(content: AXTextEditorTiptapContent, emitUpdate = false): boolean {\n this.core.setContent(content, emitUpdate);\n return true;\n }\n\n insertContent(value: AXTextEditorTiptapContent): boolean {\n return this.core.insertContent(value);\n }\n\n clearContent(): boolean {\n return this.core.clearContent();\n }\n\n focus(): boolean {\n this.core.focus();\n return true;\n }\n\n blur(): boolean {\n this.core.blur();\n return true;\n }\n\n isEmpty(): boolean {\n return this.core.isEmpty();\n }\n\n isFocused(): boolean {\n return this.core.isFocused();\n }\n\n isEditable(): boolean {\n return this.core.isEditable();\n }\n\n setEditable(editable: boolean): void {\n this.core.setEditable(editable);\n }\n\n destroyEditor(): void {\n this.core.destroy();\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.core.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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\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 '@acorex/cdk/text-editor';\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 [attr.title]=\"label() | translate | async\"\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 imports: [AXButtonComponent, AXDecoratorIconComponent, AXTranslatorPipe, AsyncPipe],\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 { AXTextEditor } from '@acorex/cdk/text-editor';\nimport { 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 { isEqual } from 'lodash-es';\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 textEditor = inject(AXTextEditor);\n private readonly editorService = inject(AXTextEditorService);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => void 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.editorService.destroyEditor();\n }\n\n private async createEditor(): Promise<void> {\n if (!isPlatformBrowser(this.platformId) || this.textEditor.ready()) 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 await this.textEditor.init(element, {\n content: this.toContent(host.value()),\n editable: this.editorService.editable(),\n placeholder: () => this.host()?.placeHolder() ?? '',\n onUpdate: () => this.emitValue(),\n onSelectionUpdate: () => this.editorService.refresh(),\n onTransaction: () => this.editorService.refresh(),\n onFocus: (_, event) => this.host()?.notifyFocus(event),\n onBlur: (_, event) => this.host()?.notifyBlur(event),\n editorProps: {\n handleDOMEvents: {\n mousedown: () => {\n this.editorService.clearPreservedSelection();\n return false;\n },\n },\n },\n });\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 const editor = this.textEditor.editor();\n if (!editor || editor.isEmpty) return null;\n return this.host()?.outputFormat() === 'html' ? editor.getHTML() : editor.getJSON();\n }\n\n private toContent(value: AXTextEditorValue) {\n if (value == null || value === '') return '';\n return value;\n }\n}\n","const SCOPE = '@acorex:text-editor';\n\nexport const AX_TEXT_EDITOR_I18N = {\n placeholder: `${SCOPE}.placeholder`,\n tools: {\n undo: `${SCOPE}.tools.undo`,\n redo: `${SCOPE}.tools.redo`,\n bold: `${SCOPE}.tools.bold`,\n italic: `${SCOPE}.tools.italic`,\n underline: `${SCOPE}.tools.underline`,\n strike: `${SCOPE}.tools.strike`,\n code: `${SCOPE}.tools.code`,\n codeBlock: `${SCOPE}.tools.code-block`,\n link: `${SCOPE}.tools.link`,\n image: `${SCOPE}.tools.image`,\n video: `${SCOPE}.tools.video`,\n bulletList: `${SCOPE}.tools.bullet-list`,\n orderedList: `${SCOPE}.tools.ordered-list`,\n ltr: `${SCOPE}.tools.ltr`,\n rtl: `${SCOPE}.tools.rtl`,\n textColor: `${SCOPE}.tools.text-color`,\n highlight: `${SCOPE}.tools.highlight`,\n colors: `${SCOPE}.tools.colors`,\n paragraph: `${SCOPE}.tools.paragraph`,\n alignLeft: `${SCOPE}.tools.align-left`,\n alignCenter: `${SCOPE}.tools.align-center`,\n alignRight: `${SCOPE}.tools.align-right`,\n alignJustify: `${SCOPE}.tools.align-justify`,\n superscript: `${SCOPE}.tools.superscript`,\n subscript: `${SCOPE}.tools.subscript`,\n blockquote: `${SCOPE}.tools.blockquote`,\n horizontalRule: `${SCOPE}.tools.horizontal-rule`,\n zoomIn: `${SCOPE}.tools.zoom-in`,\n zoomOut: `${SCOPE}.tools.zoom-out`,\n },\n blocks: {\n paragraph: `${SCOPE}.blocks.paragraph`,\n heading1: `${SCOPE}.blocks.heading1`,\n heading2: `${SCOPE}.blocks.heading2`,\n heading3: `${SCOPE}.blocks.heading3`,\n blockquote: `${SCOPE}.blocks.blockquote`,\n codeBlock: `${SCOPE}.blocks.code-block`,\n },\n fontSize: {\n label: `${SCOPE}.font-size.label`,\n default: `${SCOPE}.font-size.default`,\n },\n insert: {\n apply: `${SCOPE}.insert.apply`,\n remove: `${SCOPE}.insert.remove`,\n failed: `${SCOPE}.insert.failed`,\n },\n swatches: {\n recent: `${SCOPE}.swatches.recent`,\n text: `${SCOPE}.swatches.text`,\n highlight: `${SCOPE}.swatches.highlight`,\n },\n zoom: {\n fit: `${SCOPE}.zoom.fit`,\n },\n table: {\n insert: `${SCOPE}.table.insert`,\n },\n} as const;\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXTextEditor } from '@acorex/cdk/text-editor';\nimport { AXTranslationService } from '@acorex/core/translation';\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 { AX_TEXT_EDITOR_I18N } from './text-editor-i18n.keys';\nimport { AXTextEditorService } from './text-editor.service';\nimport type { AXTextEditorTiptapEditor } from '@acorex/cdk/text-editor';\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 ngSkipHydration: 'true',\n },\n providers: [\n AXTextEditor,\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 translation = inject(AXTranslationService);\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: () =>\n this.placeHolder() ||\n this.translation.translateSync(AX_TEXT_EDITOR_I18N.placeholder, { waitForLoad: true }),\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(): AXTextEditorTiptapEditor | null {\n return this.editorService.editor();\n }\n\n getEditorService() {\n return this.editorService;\n }\n\n override focus(): void {\n this.editorService.focus();\n }\n\n override blur(): void {\n this.editorService.blur();\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.commitValue(value, true);\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 <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n<div class=\"ax-error-container\"></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 <div class=\"ax-text-editor-toolbar-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n </div>\n <div class=\"ax-text-editor-toolbar-tools\" axHorizontalScroll [orientation]=\"orientation()\">\n <ng-content></ng-content>\n </div>\n <div class=\"ax-text-editor-toolbar-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n </div>\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-alignment',\n template: `\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'left' }\"\n icon=\"ax-icon-align-left\"\n [label]=\"i18n.tools.alignLeft\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'center' }\"\n icon=\"ax-icon-align-center\"\n [label]=\"i18n.tools.alignCenter\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'right' }\"\n icon=\"ax-icon-align-right\"\n [label]=\"i18n.tools.alignRight\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'justify' }\"\n icon=\"ax-icon-align-justify\"\n [label]=\"i18n.tools.alignJustify\"\n />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.codeBlock\" />\n <ax-text-editor-command command=\"horizontalRule\" icon=\"ax-icon-horizontal-rule\" [label]=\"i18n.tools.horizontalRule\" />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport {\n AX_TEXT_EDITOR_DEFAULT_BACKGROUND_COLORS,\n AX_TEXT_EDITOR_DEFAULT_TEXT_COLORS,\n type AXTextEditorRecentColor,\n} from '@acorex/cdk/text-editor';\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]=\"i18n.tools.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\">{{ i18n.swatches.recent | translate | async }}</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\">{{ i18n.swatches.text | translate | async }}</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\">{{ i18n.swatches.highlight | translate | async }}</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, AXTranslatorPipe, AsyncPipe],\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.textColor\">\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]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.bold\" />\n <ax-text-editor-command command=\"italic\" icon=\"ax-icon-italic\" [label]=\"i18n.tools.italic\" />\n <ax-text-editor-command command=\"underline\" icon=\"ax-icon-under-line\" [label]=\"i18n.tools.underline\" />\n <ax-text-editor-command command=\"strike\" icon=\"ax-icon-strike\" [label]=\"i18n.tools.strike\" />\n <ax-text-editor-command command=\"code\" icon=\"ax-icon-code\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.blocks.paragraph\"\n [disabled]=\"!editorReady()\"\n [attr.title]=\"currentLabel() | translate | async\"\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]=\"i18n.blocks.paragraph\" [data]=\"{ level: null }\" [selected]=\"isParagraphSelected()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading1\" [data]=\"{ level: 1 }\" [selected]=\"isH1()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading2\" [data]=\"{ level: 2 }\" [selected]=\"isH2()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading3\" [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]=\"i18n.tools.ltr\" />\n <ax-text-editor-command command=\"direction\" [attrs]=\"{ direction: 'rtl' }\" icon=\"ax-icon-rtl\" [label]=\"i18n.tools.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 AXTranslatorPipe,\n AsyncPipe,\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 this.i18n.blocks.heading1;\n if (this.isH2()) return this.i18n.blocks.heading2;\n if (this.isH3()) return this.i18n.blocks.heading3;\n return this.i18n.blocks.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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.undo\" />\n <ax-text-editor-command command=\"redo\" icon=\"ax-icon-redo\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.link\"\n [selected]=\"active()\"\n [attr.title]=\"i18n.tools.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]=\"i18n.insert.apply\" (onClick)=\"apply()\"></ax-button>\n <ax-button class=\"ax-xs\" look=\"blank\" [text]=\"i18n.insert.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.bulletList\" />\n <ax-text-editor-command command=\"orderedList\" icon=\"ax-icon-order-list\" [label]=\"i18n.tools.orderedList\" />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.table.insert\">\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() | translate | async }}</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, AXTranslatorPipe, AsyncPipe],\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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}` : this.i18n.table.insert;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.superscript\" />\n <ax-text-editor-command command=\"subscript\" icon=\"ax-icon-subscript\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport {\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n AX_TEXT_EDITOR_ZOOM_PRESETS,\n} from '@acorex/cdk/text-editor';\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]=\"i18n.tools.zoomOut\"\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]=\"i18n.zoom.fit\" (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]=\"i18n.tools.zoomIn\"\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, viewChild } from '@angular/core';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\nimport { AX_TEXT_EDITOR_FONT_SIZES } from '@acorex/cdk/text-editor';\n\n@Component({\n selector: 'ax-text-editor-font-size',\n template: `\n <ax-dropdown-button\n #dropdown\n class=\"ax-sm ax-text-editor-font-size\"\n look=\"blank\"\n mode=\"dropdown\"\n [text]=\"sizeLabel()\"\n [attr.title]=\"i18n.fontSize.label | translate | async\"\n [disabled]=\"!editorService.can('fontSize')\"\n >\n <ax-button-item-list (mousedown)=\"$event.preventDefault()\">\n <ax-button-item\n [text]=\"i18n.fontSize.default\"\n [selected]=\"currentSize() == null\"\n (onClick)=\"apply(null)\"\n ></ax-button-item>\n @for (size of sizes; track size) {\n <ax-button-item [text]=\"'' + size\" [selected]=\"currentSize() === size\" (onClick)=\"apply(size)\"></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-font-size.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDropdownButtonComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorFontSizeComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorFontSizeComponent },\n ],\n})\nexport class AXTextEditorFontSizeComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n private readonly translation = inject(AXTranslationService);\n protected readonly i18n = AX_TEXT_EDITOR_I18N;\n protected readonly sizes = AX_TEXT_EDITOR_FONT_SIZES;\n private readonly dropdown = viewChild<AXDropdownButtonComponent>('dropdown');\n\n protected readonly currentSize = computed(() => {\n const raw = this.editorService.fontSize();\n if (!raw) return null;\n const parsed = Number.parseInt(raw, 10);\n return Number.isFinite(parsed) ? parsed : null;\n });\n\n protected readonly sizeLabel = computed(() => {\n const size = this.currentSize();\n return size == null ? this.translation.translateSync(this.i18n.fontSize.default) : String(size);\n });\n\n protected apply(size: number | null): void {\n this.editorService.run('fontSize', size == null ? undefined : { size: `${size}px` });\n this.dropdown()?.close();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXToastService } from '@acorex/components/toast';\nimport {\n AXFileService,\n AXFileTypeRegistryService,\n AX_IMAGE_FILE_TYPE,\n AX_VIDEO_FILE_TYPE,\n} from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-media',\n template: `\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [text]=\"i18n.tools.image\"\n [disabled]=\"!editorService.can('image')\"\n (onClick)=\"pick('image')\"\n >\n <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [text]=\"i18n.tools.video\"\n [disabled]=\"!editorService.can('video')\"\n (onClick)=\"pick('video')\"\n >\n <ax-icon class=\"ax-icon ax-icon-play\"></ax-icon>\n </ax-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXButtonComponent, AXDecoratorIconComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorMediaComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorMediaComponent },\n ],\n})\nexport class AXTextEditorMediaComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n protected readonly i18n = AX_TEXT_EDITOR_I18N;\n private readonly fileService = inject(AXFileService);\n private readonly fileTypes = inject(AXFileTypeRegistryService);\n private readonly toast = inject(AXToastService);\n private readonly translation = inject(AXTranslationService);\n\n constructor() {\n super();\n this.fileTypes.registerTypes([AX_IMAGE_FILE_TYPE, AX_VIDEO_FILE_TYPE]);\n }\n\n protected async pick(kind: 'image' | 'video'): Promise<void> {\n if (!this.editorService.can(kind)) return;\n\n const { accepted, rejected } = await this.fileService.chooseValidated({\n fileType: kind,\n multiple: false,\n });\n\n if (rejected[0]?.errors[0]?.message) {\n this.toast.danger(rejected[0].errors[0].message);\n } else if (rejected.length) {\n this.toast.danger(this.translation.translateSync(this.i18n.insert.failed));\n }\n\n const file = accepted[0];\n if (!file) return;\n\n try {\n const src = await this.fileService.blobToBase64(file);\n this.editorService.run(kind, { src, alt: file.name });\n } catch {\n this.toast.danger(this.translation.translateSync(this.i18n.insert.failed));\n }\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';\nimport { AXTextEditorFontSizeComponent } from './tools/text-editor-font-size.component';\nimport { AXTextEditorMediaComponent } from './tools/text-editor-media.component';\n\nconst COMPONENTS = [\n AXTextEditorComponent,\n AXTextEditorToolbarComponent,\n AXTextEditorContentComponent,\n AXTextEditorCommandComponent,\n AXTextEditorHistoryComponent,\n AXTextEditorHeadingComponent,\n AXTextEditorFontStyleComponent,\n AXTextEditorFontSizeComponent,\n AXTextEditorAlignmentComponent,\n AXTextEditorColorsComponent,\n AXTextEditorColorSwatchesComponent,\n AXTextEditorListComponent,\n AXTextEditorLinkComponent,\n AXTextEditorMediaComponent,\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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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-text-editor.mjs","sources":["../../../../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/content/text-editor-content.component.ts","../../../../packages/components/text-editor/src/lib/text-editor-i18n.keys.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/tools/text-editor-font-size.component.ts","../../../../packages/components/text-editor/src/lib/tools/text-editor-media.component.ts","../../../../packages/components/text-editor/src/lib/text-editor.module.ts","../../../../packages/components/text-editor/src/acorex-components-text-editor.ts"],"sourcesContent":["import {\n AXTextEditor,\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n type AXTextEditorCommandAttrs,\n type AXTextEditorCommandType,\n type AXTextEditorTiptapChain,\n type AXTextEditorTiptapContent,\n type AXTextEditorTiptapEditor,\n type AXTextEditorTiptapJSON,\n} from '@acorex/cdk/text-editor';\nimport { Injectable, computed, inject, signal } from '@angular/core';\nimport type { AXTextEditorHostBridge } from './text-editor.types';\n\n/**\n * Per-editor facade for `ax-text-editor`. Wraps headless {@link AXTextEditor} from `@acorex/cdk/text-editor`.\n * Projected toolbar tools inject this service for commands, selection preservation, and zoom.\n */\n@Injectable()\nexport class AXTextEditorService {\n private readonly core = inject(AXTextEditor);\n private host: AXTextEditorHostBridge | null = null;\n private preservedRange: { from: number; to: number } | null = null;\n\n readonly editor = this.core.editor;\n readonly state = this.core.state;\n readonly version = this.core.version;\n readonly disabled = signal(false);\n readonly readonly = signal(false);\n readonly editable = computed(() => !this.disabled() && !this.readonly());\n readonly textColor = computed(() => this.core.state().textColor);\n readonly highlightColor = computed(() => this.core.state().highlightColor);\n readonly fontSize = computed(() => this.core.state().fontSize);\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 refresh(): void {\n this.core.refresh();\n }\n\n chain(): AXTextEditorTiptapChain | null {\n return this.core.chain();\n }\n\n get commands(): AXTextEditorTiptapEditor['commands'] | undefined {\n return this.core.commands;\n }\n\n get canCommands(): ReturnType<AXTextEditorTiptapEditor['can']> | undefined {\n return this.core.editor()?.can();\n }\n\n isActive(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n return this.core.isActive(command, attrs);\n }\n\n can(command: AXTextEditorCommandType, attrs?: AXTextEditorCommandAttrs): boolean {\n if (!this.editable()) return false;\n return this.core.can(command, attrs);\n }\n\n preserveSelection(): void {\n const editor = this.core.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 if (!this.editable()) return false;\n const editor = this.core.editor();\n if (!editor) return false;\n this.restorePreservedSelection(editor);\n return this.core.run(command, attrs);\n }\n\n private restorePreservedSelection(editor: AXTextEditorTiptapEditor): 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(): AXTextEditorTiptapJSON | null {\n return this.core.getJSON();\n }\n\n getHTML(): string {\n return this.core.getHTML();\n }\n\n getText(options?: { blockSeparator?: string }): string {\n return this.core.getText(options);\n }\n\n setContent(content: AXTextEditorTiptapContent, emitUpdate = false): boolean {\n this.core.setContent(content, emitUpdate);\n return true;\n }\n\n insertContent(value: AXTextEditorTiptapContent): boolean {\n return this.core.insertContent(value);\n }\n\n clearContent(): boolean {\n return this.core.clearContent();\n }\n\n focus(): boolean {\n this.core.focus();\n return true;\n }\n\n blur(): boolean {\n this.core.blur();\n return true;\n }\n\n isEmpty(): boolean {\n return this.core.isEmpty();\n }\n\n isFocused(): boolean {\n return this.core.isFocused();\n }\n\n isEditable(): boolean {\n return this.core.isEditable();\n }\n\n setEditable(editable: boolean): void {\n this.core.setEditable(editable);\n }\n\n destroyEditor(): void {\n this.core.destroy();\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.core.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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\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 '@acorex/cdk/text-editor';\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 [attr.title]=\"label() | translate | async\"\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 imports: [AXButtonComponent, AXDecoratorIconComponent, AXTranslatorPipe, AsyncPipe],\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 { AXTextEditor } from '@acorex/cdk/text-editor';\nimport { 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 { isEqual } from 'lodash-es';\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 textEditor = inject(AXTextEditor);\n private readonly editorService = inject(AXTextEditorService);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => void 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.editorService.destroyEditor();\n }\n\n private async createEditor(): Promise<void> {\n if (!isPlatformBrowser(this.platformId) || this.textEditor.ready()) 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 await this.textEditor.init(element, {\n content: this.toContent(host.value()),\n editable: this.editorService.editable(),\n placeholder: () => this.host()?.placeHolder() ?? '',\n onUpdate: () => this.emitValue(),\n onSelectionUpdate: () => this.editorService.refresh(),\n onTransaction: () => this.editorService.refresh(),\n onFocus: (_, event) => this.host()?.notifyFocus(event),\n onBlur: (_, event) => this.host()?.notifyBlur(event),\n editorProps: {\n handleDOMEvents: {\n mousedown: () => {\n this.editorService.clearPreservedSelection();\n return false;\n },\n },\n },\n });\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 const editor = this.textEditor.editor();\n if (!editor || editor.isEmpty) return null;\n return this.host()?.outputFormat() === 'html' ? editor.getHTML() : editor.getJSON();\n }\n\n private toContent(value: AXTextEditorValue) {\n if (value == null || value === '') return '';\n return value;\n }\n}\n","const SCOPE = '@acorex:text-editor';\n\nexport const AX_TEXT_EDITOR_I18N = {\n placeholder: `${SCOPE}.placeholder`,\n tools: {\n undo: `${SCOPE}.tools.undo`,\n redo: `${SCOPE}.tools.redo`,\n bold: `${SCOPE}.tools.bold`,\n italic: `${SCOPE}.tools.italic`,\n underline: `${SCOPE}.tools.underline`,\n strike: `${SCOPE}.tools.strike`,\n code: `${SCOPE}.tools.code`,\n codeBlock: `${SCOPE}.tools.code-block`,\n link: `${SCOPE}.tools.link`,\n image: `${SCOPE}.tools.image`,\n video: `${SCOPE}.tools.video`,\n bulletList: `${SCOPE}.tools.bullet-list`,\n orderedList: `${SCOPE}.tools.ordered-list`,\n ltr: `${SCOPE}.tools.ltr`,\n rtl: `${SCOPE}.tools.rtl`,\n textColor: `${SCOPE}.tools.text-color`,\n highlight: `${SCOPE}.tools.highlight`,\n colors: `${SCOPE}.tools.colors`,\n paragraph: `${SCOPE}.tools.paragraph`,\n alignLeft: `${SCOPE}.tools.align-left`,\n alignCenter: `${SCOPE}.tools.align-center`,\n alignRight: `${SCOPE}.tools.align-right`,\n alignJustify: `${SCOPE}.tools.align-justify`,\n superscript: `${SCOPE}.tools.superscript`,\n subscript: `${SCOPE}.tools.subscript`,\n blockquote: `${SCOPE}.tools.blockquote`,\n horizontalRule: `${SCOPE}.tools.horizontal-rule`,\n zoomIn: `${SCOPE}.tools.zoom-in`,\n zoomOut: `${SCOPE}.tools.zoom-out`,\n },\n blocks: {\n paragraph: `${SCOPE}.blocks.paragraph`,\n heading1: `${SCOPE}.blocks.heading1`,\n heading2: `${SCOPE}.blocks.heading2`,\n heading3: `${SCOPE}.blocks.heading3`,\n blockquote: `${SCOPE}.blocks.blockquote`,\n codeBlock: `${SCOPE}.blocks.code-block`,\n },\n fontSize: {\n label: `${SCOPE}.font-size.label`,\n default: `${SCOPE}.font-size.default`,\n },\n insert: {\n apply: `${SCOPE}.insert.apply`,\n remove: `${SCOPE}.insert.remove`,\n failed: `${SCOPE}.insert.failed`,\n },\n swatches: {\n recent: `${SCOPE}.swatches.recent`,\n text: `${SCOPE}.swatches.text`,\n highlight: `${SCOPE}.swatches.highlight`,\n },\n zoom: {\n fit: `${SCOPE}.zoom.fit`,\n },\n table: {\n insert: `${SCOPE}.table.insert`,\n },\n} as const;\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXTextEditor } from '@acorex/cdk/text-editor';\nimport { AXTranslationService } from '@acorex/core/translation';\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 { AX_TEXT_EDITOR_I18N } from './text-editor-i18n.keys';\nimport { AXTextEditorService } from './text-editor.service';\nimport type { AXTextEditorTiptapEditor } from '@acorex/cdk/text-editor';\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 ngSkipHydration: 'true',\n },\n providers: [\n AXTextEditor,\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 translation = inject(AXTranslationService);\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: () =>\n this.placeHolder() ||\n this.translation.translateSync(AX_TEXT_EDITOR_I18N.placeholder, { waitForLoad: true }),\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(): AXTextEditorTiptapEditor | null {\n return this.editorService.editor();\n }\n\n getEditorService() {\n return this.editorService;\n }\n\n override focus(): void {\n this.editorService.focus();\n }\n\n override blur(): void {\n this.editorService.blur();\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.commitValue(value, true);\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 select=\"ax-text-editor-toolbar\"></ng-content>\n <div class=\"ax-text-editor-content-stack\">\n <ng-content select=\"ax-header\"></ng-content>\n @if (!projectedContent()) {\n <ax-text-editor-content></ax-text-editor-content>\n }\n <ng-content select=\"ax-text-editor-content\"></ng-content>\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n <ng-content select=\"ax-validation-rule\"></ng-content>\n</div>\n<div class=\"ax-error-container\"></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 <div class=\"ax-text-editor-toolbar-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n </div>\n <div class=\"ax-text-editor-toolbar-tools\" axHorizontalScroll [orientation]=\"orientation()\">\n <ng-content></ng-content>\n </div>\n <div class=\"ax-text-editor-toolbar-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n </div>\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-alignment',\n template: `\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'left' }\"\n icon=\"ax-icon-align-left\"\n [label]=\"i18n.tools.alignLeft\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'center' }\"\n icon=\"ax-icon-align-center\"\n [label]=\"i18n.tools.alignCenter\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'right' }\"\n icon=\"ax-icon-align-right\"\n [label]=\"i18n.tools.alignRight\"\n />\n <ax-text-editor-command\n command=\"align\"\n [attrs]=\"{ align: 'justify' }\"\n icon=\"ax-icon-align-justify\"\n [label]=\"i18n.tools.alignJustify\"\n />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.codeBlock\" />\n <ax-text-editor-command command=\"horizontalRule\" icon=\"ax-icon-horizontal-rule\" [label]=\"i18n.tools.horizontalRule\" />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport {\n AX_TEXT_EDITOR_DEFAULT_BACKGROUND_COLORS,\n AX_TEXT_EDITOR_DEFAULT_TEXT_COLORS,\n type AXTextEditorRecentColor,\n} from '@acorex/cdk/text-editor';\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]=\"i18n.tools.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\">{{ i18n.swatches.recent | translate | async }}</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\">{{ i18n.swatches.text | translate | async }}</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\">{{ i18n.swatches.highlight | translate | async }}</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, AXTranslatorPipe, AsyncPipe],\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.textColor\">\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]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.bold\" />\n <ax-text-editor-command command=\"italic\" icon=\"ax-icon-italic\" [label]=\"i18n.tools.italic\" />\n <ax-text-editor-command command=\"underline\" icon=\"ax-icon-under-line\" [label]=\"i18n.tools.underline\" />\n <ax-text-editor-command command=\"strike\" icon=\"ax-icon-strike\" [label]=\"i18n.tools.strike\" />\n <ax-text-editor-command command=\"code\" icon=\"ax-icon-code\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { AXTextEditorCommandComponent } from '../command/text-editor-command.component';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.blocks.paragraph\"\n [disabled]=\"!editorReady()\"\n [attr.title]=\"currentLabel() | translate | async\"\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]=\"i18n.blocks.paragraph\" [data]=\"{ level: null }\" [selected]=\"isParagraphSelected()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading1\" [data]=\"{ level: 1 }\" [selected]=\"isH1()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading2\" [data]=\"{ level: 2 }\" [selected]=\"isH2()\"></ax-button-item>\n <ax-button-item [text]=\"i18n.blocks.heading3\" [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]=\"i18n.tools.ltr\" />\n <ax-text-editor-command command=\"direction\" [attrs]=\"{ direction: 'rtl' }\" icon=\"ax-icon-rtl\" [label]=\"i18n.tools.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 AXTranslatorPipe,\n AsyncPipe,\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 this.i18n.blocks.heading1;\n if (this.isH2()) return this.i18n.blocks.heading2;\n if (this.isH3()) return this.i18n.blocks.heading3;\n return this.i18n.blocks.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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.undo\" />\n <ax-text-editor-command command=\"redo\" icon=\"ax-icon-redo\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.link\"\n [selected]=\"active()\"\n [attr.title]=\"i18n.tools.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]=\"i18n.insert.apply\" (onClick)=\"apply()\"></ax-button>\n <ax-button class=\"ax-xs\" look=\"blank\" [text]=\"i18n.insert.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.bulletList\" />\n <ax-text-editor-command command=\"orderedList\" icon=\"ax-icon-order-list\" [label]=\"i18n.tools.orderedList\" />\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.table.insert\">\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() | translate | async }}</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, AXTranslatorPipe, AsyncPipe],\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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}` : this.i18n.table.insert;\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\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]=\"i18n.tools.superscript\" />\n <ax-text-editor-command command=\"subscript\" icon=\"ax-icon-subscript\" [label]=\"i18n.tools.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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\n}\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 { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport {\n AX_TEXT_EDITOR_ZOOM_MAX,\n AX_TEXT_EDITOR_ZOOM_MIN,\n AX_TEXT_EDITOR_ZOOM_PRESETS,\n} from '@acorex/cdk/text-editor';\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]=\"i18n.tools.zoomOut\"\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]=\"i18n.zoom.fit\" (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]=\"i18n.tools.zoomIn\"\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 protected readonly i18n = AX_TEXT_EDITOR_I18N;\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 { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, viewChild } from '@angular/core';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\nimport { AX_TEXT_EDITOR_FONT_SIZES } from '@acorex/cdk/text-editor';\n\n@Component({\n selector: 'ax-text-editor-font-size',\n template: `\n <ax-dropdown-button\n #dropdown\n class=\"ax-sm ax-text-editor-font-size\"\n look=\"blank\"\n mode=\"dropdown\"\n [text]=\"sizeLabel()\"\n [attr.title]=\"i18n.fontSize.label | translate | async\"\n [disabled]=\"!editorService.can('fontSize')\"\n >\n <ax-button-item-list (mousedown)=\"$event.preventDefault()\">\n <ax-button-item\n [text]=\"i18n.fontSize.default\"\n [selected]=\"currentSize() == null\"\n (onClick)=\"apply(null)\"\n ></ax-button-item>\n @for (size of sizes; track size) {\n <ax-button-item [text]=\"'' + size\" [selected]=\"currentSize() === size\" (onClick)=\"apply(size)\"></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n `,\n styleUrl: './text-editor-font-size.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDropdownButtonComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorFontSizeComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorFontSizeComponent },\n ],\n})\nexport class AXTextEditorFontSizeComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n private readonly translation = inject(AXTranslationService);\n protected readonly i18n = AX_TEXT_EDITOR_I18N;\n protected readonly sizes = AX_TEXT_EDITOR_FONT_SIZES;\n private readonly dropdown = viewChild<AXDropdownButtonComponent>('dropdown');\n\n protected readonly currentSize = computed(() => {\n const raw = this.editorService.fontSize();\n if (!raw) return null;\n const parsed = Number.parseInt(raw, 10);\n return Number.isFinite(parsed) ? parsed : null;\n });\n\n protected readonly sizeLabel = computed(() => {\n const size = this.currentSize();\n return size == null ? this.translation.translateSync(this.i18n.fontSize.default) : String(size);\n });\n\n protected apply(size: number | null): void {\n this.editorService.run('fontSize', size == null ? undefined : { size: `${size}px` });\n this.dropdown()?.close();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXToastService } from '@acorex/components/toast';\nimport {\n AXFileService,\n AXFileTypeRegistryService,\n AX_IMAGE_FILE_TYPE,\n AX_VIDEO_FILE_TYPE,\n} from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AX_TEXT_EDITOR_I18N } from '../text-editor-i18n.keys';\nimport { AXTextEditorService } from '../text-editor.service';\nimport { AXTextEditorSlot } from '../text-editor.slot';\n\n@Component({\n selector: 'ax-text-editor-media',\n template: `\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [text]=\"i18n.tools.image\"\n [disabled]=\"!editorService.can('image')\"\n (onClick)=\"pick('image')\"\n >\n <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>\n </ax-button>\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [text]=\"i18n.tools.video\"\n [disabled]=\"!editorService.can('video')\"\n (onClick)=\"pick('video')\"\n >\n <ax-icon class=\"ax-icon ax-icon-play\"></ax-icon>\n </ax-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXButtonComponent, AXDecoratorIconComponent],\n providers: [\n { provide: AXComponent, useExisting: AXTextEditorMediaComponent },\n { provide: AXTextEditorSlot, useExisting: AXTextEditorMediaComponent },\n ],\n})\nexport class AXTextEditorMediaComponent extends AXTextEditorSlot {\n protected readonly editorService = inject(AXTextEditorService);\n protected readonly i18n = AX_TEXT_EDITOR_I18N;\n private readonly fileService = inject(AXFileService);\n private readonly fileTypes = inject(AXFileTypeRegistryService);\n private readonly toast = inject(AXToastService);\n private readonly translation = inject(AXTranslationService);\n\n constructor() {\n super();\n this.fileTypes.registerTypes([AX_IMAGE_FILE_TYPE, AX_VIDEO_FILE_TYPE]);\n }\n\n protected async pick(kind: 'image' | 'video'): Promise<void> {\n if (!this.editorService.can(kind)) return;\n\n const { accepted, rejected } = await this.fileService.chooseValidated({\n fileType: kind,\n multiple: false,\n });\n\n if (rejected[0]?.errors[0]?.message) {\n this.toast.danger(rejected[0].errors[0].message);\n } else if (rejected.length) {\n this.toast.danger(this.translation.translateSync(this.i18n.insert.failed));\n }\n\n const file = accepted[0];\n if (!file) return;\n\n try {\n const src = await this.fileService.blobToBase64(file);\n this.editorService.run(kind, { src, alt: file.name });\n } catch {\n this.toast.danger(this.translation.translateSync(this.i18n.insert.failed));\n }\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';\nimport { AXTextEditorFontSizeComponent } from './tools/text-editor-font-size.component';\nimport { AXTextEditorMediaComponent } from './tools/text-editor-media.component';\n\nconst COMPONENTS = [\n AXTextEditorComponent,\n AXTextEditorToolbarComponent,\n AXTextEditorContentComponent,\n AXTextEditorCommandComponent,\n AXTextEditorHistoryComponent,\n AXTextEditorHeadingComponent,\n AXTextEditorFontStyleComponent,\n AXTextEditorFontSizeComponent,\n AXTextEditorAlignmentComponent,\n AXTextEditorColorsComponent,\n AXTextEditorColorSwatchesComponent,\n AXTextEditorListComponent,\n AXTextEditorLinkComponent,\n AXTextEditorMediaComponent,\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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"}
|