{"version":3,"file":"ngx-simple-text-editor.mjs","sources":["../../../projects/ngx-simple-text-editor/src/lib/models/button.ts","../../../projects/ngx-simple-text-editor/src/lib/constants/editor-buttons.ts","../../../projects/ngx-simple-text-editor/src/lib/services/command.service.ts","../../../projects/ngx-simple-text-editor/src/lib/directives/action.directive.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-button/editor-button.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-button/editor-button.component.html","../../../projects/ngx-simple-text-editor/src/lib/directives/ng-model-change-debounced.directive.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-color-picker/editor-color-picker.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-color-picker/editor-color-picker.component.html","../../../projects/ngx-simple-text-editor/src/lib/components/editor-input/editor-input.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-input/editor-input.component.html","../../../projects/ngx-simple-text-editor/src/lib/components/editor-select/editor-select.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-select/editor-select.component.html","../../../projects/ngx-simple-text-editor/src/lib/components/editor-separator/editor-separator.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-separator/editor-separator.component.html","../../../projects/ngx-simple-text-editor/src/lib/directives/dom-modify.directive.ts","../../../projects/ngx-simple-text-editor/src/lib/directives/selection-change.directive.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-dropdown/editor-dropdown.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor-dropdown/editor-dropdown.component.html","../../../projects/ngx-simple-text-editor/src/lib/components/editor/editor.component.ts","../../../projects/ngx-simple-text-editor/src/lib/components/editor/editor.component.html","../../../projects/ngx-simple-text-editor/src/lib/ngx-simple-text-editor.module.ts","../../../projects/ngx-simple-text-editor/src/public-api.ts","../../../projects/ngx-simple-text-editor/src/ngx-simple-text-editor.ts"],"sourcesContent":["import {ExecCommand} from './exec-command';\n\nexport enum ToolbarItemType {\n  Separator,\n  Button,\n  Select,\n  Color,\n  Input,\n  Dropdown,\n}\n\nexport interface EditorButton extends ToolbarBaseItem {\n  type: ToolbarItemType.Button;\n  command: ExecCommand;\n  icon: string;\n  title?: string;\n}\n\nexport interface EditorColor extends ToolbarBaseItem {\n  type: ToolbarItemType.Color;\n  command: ExecCommand;\n  icon: string;\n  title?: string;\n}\n\nexport interface EditorInput extends ToolbarBaseItem {\n  type: ToolbarItemType.Input;\n  command: ExecCommand;\n  icon: string;\n  text: string;\n  title?: string;\n  label?: string;\n  transform?: (val: string) => string;\n}\n\nexport interface EditorSelect extends ToolbarBaseItem {\n  type: ToolbarItemType.Select;\n  command: ExecCommand;\n  items: { value: number | string, label: string }[];\n  title?: string;\n}\n\nexport interface EditorDropdown extends ToolbarBaseItem {\n  type: ToolbarItemType.Dropdown;\n  label: string;\n  items: { command: ExecCommand, value: string, label: string }[];\n  title?: string;\n}\n\nexport interface Separator extends ToolbarBaseItem {\n  type: ToolbarItemType.Separator;\n}\n\ninterface ToolbarBaseItem {\n  type: ToolbarItemType;\n}\n\nexport type ToolbarItem = EditorDropdown | EditorInput | EditorColor | EditorSelect | EditorButton | Separator;\n","import {ExecCommand} from '../models/exec-command';\nimport {\n  EditorButton,\n  EditorColor,\n  EditorDropdown,\n  EditorInput,\n  EditorSelect,\n  Separator,\n  ToolbarItem,\n  ToolbarItemType\n} from '../models/button';\n\nexport const UNDO_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.undo, icon: 'fas fa-undo', title: 'undo'};\nexport const REDO_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.redo, icon: 'fas fa-redo', title: 'redo'};\nexport const REMOVE_FORMAT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.removeFormat, icon: 'fas fa-remove-format', title: 'remove format'};\nexport const SEPARATOR: Separator = {type: ToolbarItemType.Separator};\nexport const BOLD_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.bold, icon: 'fas fa-bold', title: 'bold'};\nexport const ITALIC_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.italic, icon: 'fas fa-italic', title: 'italic'};\nexport const UNDERLINE_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.underline, icon: 'fas fa-underline', title: 'underline'};\nexport const STRIKE_THROUGH_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.strikeThrough, icon: 'fas fa-strikethrough', title: 'strikethrough'};\nexport const JUSTIFY_LEFT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.justifyLeft, icon: 'fas fa-align-left', title: 'align left'};\nexport const JUSTIFY_CENTER_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.justifyCenter, icon: 'fas fa-align-center', title: 'align center'};\nexport const JUSTIFY_RIGHT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.justifyRight, icon: 'fas fa-align-right', title: 'align right'};\nexport const JUSTIFY_FULL_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.justifyFull, icon: 'fas fa-align-justify', title: 'align justify'};\nexport const ORDERED_LIST_BUTTON: EditorButton =\n    {type: ToolbarItemType.Button, command: ExecCommand.insertOrderedList, icon: 'fas fa-list-ol', title: 'ordered list'};\nexport const UNORDERED_LIST_BUTTON: EditorButton =\n    {type: ToolbarItemType.Button, command: ExecCommand.insertUnorderedList, icon: 'fas fa-list-ul', title: 'unordered list'};\nexport const INDENT_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.indent, icon: 'fas fa-indent', title: 'indent'};\nexport const OUTDENT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.outdent, icon: 'fas fa-outdent', title: 'outdent'};\nexport const SUBSCRIPT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.subscript, icon: 'fas fa-subscript', title: 'subscript'};\nexport const SUPERSCRIPT_BUTTON: EditorButton =\n  {type: ToolbarItemType.Button, command: ExecCommand.superscript, icon: 'fas fa-superscript', title: 'superscript'};\nexport const FONT_SIZE_SELECT: EditorSelect = {\n  type: ToolbarItemType.Select, command: ExecCommand.fontSize, title: 'font size', items: [\n    {value: 1, label: '1'},\n    {value: 2, label: '2'},\n    {value: 3, label: '3'},\n    {value: 4, label: '4'},\n    {value: 5, label: '5'},\n    {value: 6, label: '6'},\n    {value: 7, label: '7'},\n  ]\n};\nexport const LINK_INPUT: EditorInput =\n  {type: ToolbarItemType.Input, command: ExecCommand.createLink, icon: 'fas fa-link', text: 'Create link', title: 'create link', label: 'Create link'};\nexport const UNLINK_BUTTON: EditorButton = {type: ToolbarItemType.Button, command: ExecCommand.unlink, icon: 'fas fa-unlink', title: 'unlink'};\nexport const FORE_COLOR: EditorColor =\n  {type: ToolbarItemType.Color, command: ExecCommand.foreColor, icon: 'fas fa-palette', title: 'font color'};\nexport const IMAGE_INPUT: EditorInput =\n  {type: ToolbarItemType.Input, command: ExecCommand.insertImage, icon: 'fas fa-image', text: 'Add image', title: 'add image', label: 'Create image from link'};\nexport const CUSTOM: EditorDropdown = {\n  type: ToolbarItemType.Dropdown, label: 'Custom', title: 'test custom', items: [\n    {command: ExecCommand.insertHTML, value: '<b>This is bold<b>', label: 'Custom bold text'},\n    {command: ExecCommand.italic, value: null, label: 'Make Italic'},\n  ]\n};\n\nexport const ST_BUTTONS: ToolbarItem[] = [\n  UNDO_BUTTON,\n  REDO_BUTTON,\n  REMOVE_FORMAT_BUTTON,\n  SEPARATOR,\n  BOLD_BUTTON,\n  ITALIC_BUTTON,\n  UNDERLINE_BUTTON,\n  STRIKE_THROUGH_BUTTON,\n  SEPARATOR,\n  JUSTIFY_LEFT_BUTTON,\n  JUSTIFY_CENTER_BUTTON,\n  JUSTIFY_RIGHT_BUTTON,\n  JUSTIFY_FULL_BUTTON,\n  SEPARATOR,\n  ORDERED_LIST_BUTTON,\n  UNORDERED_LIST_BUTTON,\n  SEPARATOR,\n  INDENT_BUTTON,\n  OUTDENT_BUTTON,\n  SEPARATOR,\n  SUBSCRIPT_BUTTON,\n  SUPERSCRIPT_BUTTON,\n  SEPARATOR,\n  FONT_SIZE_SELECT,\n  LINK_INPUT,\n  UNLINK_BUTTON,\n  SEPARATOR,\n  IMAGE_INPUT,\n  FORE_COLOR,\n];\n","import {Inject, Injectable, DOCUMENT} from '@angular/core';\nimport {\n  EditorButton,\n  EditorColor,\n  EditorSelect,\n  ToolbarItem,\n  ToolbarItemType\n} from '../models/button';\n\n\n@Injectable()\nexport class CommandService {\n\n  constructor(@Inject(DOCUMENT) private readonly document: Document) { }\n\n  private isCommandWithValue(item: ToolbarItem): item is (EditorSelect | EditorColor) {\n    return item.type === ToolbarItemType.Select || item.type === ToolbarItemType.Color;\n  }\n\n  private isCommandWithState(item: ToolbarItem): item is EditorButton {\n    return item.type === ToolbarItemType.Button;\n  }\n\n  getQueryCommandState(buttons: ToolbarItem[]): {[key: string]: string | number | boolean} {\n    return buttons\n      .filter(item => this.isCommandWithValue(item) || this.isCommandWithState(item))\n      .reduce((acc, curr: (EditorSelect | EditorColor | EditorButton)) => ({\n        ...acc,\n        [curr.command]: this.isCommandWithValue(curr) ?\n          this.document.queryCommandValue(String(curr.command)) :\n          this.document.queryCommandState(String(curr.command)),\n      }), {});\n  }\n\n  execCommand(command: string, value?: string): void {\n    this.document.execCommand(command, false, value ? String(value) : value);\n  }\n}\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n    selector: '[stAction]',\n    standalone: false\n})\nexport class ActionDirective {\n\n  @Output('stAction') action = new EventEmitter<KeyboardEvent | MouseEvent>();\n\n  @HostListener('keydown.enter', ['$event'])\n  enterDown(event: KeyboardEvent) {\n    this.stopEvent(event);\n  }\n\n  @HostListener('keyup.enter', ['$event'])\n  enterUp(event: KeyboardEvent) {\n    this.performAction(event);\n  }\n\n  @HostListener('click', ['$event'])\n  click(event: MouseEvent): void {\n    this.performAction(event);\n  }\n\n  private stopEvent(event: KeyboardEvent | MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  private performAction(event: KeyboardEvent | MouseEvent): void {\n    this.stopEvent(event);\n    this.action.emit(event);\n  }\n\n}\n","import {Component, Input, EventEmitter, Output} from '@angular/core';\nimport {EditorButton} from '../../models/button';\nimport {ExecCommand} from '../../models/exec-command';\n\n@Component({\n    selector: 'st-button',\n    templateUrl: './editor-button.component.html',\n    styleUrls: ['./editor-button.component.scss'],\n    standalone: false\n})\nexport class EditorButtonComponent {\n\n  @Input() button: EditorButton;\n  @Input() state: string | number | boolean;\n  @Output() command = new EventEmitter<ExecCommand>();\n\n  onCommand(command: ExecCommand): void {\n    this.command.emit(command);\n  }\n\n}\n","<button class=\"st-button st-toolbar-item\"\n        [title]=\"button?.title || ''\"\n        (stAction)=\"onCommand(button?.command)\"\n        [class.active]=\"state\">\n  <i [class]=\"button?.icon\"></i>\n</button>\n","import {Directive, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\nimport {NgModel} from \"@angular/forms\";\nimport {Subscription} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, skip} from \"rxjs/operators\";\n\nconst DEBOUNCE_TIME_MS = 100;\n\n@Directive({\n    selector: '[stNgModelChangeDebounced]',\n    standalone: false\n})\nexport class NgModelChangeDebouncedDirective implements OnInit, OnDestroy {\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  @Output() stNgModelChangeDebounced = new EventEmitter<any>();\n  private subscription: Subscription;\n\n  constructor(private readonly ngModel: NgModel) {}\n\n  ngOnInit(): void {\n    this.subscription = this.ngModel.control.valueChanges.pipe(\n      skip(1),\n      distinctUntilChanged(),\n      debounceTime(DEBOUNCE_TIME_MS)\n    ).subscribe((value) => this.stNgModelChangeDebounced.emit(value));\n  }\n\n  ngOnDestroy(): void {\n    this.subscription.unsubscribe();\n  }\n\n}\n","import {Component, Input, Output, EventEmitter} from '@angular/core';\nimport {EditorColor} from '../../models/button';\nimport {ExecCommand} from '../../models/exec-command';\n\nconst DEFAULT_COLOR = '#000000';\n\n@Component({\n    selector: 'st-color-picker',\n    templateUrl: './editor-color-picker.component.html',\n    styleUrls: ['./editor-color-picker.component.scss'],\n    standalone: false\n})\nexport class EditorColorPickerComponent {\n\n  @Input() button: EditorColor;\n  @Input() state: string | number | boolean;\n  @Output() command = new EventEmitter<{command: ExecCommand, value: string}>();\n\n  onCommand(command: ExecCommand, value: string): void {\n    this.command.emit({command, value});\n  }\n\n  rgbStringToHex(rgb: string | boolean | number): string {\n    const match = String(rgb).match(/rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/);\n    return !match ? DEFAULT_COLOR : '#' + [match[1], match[2], match[3]].map(x => {\n      const hex = Number(x).toString(16);\n      return hex.length === 1 ? '0' + hex : hex;\n    }).join('');\n  }\n\n}\n","<button class=\"st-button st-toolbar-item\" [title]=\"button?.title || ''\" (stAction)=\"colorPicker.showPicker()\">\n  {{rgbStringToHex(state)}}\n  <input #colorPicker class=\"st-color-picker\" type=\"color\" [ngModel]=\"rgbStringToHex(state)\" tabindex=\"-1\"\n         (stNgModelChangeDebounced)=\"onCommand(button?.command, $event)\">\n  <i [class]=\"button?.icon\" [style.color]=\"state\"></i>\n</button>\n","import {Component, EventEmitter, Output, Input, HostListener, ElementRef, ViewChild, Inject, DOCUMENT} from '@angular/core';\nimport {EditorInput} from '../../models/button';\nimport {ExecCommand} from '../../models/exec-command';\n\n\nconst APPROX_WIDTH_THRESHOLD = 278;\nconst MARGIN_OFFSET = -150;\n\n@Component({\n    selector: 'st-input',\n    templateUrl: './editor-input.component.html',\n    styleUrls: ['./editor-input.component.scss'],\n    standalone: false\n})\nexport class EditorInputComponent {\n\n  @Input() button: EditorInput;\n  @Input() state: string | number | boolean;\n  @Output() command = new EventEmitter<{ command: ExecCommand, value: string }>();\n  @ViewChild('input', {static: false}) inputElement: ElementRef;\n  @ViewChild('window', {static: false}) windowElement: ElementRef;\n  showInputWindow = false;\n  value = '';\n  margin = 0; // workaround fox window width computing\n  opacity = 0; // workaround fox window width computing\n  selectionRange: Range;\n\n  constructor(private readonly element: ElementRef,\n              @Inject(DOCUMENT) private readonly document: Document) {\n  }\n\n  onCommand(): void {\n    if (this.value) {\n      if (this.selectionRange) {\n        this.loadSelection();\n      }\n      this.closeInputWindow();\n      this.command.emit({\n        command: this.button.command,\n        value: this.button.transform ? this.button.transform(this.value) : this.value\n      });\n      this.value = '';\n    }\n  }\n\n  openInputWindow(): void {\n    this.saveSelection();\n    this.showInputWindow = true;\n    setTimeout(() => {\n      this.margin = this.windowElement.nativeElement.getBoundingClientRect().width < APPROX_WIDTH_THRESHOLD ? MARGIN_OFFSET : 0;\n      this.opacity = 1;\n      this.inputElement.nativeElement.focus();\n    });\n  }\n\n  closeInputWindow(): void {\n    this.showInputWindow = false;\n    this.margin = 0;\n    this.opacity = 0;\n  }\n\n  @HostListener('document:click', ['$event'])\n  outsideClick($event: MouseEvent): void {\n    if (!this.element.nativeElement.contains($event.target) && this.showInputWindow) {\n      this.closeInputWindow();\n    }\n  }\n\n  private loadSelection(): void {\n    const selection = this.document.defaultView.getSelection();\n    selection.removeAllRanges();\n    selection.addRange(this.selectionRange);\n    this.selectionRange = null;\n  }\n\n  private saveSelection(): void {\n    const selection = this.document.defaultView.getSelection();\n    this.selectionRange = selection.rangeCount === 0 ? null : selection.getRangeAt(0);\n  }\n\n}\n","<st-button [button]=\"button\" [state]=\"state\" (command)=\"openInputWindow()\"></st-button>\n@if (showInputWindow) {\n  <div #window class=\"st-input-window\" (keyup.escape)=\"closeInputWindow()\" [style.margin-left.px]=\"margin\" [style.opacity]=\"opacity\" tabindex=\"0\">\n    @if (button?.label) {\n      <label class=\"st-input-label\" [for]=\"button?.label\">{{button?.label}}</label>\n    }\n    <div>\n      <input #input class=\"st-input-input\" type=\"text\" [id]=\"button?.label\" [title]=\"button?.label\" [(ngModel)]=\"value\">\n      <button class=\"st-input-button\" (stAction)=\"onCommand()\">Confirm</button>\n    </div>\n  </div>\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\nimport {EditorSelect} from '../../models/button';\nimport {ExecCommand} from '../../models/exec-command';\n\n@Component({\n    selector: 'st-select',\n    templateUrl: './editor-select.component.html',\n    styleUrls: ['./editor-select.component.scss'],\n    standalone: false\n})\nexport class EditorSelectComponent implements OnInit {\n\n  @Input() button: EditorSelect;\n  @Input() state: string | number | boolean;\n  @Output() command = new EventEmitter<{command: ExecCommand, value: string}>();\n\n  ngOnInit(): void {\n    if (!this.state && this.button.items.length) {\n      this.state = this.button.items[0].value;\n    }\n  }\n\n  onCommand(command: ExecCommand, value: string): void {\n    this.command.emit({command, value});\n  }\n\n}\n","<select [ngModel]=\"state\" [title]=\"button?.title || ''\" (ngModelChange)=\"onCommand(button?.command, $event)\" class=\"st-select st-toolbar-item\">\n  @for (i of button?.items; track i) {\n    <option [value]=\"i.value\">{{i.label}}</option>\n  }\n</select>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'st-separator',\n    templateUrl: './editor-separator.component.html',\n    styleUrls: ['./editor-separator.component.scss'],\n    standalone: false\n})\nexport class EditorSeparatorComponent { }\n","<div class=\"st-divider\">&nbsp;</div>\n","import {Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\n\nconst MUTATION_OBSERVER_CONFIG = {\n  attributes: true,\n  childList: true,\n  subtree: true,\n  characterData: true\n};\n\n@Directive({\n    selector: '[stDomModify]',\n    standalone: false\n})\nexport class DomModifyDirective implements OnInit, OnDestroy {\n\n  @Output('stDomModify') domModify = new EventEmitter();\n  observer: MutationObserver;\n\n  constructor(private readonly element: ElementRef) { }\n\n  ngOnInit(): void {\n    this.observer = new MutationObserver(() => {\n      this.domModify.emit();\n    });\n\n    this.observer.observe(this.element.nativeElement, MUTATION_OBSERVER_CONFIG);\n  }\n\n  ngOnDestroy(): void {\n    this.observer.disconnect();\n  }\n\n}\n","import {Directive, ElementRef, EventEmitter, HostListener, Inject, Output, DOCUMENT} from '@angular/core';\n\n\n@Directive({\n    selector: '[stSelectionChange]',\n    standalone: false\n})\nexport class SelectionChangeDirective {\n\n  @Output('stSelectionChange') selectionChange = new EventEmitter<void>();\n\n  constructor(@Inject(DOCUMENT) private readonly document: Document,\n              private readonly element: ElementRef) { }\n\n  @HostListener('document:selectionchange')\n  selectionchange(): void {\n    if (this.document.activeElement === this.element.nativeElement) {\n      this.selectionChange.emit();\n    }\n  }\n\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild} from '@angular/core';\nimport {EditorDropdown} from '../../models/button';\nimport {ExecCommand} from '../../models/exec-command';\n\n@Component({\n    selector: 'st-dropdown',\n    templateUrl: './editor-dropdown.component.html',\n    styleUrls: ['./editor-dropdown.component.scss'],\n    standalone: false\n})\nexport class EditorDropdownComponent implements AfterViewInit {\n\n  @ViewChild('select') selectElement: ElementRef;\n  @Input() set button(val: EditorDropdown) {\n    this.label = val.label;\n    if (this.width) {\n      this._button = val;\n    } else {\n      this._tempButton = val;\n    }\n  }\n  get button(): EditorDropdown {\n    return this._button;\n  }\n  width: number;\n  label = '';\n  _button: EditorDropdown;\n  _tempButton: EditorDropdown; // workaround how to compute width of button before add options\n  @Output() command = new EventEmitter<{ command: ExecCommand, value: string }>();\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.width = this.selectElement.nativeElement.getBoundingClientRect().width;\n      this._button = this._tempButton;\n    });\n  }\n\n  onCommand({value: label}: {value: string}): void {\n    const {command, value} = this.button.items.find(item => item.label === label);\n    this.command.emit({command, value});\n  }\n\n}\n","<select #select [title]=\"button?.title || ''\" (change)=\"onCommand($event.target); select.value = ''\" class=\"st-select st-toolbar-item\" [style.width.px]=\"this.width\">\n  <option value=\"\" disabled selected hidden>{{label}}</option>\n  @for (i of button?.items; track i) {\n    <option [value]=\"i.label\">{{i.label}}</option>\n  }\n</select>\n","import {AfterViewInit, Component, ElementRef, Input, ViewChild} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {ST_BUTTONS} from '../../constants/editor-buttons';\nimport {ToolbarItem, ToolbarItemType} from '../../models/button';\nimport {CommandService} from '../../services/command.service';\nimport {EditorConfig} from '../../models/config';\n\nconst DEFAULT_CONFIG: EditorConfig = {\n  placeholder: '',\n  buttons: ST_BUTTONS,\n};\n\n@Component({\n    selector: 'st-editor',\n    templateUrl: './editor.component.html',\n    styleUrls: ['./editor.component.scss'],\n    providers: [\n        { provide: NG_VALUE_ACCESSOR, useExisting: EditorComponent, multi: true },\n        CommandService\n    ],\n    standalone: false\n})\nexport class EditorComponent implements AfterViewInit, ControlValueAccessor {\n\n  @Input() set config(val: EditorConfig) {\n    this._config = {...DEFAULT_CONFIG, ...val};\n  }\n  get config(): EditorConfig {\n    return this._config;\n  }\n  _config: EditorConfig = DEFAULT_CONFIG;\n  @ViewChild('contentEditable') contentEditable: ElementRef;\n  content = '';\n  toolbarItemType = ToolbarItemType;\n  isDisabled = false;\n  onChangeFn: (val: string) => void;\n  onTouchedFn: () => void;\n  queryCommandState: {[key: string]: string | number | boolean} = {};\n\n  constructor(private readonly commandService: CommandService) { }\n\n  ngAfterViewInit(): void {\n    this.updateContentEditable();\n  }\n\n  writeValue(val: string): void {\n    this.content = val;\n    this.updateContentEditable();\n  }\n\n  registerOnChange(fn: (val: string) => void): void {\n    this.onChangeFn = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouchedFn = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n  }\n\n  domModify(): void {\n    if (this.contentEditable) {\n      this.onChangeFn(this.contentEditable.nativeElement.innerHTML);\n    }\n  }\n\n  execCommand(command: string, value?: string): void {\n    this.contentEditable.nativeElement.focus();\n    this.commandService.execCommand(command, value);\n    this.fetchQueryCommandState();\n  }\n\n  fetchQueryCommandState(): void {\n    this.queryCommandState = this.commandService.getQueryCommandState(this.config.buttons);\n  }\n\n  trackBy(_, item: ToolbarItem): ToolbarItemType {\n    return item.type;\n  }\n\n  private updateContentEditable(): void {\n    if (this.contentEditable) {\n      this.contentEditable.nativeElement.innerHTML = this.content;\n    }\n  }\n\n}\n","<div class=\"st-editor-container\" [class.disabled]=\"isDisabled\">\n  <div class=\"st-toolbar\" tabIndex=\"0\">\n    <ng-container *ngFor=\"let item of config.buttons; trackBy:trackBy\" [ngSwitch]=\"item.type\">\n      <st-separator *ngSwitchCase=\"toolbarItemType.Separator\"></st-separator>\n      <st-button *ngIf=\"item.type === toolbarItemType.Button\"\n                                 [button]=\"item\" [state]=\"queryCommandState[item.command]\"\n                                 (command)=\"execCommand($event)\">\n      </st-button>\n      <st-select *ngSwitchCase=\"toolbarItemType.Select\"\n                         [button]=\"item\" [state]=\"queryCommandState[item.command]\"\n                         (command)=\"execCommand($event.command, $event.value)\">\n      </st-select>\n      <st-color-picker *ngSwitchCase=\"toolbarItemType.Color\"\n                               [button]=\"item\" [state]=\"queryCommandState[item.command]\"\n                               (command)=\"execCommand($event.command, $event.value)\">\n      </st-color-picker>\n      <st-input *ngSwitchCase=\"toolbarItemType.Input\"\n                        [button]=\"item\"\n                        (command)=\"execCommand($event.command, $event.value)\">\n      </st-input>\n      <st-dropdown *ngSwitchCase=\"toolbarItemType.Dropdown\"\n                [button]=\"item\"\n                (command)=\"execCommand($event.command, $event.value)\">\n      </st-dropdown>\n    </ng-container>\n  </div>\n  <div #contentEditable class=\"st-area\"\n       [attr.data-placeholder]=\"config.placeholder\" [attr.contenteditable]=\"!isDisabled\"\n       (stDomModify)=\"domModify()\" (stSelectionChange)=\"fetchQueryCommandState()\" (blur)=\"onTouchedFn()\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {EditorComponent} from './components/editor/editor.component';\nimport {EditorButtonComponent} from './components/editor-button/editor-button.component';\nimport {EditorColorPickerComponent} from './components/editor-color-picker/editor-color-picker.component';\nimport {EditorInputComponent} from './components/editor-input/editor-input.component';\nimport {EditorSelectComponent} from './components/editor-select/editor-select.component';\nimport {EditorSeparatorComponent} from './components/editor-separator/editor-separator.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport { DomModifyDirective } from './directives/dom-modify.directive';\nimport { SelectionChangeDirective } from './directives/selection-change.directive';\nimport { EditorDropdownComponent } from './components/editor-dropdown/editor-dropdown.component';\nimport {ActionDirective} from \"./directives/action.directive\";\nimport {NgModelChangeDebouncedDirective} from \"./directives/ng-model-change-debounced.directive\";\n\n\n\n@NgModule({\n  declarations: [\n    EditorComponent,\n    EditorButtonComponent,\n    EditorColorPickerComponent,\n    EditorInputComponent,\n    EditorSelectComponent,\n    EditorSeparatorComponent,\n    DomModifyDirective,\n    SelectionChangeDirective,\n    EditorDropdownComponent,\n    ActionDirective,\n    NgModelChangeDebouncedDirective,\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n  ],\n  exports: [\n    EditorComponent,\n    EditorButtonComponent,\n    EditorColorPickerComponent,\n    EditorInputComponent,\n    EditorSelectComponent,\n    EditorSeparatorComponent,\n    EditorDropdownComponent,\n  ]\n})\nexport class NgxSimpleTextEditorModule { }\n","/*\n * Public API Surface of ngx-simple-text-editor\n */\n\nexport * from './lib/ngx-simple-text-editor.module';\nexport * from './lib/components/editor/editor.component';\nexport * from './lib/components/editor-button/editor-button.component';\nexport * from './lib/components/editor-color-picker/editor-color-picker.component';\nexport * from './lib/components/editor-input/editor-input.component';\nexport * from './lib/components/editor-select/editor-select.component';\nexport * from './lib/components/editor-dropdown/editor-dropdown.component';\nexport * from './lib/components/editor-separator/editor-separator.component';\nexport * from './lib/models/exec-command';\nexport * from './lib/constants/editor-buttons';\nexport * from './lib/models/button';\nexport * from './lib/models/config';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ActionDirective","i2.ActionDirective","i3.NgModelChangeDebouncedDirective","i2.EditorButtonComponent","i3.ActionDirective","i1.CommandService","i3.EditorButtonComponent","i4.EditorColorPickerComponent","i5.EditorInputComponent","i6.EditorSelectComponent","i7.EditorSeparatorComponent","i8.DomModifyDirective","i9.SelectionChangeDirective","i10.EditorDropdownComponent"],"mappings":"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"}