import * as i0 from '@angular/core'; import { AfterViewInit, OnInit, OnChanges, ChangeDetectorRef, EventEmitter, ElementRef, QueryList, Renderer2, SimpleChanges } from '@angular/core'; import { NgControl, NgForm, FormGroupDirective } from '@angular/forms'; import { DomSanitizer } from '@angular/platform-browser'; import { ButtonComponent } from '@usitsdasdesign/dds-ng/button'; import { ColorpickerComponent } from '@usitsdasdesign/dds-ng/colorpicker'; import { ContextMenuItemComponent, ContextMenuComponent } from '@usitsdasdesign/dds-ng/context-menu'; import { Constructor, DestroyCtor, I18nCtor, ResponsivenessCtor, FormAccessorCtor, ErrorStateCtor } from '@usitsdasdesign/dds-ng/core/common-behaviors'; import { ThemeClassesMap } from '@usitsdasdesign/dds-ng/core/theme'; import { InputComponent } from '@usitsdasdesign/dds-ng/input'; import { SegmentedItemOptions } from '@usitsdasdesign/dds-ng/segmented-control'; import { SelectItemOptions } from '@usitsdasdesign/dds-ng/select'; import { Size, Themes, ErrorState, PositionState, ButtonKind, Devices } from '@usitsdasdesign/dds-ng/shared'; import { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config'; import { I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n'; import { ResizeHandlerService } from '@usitsdasdesign/dds-ng/shared/resize-handler'; import { StickerDirective } from '@usitsdasdesign/dds-ng/sticker'; interface RTEOptions { size?: Size | string; disabled?: boolean; theme?: Themes | string; customClass?: string; placeholder?: string; isResponsive?: boolean; isError?: boolean; isInverse?: boolean; isViewSourceActive?: boolean; errorState?: string | ErrorState; buttonStatuses?: ButtonStatuses; panelPosition?: PanelPositions | string; maxHeight?: number; presetColors?: string[]; automaticColor?: string; enableEmptyColor?: boolean; enableCustomColor?: boolean; enableRecentColors?: boolean; enableAutomaticColor?: boolean; stickerWidth?: number | string; stickerIndent?: number; stickerShift?: number; stickerMaxHeight?: number | string; stickerCustomClass?: string; stickerIsDisabled?: boolean; stickerPosition?: PositionState | string; stickerIsOutsideClick?: boolean; stickerIsDynamic?: boolean; } interface ButtonStatuses { boldActive?: boolean; italicActive?: boolean; underlineActive?: boolean; crossedActive?: boolean; header1Active?: boolean; header2Active?: boolean; header3Active?: boolean; superscriptActive?: boolean; subscriptActive?: boolean; orderedListActive?: boolean; numeralListActive?: boolean; alignLeftActive?: boolean; alignCenterActive?: boolean; alignRightActive?: boolean; hyperLinkActive?: boolean; blockQuoteActive?: boolean; removeFormatActive?: boolean; textColorActive?: boolean; bgColorActive?: boolean; } interface RTEButtonsConfig { iconName?: string; className?: string; params?: Array; label: string; isActive?: boolean; disabled?: boolean; showBind?: string; group?: number; } declare enum TextFormatHotkeys { bold = "b", italic = "i", underline = "u", crossed = "d", strikeThrough = "s", tab = "Tab", esc = "Escape", enter = "Enter", backwardSlash = "\\" } declare enum RTEButtonsGroups { fontStyle = 0, colorsStyle = 1, heading = 2, script = 3, list = 4, align = 5, link = 6, blockQuote = 7, removeFormat = 8 } declare enum ExecCommands { formatBlock = "formatBlock", createLink = "createLink", textColor = "textColor", backgroundColor = "backgroundColor", unlink = "unlink", strikeThrough = "strikeThrough" } declare enum PanelPositions { top = "top", bottom = "bottom" } interface CreateLink { openLinkCreateContainer(): void; openLinkEditContainer(linkNode: HTMLElement): void; closeLinkCreateContainer(event?: Event): void; createLink(event?: Event): void; setLinkButtonStatus(state: boolean): void; editLink(): void; unlink(): void; linkHandler(): void; } type CreateLinkCtor = Constructor; interface SetColor { isSetTextColorState: boolean; isSetBgColorState: boolean; activeTextColor: string; activeBgColor: string; bgBtnLineColor: string; applyColor(color: string): void; colorHandler(isTextColor?: boolean): void; } type SetColorCtor = Constructor; declare const RichTextEditorBase: DestroyCtor & I18nCtor & ResponsivenessCtor & FormAccessorCtor & ErrorStateCtor & CreateLinkCtor & SetColorCtor; declare class RichTextEditorComponent extends RichTextEditorBase implements AfterViewInit, OnInit, OnChanges { ngControl: NgControl; parentForm: NgForm; parentFormGroup: FormGroupDirective; cdr: ChangeDetectorRef; resizeService: ResizeHandlerService; i18n: I18nService; private renderer; private ddsConfig; private sanitized; isEmptyValue: boolean; isFlex: boolean; disabled: boolean | undefined; size: Size | string | undefined; customClass: string | undefined; panelPosition: PanelPositions | string | undefined; isError: boolean | undefined; isInverse: boolean | undefined; isViewSourceActive: boolean | undefined; errorState: string | ErrorState | undefined; theme: Themes | string | undefined; isResponsive: boolean | undefined; placeholder: string | undefined; maxHeight: number | undefined; presetColors: string[] | undefined; automaticColor: string | undefined; enableEmptyColor: boolean | undefined; enableCustomColor: boolean | undefined; enableRecentColors: boolean | undefined; enableAutomaticColor: boolean | undefined; set value(value: string | undefined); get value(): string | undefined; isBoldActive: boolean | undefined; isItalicActive: boolean | undefined; isUnderlineActive: boolean | undefined; isCrossedActive: boolean | undefined; isHeader1Active: boolean | undefined; isHeader2Active: boolean | undefined; isHeader3Active: boolean | undefined; isSuperscriptActive: boolean | undefined; isSubscriptActive: boolean | undefined; isOrderedListActive: boolean | undefined; isNumeralListActive: boolean | undefined; isAlignLeftActive: boolean | undefined; isAlignCenterActive: boolean | undefined; isAlignRightActive: boolean | undefined; isHyperLinkActive: boolean | undefined; isBlockQuoteActive: boolean | undefined; isRemoveFormatActive: boolean | undefined; isTextColorActive: boolean | undefined; isBgColorActive: boolean | undefined; stickerWidth: number | string | undefined; stickerIndent: number | undefined; stickerShift: number | undefined; stickerMaxHeight: number | string | undefined; stickerCustomClass: string | undefined; stickerIsDisabled: boolean | undefined; stickerPosition: PositionState | string | undefined; stickerIsOutsideClick: boolean | undefined; stickerIsDynamic: boolean | undefined; valueChanged: EventEmitter; linkContainer: InputComponent; editableContainer: ElementRef; controlContainer: ElementRef; sticker: StickerDirective; dropdownBtn: ButtonComponent; rte: ElementRef; colorpicker: ColorpickerComponent; navBtns: QueryList; elementInViewport(): void; themeConfig: ThemeClassesMap; RTEPanelButtons: RTEButtonsConfig[][]; RTEDropdownButtons: RTEButtonsConfig[][]; inLinkAddState: boolean; inLinkEditState: boolean; currentEditableLink: HTMLElement; link: string; isButtonsDropdownActive: boolean; isHiddenCtrlPanel: boolean; ButtonKind: typeof ButtonKind; Themes: typeof Themes; Size: typeof Size; linkCtrlSize: Size; isGreenTheme: boolean; isBlueTheme: boolean; isBottomPanelPosition: boolean; isFocused: boolean; _value: string; toolbarAriaLabel: string; collapsedBtnAriaLabel: string; inputLinkAriaLabel: string; cancelLinkLabel: string; applyLinkLabel: string; editLinkLabel: string; unlinkLabel: string; popupAriaLabel: string; protected RTEButtonsGroups: typeof RTEButtonsGroups; protected linkClassName: string; private currentDevice; private highlitedNodeClass; private RTEButtonsToShow; private selection; private keyboardTrigger; isMobileView: boolean; isUnorderedListActive: boolean; activeViewSourceType: string; viewSourceButtons: SegmentedItemOptions[]; linkTargetAttributes: SelectItemOptions[]; selectedLinkTarget: string; get isExpandedText(): string; constructor(ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, cdr: ChangeDetectorRef, resizeService: ResizeHandlerService, i18n: I18nService, renderer: Renderer2, ddsConfig: DdsConfigService, sanitized: DomSanitizer); ngOnInit(): void; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; writeValue(value: string): void; setDisabledState(disabled: boolean): void; changeHandle(): void; handleKeydownMenu(event: KeyboardEvent): void; handleKeyup(event: KeyboardEvent, [command, value]: string[], btnComp?: ButtonComponent | ContextMenuItemComponent): void; formatDoc([command, value]: string[], btnComp?: ButtonComponent | ContextMenuItemComponent): void; getClosestParentTagByAttr(node: HTMLElement, value: string): HTMLElement; replaceWithInnerContent(element: HTMLElement): HTMLElement; selectText(highlightedArea: HTMLElement): void; createHighlightedText(): void; toggleButtonsDropdown(event: Event): void; preventEvent(event: KeyboardEvent): void; handleKeydown(event: KeyboardEvent): void; contextMenuInit(contextMenu: ContextMenuComponent): void; onHidden(): void; onSelectionChange(selection: Selection, command?: string): void; setTextAlignClass(className: string, el: Node): void; removeTextAlignClass(className: string, el: Node): void; pressedKeyHandler(event: KeyboardEvent): void; onPaste(): void; moveCursorTo(element: HTMLElement, index: number): void; close(): void; private filterButtonsToShow; private recalculateButtonsPosition; private setGroupRTEButtons; focus(): void; blur(): void; getAriaLabelGroup(group: RTEButtonsConfig[]): string; getAriaRole(group: RTEButtonsConfig[]): string; getButtonAriaRole(item: RTEButtonsConfig): string; private checkIsEmpty; private checkTheme; onViewSourceChange(event: string): void; protected checkDevice(device: Devices): void; protected setI18nTexts(translation: ITranslation): void; setTarget(target: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class RichTextEditorModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { ExecCommands, PanelPositions, RTEButtonsGroups, RichTextEditorComponent, RichTextEditorModule, TextFormatHotkeys }; export type { ButtonStatuses, RTEButtonsConfig, RTEOptions };