smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
1 lines • 140 kB
Source Map (JSON)
{"version":3,"file":"smart-webcomponents-angular-editor.mjs","sources":["../../editor/src/smart.element.ts","../../editor/src/smart.editor.ts","../../editor/src/smart.editor.module.ts","../../editor/src/smart-webcomponents-angular-editor.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { Editor } from './../index';\nimport { Animation, EditorContentFilteringAttributeFilterMode, EditorContentFilteringTagFilterMode, EditorContentFilteringStyleAttributeFilterMode, EditorContextMenu, EditMode, EditorImageFormat, PasteFormat, ToolbarMode, ToolbarViewMode, EditorAi, EditorContentFiltering, EditorDataExport, EditorIframeSettings, ToolbarItem, ToolbarItemEditor, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { Animation, EditorContentFilteringAttributeFilterMode, EditorContentFilteringTagFilterMode, EditorContentFilteringStyleAttributeFilterMode, EditorContextMenu, EditMode, EditorImageFormat, PasteFormat, ToolbarMode, ToolbarViewMode, EditorAi, EditorContentFiltering, EditorDataExport, EditorIframeSettings, ToolbarItem, ToolbarItemEditor, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { Editor } from './../index';\n\n\n@Directive({\n\texportAs: 'smart-editor',\tselector: 'smart-editor, [smart-editor]'\n})\n\nexport class EditorComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n\tconstructor(ref: ElementRef<Editor>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as Editor;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: Editor;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <Editor>document.createElement('smart-editor');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n\t/** @description An object that defines configuration settings for integrating AI capabilities within the grid, including options for enabling AI features, specifying AI service endpoints, adjusting model parameters, and customizing AI-driven functionality in the grid interface. */\n\t@Input()\n\tget ai(): EditorAi {\n\t\treturn this.nativeElement ? this.nativeElement.ai : undefined;\n\t}\n\tset ai(value: EditorAi) {\n\t\tthis.nativeElement ? this.nativeElement.ai = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves the current animation mode. When set to 'none', all animations are disabled. For other values, animations are enabled according to the selected mode. */\n\t@Input()\n\tget animation(): Animation | string {\n\t\treturn this.nativeElement ? this.nativeElement.animation : undefined;\n\t}\n\tset animation(value: Animation | string) {\n\t\tthis.nativeElement ? this.nativeElement.animation = value : undefined;\n\t}\n\n\t/** @description Automatically formats your text in real-time as you type, converting your input into structured elements such as bullet points, checkboxes, headings, and code blocks. This feature streamlines note-taking and writing by instantly applying consistent formatting without requiring manual markup or additional steps. */\n\t@Input()\n\tget autoFormatting(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoFormatting : undefined;\n\t}\n\tset autoFormatting(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoFormatting = value : undefined;\n\t}\n\n\t/** @description Automatically restores the editor's most recently saved state from the browser's local storage when the element is initialized. To retrieve the correct saved state, you must specify a unique id that matches the one used during the saving process. Without this id, the editor cannot identify or load the previously stored state. */\n\t@Input()\n\tget autoLoad(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoLoad : undefined;\n\t}\n\tset autoLoad(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoLoad = value : undefined;\n\t}\n\n\t/** @description Automatically saves the editor's current content at regular intervals specified by the autoSaveInterval property, but only while the editor element is focused. To enable automatic saving, you must assign a unique id to the editor element; this id is used to store and retrieve the editor's saved state. */\n\t@Input()\n\tget autoSave(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoSave : undefined;\n\t}\n\tset autoSave(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoSave = value : undefined;\n\t}\n\n\t/** @description Specifies the time interval, in milliseconds, at which the Editor automatically saves its state when the autoSave property is enabled. This property controls how frequently the Editor performs auto-save operations. */\n\t@Input()\n\tget autoSaveInterval(): number {\n\t\treturn this.nativeElement ? this.nativeElement.autoSaveInterval : undefined;\n\t}\n\tset autoSaveInterval(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.autoSaveInterval = value : undefined;\n\t}\n\n\t/** @description A customizable formatting function for the character counter display in the Editor. This function receives two parameters:- chars: The current number of characters entered by the user in the Editor.- maxCharCount: The maximum allowed number of characters for the Editor input.The function should return a formatted string that represents the character count status, which will be shown in the Editor’s UI (for example, \"25 / 100 characters\"). This allows developers to define custom formats for how the character count is displayed to users. */\n\t@Input()\n\tget charCountFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.charCountFormatFunction : undefined;\n\t}\n\tset charCountFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.charCountFormatFunction = value : undefined;\n\t}\n\n\t/** @description Controls whether files are automatically uploaded immediately after the user selects them. When enabled, the upload process begins as soon as files are chosen. When disabled, file upload must be triggered manually. This property can be used to either retrieve the current auto-upload setting or update it. */\n\t@Input()\n\tget autoUpload(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoUpload : undefined;\n\t}\n\tset autoUpload(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoUpload = value : undefined;\n\t}\n\n\t/** @description Specifies the configuration for content filtering, allowing you to define which types of content are allowed or blocked according to the selected criteria or rules. */\n\t@Input()\n\tget contentFiltering(): EditorContentFiltering {\n\t\treturn this.nativeElement ? this.nativeElement.contentFiltering : undefined;\n\t}\n\tset contentFiltering(value: EditorContentFiltering) {\n\t\tthis.nativeElement ? this.nativeElement.contentFiltering = value : undefined;\n\t}\n\n\t/** @description Defines the CSS file(s) or styles to be applied to the content area within the Editor, allowing you to customize the appearance and formatting of the editor’s content. */\n\t@Input()\n\tget content_css(): string {\n\t\treturn this.nativeElement ? this.nativeElement.content_css : undefined;\n\t}\n\tset content_css(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.content_css = value : undefined;\n\t}\n\n\t/** @description Specifies the items and structure of the context menu that appears when a user right-clicks within the Editor's content area. This setting allows you to customize which menu options are available based on the user's actions, providing tailored functionality and quick access to relevant commands. */\n\t@Input()\n\tget contextMenu(): EditorContextMenu | string {\n\t\treturn this.nativeElement ? this.nativeElement.contextMenu : undefined;\n\t}\n\tset contextMenu(value: EditorContextMenu | string) {\n\t\tthis.nativeElement ? this.nativeElement.contextMenu = value : undefined;\n\t}\n\n\t/** @description Enhances the Editor’s context menu by allowing you to customize its default items. This property accepts several formats:- 'Array of Items:' You can provide an array where each item is either: - A 'string' representing the value/action for the menu item. - An 'object' in the format '{ label: string, value: string }', where: - 'label' is the text displayed in the menu. - 'value' is the action or identifier associated with that menu item.- 'Function:' You can also pass a function that dynamically generates the array of menu items. The function receives the following parameters: - 'target' ('HTMLElement'): The DOM element where the context menu is triggered. - 'type' ('string'): The type or context of the menu (e.g., \"table\", \"image\", \"link\", or other relevant context types). - 'defaultItems' ('string[]'): The default set of menu item identifiers for that context. The function should return an array of menu items (as described above), which will be rendered in place of the default menu.'Example function signature:''''javascriptfunction (target: HTMLElement, type: string, defaultItems: string[]) { return defaultItems;}'''This flexible property enables you to tailor the context menu based on the user's selection, the specific element targeted, or the context of the interaction, helping create a more intuitive and relevant editing experience. */\n\t@Input()\n\tget contextMenuDataSource(): string[] | { label: string, value: 'string' }[] | Function | null {\n\t\treturn this.nativeElement ? this.nativeElement.contextMenuDataSource : undefined;\n\t}\n\tset contextMenuDataSource(value: string[] | { label: string, value: 'string' }[] | Function | null) {\n\t\tthis.nativeElement ? this.nativeElement.contextMenuDataSource = value : undefined;\n\t}\n\n\t/** @description Configures the available options for exporting data from the Editor, such as file formats (CSV, JSON, XML), export settings, and customization preferences. These settings determine how users can save or export content from the Editor. */\n\t@Input()\n\tget dataExport(): EditorDataExport {\n\t\treturn this.nativeElement ? this.nativeElement.dataExport : undefined;\n\t}\n\tset dataExport(value: EditorDataExport) {\n\t\tthis.nativeElement ? this.nativeElement.dataExport = value : undefined;\n\t}\n\n\t/** @description Controls whether the Editor component is active or inactive. When enabled, users can interact with and make changes within the Editor; when disabled, all editing functionalities are restricted or unavailable. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Prevents users from modifying or editing content within the Editor, making all content read-only. */\n\t@Input()\n\tget disableEditing(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableEditing : undefined;\n\t}\n\tset disableEditing(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableEditing = value : undefined;\n\t}\n\n\t/** @description Prevents the Quick Search Bar from appearing or being accessible to users, effectively disabling its functionality across the application. */\n\t@Input()\n\tget disableSearchBar(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableSearchBar : undefined;\n\t}\n\tset disableSearchBar(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableSearchBar = value : undefined;\n\t}\n\n\t/** @description Specifies the editing mode for the Editor component. By default, the Editor operates in standard HTML mode, allowing users to input and edit HTML content directly. In this mode, pressing Enter inserts line breaks or new paragraphs according to standard HTML behavior. When set to 'blockHtml', the Editor creates new DIV elements each time the user presses Enter, promoting a block-based editing experience. This mode also provides built-in commands tailored for structured data entry and manipulation.If set to 'markdown', the Editor functions as a dedicated Markdown editor. User input is interpreted as Markdown syntax, and the Editor automatically parses and converts the Markdown content into HTML for real-time preview. This enables a seamless writing and formatting workflow for users who prefer Markdown.Possible values:- 'html' (default): Accepts and parses HTML input.- 'blockHtml': Uses DIV tags for new blocks and offers additional commands for data input.- 'markdown': Enables Markdown syntax input with live HTML preview. */\n\t@Input()\n\tget editMode(): EditMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.editMode : undefined;\n\t}\n\tset editMode(value: EditMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.editMode = value : undefined;\n\t}\n\n\t/** @description Specifies whether the output from the getHTML method and the Source Code view should be HTML-encoded. When enabled, special characters in the code (such as , and &) are converted to their HTML entity equivalents, ensuring correct display and preventing unintended HTML rendering. When disabled, the values are returned as raw HTML without encoding. */\n\t@Input()\n\tget enableHtmlEncode(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.enableHtmlEncode : undefined;\n\t}\n\tset enableHtmlEncode(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.enableHtmlEncode = value : undefined;\n\t}\n\n\t/** @description Specifies whether pressing the Tab key inside the Editor will insert a tab character at the cursor position, or instead move focus to the next focusable element (default behavior). When enabled, Tab inserts a tab character; when disabled, Tab shifts focus as usual. */\n\t@Input()\n\tget enableTabKey(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.enableTabKey : undefined;\n\t}\n\tset enableTabKey(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.enableTabKey = value : undefined;\n\t}\n\n\t/** @description Specifies the duration (in milliseconds) between consecutive result updates when using the \"Find and Replace\" and \"Search Bar\" features. Adjusting this interval can affect how quickly search results are refreshed and displayed to the user during searches. */\n\t@Input()\n\tget findAndReplaceTimeout(): number {\n\t\treturn this.nativeElement ? this.nativeElement.findAndReplaceTimeout : undefined;\n\t}\n\tset findAndReplaceTimeout(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.findAndReplaceTimeout = value : undefined;\n\t}\n\n\t/** @description Specifies whether the Toolbar is visible or hidden. When set to true, the Toolbar will be hidden; when set to false, the Toolbar will be displayed. */\n\t@Input()\n\tget hideToolbar(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideToolbar : undefined;\n\t}\n\tset hideToolbar(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideToolbar = value : undefined;\n\t}\n\n\t/** @description Specifies whether the Inline Toolbar is visible. If set to true, the toolbar will be hidden; if false, the toolbar will be displayed. */\n\t@Input()\n\tget hideInlineToolbar(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideInlineToolbar : undefined;\n\t}\n\tset hideInlineToolbar(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideInlineToolbar = value : undefined;\n\t}\n\n\t/** @description Specifies the file format for images or videos uploaded from local storage. By default, uploaded files are encoded and stored as base64 strings. This setting allows you to define or change the storage format as needed. */\n\t@Input()\n\tget imageFormat(): EditorImageFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.imageFormat : undefined;\n\t}\n\tset imageFormat(value: EditorImageFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.imageFormat = value : undefined;\n\t}\n\n\t/** @description Automatically detects and sets the appropriate width for images pasted from the clipboard, ensuring consistent image display and optimal fit within the layout. */\n\t@Input()\n\tget imagePasteWidth(): number {\n\t\treturn this.nativeElement ? this.nativeElement.imagePasteWidth : undefined;\n\t}\n\tset imagePasteWidth(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.imagePasteWidth = value : undefined;\n\t}\n\n\t/** @description Automatically detects and sets the appropriate height for an image when it is pasted from the clipboard, ensuring correct aspect ratio and consistent display within the application. */\n\t@Input()\n\tget imagePasteHeight(): number {\n\t\treturn this.nativeElement ? this.nativeElement.imagePasteHeight : undefined;\n\t}\n\tset imagePasteHeight(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.imagePasteHeight = value : undefined;\n\t}\n\n\t/** @description Sets the content of the Editor using an HTML string. This method enables you to programmatically insert both plain text and HTML elements, including tags, formatting, and embedded media, directly into the Editor. Existing content will be replaced by the provided HTML. Use this to dynamically update the Editor's contents with custom HTML markup. */\n\t@Input()\n\tget innerHTML(): string {\n\t\treturn this.nativeElement ? this.nativeElement.innerHTML : undefined;\n\t}\n\tset innerHTML(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.innerHTML = value : undefined;\n\t}\n\n\t/** @description Specifies the horizontal (x) and vertical (y) offset values used to adjust the position of the Inline Toolbar relative to its default placement on the page. This allows for precise positioning by shifting the toolbar along the x and y axes. */\n\t@Input()\n\tget inlineToolbarOffset(): number[] {\n\t\treturn this.nativeElement ? this.nativeElement.inlineToolbarOffset : undefined;\n\t}\n\tset inlineToolbarOffset(value: number[]) {\n\t\tthis.nativeElement ? this.nativeElement.inlineToolbarOffset = value : undefined;\n\t}\n\n\t/** @description Specifies the iframe configuration for the Editor. When enabled, the Editor's content is rendered within an isolated iframe, ensuring separation from the main DOM and preventing style or script conflicts. This option enhances content security and encapsulation. Additionally, it provides a mechanism to inject external resources (such as stylesheets or scripts) directly into the iframe environment if required. */\n\t@Input()\n\tget iframeSettings(): EditorIframeSettings {\n\t\treturn this.nativeElement ? this.nativeElement.iframeSettings : undefined;\n\t}\n\tset iframeSettings(value: EditorIframeSettings) {\n\t\tthis.nativeElement ? this.nativeElement.iframeSettings = value : undefined;\n\t}\n\n\t/** @description Gets or sets the unlockKey, a unique value required to activate or unlock the product’s features. Use this property to provide the unlock key when authorizing access, or retrieve the current unlock key associated with the product. */\n\t@Input()\n\tget unlockKey(): string {\n\t\treturn this.nativeElement ? this.nativeElement.unlockKey : undefined;\n\t}\n\tset unlockKey(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.unlockKey = value : undefined;\n\t}\n\n\t/** @description Specifies the current language code used for localization, such as \"en\" for English or \"fr\" for French. This property works together with the messages property to display the appropriate localized messages based on the selected language. Use it to get or set the active language for your application's interface. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Specifies the maximum number of characters that can be entered within the Editor. Once this limit is reached, users will be unable to input additional characters. */\n\t@Input()\n\tget maxCharCount(): number {\n\t\treturn this.nativeElement ? this.nativeElement.maxCharCount : undefined;\n\t}\n\tset maxCharCount(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.maxCharCount = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves an object containing all user-visible strings (such as labels, tooltips, and messages) used by the widget for display purposes and localization. This property works together with the language setting to enable customization and translation of the widget’s interface into different languages. The object allows developers to provide localized string values, ensuring the widget content is appropriately translated for end users. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Assigns the specified element to the property †a†, designating it as the form control responsible for submitting the Editor's value. This allows the Editor’s content to be included in form submissions, ensuring its data is sent when the form is submitted. */\n\t@Input()\n\tget name(): string | null {\n\t\treturn this.nativeElement ? this.nativeElement.name : undefined;\n\t}\n\tset name(value: string | null) {\n\t\tthis.nativeElement ? this.nativeElement.name = value : undefined;\n\t}\n\n\t/** @description Specifies the format (such as plain text, HTML, or Markdown) in which content will be inserted into the Editor when a user pastes data, ensuring consistent formatting and correct rendering within the editing environment. */\n\t@Input()\n\tget pasteFormat(): PasteFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.pasteFormat : undefined;\n\t}\n\tset pasteFormat(value: PasteFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.pasteFormat = value : undefined;\n\t}\n\n\t/** @description Specifies the placeholder text or element displayed within the Editor when it is empty, guiding users on what to enter or indicating the expected content. */\n\t@Input()\n\tget placeholder(): string {\n\t\treturn this.nativeElement ? this.nativeElement.placeholder : undefined;\n\t}\n\tset placeholder(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.placeholder = value : undefined;\n\t}\n\n\t/** @description Specifies whether activating the clearFormat toolbar action should also remove any inline CSS styles (such as style attributes) applied to the currently selected node. When enabled, this option ensures that in addition to removing formatting tags (like <b>, <i>, etc.), all custom inline styles will be cleared from the selected content. */\n\t@Input()\n\tget removeStylesOnClearFormat(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.removeStylesOnClearFormat : undefined;\n\t}\n\tset removeStylesOnClearFormat(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.removeStylesOnClearFormat = value : undefined;\n\t}\n\n\t/** @description Specifies whether the Editor's content is required. If this option is enabled and the Editor is left empty, a notification will be displayed indicating that the content cannot be empty and must be provided before proceeding. */\n\t@Input()\n\tget required(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.required : undefined;\n\t}\n\tset required(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.required = value : undefined;\n\t}\n\n\t/** @description Sets or retrieves a value that specifies whether the element's text direction and alignment are configured for right-to-left (RTL) languages, such as Arabic or Hebrew. This property ensures that the element displays its content in a manner appropriate for RTL locale support. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Indicates whether the value is sanitized to protect against Cross-Site Scripting (XSS) attacks. When enabled, any potentially malicious scripts, inline event handlers, or other XSS vulnerabilities are automatically removed from the HTML content entered in the Editor, ensuring only safe and clean HTML is allowed. */\n\t@Input()\n\tget sanitized(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.sanitized : undefined;\n\t}\n\tset sanitized(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.sanitized = value : undefined;\n\t}\n\n\t/** @description Controls the visibility of the character counter. When enabled, the counter appears in the bottom right corner of the input field. If a maxCharCount value is set, the counter changes color to visually warn the user as they approach the character limit:- When the content length reaches 70% or more of the maximum, the counter displays a warning color.- At 90% or more of the maximum, the counter switches to a more prominent warning color, indicating that the limit is nearly reached.- Once the character count reaches the maximum limit, further text input is prevented. */\n\t@Input()\n\tget showCharCount(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.showCharCount : undefined;\n\t}\n\tset showCharCount(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.showCharCount = value : undefined;\n\t}\n\n\t/** @description Specifies if the editor enables spell checking, allowing the identification and highlighting of spelling errors within the text. If set to true, the editor will actively check and mark misspelled words as the user types. If set to false, spell checking functionality will be disabled. */\n\t@Input()\n\tget spellCheck(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.spellCheck : undefined;\n\t}\n\tset spellCheck(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.spellCheck = value : undefined;\n\t}\n\n\t/** @description Specifies the time interval, in milliseconds, at which the Source Code and Preview panels are automatically refreshed when Split Mode is active. Adjusting this value controls how frequently the panels update to reflect changes in real-time while Split Mode is enabled. */\n\t@Input()\n\tget splitModeRefreshTimeout(): number {\n\t\treturn this.nativeElement ? this.nativeElement.splitModeRefreshTimeout : undefined;\n\t}\n\tset splitModeRefreshTimeout(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.splitModeRefreshTimeout = value : undefined;\n\t}\n\n\t/** @description Defines the list of editor users for the application. Expects an array of user objects, each requiring the following properties: - ''id'': A unique identifier for the user (string or number). - ''name'': The display name of the user (string). Each user object may also include the following optional properties: - ''color'': A string specifying the user's color (e.g., HEX or CSS color value) for UI highlighting. - ''image'': A string containing the URL of the user's avatar or profile image. */\n\t@Input()\n\tget users(): any[] {\n\t\treturn this.nativeElement ? this.nativeElement.users : undefined;\n\t}\n\tset users(value: any[]) {\n\t\tthis.nativeElement ? this.nativeElement.users = value : undefined;\n\t}\n\n\t/** @description Activates the editor pages functionality, allowing users to create, edit, and manage custom pages directly within the editor interface. */\n\t@Input()\n\tget enablePages(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.enablePages : undefined;\n\t}\n\tset enablePages(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.enablePages = value : undefined;\n\t}\n\n\t/** @description Defines the editor pages by accepting an array of objects, where each object must include a 'label' property (a string representing the title or name of the page) and an 'innerHTML' property (a string containing the HTML content to be displayed on that page). */\n\t@Input()\n\tget pages(): any[] {\n\t\treturn this.nativeElement ? this.nativeElement.pages : undefined;\n\t}\n\tset pages(value: any[]) {\n\t\tthis.nativeElement ? this.nativeElement.pages = value : undefined;\n\t}\n\n\t/** @description Specifies the URL endpoint used for file uploads. This property directly maps to the 'action' attribute of the upload form, determining where the uploaded data is sent on the server. For example, you can set the 'uploadUrl' property to the path of a server-side script such as a PHP file (e.g., \"upload.php\") that processes and handles incoming file uploads. Setting this property ensures that files selected by the user are transmitted to the specified server location when the upload form is submitted. */\n\t@Input()\n\tget uploadUrl(): string {\n\t\treturn this.nativeElement ? this.nativeElement.uploadUrl : undefined;\n\t}\n\tset uploadUrl(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.uploadUrl = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves the URL used for the remove operation. This property corresponds to the form's action attribute and specifies the server endpoint that will handle item removal requests. For example, setting the removeUrl property to the path of a PHP file enables the server-side script to process and execute the removal action when triggered. */\n\t@Input()\n\tget removeUrl(): string {\n\t\treturn this.nativeElement ? this.nativeElement.removeUrl : undefined;\n\t}\n\tset removeUrl(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.removeUrl = value : undefined;\n\t}\n\n\t/** @description Specifies the theme to be applied to the element. The selected theme controls the overall visual appearance, including colors, fonts, and styles, ensuring a consistent look and feel throughout the element. */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description 'Provides the configuration for the Toolbar items in the editor.' The value can be either an array of strings—where each string specifies the name of a default toolbar item—or an array of objects for more advanced configuration and customization. - 'String Values:' Each string refers to a toolbar item by its name. Names are case-insensitive.- 'Object Values:' An object can define a custom toolbar item, or modify/add settings to an existing one. - The object must include a 'name' property (case-insensitive) to refer to a default toolbar item’s functionality. - If 'name' is set to \"custom\", you can define a fully custom toolbar item. - If the 'name' attribute is missing or invalid, the entry is treated as a separator rather than a toolbar item.'Supported Default Toolbar Items' Below is a list of default toolbar items supported by the editor, along with their descriptions and types: - 'SourceCode': Toggles between the HTML source/preview panel and the input panel. *Type: Toggle button*- 'SplitMode': Splits the editor view to show both input and preview panels. *Type: Toggle button*- 'FullScreen': Expands the editor to fill the viewport, overlaying the page content. *Type: Toggle button*- 'Alignment': Controls the alignment (left, center, right, justify) of the selected content. *Type: Dropdown*- 'FontName': Sets the font family of the selected content. *Type: Dropdown*- 'FontSize': Sets the font size of the selected content. *Type: Dropdown*- 'Formats': Changes the format/style of the current selection (e.g., paragraph, heading). *Type: Dropdown*- 'TableRows': Insert or remove table rows in the selected table. *Type: Dropdown*- 'TableColumns': Insert or remove table columns in the selected table. *Type: Dropdown*- 'TableVAlign': Sets vertical alignment of a selected table cell. *Type: Dropdown*- 'TableStyle': Applies additional styling to the selected table. *Type: Dropdown*- 'BackgroundColor': Changes the background color of the current selection. *Type: Color input*- 'FontColor': Changes the font color of the current selection. *Type: Color input*- 'Bold': Toggles bold for the selected text. *Type: Button*- 'Italic': Toggles italic for the selected text. *Type: Button*- 'Underline': Toggles underline for the selected text. *Type: Button*- 'Strikethrough': Toggles strikethrough for the selected text. *Type: Button*- 'Delete': Deletes the current selection. *Type: Button*- 'Undo': Reverts the last operation. *Type: Button*- 'Redo': Redoes the previously undone operation. *Type: Button*- 'Indent': Increases the indentation of the current selection. *Type: Button*- 'Outdent': Decreases the indentation of the current selection. *Type: Button*- 'OpenLink': Opens the hyperlink of the current selection. *Type: Button*- 'EditLink', 'CreateLink', 'Hyperlink': Creates, edits, or triggers a dialog for hyperlink management. *Type: Button*- 'RemoveLink': Removes a hyperlink from the selected text. *Type: Button*- 'Cut': Cuts the selected content. *Type: Button*- 'Copy': Copies the selected content. *Type: Button*- 'Paste': Pastes from the clipboard. - *Type: Button* - *Type: Dropdown* (when the \"advanced\" property is set to true)- 'Image': Opens a dialog to insert or edit an image. *Type: Button*- 'Video': Opens a dialog to insert or edit a video. *Type: Button*- 'LowerCase': Converts current selection to lowercase letters. *Type: Button*- 'UpperCase': Converts current selection to uppercase letters. *Type: Button*- 'Print': Opens the browser's print preview window. *Type: Button*- 'Caption': Inserts or removes a caption in the selected table. *Type: Button*- 'ClearFormat': Removes all formatting from the current selection. *Type: Button*- 'Table': Opens a dialog to insert a new table. *Type: Button*- 'TableHeader': Adds or removes a header row in the selected table. *Type: Button*- 'OrderedList': Inserts or removes an ordered (numbered) list. *Type: Button*- 'UnorderedList': Inserts or removes a bulleted list. *Type: Button*- 'Subscript': Formats the selected text as subscript. *Type: Button*- 'Superscript': Formats the selected text as superscript. *Type: Button*- 'FindAndReplace': Opens a dialog to find and replace text in the editor. *Type: Button*'Note:' Separators between toolbar items can be added by using an object without a valid 'name' property.---'inlineToolbarItems' - This property is applicable only for the following toolbar items: 'table', 'image', and 'hyperlink'.- Accepts the same value types and structure as 'toolbarItems'.- The specified items will be displayed in an inline floating toolbar when any of these elements is selected in the editor.---'Summary of Usage Examples:''''json[ \"Bold\", \"Italic\", { \"name\": \"FontSize\", \"options\": [\"Small\", \"Medium\", \"Large\"] }, {}, { \"name\": \"custom\", \"label\": \"Custom Action\", \"icon\": \"...\" }]'''- The above would provide bold and italic buttons, a dropdown with custom font size options, a separator, and a custom toolbar item.---This configuration enables full customization of the editor’s toolbar to suit different user requirements, offering both default and extendable options. */\n\t@Input()\n\tget toolbarItems(): ToolbarItem[] {\n\t\treturn this.nativeElement ? this.nativeElement.toolbarItems : undefined;\n\t}\n\tset toolbarItems(value: ToolbarItem[]) {\n\t\tthis.nativeElement ? this.nativeElement.toolbarItems = value : undefined;\n\t}\n\n\t/** @description Specifies the display style of the Editor’s main toolbar. You can choose between \"Ribbon\" mode, which presents the toolbar as a horizontal panel with grouped command icons similar to modern office applications, or \"Menu\" mode, which organizes commands in drop-down menus for a more compact, traditional interface. This setting controls how users interact with the Editor’s primary tools and functions. */\n\t@Input()\n\tget toolbarMode(): ToolbarMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.toolbarMode : undefined;\n\t}\n\tset toolbarMode(value: ToolbarMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.toolbarMode = value : undefined;\n\t}\n\n\t/** @description Enables customization of the SingleLineRibbon's appearance by allowing you to modify the arrangement and selection of group items, as well as reorder the groups themselves. This provides flexibility in tailoring the ribbon layout to better suit your application's specific needs. */\n\t@Input()\n\tget toolbarRibbonConfig(): { name: string, groups: { name: string, items: string[] }[] }[] {\n\t\treturn this.nativeElement ? this.nativeElement.toolbarRibbonConfig : undefined;\n\t}\n\tset toolbarRibbonConfig(value: { name: string, groups: { name: string, items: string[] }[] }[]) {\n\t\tthis.nativeElement ? this.nativeElement.toolbarRibbonConfig = value : undefined;\n\t}\n\n\t/** @description Specifies the format (such as plain text, HTML, or Markdown) that will be applied to content when it is pasted into the Editor. This setting controls how the pasted data is interpreted and ensures that it is correctly displayed within the Editor environment. */\n\t@Input()\n\tget toolbarViewMode(): ToolbarViewMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.toolbarViewMode : undefined;\n\t}\n\tset toolbarViewMode(value: ToolbarViewMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.toolbarViewMode = value : undefined;\n\t}\n\n\t/** @description Fixes the Toolbar to the top of the browser window, ensuring it remains visible at all times, even as the user scrolls through the page content. */\n\t@Input()\n\tget toolbarSticky(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.toolbarSticky : undefined;\n\t}\n\tset toolbarSticky(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.toolbarSticky = value : undefined;\n\t}\n\n\t/** @description If set to true, this property prevents the element from receiving keyboard or programmatic focus, making it impossible for users to interact with it using the keyboard or assistive technologies. */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description Provides methods to retrieve or update the current content within the Editor. Use this property to access the existing value or assign a new value to the Editor programmatically. */\n\t@Input()\n\tget value(): string {\n\t\treturn this.nativeElement ? this.nativeElement.value : undefined;\n\t}\n\tset value(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.value = value : undefined;\n\t}\n\n\t/** @description A customizable function that allows you to fully modify the appearance and behavior of the Editor dialog used for inserting or editing tables, images, videos, and hyperlinks. The function receives two arguments:- 'target': The dialog element instance that is about to be displayed, representing the specific editor dialog (e.g., Table, Image, Video, or Hyperlink dialog) being opened.- 'item': The toolbar item object that triggered the opening of the dialog, allowing you to access information about the source of the dialog request or customize its settings based on the initiating toolbar action.Use this function to tailor the dialog's UI elements, default values, event handlers, or any other properties, providing a flexible way to match the dialog experience to your application's needs. */\n\t@Input()\n\tget windowCustomizationFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.windowCustomizationFunction : undefined;\n\t}\n\tset windowCustomizationFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.windowCustomizationFunction = value : undefined;\n\t}\n\n\t/** @description This event is triggered when an element loses focus (blur event) and its content has been modified since it last received focus.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toldValue, \tvalue)\n\t* oldValue - The old value before the change.\n\t* value - The new value after the change.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered immediately after the user modifies the content through direct input, such as typing, pasting, or deleting text. It serves as a notification that the content has changed specifically due to user interaction, allowing you to respond to updates made by the user in real time.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toldValue, \tvalue)\n\t* oldValue - The old value before the input change.\n\t* value - The new value after the input change.\n\t*/\n\t@Output() onChanging: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is fired immediately before a Toolbar action begins execution, allowing developers to intervene or modify behavior as needed. By invoking event.preventDefault() within the event handler, you can cancel the pending Toolbar action, preventing it from proceeding. This provides an opportunity to implement custom validation, confirmation prompts, or other pre-action logic before the Toolbar action is carried out.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tname)\n\t* name - The name of the action.\n\t*/\n\t@Output() onActionStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered after a Toolbar action has been completed. It signifies that all processes related to the action, such as updating the UI or executing related logic, have finished. Use this event to perform any follow-up tasks when a Toolbar action concludes.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tname)\n\t* name - The name of the action.\n\t*/\n\t@Output() onActionEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a user selects and clicks on an item within the context menu. It allows you to execute custom logic in response to specific context menu actions, providing access to details about which menu item was clicked and the relevant context of the interaction.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toriginalEvent, \tvalue)\n\t* originalEvent - The original click event.\n\t* value - The value of the item.\n\t*/\n\t@Output() onContextMenuItemClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever the user opens the context menu, typically by right-clicking or using a designated keyboard shortcut on an element. It allows developers to execute custom logic or modify the context menu's content before it is displayed to the user.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget, \towner)\n\t* target - The toolbar that is the target of the operation.\n\t* owner - The tooltip target (the owner of the tooltip).\n\t*/\n\t@Output() onContextMenuOpen: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered immediately before the context menu appears, typically as a result of a user right-clicking or performing a similar gesture. At this point, you have the opportunity to customize or modify the context menu, or to prevent the menu from opening entirely by calling event.preventDefault() within the event handler.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget)\n\t* target - The toolbar that is the target of the operation.\n\t*/\n\t@Output() onContextMenuOpening: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever the Context Menu is closed, either by user action (such as clicking outside the menu, selecting a menu item, or pressing the Escape key) or programmatically through the relevant API. Handlers for this event can be used to perform clean-up tasks or update the user interface in response to the Context Menu being dismissed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget, \towner)\n\t* target - The toolbar that is the target of the operation.\n\t* owner - The tooltip target (the owner of the tooltip).\n\t*/\n\t@Output() onContextMenuClose: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is fired just before the Context Menu begins to close. By calling event.preventDefault() within the event handler, you can cancel the closing action, allowing you to override or delay the default behavior based on custom logic.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget)\n\t* target - The toolbar that is the target of the operation.\n\t*/\n\t@Output() onContextMenuClosing: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a user initiates the resizing of an image, table, or video element. It indicates that the resizing operation has begun, allowing you to implement custom behaviors or UI updates in response to the start of a resize action.\n\t* @param event. The custom event. \t*/\n\t@Output() onResizeStart: EventEmitter<CustomEvent> = new EventEmitter();\