{"version":3,"file":"acorex-components-wysiwyg.mjs","sources":["../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.service.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.module.ts","../../../../packages/components/wysiwyg/src/acorex-components-wysiwyg.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ElementRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n  selector: 'ax-wysiwyg-toolbar',\n  templateUrl: './wysiwyg-toolbar.component.html',\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygToolbarComponent }],\n  styleUrl: 'wysiwyg-toolbar.component.css',\n})\nexport class AXWysiwygToolbarComponent {\n  toolbar = viewChild<ElementRef<HTMLDivElement>>('toolbar');\n}\n","<div #toolbar class=\"ax-wysiwyg-toolbar-content\">\n  <ng-content select=\"ax-prefix\"></ng-content>\n  <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ElementRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n  selector: 'ax-wysiwyg-view',\n  templateUrl: './wysiwyg-view.component.html',\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygViewComponent }],\n  styleUrl: 'wysiwyg-view.component.css',\n})\nexport class AXWysiwygViewComponent {\n  editor = viewChild<ElementRef<HTMLDivElement>>('editor');\n}\n","<div #editor></div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class WysiwygService {\n  selectedColor = signal('');\n  selectedBackgroundColor = signal('');\n}\n","import {\n  AXComponent,\n  AXFocusableComponent,\n  AXValuableComponent,\n  MXInputBaseValueComponent,\n  MXLookComponent,\n} from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  Component,\n  HostBinding,\n  OnDestroy,\n  PLATFORM_ID,\n  ViewEncapsulation,\n  afterNextRender,\n  contentChild,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';\nimport type Quill from 'quill/quill.d.ts';\nimport { AXWysiwygToolbarComponent } from '../wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygViewComponent } from '../wysiwyg-view/wysiwyg-view.component';\nimport { WysiwygService } from '../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-container',\n  templateUrl: './wysiwyg-container.component.html',\n  styleUrl: './wysiwyg-container.component.css',\n  inputs: ['look', 'readonly', 'disabled', 'value'],\n  outputs: ['onValueChanged'],\n\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '[style.--ax-comp-wysiwyg-initial-line]': 'initialLine() + \"\"',\n  },\n  providers: [\n    WysiwygService,\n    { provide: AXComponent, useExisting: AXWysiwygContainerComponent },\n    { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },\n    { provide: AXValuableComponent, useExisting: AXWysiwygContainerComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXWysiwygContainerComponent),\n      multi: true,\n    },\n  ],\n})\nexport class AXWysiwygContainerComponent\n  extends classes(MXInputBaseValueComponent<string>, MXLookComponent)\n  implements OnDestroy\n{\n  /**\n   * Specifies the placeholder text.\n   *\n   */\n  placeHolder = input<string>();\n\n  /**\n   * Specifies the initial editor height in number of text lines.\n   *\n   */\n  initialLine = input(3);\n\n  private wysiwygService = inject(WysiwygService);\n  protected isQuillLoaded = signal(false);\n  private isEditorClean = signal(true);\n  private wysiwyg = signal<Quill | null>(null);\n  private container = contentChild(AXWysiwygViewComponent);\n  private toolbar = contentChild(AXWysiwygToolbarComponent);\n  private platformId = inject(PLATFORM_ID);\n  private changeHandlerTimer: any = null;\n\n  #init = afterNextRender(async () => {\n    if (!isPlatformBrowser(this.platformId)) return;\n\n    const Quill = (await import('quill')).default;\n    const icons = Quill.import('ui/icons') as any;\n\n    icons['bold'] = '<ax-icon class=\"ax-icon ax-icon-bold\"></ax-icon>';\n    icons['italic'] = '<ax-icon class=\"ax-icon ax-icon-italic\"></ax-icon>';\n    icons['underline'] = '<ax-icon class=\"ax-icon ax-icon-under-line\"></ax-icon>';\n    icons['strike'] = '<ax-icon class=\"ax-icon ax-icon-strike\"></ax-icon>';\n    icons['code-block'] = '<ax-icon class=\"ax-icon ax-icon-code\"></ax-icon>';\n    icons['color'] = '<ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>';\n    icons['background'] = '<ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>';\n    icons.list['ordered'] = '<ax-icon class=\"ax-icon ax-icon-order-list\"></ax-icon>';\n    icons.list['bullet'] = '<ax-icon class=\"ax-icon ax-icon-un-order-list\"></ax-icon>';\n    icons['image'] = ' <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>';\n    icons['link'] = '<ax-icon class=\"ax-icon ax-icon-link\"></ax-icon>';\n    icons['video'] = '<ax-icon class=\"ax-icon ax-icon-attach\"></ax-icon>';\n    icons.direction[''] = '<ax-icon class=\"ax-icon ax-icon-paragraph \"> </ax-icon>';\n    icons.direction['rtl'] = '';\n    icons.align[''] = '<ax-icon class=\"ax-icon ax-icon-align-left \"></ax-icon>';\n    icons.align['center'] = '<ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>';\n    icons.align['justify'] = '<ax-icon class=\"ax-icon ax-icon-align-justify\"></ax-icon>';\n    icons.align['right'] = '<ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>';\n    icons.undo = '<ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>';\n    icons.redo = ' <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>';\n\n    await import('quill').then(async (e) => {\n      const hljs = (await import('highlight.js')).default;\n      const quill = new e.default(this.container().editor().nativeElement, {\n        modules: {\n          syntax: { hljs },\n          toolbar: {\n            container: this.toolbar()?.toolbar().nativeElement,\n            handlers: {\n              undo() {\n                (quill.getModule('history') as any).undo();\n              },\n              redo() {\n                (quill.getModule('history') as any).redo();\n              },\n              color: (value) => {\n                this.wysiwygService.selectedColor.set(value);\n                if (value) quill.format('color', value);\n                else quill.format('color', false);\n              },\n              background: (value) => {\n                this.wysiwygService.selectedBackgroundColor.set(value);\n                if (value) quill.format('background', value);\n                else quill.format('background', false);\n              },\n            },\n          },\n          history: {\n            delay: 500, // ms between stack snapshots\n            maxStack: 200, // undo/redo depth\n            userOnly: true, // only record user changes (not API changes)\n          },\n        },\n\n        theme: 'snow',\n      });\n      this.wysiwyg.set(quill);\n      this.isQuillLoaded.set(true);\n    });\n\n    this.disabledChange.subscribe((disabled) => {\n      if (disabled) {\n        this.wysiwyg().disable();\n      } else {\n        this.wysiwyg().enable();\n      }\n    });\n\n    this.readonlyChange.subscribe((readonly) => {\n      if (readonly) {\n        this.wysiwyg().disable();\n      } else {\n        this.wysiwyg().enable();\n      }\n    });\n  });\n\n  #effect1 = effect(() => {\n    if (!this.isQuillLoaded()) return;\n    if (this.placeHolder()) {\n      this.wysiwyg().root.setAttribute('data-placeholder', this.placeHolder());\n    } else {\n      this.wysiwyg().root.setAttribute('data-placeholder', 'Write Your Message ...');\n    }\n  });\n\n  #effect2 = effect(() => {\n    if (this.isQuillLoaded() && this.value) this.setWysiwygContent(this.value);\n  });\n\n  #effect3 = effect(() => {\n    if (this.isQuillLoaded()) {\n      this.wysiwyg().on('text-change', this.changeHandler.bind(this));\n      this.wysiwyg().on('selection-change', (range, oldRange) => {\n        if (this.disabled) return;\n        if (range && !oldRange) {\n          this.emitOnFocusEvent();\n        } else if (!range && oldRange) {\n          this.emitOnBlurEvent();\n        }\n        if (range) {\n          const format = this.wysiwyg().getFormat(range);\n          this.wysiwygService.selectedColor.set(format['color'] as string);\n          this.wysiwygService.selectedBackgroundColor.set(format['background'] as string);\n        }\n      });\n    }\n  });\n\n  protected changeHandler() {\n    if (this.disabled) return;\n\n    if (this.changeHandlerTimer) {\n      clearTimeout(this.changeHandlerTimer);\n    }\n\n    this.changeHandlerTimer = setTimeout(() => {\n      const value = this.wysiwyg()?.root.innerHTML;\n\n      if (value === '<p><br></p>' || !value) {\n        this.commitValue(null);\n        if (this.isEditorClean()) return;\n        this.isEditorClean.set(true);\n      } else {\n        const delta = this.wysiwyg()?.getContents().ops;\n\n        const converter = new QuillDeltaToHtmlConverter(delta, {\n          inlineStyles: true,\n          allowBackgroundClasses: true,\n        });\n\n        const html = converter.convert();\n        this.commitValue(html, true);\n        if (!this.isEditorClean()) return;\n        this.isEditorClean.set(false);\n      }\n    }, 300);\n  }\n\n  /** @ignore */\n  override ngOnDestroy(): void {\n    this.wysiwyg()?.off('text-change', this.changeHandler);\n    this.disabledChange.unsubscribe();\n  }\n\n  /**\n   * Focuses the component.\n   *\n   * @returns void - No return value. The component gains focus.\n   */\n  override focus() {\n    this.wysiwyg().focus();\n  }\n\n  /**\n   * Removes focus from the component.\n   *\n   * @returns void - No return value. The component loses focus.\n   */\n  override blur() {\n    this.wysiwyg().blur();\n  }\n\n  /**\n   * Checks if the component is focused or has any focused element.\n   *\n   * @returns boolean - True if the component has focus.\n   */\n  override hasFocus(): boolean {\n    return super.hasFocus();\n  }\n\n  /**\n   * Sets the disabled state of the component.\n   *\n   * @param isDisabled - Whether the component should be disabled.\n   * @returns void - No return value.\n   */\n  // override setDisabledState(isDisabled: boolean): void {\n  //   super.setDisabledState(isDisabled);\n  // }\n\n  public setWysiwygContent(value: string) {\n    const quill = this.wysiwyg();\n    const delta = quill.clipboard.convert({ html: value });\n    quill.setContents(delta);\n  }\n\n  @HostBinding('attr.name')\n  private get __hostName(): string {\n    return this.name;\n  }\n\n  @HostBinding('class')\n  get __hostClass(): string {\n    const style = this.disabled ? 'ax-disable' : '';\n    return style;\n  }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n  <div class=\"ax-quill-container\">\n    <ng-content></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 } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-alignment',\n  templateUrl: './wysiwyg-alignment.component.html',\n\n  imports: [],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygAlignmentComponent }],\n})\nexport class AXWysiwygAlignmentComponent {}\n","<span class=\"ql-formats\">\n  <select class=\"ql-align\"></select>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorColorIndicatorComponent } from '@acorex/components/decorators';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { WysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-colors',\n  templateUrl: './wysiwyg-colors.component.html',\n\n  encapsulation: ViewEncapsulation.None,\n  imports: [AXDecoratorColorIndicatorComponent],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygColorsComponent }],\n})\nexport class AXWysiwygColorsComponent {\n  protected wysiwygService = inject(WysiwygService);\n}\n","<div class=\"flex\">\n  <div class=\"ql-formats\">\n    <ax-color-indicator [previewColor]=\"wysiwygService.selectedColor()\"></ax-color-indicator>\n    <select class=\"ql-color\"></select>\n  </div>\n  <div class=\"ql-formats\">\n    <ax-color-indicator [previewColor]=\"wysiwygService.selectedBackgroundColor()\"></ax-color-indicator>\n    <select class=\"ql-background\"></select>\n  </div>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-font-style',\n  templateUrl: './wysiwyg-font-style.component.html',\n  imports: [],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygFontStyleComponent }],\n})\nexport class AXWysiwygFontStyleComponent {}\n","<div class=\"flex\">\n  <span class=\"ql-formats\">\n    <button class=\"ql-bold\" title=\"Bold\"></button>\n    <button class=\"ql-italic\" title=\"Italic\"></button>\n    <button class=\"ql-underline\" title=\"Underline\"></button>\n    <button class=\"ql-strike\" title=\"Strikethrough\"></button>\n    <button class=\"ql-code-block\" title=\"Code block\"></button>\n  </span>\n\n  <span class=\"ql-formats\">\n    <select class=\"ql-size\">\n      <option value=\"small\"></option>\n      <option selected></option>\n      <option value=\"large\"></option>\n      <option value=\"huge\"></option>\n    </select>\n  </span>\n\n  <span class=\"ql-formats\">\n    <select class=\"ql-header\">\n      <option value=\"1\">H1</option>\n      <option value=\"2\">H2</option>\n      <option value=\"3\">H3</option>\n      <option value=\"4\">H4</option>\n      <option value=\"5\">H5</option>\n      <option value=\"6\">H6</option>\n      <option selected></option>\n    </select>\n  </span>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-history',\n  templateUrl: './wysiwyg-history.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygHistoryComponent }],\n})\nexport class AXWysiwygHistoryComponent {}\n","<span class=\"ql-formats\">\n  <button class=\"ql-undo\"></button>\n  <button class=\"ql-redo\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-insert',\n  templateUrl: './wysiwyg-insert.component.html',\n\n  encapsulation: ViewEncapsulation.None,\n  imports: [],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygInsertComponent }],\n})\nexport class AXWysiwygInsertComponent {}\n","<span class=\"ql-formats\">\n  <button class=\"ql-image\" title=\"Insert image\"></button>\n  <button class=\"ql-video\" title=\"Insert video\"></button>\n  <button class=\"ql-link\" title=\"Insert link\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n  selector: 'ax-wysiwyg-list',\n  templateUrl: './wysiwyg-list.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [],\n\n  providers: [{ provide: AXComponent, useExisting: AXWysiwygListComponent }],\n})\nexport class AXWysiwygListComponent {}\n","<span class=\"ql-formats\">\n  <button class=\"ql-list\" value=\"ordered\" title=\"Ordered list\"></button>\n  <button class=\"ql-list\" value=\"bullet\" title=\"Bulleted list\"></button>\n  <button class=\"ql-direction\" value=\"rtl\" title=\"Right-to-left\"></button>\n</span>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXWysiwygContainerComponent } from './wysiwyg-container/wysiwyg-container.component';\nimport { AXWysiwygToolbarComponent } from './wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygAlignmentComponent } from './wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component';\nimport { AXWysiwygColorsComponent } from './wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component';\nimport { AXWysiwygFontStyleComponent } from './wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component';\nimport { AXWysiwygHistoryComponent } from './wysiwyg-tools/wysiwyg-history/wysiwyg-history.component';\nimport { AXWysiwygInsertComponent } from './wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component';\nimport { AXWysiwygListComponent } from './wysiwyg-tools/wysiwyg-list/wysiwyg-list.component';\nimport { AXWysiwygViewComponent } from './wysiwyg-view/wysiwyg-view.component';\n\nconst COMPONENT = [\n  AXWysiwygContainerComponent,\n  AXWysiwygViewComponent,\n  AXWysiwygAlignmentComponent,\n  AXWysiwygColorsComponent,\n  AXWysiwygFontStyleComponent,\n  AXWysiwygHistoryComponent,\n  AXWysiwygInsertComponent,\n  AXWysiwygListComponent,\n  AXWysiwygToolbarComponent,\n];\n\nconst MODULES = [\n  AXButtonModule,\n  AXDecoratorModule,\n  AXSelectBoxModule,\n  FormsModule,\n  AXColorPaletteModule,\n  AXPopoverModule,\n  AXTextBoxModule,\n];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXWysiwygModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}