devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1 lines • 133 kB
Source Map (JSON)
{"version":3,"file":"devextreme-angular-ui-html-editor-nested.mjs","sources":["../../../dist/ui/html-editor/nested/command-dxi.ts","../../../dist/ui/html-editor/nested/converter.ts","../../../dist/ui/html-editor/nested/file-uploader-options.ts","../../../dist/ui/html-editor/nested/tab-dxi.ts","../../../dist/ui/html-editor/nested/image-upload.ts","../../../dist/ui/html-editor/nested/item-dxi.ts","../../../dist/ui/html-editor/nested/media-resizing.ts","../../../dist/ui/html-editor/nested/mention-dxi.ts","../../../dist/ui/html-editor/nested/table-context-menu-item-dxi.ts","../../../dist/ui/html-editor/nested/table-context-menu.ts","../../../dist/ui/html-editor/nested/table-resizing.ts","../../../dist/ui/html-editor/nested/toolbar-item-dxi.ts","../../../dist/ui/html-editor/nested/toolbar.ts","../../../dist/ui/html-editor/nested/variables.ts","../../../dist/ui/html-editor/nested/index.ts","../../../dist/ui/html-editor/nested/devextreme-angular-ui-html-editor-nested.ts"],"sourcesContent":["/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { AICommandNameExtended } from 'devextreme/ui/html_editor';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-html-editor-command',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiHtmlEditorCommandComponent extends CollectionNestedOption {\r\n @Input()\r\n get name(): AICommandNameExtended {\r\n return this._getOption('name');\r\n }\r\n set name(value: AICommandNameExtended) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get options(): any {\r\n return this._getOption('options');\r\n }\r\n set options(value: any) {\r\n this._setOption('options', value);\r\n }\r\n\r\n @Input()\r\n get prompt(): ((param: string) => string) {\r\n return this._getOption('prompt');\r\n }\r\n set prompt(value: ((param: string) => string)) {\r\n this._setOption('prompt', value);\r\n }\r\n\r\n @Input()\r\n get text(): string {\r\n return this._getOption('text');\r\n }\r\n set text(value: string) {\r\n this._setOption('text', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'commands';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxiHtmlEditorCommandComponent\r\n ],\r\n exports: [\r\n DxiHtmlEditorCommandComponent\r\n ],\r\n})\r\nexport class DxiHtmlEditorCommandModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-html-editor-converter',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxoHtmlEditorConverterComponent extends NestedOption implements OnDestroy, OnInit {\r\n @Input()\r\n get fromHtml(): ((value: string) => string) {\r\n return this._getOption('fromHtml');\r\n }\r\n set fromHtml(value: ((value: string) => string)) {\r\n this._setOption('fromHtml', value);\r\n }\r\n\r\n @Input()\r\n get toHtml(): ((value: string) => string) {\r\n return this._getOption('toHtml');\r\n }\r\n set toHtml(value: ((value: string) => string)) {\r\n this._setOption('toHtml', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'converter';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxoHtmlEditorConverterComponent\r\n ],\r\n exports: [\r\n DxoHtmlEditorConverterComponent\r\n ],\r\n})\r\nexport class DxoHtmlEditorConverterModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport UploadInfo from 'devextreme/file_management/upload_info';\r\nimport { BeforeSendEvent, ContentReadyEvent, DisposingEvent, DropZoneEnterEvent, DropZoneLeaveEvent, FilesUploadedEvent, InitializedEvent, OptionChangedEvent, ProgressEvent, UploadAbortedEvent, UploadedEvent, UploadErrorEvent, UploadStartedEvent, ValueChangedEvent, UploadHttpMethod, FileUploadMode } from 'devextreme/ui/file_uploader';\r\nimport { ValidationStatus } from 'devextreme/common';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-html-editor-file-uploader-options',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxoHtmlEditorFileUploaderOptionsComponent extends NestedOption implements OnDestroy, OnInit {\r\n @Input()\r\n get abortUpload(): ((file: any, uploadInfo?: UploadInfo) => any) {\r\n return this._getOption('abortUpload');\r\n }\r\n set abortUpload(value: ((file: any, uploadInfo?: UploadInfo) => any)) {\r\n this._setOption('abortUpload', value);\r\n }\r\n\r\n @Input()\r\n get accept(): string {\r\n return this._getOption('accept');\r\n }\r\n set accept(value: string) {\r\n this._setOption('accept', value);\r\n }\r\n\r\n @Input()\r\n get accessKey(): string | undefined {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value: string | undefined) {\r\n this._setOption('accessKey', value);\r\n }\r\n\r\n @Input()\r\n get activeStateEnabled(): boolean {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value: boolean) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get allowCanceling(): boolean {\r\n return this._getOption('allowCanceling');\r\n }\r\n set allowCanceling(value: boolean) {\r\n this._setOption('allowCanceling', value);\r\n }\r\n\r\n @Input()\r\n get allowedFileExtensions(): Array<string> {\r\n return this._getOption('allowedFileExtensions');\r\n }\r\n set allowedFileExtensions(value: Array<string>) {\r\n this._setOption('allowedFileExtensions', value);\r\n }\r\n\r\n @Input()\r\n get chunkSize(): number {\r\n return this._getOption('chunkSize');\r\n }\r\n set chunkSize(value: number) {\r\n this._setOption('chunkSize', value);\r\n }\r\n\r\n @Input()\r\n get dialogTrigger(): any | string | undefined {\r\n return this._getOption('dialogTrigger');\r\n }\r\n set dialogTrigger(value: any | string | undefined) {\r\n this._setOption('dialogTrigger', value);\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value: boolean) {\r\n this._setOption('disabled', value);\r\n }\r\n\r\n @Input()\r\n get dropZone(): any | string | undefined {\r\n return this._getOption('dropZone');\r\n }\r\n set dropZone(value: any | string | undefined) {\r\n this._setOption('dropZone', value);\r\n }\r\n\r\n @Input()\r\n get elementAttr(): Record<string, any> {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value: Record<string, any>) {\r\n this._setOption('elementAttr', value);\r\n }\r\n\r\n @Input()\r\n get focusStateEnabled(): boolean {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value: boolean) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get height(): number | string | undefined {\r\n return this._getOption('height');\r\n }\r\n set height(value: number | string | undefined) {\r\n this._setOption('height', value);\r\n }\r\n\r\n @Input()\r\n get hint(): string | undefined {\r\n return this._getOption('hint');\r\n }\r\n set hint(value: string | undefined) {\r\n this._setOption('hint', value);\r\n }\r\n\r\n @Input()\r\n get hoverStateEnabled(): boolean {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value: boolean) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get inputAttr(): any {\r\n return this._getOption('inputAttr');\r\n }\r\n set inputAttr(value: any) {\r\n this._setOption('inputAttr', value);\r\n }\r\n\r\n @Input()\r\n get invalidFileExtensionMessage(): string {\r\n return this._getOption('invalidFileExtensionMessage');\r\n }\r\n set invalidFileExtensionMessage(value: string) {\r\n this._setOption('invalidFileExtensionMessage', value);\r\n }\r\n\r\n @Input()\r\n get invalidMaxFileSizeMessage(): string {\r\n return this._getOption('invalidMaxFileSizeMessage');\r\n }\r\n set invalidMaxFileSizeMessage(value: string) {\r\n this._setOption('invalidMaxFileSizeMessage', value);\r\n }\r\n\r\n @Input()\r\n get invalidMinFileSizeMessage(): string {\r\n return this._getOption('invalidMinFileSizeMessage');\r\n }\r\n set invalidMinFileSizeMessage(value: string) {\r\n this._setOption('invalidMinFileSizeMessage', value);\r\n }\r\n\r\n @Input()\r\n get isDirty(): boolean {\r\n return this._getOption('isDirty');\r\n }\r\n set isDirty(value: boolean) {\r\n this._setOption('isDirty', value);\r\n }\r\n\r\n @Input()\r\n get isValid(): boolean {\r\n return this._getOption('isValid');\r\n }\r\n set isValid(value: boolean) {\r\n this._setOption('isValid', value);\r\n }\r\n\r\n @Input()\r\n get labelText(): string {\r\n return this._getOption('labelText');\r\n }\r\n set labelText(value: string) {\r\n this._setOption('labelText', value);\r\n }\r\n\r\n @Input()\r\n get maxFileSize(): number {\r\n return this._getOption('maxFileSize');\r\n }\r\n set maxFileSize(value: number) {\r\n this._setOption('maxFileSize', value);\r\n }\r\n\r\n @Input()\r\n get minFileSize(): number {\r\n return this._getOption('minFileSize');\r\n }\r\n set minFileSize(value: number) {\r\n this._setOption('minFileSize', value);\r\n }\r\n\r\n @Input()\r\n get multiple(): boolean {\r\n return this._getOption('multiple');\r\n }\r\n set multiple(value: boolean) {\r\n this._setOption('multiple', value);\r\n }\r\n\r\n @Input()\r\n get name(): string {\r\n return this._getOption('name');\r\n }\r\n set name(value: string) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get onBeforeSend(): ((e: BeforeSendEvent) => void) {\r\n return this._getOption('onBeforeSend');\r\n }\r\n set onBeforeSend(value: ((e: BeforeSendEvent) => void)) {\r\n this._setOption('onBeforeSend', value);\r\n }\r\n\r\n @Input()\r\n get onContentReady(): ((e: ContentReadyEvent) => void) {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value: ((e: ContentReadyEvent) => void)) {\r\n this._setOption('onContentReady', value);\r\n }\r\n\r\n @Input()\r\n get onDisposing(): ((e: DisposingEvent) => void) {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value: ((e: DisposingEvent) => void)) {\r\n this._setOption('onDisposing', value);\r\n }\r\n\r\n @Input()\r\n get onDropZoneEnter(): ((e: DropZoneEnterEvent) => void) {\r\n return this._getOption('onDropZoneEnter');\r\n }\r\n set onDropZoneEnter(value: ((e: DropZoneEnterEvent) => void)) {\r\n this._setOption('onDropZoneEnter', value);\r\n }\r\n\r\n @Input()\r\n get onDropZoneLeave(): ((e: DropZoneLeaveEvent) => void) {\r\n return this._getOption('onDropZoneLeave');\r\n }\r\n set onDropZoneLeave(value: ((e: DropZoneLeaveEvent) => void)) {\r\n this._setOption('onDropZoneLeave', value);\r\n }\r\n\r\n @Input()\r\n get onFilesUploaded(): ((e: FilesUploadedEvent) => void) {\r\n return this._getOption('onFilesUploaded');\r\n }\r\n set onFilesUploaded(value: ((e: FilesUploadedEvent) => void)) {\r\n this._setOption('onFilesUploaded', value);\r\n }\r\n\r\n @Input()\r\n get onInitialized(): ((e: InitializedEvent) => void) {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value: ((e: InitializedEvent) => void)) {\r\n this._setOption('onInitialized', value);\r\n }\r\n\r\n @Input()\r\n get onOptionChanged(): ((e: OptionChangedEvent) => void) {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value: ((e: OptionChangedEvent) => void)) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n\r\n @Input()\r\n get onProgress(): ((e: ProgressEvent) => void) {\r\n return this._getOption('onProgress');\r\n }\r\n set onProgress(value: ((e: ProgressEvent) => void)) {\r\n this._setOption('onProgress', value);\r\n }\r\n\r\n @Input()\r\n get onUploadAborted(): ((e: UploadAbortedEvent) => void) {\r\n return this._getOption('onUploadAborted');\r\n }\r\n set onUploadAborted(value: ((e: UploadAbortedEvent) => void)) {\r\n this._setOption('onUploadAborted', value);\r\n }\r\n\r\n @Input()\r\n get onUploaded(): ((e: UploadedEvent) => void) {\r\n return this._getOption('onUploaded');\r\n }\r\n set onUploaded(value: ((e: UploadedEvent) => void)) {\r\n this._setOption('onUploaded', value);\r\n }\r\n\r\n @Input()\r\n get onUploadError(): ((e: UploadErrorEvent) => void) {\r\n return this._getOption('onUploadError');\r\n }\r\n set onUploadError(value: ((e: UploadErrorEvent) => void)) {\r\n this._setOption('onUploadError', value);\r\n }\r\n\r\n @Input()\r\n get onUploadStarted(): ((e: UploadStartedEvent) => void) {\r\n return this._getOption('onUploadStarted');\r\n }\r\n set onUploadStarted(value: ((e: UploadStartedEvent) => void)) {\r\n this._setOption('onUploadStarted', value);\r\n }\r\n\r\n @Input()\r\n get onValueChanged(): ((e: ValueChangedEvent) => void) {\r\n return this._getOption('onValueChanged');\r\n }\r\n set onValueChanged(value: ((e: ValueChangedEvent) => void)) {\r\n this._setOption('onValueChanged', value);\r\n }\r\n\r\n @Input()\r\n get progress(): number {\r\n return this._getOption('progress');\r\n }\r\n set progress(value: number) {\r\n this._setOption('progress', value);\r\n }\r\n\r\n @Input()\r\n get readOnly(): boolean {\r\n return this._getOption('readOnly');\r\n }\r\n set readOnly(value: boolean) {\r\n this._setOption('readOnly', value);\r\n }\r\n\r\n @Input()\r\n get readyToUploadMessage(): string {\r\n return this._getOption('readyToUploadMessage');\r\n }\r\n set readyToUploadMessage(value: string) {\r\n this._setOption('readyToUploadMessage', value);\r\n }\r\n\r\n @Input()\r\n get rtlEnabled(): boolean {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value: boolean) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n\r\n @Input()\r\n get selectButtonText(): string {\r\n return this._getOption('selectButtonText');\r\n }\r\n set selectButtonText(value: string) {\r\n this._setOption('selectButtonText', value);\r\n }\r\n\r\n @Input()\r\n get showFileList(): boolean {\r\n return this._getOption('showFileList');\r\n }\r\n set showFileList(value: boolean) {\r\n this._setOption('showFileList', value);\r\n }\r\n\r\n @Input()\r\n get tabIndex(): number {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value: number) {\r\n this._setOption('tabIndex', value);\r\n }\r\n\r\n @Input()\r\n get uploadAbortedMessage(): string {\r\n return this._getOption('uploadAbortedMessage');\r\n }\r\n set uploadAbortedMessage(value: string) {\r\n this._setOption('uploadAbortedMessage', value);\r\n }\r\n\r\n @Input()\r\n get uploadButtonText(): string {\r\n return this._getOption('uploadButtonText');\r\n }\r\n set uploadButtonText(value: string) {\r\n this._setOption('uploadButtonText', value);\r\n }\r\n\r\n @Input()\r\n get uploadChunk(): ((file: any, uploadInfo: UploadInfo) => any) {\r\n return this._getOption('uploadChunk');\r\n }\r\n set uploadChunk(value: ((file: any, uploadInfo: UploadInfo) => any)) {\r\n this._setOption('uploadChunk', value);\r\n }\r\n\r\n @Input()\r\n get uploadCustomData(): any {\r\n return this._getOption('uploadCustomData');\r\n }\r\n set uploadCustomData(value: any) {\r\n this._setOption('uploadCustomData', value);\r\n }\r\n\r\n @Input()\r\n get uploadedMessage(): string {\r\n return this._getOption('uploadedMessage');\r\n }\r\n set uploadedMessage(value: string) {\r\n this._setOption('uploadedMessage', value);\r\n }\r\n\r\n @Input()\r\n get uploadFailedMessage(): string {\r\n return this._getOption('uploadFailedMessage');\r\n }\r\n set uploadFailedMessage(value: string) {\r\n this._setOption('uploadFailedMessage', value);\r\n }\r\n\r\n @Input()\r\n get uploadFile(): ((file: any, progressCallback: Function) => any) {\r\n return this._getOption('uploadFile');\r\n }\r\n set uploadFile(value: ((file: any, progressCallback: Function) => any)) {\r\n this._setOption('uploadFile', value);\r\n }\r\n\r\n @Input()\r\n get uploadHeaders(): any {\r\n return this._getOption('uploadHeaders');\r\n }\r\n set uploadHeaders(value: any) {\r\n this._setOption('uploadHeaders', value);\r\n }\r\n\r\n @Input()\r\n get uploadMethod(): UploadHttpMethod {\r\n return this._getOption('uploadMethod');\r\n }\r\n set uploadMethod(value: UploadHttpMethod) {\r\n this._setOption('uploadMethod', value);\r\n }\r\n\r\n @Input()\r\n get uploadMode(): FileUploadMode {\r\n return this._getOption('uploadMode');\r\n }\r\n set uploadMode(value: FileUploadMode) {\r\n this._setOption('uploadMode', value);\r\n }\r\n\r\n @Input()\r\n get uploadUrl(): string {\r\n return this._getOption('uploadUrl');\r\n }\r\n set uploadUrl(value: string) {\r\n this._setOption('uploadUrl', value);\r\n }\r\n\r\n @Input()\r\n get validationError(): any {\r\n return this._getOption('validationError');\r\n }\r\n set validationError(value: any) {\r\n this._setOption('validationError', value);\r\n }\r\n\r\n @Input()\r\n get validationErrors(): Array<any> {\r\n return this._getOption('validationErrors');\r\n }\r\n set validationErrors(value: Array<any>) {\r\n this._setOption('validationErrors', value);\r\n }\r\n\r\n @Input()\r\n get validationStatus(): ValidationStatus {\r\n return this._getOption('validationStatus');\r\n }\r\n set validationStatus(value: ValidationStatus) {\r\n this._setOption('validationStatus', value);\r\n }\r\n\r\n @Input()\r\n get value(): Array<any> {\r\n return this._getOption('value');\r\n }\r\n set value(value: Array<any>) {\r\n this._setOption('value', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get width(): number | string | undefined {\r\n return this._getOption('width');\r\n }\r\n set width(value: number | string | undefined) {\r\n this._setOption('width', value);\r\n }\r\n\r\n\r\n /**\r\n \r\n * This member supports the internal infrastructure and is not intended to be used directly from your code.\r\n \r\n */\r\n @Output() valueChange: EventEmitter<Array<any>>;\r\n protected get _optionPath() {\r\n return 'fileUploaderOptions';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n\r\n this._createEventEmitters([\r\n { emit: 'valueChange' }\r\n ]);\r\n\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxoHtmlEditorFileUploaderOptionsComponent\r\n ],\r\n exports: [\r\n DxoHtmlEditorFileUploaderOptionsComponent\r\n ],\r\n})\r\nexport class DxoHtmlEditorFileUploaderOptionsModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { HtmlEditorImageUploadTab } from 'devextreme/ui/html_editor';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-html-editor-tab',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiHtmlEditorTabComponent extends CollectionNestedOption {\r\n @Input()\r\n get name(): HtmlEditorImageUploadTab | undefined {\r\n return this._getOption('name');\r\n }\r\n set name(value: HtmlEditorImageUploadTab | undefined) {\r\n this._setOption('name', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'tabs';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxiHtmlEditorTabComponent\r\n ],\r\n exports: [\r\n DxiHtmlEditorTabComponent\r\n ],\r\n})\r\nexport class DxiHtmlEditorTabModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input,\r\n ContentChildren,\r\n forwardRef,\r\n QueryList\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { dxFileUploaderOptions } from 'devextreme/ui/file_uploader';\r\nimport { HtmlEditorImageUploadMode, dxHtmlEditorImageUploadTabItem, HtmlEditorImageUploadTab } from 'devextreme/ui/html_editor';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\nimport { DxiHtmlEditorTabComponent } from './tab-dxi';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-html-editor-image-upload',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxoHtmlEditorImageUploadComponent extends NestedOption implements OnDestroy, OnInit {\r\n @Input()\r\n get fileUploaderOptions(): dxFileUploaderOptions {\r\n return this._getOption('fileUploaderOptions');\r\n }\r\n set fileUploaderOptions(value: dxFileUploaderOptions) {\r\n this._setOption('fileUploaderOptions', value);\r\n }\r\n\r\n @Input()\r\n get fileUploadMode(): HtmlEditorImageUploadMode {\r\n return this._getOption('fileUploadMode');\r\n }\r\n set fileUploadMode(value: HtmlEditorImageUploadMode) {\r\n this._setOption('fileUploadMode', value);\r\n }\r\n\r\n @Input()\r\n get tabs(): Array<dxHtmlEditorImageUploadTabItem | HtmlEditorImageUploadTab> {\r\n return this._getOption('tabs');\r\n }\r\n set tabs(value: Array<dxHtmlEditorImageUploadTabItem | HtmlEditorImageUploadTab>) {\r\n this._setOption('tabs', value);\r\n }\r\n\r\n @Input()\r\n get uploadDirectory(): string | undefined {\r\n return this._getOption('uploadDirectory');\r\n }\r\n set uploadDirectory(value: string | undefined) {\r\n this._setOption('uploadDirectory', value);\r\n }\r\n\r\n @Input()\r\n get uploadUrl(): string | undefined {\r\n return this._getOption('uploadUrl');\r\n }\r\n set uploadUrl(value: string | undefined) {\r\n this._setOption('uploadUrl', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'imageUpload';\r\n }\r\n\r\n\r\n @ContentChildren(forwardRef(() => DxiHtmlEditorTabComponent))\r\n get tabsChildren(): QueryList<DxiHtmlEditorTabComponent> {\r\n return this._getOption('tabs');\r\n }\r\n set tabsChildren(value) {\r\n this.setChildren('tabs', value);\r\n }\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxoHtmlEditorImageUploadComponent\r\n ],\r\n exports: [\r\n DxoHtmlEditorImageUploadComponent\r\n ],\r\n})\r\nexport class DxoHtmlEditorImageUploadModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input,\r\n ContentChildren,\r\n forwardRef,\r\n QueryList\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport { dxHtmlEditorTableContextMenuItem, HtmlEditorPredefinedContextMenuItem, HtmlEditorPredefinedToolbarItem, AICommand, AICommandName } from 'devextreme/ui/html_editor';\r\nimport { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';\r\nimport { ToolbarItemLocation, ToolbarItemComponent } from 'devextreme/common';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n IDxTemplateHost,\r\n DxTemplateHost\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\nimport { DxiHtmlEditorCommandComponent } from './command-dxi';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-html-editor-item',\r\n standalone: true,\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n})\r\nexport class DxiHtmlEditorItemComponent extends CollectionNestedOption implements AfterViewInit,\r\n IDxTemplateHost {\r\n @Input()\r\n get beginGroup(): boolean {\r\n return this._getOption('beginGroup');\r\n }\r\n set beginGroup(value: boolean) {\r\n this._setOption('beginGroup', value);\r\n }\r\n\r\n @Input()\r\n get closeMenuOnClick(): boolean {\r\n return this._getOption('closeMenuOnClick');\r\n }\r\n set closeMenuOnClick(value: boolean) {\r\n this._setOption('closeMenuOnClick', value);\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value: boolean) {\r\n this._setOption('disabled', value);\r\n }\r\n\r\n @Input()\r\n get icon(): string {\r\n return this._getOption('icon');\r\n }\r\n set icon(value: string) {\r\n this._setOption('icon', value);\r\n }\r\n\r\n @Input()\r\n get items(): Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem> {\r\n return this._getOption('items');\r\n }\r\n set items(value: Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem>) {\r\n this._setOption('items', value);\r\n }\r\n\r\n @Input()\r\n get name(): HtmlEditorPredefinedContextMenuItem | undefined | HtmlEditorPredefinedToolbarItem | string {\r\n return this._getOption('name');\r\n }\r\n set name(value: HtmlEditorPredefinedContextMenuItem | undefined | HtmlEditorPredefinedToolbarItem | string) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get selectable(): boolean {\r\n return this._getOption('selectable');\r\n }\r\n set selectable(value: boolean) {\r\n this._setOption('selectable', value);\r\n }\r\n\r\n @Input()\r\n get selected(): boolean {\r\n return this._getOption('selected');\r\n }\r\n set selected(value: boolean) {\r\n this._setOption('selected', value);\r\n }\r\n\r\n @Input()\r\n get template(): any {\r\n return this._getOption('template');\r\n }\r\n set template(value: any) {\r\n this._setOption('template', value);\r\n }\r\n\r\n @Input()\r\n get text(): string {\r\n return this._getOption('text');\r\n }\r\n set text(value: string) {\r\n this._setOption('text', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get acceptedValues(): Array<boolean | number | string> {\r\n return this._getOption('acceptedValues');\r\n }\r\n set acceptedValues(value: Array<boolean | number | string>) {\r\n this._setOption('acceptedValues', value);\r\n }\r\n\r\n @Input()\r\n get commands(): Array<AICommand | AICommandName> {\r\n return this._getOption('commands');\r\n }\r\n set commands(value: Array<AICommand | AICommandName>) {\r\n this._setOption('commands', value);\r\n }\r\n\r\n @Input()\r\n get cssClass(): string | undefined {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value: string | undefined) {\r\n this._setOption('cssClass', value);\r\n }\r\n\r\n @Input()\r\n get html(): string {\r\n return this._getOption('html');\r\n }\r\n set html(value: string) {\r\n this._setOption('html', value);\r\n }\r\n\r\n @Input()\r\n get locateInMenu(): LocateInMenuMode {\r\n return this._getOption('locateInMenu');\r\n }\r\n set locateInMenu(value: LocateInMenuMode) {\r\n this._setOption('locateInMenu', value);\r\n }\r\n\r\n @Input()\r\n get location(): ToolbarItemLocation {\r\n return this._getOption('location');\r\n }\r\n set location(value: ToolbarItemLocation) {\r\n this._setOption('location', value);\r\n }\r\n\r\n @Input()\r\n get menuItemTemplate(): any {\r\n return this._getOption('menuItemTemplate');\r\n }\r\n set menuItemTemplate(value: any) {\r\n this._setOption('menuItemTemplate', value);\r\n }\r\n\r\n @Input()\r\n get options(): any {\r\n return this._getOption('options');\r\n }\r\n set options(value: any) {\r\n this._setOption('options', value);\r\n }\r\n\r\n @Input()\r\n get showText(): ShowTextMode {\r\n return this._getOption('showText');\r\n }\r\n set showText(value: ShowTextMode) {\r\n this._setOption('showText', value);\r\n }\r\n\r\n @Input()\r\n get widget(): ToolbarItemComponent {\r\n return this._getOption('widget');\r\n }\r\n set widget(value: ToolbarItemComponent) {\r\n this._setOption('widget', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'items';\r\n }\r\n\r\n\r\n @ContentChildren(forwardRef(() => DxiHtmlEditorCommandComponent))\r\n get commandsChildren(): QueryList<DxiHtmlEditorCommandComponent> {\r\n return this._getOption('commands');\r\n }\r\n set commandsChildren(value) {\r\n this.setChildren('commands', value);\r\n }\r\n\r\n @ContentChildren(forwardRef(() => DxiHtmlEditorItemComponent))\r\n get itemsChildren(): QueryList<DxiHtmlEditorItemComponent> {\r\n return this._getOption('items');\r\n }\r\n set itemsChildren(value) {\r\n this.setChildren('items', value);\r\n }\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Host() templateHost: DxTemplateHost,\r\n private element: ElementRef) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n\r\n setTemplate(template: DxTemplateDirective) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxiHtmlEditorItemComponent\r\n ],\r\n exports: [\r\n DxiHtmlEditorItemComponent\r\n ],\r\n})\r\nexport class DxiHtmlEditorItemModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-html-editor-media-resizing',\r\n standalone: true,\r\n template: '',\r\n styles: [''],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxoHtmlEditorMediaResizingComponent extends NestedOption implements OnDestroy, OnInit {\r\n @Input()\r\n get allowedTargets(): Array<string> {\r\n return this._getOption('allowedTargets');\r\n }\r\n set allowedTargets(value: Array<string>) {\r\n this._setOption('allowedTargets', value);\r\n }\r\n\r\n @Input()\r\n get enabled(): boolean {\r\n return this._getOption('enabled');\r\n }\r\n set enabled(value: boolean) {\r\n this._setOption('enabled', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'mediaResizing';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxoHtmlEditorMediaResizingComponent\r\n ],\r\n exports: [\r\n DxoHtmlEditorMediaResizingComponent\r\n ],\r\n})\r\nexport class DxoHtmlEditorMediaResizingModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { DataSourceOptions } from 'devextreme/data/data_source';\r\nimport { Store } from 'devextreme/data/store';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n IDxTemplateHost,\r\n DxTemplateHost\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-html-editor-mention',\r\n standalone: true,\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n})\r\nexport class DxiHtmlEditorMentionComponent extends CollectionNestedOption implements AfterViewInit,\r\n IDxTemplateHost {\r\n @Input()\r\n get dataSource(): Array<any> | DataSource | DataSourceOptions | null | Store | string {\r\n return this._getOption('dataSource');\r\n }\r\n set dataSource(value: Array<any> | DataSource | DataSourceOptions | null | Store | string) {\r\n this._setOption('dataSource', value);\r\n }\r\n\r\n @Input()\r\n get displayExpr(): ((item: any) => string) | string {\r\n return this._getOption('displayExpr');\r\n }\r\n set displayExpr(value: ((item: any) => string) | string) {\r\n this._setOption('displayExpr', value);\r\n }\r\n\r\n @Input()\r\n get itemTemplate(): any {\r\n return this._getOption('itemTemplate');\r\n }\r\n set itemTemplate(value: any) {\r\n this._setOption('itemTemplate', value);\r\n }\r\n\r\n @Input()\r\n get marker(): string {\r\n return this._getOption('marker');\r\n }\r\n set marker(value: string) {\r\n this._setOption('marker', value);\r\n }\r\n\r\n @Input()\r\n get minSearchLength(): number {\r\n return this._getOption('minSearchLength');\r\n }\r\n set minSearchLength(value: number) {\r\n this._setOption('minSearchLength', value);\r\n }\r\n\r\n @Input()\r\n get searchExpr(): Array<Function | string> | Function | string {\r\n return this._getOption('searchExpr');\r\n }\r\n set searchExpr(value: Array<Function | string> | Function | string) {\r\n this._setOption('searchExpr', value);\r\n }\r\n\r\n @Input()\r\n get searchTimeout(): number {\r\n return this._getOption('searchTimeout');\r\n }\r\n set searchTimeout(value: number) {\r\n this._setOption('searchTimeout', value);\r\n }\r\n\r\n @Input()\r\n get template(): any {\r\n return this._getOption('template');\r\n }\r\n set template(value: any) {\r\n this._setOption('template', value);\r\n }\r\n\r\n @Input()\r\n get valueExpr(): Function | string {\r\n return this._getOption('valueExpr');\r\n }\r\n set valueExpr(value: Function | string) {\r\n this._setOption('valueExpr', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'mentions';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Host() templateHost: DxTemplateHost,\r\n private element: ElementRef) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n\r\n setTemplate(template: DxTemplateDirective) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n DxiHtmlEditorMentionComponent\r\n ],\r\n exports: [\r\n DxiHtmlEditorMentionComponent\r\n ],\r\n})\r\nexport class DxiHtmlEditorMentionModule { }\r\n","/*!\n * devextreme-angular\n * Version: 25.1.4\n * Build date: Tue Aug 05 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input,\r\n ContentChildren,\r\n forwardRef,\r\n QueryList,\r\n AfterContentInit\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport { dxHtmlEditorTableContextMenuItem, HtmlEditorPredefinedContextMenuItem } from 'devextreme/ui/html_editor';\r\n\r\nimport {\r\n DxIntegrationModule,\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n IDxTemplateHost,\r\n DxTemplateHost\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\nimport { DxiHtmlEditorItemComponent } from './item-dxi';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-html-editor-table-context-menu-item',\r\n standalone: true,\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n imports: [ DxIntegrationModule ],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n})\r\nexport class DxiHtmlEditorTableContextMenuItemComponent extends CollectionNestedOption implements AfterViewInit,\r\n IDxTemplateHost, AfterContentInit {\r\n @Input()\r\n get beginGroup(): boolean {\r\n return this._getOption('beginGroup');\r\n }\r\n set beginGroup(value: boolean) {\r\n this._setOption('beginGroup', value);\r\n }\r\n\r\n @Input()\r\n get closeMenuOnClick(): boolean {\r\n return this._getOption('closeMenuOnClick');\r\n }\r\n set closeMenuOnClick(value: boolean) {\r\n this._setOption('closeMenuOnClick', value);\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value: boolean) {\r\n this._setOption('disabled', value);\r\n }\r\n\r\n @Input()\r\n get icon(): string {\r\n return this._getOption('icon');\r\n }\r\n set icon(value: string) {\r\n this._setOption('icon', value);\r\n }\r\n\r\n @Input()\r\n get items(): Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem> {\r\n return this._getOption('items');\r\n }\r\n set items(value: Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem>) {\r\n this._setOption('items', value);\r\n }\r\n\r\n @Input()\r\n get name(): HtmlEditorPredefinedContextMenuItem | undefined {\r\n return this._getOption('name');\r\n }\r\n set name(value: HtmlEditorPredefinedContextMenuItem | undefined) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get selectable(): boolean {\r\n return this._getOption('selectable');\r\n }\r\n set selectable(value: boolean) {\r\n this._setOption('selectable', value);\r\n }\r\n\r\n @Input()\r\n get selected(): boolean {\r\n return this._getOption('selected');\r\n }\r\n set selected(value: boolean) {\r\n this._setOption('selected', value);\r\n }\r\n\r\n @Input()\r\n get template(): any {\r\n return this._getOption('template');\r\n }\r\n set template(value: any) {\r\n this._setOption('template', value);\r\n }\r\n\r\n @Input()\r\n get text(): string {\r\n return this._getOption('text');\r\n }\r\n set text(value: string) {\r\n this._setOption('text', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'items';\r\n }\r\n\r\n\r\n @ContentChildren(forwardRef(() => DxiHtmlEditorItemComponent)) itemsChildren!: QueryList<DxiHtmlEditorItemComponent>\r\n \r\n @ContentChildren(forwardRef(() => DxiHtmlEditorTableContextMenuItemComponent)) tableContextMenuItemsChildren!: QueryList<DxiHtmlEditorTableContextMenuItemComponent>\r\n \r\n setItems() {\r\n const q: QueryList<any> = new QueryList();\r\n q.reset([\r\n ...this.itemsChildren.toArray(),\r\n ...this.tableContextMenuItemsChildren.toArray(),\r\n ]);\r\n this.setChildren('items', q);\r\n }\r\n\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost,\r\n