UNPKG

devextreme-angular

Version:

DevExtreme UI and Visualization Components for Angular

1 lines • 119 kB
{"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/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/tab-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: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n NgModule,\n Host,\n SkipSelf,\n Input\n} from '@angular/core';\n\n\n\n\nimport type { AICommandNameExtended } from 'devextreme/ui/html_editor';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n} from 'devextreme-angular/core';\nimport { CollectionNestedOption } from 'devextreme-angular/core';\n\nimport { PROPERTY_TOKEN_commands } from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxi-html-editor-command',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [\n NestedOptionHost,\n {\n provide: PROPERTY_TOKEN_commands,\n useExisting: DxiHtmlEditorCommandComponent,\n }\n ]\n})\nexport class DxiHtmlEditorCommandComponent extends CollectionNestedOption {\n @Input()\n get name(): AICommandNameExtended {\n return this._getOption('name');\n }\n set name(value: AICommandNameExtended) {\n this._setOption('name', value);\n }\n\n @Input()\n get options(): any {\n return this._getOption('options');\n }\n set options(value: any) {\n this._setOption('options', value);\n }\n\n @Input()\n get prompt(): ((param: string) => string) {\n return this._getOption('prompt');\n }\n set prompt(value: ((param: string) => string)) {\n this._setOption('prompt', value);\n }\n\n @Input()\n get text(): string {\n return this._getOption('text');\n }\n set text(value: string) {\n this._setOption('text', value);\n }\n\n\n protected get _optionPath() {\n return 'commands';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n\n ngOnDestroy() {\n this._deleteRemovedOptions(this._fullOptionPath());\n }\n\n}\n\n@NgModule({\n imports: [\n DxiHtmlEditorCommandComponent\n ],\n exports: [\n DxiHtmlEditorCommandComponent\n ],\n})\nexport class DxiHtmlEditorCommandModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n OnInit,\n OnDestroy,\n NgModule,\n Host,\n SkipSelf,\n Input\n} from '@angular/core';\n\n\n\n\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n} from 'devextreme-angular/core';\nimport { NestedOption } from 'devextreme-angular/core';\n\n\n@Component({\n selector: 'dxo-html-editor-converter',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [NestedOptionHost]\n})\nexport class DxoHtmlEditorConverterComponent extends NestedOption implements OnDestroy, OnInit {\n @Input()\n get fromHtml(): ((value: string) => string) {\n return this._getOption('fromHtml');\n }\n set fromHtml(value: ((value: string) => string)) {\n this._setOption('fromHtml', value);\n }\n\n @Input()\n get toHtml(): ((value: string) => string) {\n return this._getOption('toHtml');\n }\n set toHtml(value: ((value: string) => string)) {\n this._setOption('toHtml', value);\n }\n\n\n protected get _optionPath() {\n return 'converter';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n ngOnInit() {\n this._addRecreatedComponent();\n }\n\n ngOnDestroy() {\n this._addRemovedOption(this._getOptionPath());\n }\n\n\n}\n\n@NgModule({\n imports: [\n DxoHtmlEditorConverterComponent\n ],\n exports: [\n DxoHtmlEditorConverterComponent\n ],\n})\nexport class DxoHtmlEditorConverterModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n OnInit,\n OnDestroy,\n NgModule,\n Host,\n SkipSelf,\n Input,\n Output,\n EventEmitter\n} from '@angular/core';\n\n\n\n\nimport type UploadInfo from 'devextreme/file_management/upload_info';\nimport type { BeforeSendEvent, ContentReadyEvent, DisposingEvent, DropZoneEnterEvent, DropZoneLeaveEvent, FilesUploadedEvent, InitializedEvent, OptionChangedEvent, ProgressEvent, UploadAbortedEvent, UploadedEvent, UploadErrorEvent, UploadStartedEvent, ValueChangedEvent, UploadHttpMethod, FileUploadMode } from 'devextreme/ui/file_uploader';\nimport type { ValidationStatus } from 'devextreme/common';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n} from 'devextreme-angular/core';\nimport { NestedOption } from 'devextreme-angular/core';\n\n\n@Component({\n selector: 'dxo-html-editor-file-uploader-options',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [NestedOptionHost]\n})\nexport class DxoHtmlEditorFileUploaderOptionsComponent extends NestedOption implements OnDestroy, OnInit {\n @Input()\n get abortUpload(): ((file: any, uploadInfo?: UploadInfo) => any) {\n return this._getOption('abortUpload');\n }\n set abortUpload(value: ((file: any, uploadInfo?: UploadInfo) => any)) {\n this._setOption('abortUpload', value);\n }\n\n @Input()\n get accept(): string {\n return this._getOption('accept');\n }\n set accept(value: string) {\n this._setOption('accept', value);\n }\n\n @Input()\n get accessKey(): string | undefined {\n return this._getOption('accessKey');\n }\n set accessKey(value: string | undefined) {\n this._setOption('accessKey', value);\n }\n\n @Input()\n get activeStateEnabled(): boolean {\n return this._getOption('activeStateEnabled');\n }\n set activeStateEnabled(value: boolean) {\n this._setOption('activeStateEnabled', value);\n }\n\n @Input()\n get allowCanceling(): boolean {\n return this._getOption('allowCanceling');\n }\n set allowCanceling(value: boolean) {\n this._setOption('allowCanceling', value);\n }\n\n @Input()\n get allowedFileExtensions(): Array<string> {\n return this._getOption('allowedFileExtensions');\n }\n set allowedFileExtensions(value: Array<string>) {\n this._setOption('allowedFileExtensions', value);\n }\n\n @Input()\n get chunkSize(): number {\n return this._getOption('chunkSize');\n }\n set chunkSize(value: number) {\n this._setOption('chunkSize', value);\n }\n\n @Input()\n get dialogTrigger(): any | string | undefined {\n return this._getOption('dialogTrigger');\n }\n set dialogTrigger(value: any | string | undefined) {\n this._setOption('dialogTrigger', value);\n }\n\n @Input()\n get disabled(): boolean {\n return this._getOption('disabled');\n }\n set disabled(value: boolean) {\n this._setOption('disabled', value);\n }\n\n @Input()\n get dropZone(): any | string | undefined {\n return this._getOption('dropZone');\n }\n set dropZone(value: any | string | undefined) {\n this._setOption('dropZone', value);\n }\n\n @Input()\n get elementAttr(): Record<string, any> {\n return this._getOption('elementAttr');\n }\n set elementAttr(value: Record<string, any>) {\n this._setOption('elementAttr', value);\n }\n\n @Input()\n get focusStateEnabled(): boolean {\n return this._getOption('focusStateEnabled');\n }\n set focusStateEnabled(value: boolean) {\n this._setOption('focusStateEnabled', value);\n }\n\n @Input()\n get height(): number | string | undefined {\n return this._getOption('height');\n }\n set height(value: number | string | undefined) {\n this._setOption('height', value);\n }\n\n @Input()\n get hint(): string | undefined {\n return this._getOption('hint');\n }\n set hint(value: string | undefined) {\n this._setOption('hint', value);\n }\n\n @Input()\n get hoverStateEnabled(): boolean {\n return this._getOption('hoverStateEnabled');\n }\n set hoverStateEnabled(value: boolean) {\n this._setOption('hoverStateEnabled', value);\n }\n\n @Input()\n get inputAttr(): any {\n return this._getOption('inputAttr');\n }\n set inputAttr(value: any) {\n this._setOption('inputAttr', value);\n }\n\n @Input()\n get invalidFileExtensionMessage(): string {\n return this._getOption('invalidFileExtensionMessage');\n }\n set invalidFileExtensionMessage(value: string) {\n this._setOption('invalidFileExtensionMessage', value);\n }\n\n @Input()\n get invalidMaxFileSizeMessage(): string {\n return this._getOption('invalidMaxFileSizeMessage');\n }\n set invalidMaxFileSizeMessage(value: string) {\n this._setOption('invalidMaxFileSizeMessage', value);\n }\n\n @Input()\n get invalidMinFileSizeMessage(): string {\n return this._getOption('invalidMinFileSizeMessage');\n }\n set invalidMinFileSizeMessage(value: string) {\n this._setOption('invalidMinFileSizeMessage', value);\n }\n\n @Input()\n get isDirty(): boolean {\n return this._getOption('isDirty');\n }\n set isDirty(value: boolean) {\n this._setOption('isDirty', value);\n }\n\n @Input()\n get isValid(): boolean {\n return this._getOption('isValid');\n }\n set isValid(value: boolean) {\n this._setOption('isValid', value);\n }\n\n @Input()\n get labelText(): string {\n return this._getOption('labelText');\n }\n set labelText(value: string) {\n this._setOption('labelText', value);\n }\n\n @Input()\n get maxFileSize(): number {\n return this._getOption('maxFileSize');\n }\n set maxFileSize(value: number) {\n this._setOption('maxFileSize', value);\n }\n\n @Input()\n get minFileSize(): number {\n return this._getOption('minFileSize');\n }\n set minFileSize(value: number) {\n this._setOption('minFileSize', value);\n }\n\n @Input()\n get multiple(): boolean {\n return this._getOption('multiple');\n }\n set multiple(value: boolean) {\n this._setOption('multiple', value);\n }\n\n @Input()\n get name(): string {\n return this._getOption('name');\n }\n set name(value: string) {\n this._setOption('name', value);\n }\n\n @Input()\n get onBeforeSend(): ((e: BeforeSendEvent) => void) {\n return this._getOption('onBeforeSend');\n }\n set onBeforeSend(value: ((e: BeforeSendEvent) => void)) {\n this._setOption('onBeforeSend', value);\n }\n\n @Input()\n get onContentReady(): ((e: ContentReadyEvent) => void) {\n return this._getOption('onContentReady');\n }\n set onContentReady(value: ((e: ContentReadyEvent) => void)) {\n this._setOption('onContentReady', value);\n }\n\n @Input()\n get onDisposing(): ((e: DisposingEvent) => void) {\n return this._getOption('onDisposing');\n }\n set onDisposing(value: ((e: DisposingEvent) => void)) {\n this._setOption('onDisposing', value);\n }\n\n @Input()\n get onDropZoneEnter(): ((e: DropZoneEnterEvent) => void) {\n return this._getOption('onDropZoneEnter');\n }\n set onDropZoneEnter(value: ((e: DropZoneEnterEvent) => void)) {\n this._setOption('onDropZoneEnter', value);\n }\n\n @Input()\n get onDropZoneLeave(): ((e: DropZoneLeaveEvent) => void) {\n return this._getOption('onDropZoneLeave');\n }\n set onDropZoneLeave(value: ((e: DropZoneLeaveEvent) => void)) {\n this._setOption('onDropZoneLeave', value);\n }\n\n @Input()\n get onFilesUploaded(): ((e: FilesUploadedEvent) => void) {\n return this._getOption('onFilesUploaded');\n }\n set onFilesUploaded(value: ((e: FilesUploadedEvent) => void)) {\n this._setOption('onFilesUploaded', value);\n }\n\n @Input()\n get onInitialized(): ((e: InitializedEvent) => void) {\n return this._getOption('onInitialized');\n }\n set onInitialized(value: ((e: InitializedEvent) => void)) {\n this._setOption('onInitialized', value);\n }\n\n @Input()\n get onOptionChanged(): ((e: OptionChangedEvent) => void) {\n return this._getOption('onOptionChanged');\n }\n set onOptionChanged(value: ((e: OptionChangedEvent) => void)) {\n this._setOption('onOptionChanged', value);\n }\n\n @Input()\n get onProgress(): ((e: ProgressEvent) => void) {\n return this._getOption('onProgress');\n }\n set onProgress(value: ((e: ProgressEvent) => void)) {\n this._setOption('onProgress', value);\n }\n\n @Input()\n get onUploadAborted(): ((e: UploadAbortedEvent) => void) {\n return this._getOption('onUploadAborted');\n }\n set onUploadAborted(value: ((e: UploadAbortedEvent) => void)) {\n this._setOption('onUploadAborted', value);\n }\n\n @Input()\n get onUploaded(): ((e: UploadedEvent) => void) {\n return this._getOption('onUploaded');\n }\n set onUploaded(value: ((e: UploadedEvent) => void)) {\n this._setOption('onUploaded', value);\n }\n\n @Input()\n get onUploadError(): ((e: UploadErrorEvent) => void) {\n return this._getOption('onUploadError');\n }\n set onUploadError(value: ((e: UploadErrorEvent) => void)) {\n this._setOption('onUploadError', value);\n }\n\n @Input()\n get onUploadStarted(): ((e: UploadStartedEvent) => void) {\n return this._getOption('onUploadStarted');\n }\n set onUploadStarted(value: ((e: UploadStartedEvent) => void)) {\n this._setOption('onUploadStarted', value);\n }\n\n @Input()\n get onValueChanged(): ((e: ValueChangedEvent) => void) {\n return this._getOption('onValueChanged');\n }\n set onValueChanged(value: ((e: ValueChangedEvent) => void)) {\n this._setOption('onValueChanged', value);\n }\n\n @Input()\n get progress(): number {\n return this._getOption('progress');\n }\n set progress(value: number) {\n this._setOption('progress', value);\n }\n\n @Input()\n get readOnly(): boolean {\n return this._getOption('readOnly');\n }\n set readOnly(value: boolean) {\n this._setOption('readOnly', value);\n }\n\n @Input()\n get readyToUploadMessage(): string {\n return this._getOption('readyToUploadMessage');\n }\n set readyToUploadMessage(value: string) {\n this._setOption('readyToUploadMessage', value);\n }\n\n @Input()\n get rtlEnabled(): boolean {\n return this._getOption('rtlEnabled');\n }\n set rtlEnabled(value: boolean) {\n this._setOption('rtlEnabled', value);\n }\n\n @Input()\n get selectButtonText(): string {\n return this._getOption('selectButtonText');\n }\n set selectButtonText(value: string) {\n this._setOption('selectButtonText', value);\n }\n\n @Input()\n get showFileList(): boolean {\n return this._getOption('showFileList');\n }\n set showFileList(value: boolean) {\n this._setOption('showFileList', value);\n }\n\n @Input()\n get tabIndex(): number {\n return this._getOption('tabIndex');\n }\n set tabIndex(value: number) {\n this._setOption('tabIndex', value);\n }\n\n @Input()\n get uploadAbortedMessage(): string {\n return this._getOption('uploadAbortedMessage');\n }\n set uploadAbortedMessage(value: string) {\n this._setOption('uploadAbortedMessage', value);\n }\n\n @Input()\n get uploadButtonText(): string {\n return this._getOption('uploadButtonText');\n }\n set uploadButtonText(value: string) {\n this._setOption('uploadButtonText', value);\n }\n\n @Input()\n get uploadChunk(): ((file: any, uploadInfo: UploadInfo) => any) {\n return this._getOption('uploadChunk');\n }\n set uploadChunk(value: ((file: any, uploadInfo: UploadInfo) => any)) {\n this._setOption('uploadChunk', value);\n }\n\n @Input()\n get uploadCustomData(): any {\n return this._getOption('uploadCustomData');\n }\n set uploadCustomData(value: any) {\n this._setOption('uploadCustomData', value);\n }\n\n @Input()\n get uploadedMessage(): string {\n return this._getOption('uploadedMessage');\n }\n set uploadedMessage(value: string) {\n this._setOption('uploadedMessage', value);\n }\n\n @Input()\n get uploadFailedMessage(): string {\n return this._getOption('uploadFailedMessage');\n }\n set uploadFailedMessage(value: string) {\n this._setOption('uploadFailedMessage', value);\n }\n\n @Input()\n get uploadFile(): ((file: any, progressCallback: Function) => any) {\n return this._getOption('uploadFile');\n }\n set uploadFile(value: ((file: any, progressCallback: Function) => any)) {\n this._setOption('uploadFile', value);\n }\n\n @Input()\n get uploadHeaders(): any {\n return this._getOption('uploadHeaders');\n }\n set uploadHeaders(value: any) {\n this._setOption('uploadHeaders', value);\n }\n\n @Input()\n get uploadMethod(): UploadHttpMethod {\n return this._getOption('uploadMethod');\n }\n set uploadMethod(value: UploadHttpMethod) {\n this._setOption('uploadMethod', value);\n }\n\n @Input()\n get uploadMode(): FileUploadMode {\n return this._getOption('uploadMode');\n }\n set uploadMode(value: FileUploadMode) {\n this._setOption('uploadMode', value);\n }\n\n @Input()\n get uploadUrl(): string {\n return this._getOption('uploadUrl');\n }\n set uploadUrl(value: string) {\n this._setOption('uploadUrl', value);\n }\n\n @Input()\n get validationError(): any {\n return this._getOption('validationError');\n }\n set validationError(value: any) {\n this._setOption('validationError', value);\n }\n\n @Input()\n get validationErrors(): Array<any> {\n return this._getOption('validationErrors');\n }\n set validationErrors(value: Array<any>) {\n this._setOption('validationErrors', value);\n }\n\n @Input()\n get validationStatus(): ValidationStatus {\n return this._getOption('validationStatus');\n }\n set validationStatus(value: ValidationStatus) {\n this._setOption('validationStatus', value);\n }\n\n @Input()\n get value(): Array<any> {\n return this._getOption('value');\n }\n set value(value: Array<any>) {\n this._setOption('value', value);\n }\n\n @Input()\n get visible(): boolean {\n return this._getOption('visible');\n }\n set visible(value: boolean) {\n this._setOption('visible', value);\n }\n\n @Input()\n get width(): number | string | undefined {\n return this._getOption('width');\n }\n set width(value: number | string | undefined) {\n this._setOption('width', value);\n }\n\n\n /**\n \n * This member supports the internal infrastructure and is not intended to be used directly from your code.\n \n */\n @Output() valueChange: EventEmitter<Array<any>>;\n protected get _optionPath() {\n return 'fileUploaderOptions';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n this._createEventEmitters([\n { emit: 'valueChange' }\n ]);\n\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n ngOnInit() {\n this._addRecreatedComponent();\n }\n\n ngOnDestroy() {\n this._addRemovedOption(this._getOptionPath());\n }\n\n\n}\n\n@NgModule({\n imports: [\n DxoHtmlEditorFileUploaderOptionsComponent\n ],\n exports: [\n DxoHtmlEditorFileUploaderOptionsComponent\n ],\n})\nexport class DxoHtmlEditorFileUploaderOptionsModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n OnInit,\n OnDestroy,\n NgModule,\n Host,\n SkipSelf,\n Input,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\n\n\n\nimport type { dxFileUploaderOptions } from 'devextreme/ui/file_uploader';\nimport type { HtmlEditorImageUploadMode, dxHtmlEditorImageUploadTabItem, HtmlEditorImageUploadTab } from 'devextreme/ui/html_editor';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n CollectionNestedOption,\n} from 'devextreme-angular/core';\nimport { NestedOption } from 'devextreme-angular/core';\n\nimport {\n PROPERTY_TOKEN_tabs,\n} from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxo-html-editor-image-upload',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [NestedOptionHost]\n})\nexport class DxoHtmlEditorImageUploadComponent extends NestedOption implements OnDestroy, OnInit {\n @ContentChildren(PROPERTY_TOKEN_tabs)\n set _tabsContentChildren(value: QueryList<CollectionNestedOption>) {\n this.setChildren('tabs', value);\n }\n \n @Input()\n get fileUploaderOptions(): dxFileUploaderOptions {\n return this._getOption('fileUploaderOptions');\n }\n set fileUploaderOptions(value: dxFileUploaderOptions) {\n this._setOption('fileUploaderOptions', value);\n }\n\n @Input()\n get fileUploadMode(): HtmlEditorImageUploadMode {\n return this._getOption('fileUploadMode');\n }\n set fileUploadMode(value: HtmlEditorImageUploadMode) {\n this._setOption('fileUploadMode', value);\n }\n\n @Input()\n get tabs(): Array<dxHtmlEditorImageUploadTabItem | HtmlEditorImageUploadTab> {\n return this._getOption('tabs');\n }\n set tabs(value: Array<dxHtmlEditorImageUploadTabItem | HtmlEditorImageUploadTab>) {\n this._setOption('tabs', value);\n }\n\n @Input()\n get uploadDirectory(): string | undefined {\n return this._getOption('uploadDirectory');\n }\n set uploadDirectory(value: string | undefined) {\n this._setOption('uploadDirectory', value);\n }\n\n @Input()\n get uploadUrl(): string | undefined {\n return this._getOption('uploadUrl');\n }\n set uploadUrl(value: string | undefined) {\n this._setOption('uploadUrl', value);\n }\n\n\n protected get _optionPath() {\n return 'imageUpload';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n ngOnInit() {\n this._addRecreatedComponent();\n }\n\n ngOnDestroy() {\n this._addRemovedOption(this._getOptionPath());\n }\n\n\n}\n\n@NgModule({\n imports: [\n DxoHtmlEditorImageUploadComponent\n ],\n exports: [\n DxoHtmlEditorImageUploadComponent\n ],\n})\nexport class DxoHtmlEditorImageUploadModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n NgModule,\n Host,\n ElementRef,\n Renderer2,\n Inject,\n AfterViewInit,\n SkipSelf,\n Input,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport { DOCUMENT } from '@angular/common';\n\n\nimport type { dxHtmlEditorTableContextMenuItem, HtmlEditorPredefinedContextMenuItem, HtmlEditorPredefinedToolbarItem, AICommand, AICommandName } from 'devextreme/ui/html_editor';\nimport type { LocateInMenuMode, ShowTextMode } from 'devextreme/ui/toolbar';\nimport type { ToolbarItemLocation, ToolbarItemComponent } from 'devextreme/common';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n extractTemplate,\n DxTemplateDirective,\n IDxTemplateHost,\n DxTemplateHost,\n} from 'devextreme-angular/core';\nimport { CollectionNestedOption } from 'devextreme-angular/core';\n\nimport {\n PROPERTY_TOKEN_commands,\n PROPERTY_TOKEN_items,\n} from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxi-html-editor-item',\n template: '<ng-content></ng-content>',\n styles: [':host { display: block; }'],\n imports: [ DxIntegrationModule ],\n providers: [\n NestedOptionHost,\n DxTemplateHost,\n {\n provide: PROPERTY_TOKEN_items,\n useExisting: DxiHtmlEditorItemComponent,\n }\n ]\n})\nexport class DxiHtmlEditorItemComponent extends CollectionNestedOption implements AfterViewInit,\n IDxTemplateHost {\n @ContentChildren(PROPERTY_TOKEN_commands)\n set _commandsContentChildren(value: QueryList<CollectionNestedOption>) {\n this.setChildren('commands', value);\n }\n \n @ContentChildren(PROPERTY_TOKEN_items)\n set _itemsContentChildren(value: QueryList<CollectionNestedOption>) {\n this.setChildren('items', value);\n }\n \n @Input()\n get beginGroup(): boolean {\n return this._getOption('beginGroup');\n }\n set beginGroup(value: boolean) {\n this._setOption('beginGroup', value);\n }\n\n @Input()\n get closeMenuOnClick(): boolean {\n return this._getOption('closeMenuOnClick');\n }\n set closeMenuOnClick(value: boolean) {\n this._setOption('closeMenuOnClick', value);\n }\n\n @Input()\n get disabled(): boolean {\n return this._getOption('disabled');\n }\n set disabled(value: boolean) {\n this._setOption('disabled', value);\n }\n\n @Input()\n get icon(): string {\n return this._getOption('icon');\n }\n set icon(value: string) {\n this._setOption('icon', value);\n }\n\n @Input()\n get items(): Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem> {\n return this._getOption('items');\n }\n set items(value: Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem>) {\n this._setOption('items', value);\n }\n\n @Input()\n get name(): HtmlEditorPredefinedContextMenuItem | undefined | HtmlEditorPredefinedToolbarItem | string {\n return this._getOption('name');\n }\n set name(value: HtmlEditorPredefinedContextMenuItem | undefined | HtmlEditorPredefinedToolbarItem | string) {\n this._setOption('name', value);\n }\n\n @Input()\n get selectable(): boolean {\n return this._getOption('selectable');\n }\n set selectable(value: boolean) {\n this._setOption('selectable', value);\n }\n\n @Input()\n get selected(): boolean {\n return this._getOption('selected');\n }\n set selected(value: boolean) {\n this._setOption('selected', value);\n }\n\n @Input()\n get template(): any {\n return this._getOption('template');\n }\n set template(value: any) {\n this._setOption('template', value);\n }\n\n @Input()\n get text(): string {\n return this._getOption('text');\n }\n set text(value: string) {\n this._setOption('text', value);\n }\n\n @Input()\n get visible(): boolean {\n return this._getOption('visible');\n }\n set visible(value: boolean) {\n this._setOption('visible', value);\n }\n\n @Input()\n get acceptedValues(): Array<boolean | number | string> {\n return this._getOption('acceptedValues');\n }\n set acceptedValues(value: Array<boolean | number | string>) {\n this._setOption('acceptedValues', value);\n }\n\n @Input()\n get commands(): Array<AICommand | AICommandName> {\n return this._getOption('commands');\n }\n set commands(value: Array<AICommand | AICommandName>) {\n this._setOption('commands', value);\n }\n\n @Input()\n get cssClass(): string | undefined {\n return this._getOption('cssClass');\n }\n set cssClass(value: string | undefined) {\n this._setOption('cssClass', value);\n }\n\n @Input()\n get html(): string {\n return this._getOption('html');\n }\n set html(value: string) {\n this._setOption('html', value);\n }\n\n @Input()\n get locateInMenu(): LocateInMenuMode {\n return this._getOption('locateInMenu');\n }\n set locateInMenu(value: LocateInMenuMode) {\n this._setOption('locateInMenu', value);\n }\n\n @Input()\n get location(): ToolbarItemLocation {\n return this._getOption('location');\n }\n set location(value: ToolbarItemLocation) {\n this._setOption('location', value);\n }\n\n @Input()\n get menuItemTemplate(): any {\n return this._getOption('menuItemTemplate');\n }\n set menuItemTemplate(value: any) {\n this._setOption('menuItemTemplate', value);\n }\n\n @Input()\n get options(): any {\n return this._getOption('options');\n }\n set options(value: any) {\n this._setOption('options', value);\n }\n\n @Input()\n get showText(): ShowTextMode {\n return this._getOption('showText');\n }\n set showText(value: ShowTextMode) {\n this._setOption('showText', value);\n }\n\n @Input()\n get widget(): ToolbarItemComponent {\n return this._getOption('widget');\n }\n set widget(value: ToolbarItemComponent) {\n this._setOption('widget', value);\n }\n\n\n protected get _optionPath() {\n return 'items';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: any,\n @Host() templateHost: DxTemplateHost,\n private element: ElementRef) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n templateHost.setHost(this);\n }\n\n setTemplate(template: DxTemplateDirective) {\n this.template = template;\n }\n ngAfterViewInit() {\n extractTemplate(this, this.element, this.renderer, this.document);\n }\n\n\n\n ngOnDestroy() {\n this._deleteRemovedOptions(this._fullOptionPath());\n }\n\n}\n\n@NgModule({\n imports: [\n DxiHtmlEditorItemComponent\n ],\n exports: [\n DxiHtmlEditorItemComponent\n ],\n})\nexport class DxiHtmlEditorItemModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n OnInit,\n OnDestroy,\n NgModule,\n Host,\n SkipSelf,\n Input\n} from '@angular/core';\n\n\n\n\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n} from 'devextreme-angular/core';\nimport { NestedOption } from 'devextreme-angular/core';\n\n\n@Component({\n selector: 'dxo-html-editor-media-resizing',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [NestedOptionHost]\n})\nexport class DxoHtmlEditorMediaResizingComponent extends NestedOption implements OnDestroy, OnInit {\n @Input()\n get allowedTargets(): Array<string> {\n return this._getOption('allowedTargets');\n }\n set allowedTargets(value: Array<string>) {\n this._setOption('allowedTargets', value);\n }\n\n @Input()\n get enabled(): boolean {\n return this._getOption('enabled');\n }\n set enabled(value: boolean) {\n this._setOption('enabled', value);\n }\n\n\n protected get _optionPath() {\n return 'mediaResizing';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n ngOnInit() {\n this._addRecreatedComponent();\n }\n\n ngOnDestroy() {\n this._addRemovedOption(this._getOptionPath());\n }\n\n\n}\n\n@NgModule({\n imports: [\n DxoHtmlEditorMediaResizingComponent\n ],\n exports: [\n DxoHtmlEditorMediaResizingComponent\n ],\n})\nexport class DxoHtmlEditorMediaResizingModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n NgModule,\n Host,\n ElementRef,\n Renderer2,\n Inject,\n AfterViewInit,\n SkipSelf,\n Input\n} from '@angular/core';\n\nimport { DOCUMENT } from '@angular/common';\n\n\nimport type { default as DataSource, DataSourceOptions } from 'devextreme/data/data_source';\nimport type { Store } from 'devextreme/data/store';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n extractTemplate,\n DxTemplateDirective,\n IDxTemplateHost,\n DxTemplateHost,\n} from 'devextreme-angular/core';\nimport { CollectionNestedOption } from 'devextreme-angular/core';\n\nimport { PROPERTY_TOKEN_mentions } from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxi-html-editor-mention',\n template: '<ng-content></ng-content>',\n styles: [':host { display: block; }'],\n imports: [ DxIntegrationModule ],\n providers: [\n NestedOptionHost,\n DxTemplateHost,\n {\n provide: PROPERTY_TOKEN_mentions,\n useExisting: DxiHtmlEditorMentionComponent,\n }\n ]\n})\nexport class DxiHtmlEditorMentionComponent extends CollectionNestedOption implements AfterViewInit,\n IDxTemplateHost {\n @Input()\n get dataSource(): Array<any> | DataSource | DataSourceOptions | null | Store | string {\n return this._getOption('dataSource');\n }\n set dataSource(value: Array<any> | DataSource | DataSourceOptions | null | Store | string) {\n this._setOption('dataSource', value);\n }\n\n @Input()\n get displayExpr(): ((item: any) => string) | string {\n return this._getOption('displayExpr');\n }\n set displayExpr(value: ((item: any) => string) | string) {\n this._setOption('displayExpr', value);\n }\n\n @Input()\n get itemTemplate(): any {\n return this._getOption('itemTemplate');\n }\n set itemTemplate(value: any) {\n this._setOption('itemTemplate', value);\n }\n\n @Input()\n get marker(): string {\n return this._getOption('marker');\n }\n set marker(value: string) {\n this._setOption('marker', value);\n }\n\n @Input()\n get minSearchLength(): number {\n return this._getOption('minSearchLength');\n }\n set minSearchLength(value: number) {\n this._setOption('minSearchLength', value);\n }\n\n @Input()\n get searchExpr(): Array<Function | string> | Function | string {\n return this._getOption('searchExpr');\n }\n set searchExpr(value: Array<Function | string> | Function | string) {\n this._setOption('searchExpr', value);\n }\n\n @Input()\n get searchTimeout(): number {\n return this._getOption('searchTimeout');\n }\n set searchTimeout(value: number) {\n this._setOption('searchTimeout', value);\n }\n\n @Input()\n get template(): any {\n return this._getOption('template');\n }\n set template(value: any) {\n this._setOption('template', value);\n }\n\n @Input()\n get valueExpr(): Function | string {\n return this._getOption('valueExpr');\n }\n set valueExpr(value: Function | string) {\n this._setOption('valueExpr', value);\n }\n\n\n protected get _optionPath() {\n return 'mentions';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: any,\n @Host() templateHost: DxTemplateHost,\n private element: ElementRef) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n templateHost.setHost(this);\n }\n\n setTemplate(template: DxTemplateDirective) {\n this.template = template;\n }\n ngAfterViewInit() {\n extractTemplate(this, this.element, this.renderer, this.document);\n }\n\n\n\n ngOnDestroy() {\n this._deleteRemovedOptions(this._fullOptionPath());\n }\n\n}\n\n@NgModule({\n imports: [\n DxiHtmlEditorMentionComponent\n ],\n exports: [\n DxiHtmlEditorMentionComponent\n ],\n})\nexport class DxiHtmlEditorMentionModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n NgModule,\n Host,\n SkipSelf,\n Input\n} from '@angular/core';\n\n\n\n\nimport type { HtmlEditorImageUploadTab } from 'devextreme/ui/html_editor';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n} from 'devextreme-angular/core';\nimport { CollectionNestedOption } from 'devextreme-angular/core';\n\nimport { PROPERTY_TOKEN_tabs } from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxi-html-editor-tab',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [\n NestedOptionHost,\n {\n provide: PROPERTY_TOKEN_tabs,\n useExisting: DxiHtmlEditorTabComponent,\n }\n ]\n})\nexport class DxiHtmlEditorTabComponent extends CollectionNestedOption {\n @Input()\n get name(): HtmlEditorImageUploadTab | undefined {\n return this._getOption('name');\n }\n set name(value: HtmlEditorImageUploadTab | undefined) {\n this._setOption('name', value);\n }\n\n\n protected get _optionPath() {\n return 'tabs';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n\n ngOnDestroy() {\n this._deleteRemovedOptions(this._fullOptionPath());\n }\n\n}\n\n@NgModule({\n imports: [\n DxiHtmlEditorTabComponent\n ],\n exports: [\n DxiHtmlEditorTabComponent\n ],\n})\nexport class DxiHtmlEditorTabModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n NgModule,\n Host,\n ElementRef,\n Renderer2,\n Inject,\n AfterViewInit,\n SkipSelf,\n Input,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\nimport { DOCUMENT } from '@angular/common';\n\n\nimport type { dxHtmlEditorTableContextMenuItem, HtmlEditorPredefinedContextMenuItem } from 'devextreme/ui/html_editor';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n extractTemplate,\n DxTemplateDirective,\n IDxTemplateHost,\n DxTemplateHost,\n} from 'devextreme-angular/core';\nimport { CollectionNestedOption } from 'devextreme-angular/core';\n\nimport {\n PROPERTY_TOKEN_items,\n} from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxi-html-editor-table-context-menu-item',\n template: '<ng-content></ng-content>',\n styles: [':host { display: block; }'],\n imports: [ DxIntegrationModule ],\n providers: [\n NestedOptionHost,\n DxTemplateHost,\n {\n provide: PROPERTY_TOKEN_items,\n useExisting: DxiHtmlEditorTableContextMenuItemComponent,\n }\n ]\n})\nexport class DxiHtmlEditorTableContextMenuItemComponent extends CollectionNestedOption implements AfterViewInit,\n IDxTemplateHost {\n @ContentChildren(PROPERTY_TOKEN_items)\n set _itemsContentChildren(value: QueryList<CollectionNestedOption>) {\n this.setChildren('items', value);\n }\n \n @Input()\n get beginGroup(): boolean {\n return this._getOption('beginGroup');\n }\n set beginGroup(value: boolean) {\n this._setOption('beginGroup', value);\n }\n\n @Input()\n get closeMenuOnClick(): boolean {\n return this._getOption('closeMenuOnClick');\n }\n set closeMenuOnClick(value: boolean) {\n this._setOption('closeMenuOnClick', value);\n }\n\n @Input()\n get disabled(): boolean {\n return this._getOption('disabled');\n }\n set disabled(value: boolean) {\n this._setOption('disabled', value);\n }\n\n @Input()\n get icon(): string {\n return this._getOption('icon');\n }\n set icon(value: string) {\n this._setOption('icon', value);\n }\n\n @Input()\n get items(): Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem> {\n return this._getOption('items');\n }\n set items(value: Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem>) {\n this._setOption('items', value);\n }\n\n @Input()\n get name(): HtmlEditorPredefinedContextMenuItem | undefined {\n return this._getOption('name');\n }\n set name(value: HtmlEditorPredefinedContextMenuItem | undefined) {\n this._setOption('name', value);\n }\n\n @Input()\n get selectable(): boolean {\n return this._getOption('selectable');\n }\n set selectable(value: boolean) {\n this._setOption('selectable', value);\n }\n\n @Input()\n get selected(): boolean {\n return this._getOption('selected');\n }\n set selected(value: boolean) {\n this._setOption('selected', value);\n }\n\n @Input()\n get template(): any {\n return this._getOption('template');\n }\n set template(value: any) {\n this._setOption('template', value);\n }\n\n @Input()\n get text(): string {\n return this._getOption('text');\n }\n set text(value: string) {\n this._setOption('text', value);\n }\n\n @Input()\n get visible(): boolean {\n return this._getOption('visible');\n }\n set visible(value: boolean) {\n this._setOption('visible', value);\n }\n\n\n protected get _optionPath() {\n return 'items';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: any,\n @Host() templateHost: DxTemplateHost,\n private element: ElementRef) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n templateHost.setHost(this);\n }\n\n setTemplate(template: DxTemplateDirective) {\n this.template = template;\n }\n ngAfterViewInit() {\n extractTemplate(this, this.element, this.renderer, this.document);\n }\n\n\n\n ngOnDestroy() {\n this._deleteRemovedOptions(this._fullOptionPath());\n }\n\n}\n\n@NgModule({\n imports: [\n DxiHtmlEditorTableContextMenuItemComponent\n ],\n exports: [\n DxiHtmlEditorTableContextMenuItemComponent\n ],\n})\nexport class DxiHtmlEditorTableContextMenuItemModule { }\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 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\n */\n\n/* tslint:disable:max-line-length */\n\n\nimport {\n Component,\n OnInit,\n OnDestroy,\n NgModule,\n Host,\n SkipSelf,\n Input,\n ContentChildren,\n QueryList\n} from '@angular/core';\n\n\n\n\nimport type { dxHtmlEditorTableContextMenuItem, HtmlEditorPredefinedContextMenuItem } from 'devextreme/ui/html_editor';\n\nimport {\n DxIntegrationModule,\n NestedOptionHost,\n CollectionNestedOption,\n} from 'devextreme-angular/core';\nimport { NestedOption } from 'devextreme-angular/core';\n\nimport {\n PROPERTY_TOKEN_items,\n} from 'devextreme-angular/core/tokens';\n\n@Component({\n selector: 'dxo-html-editor-table-context-menu',\n template: '',\n styles: [''],\n imports: [ DxIntegrationModule ],\n providers: [NestedOptionHost]\n})\nexport class DxoHtmlEditorTableContextMenuComponent extends NestedOption implements OnDestroy, OnInit {\n @ContentChildren(PROPERTY_TOKEN_items)\n set _itemsContentChildren(value: QueryList<CollectionNestedOption>) {\n this.setChildren('items', value);\n }\n \n @Input()\n get enabled(): boolean {\n return this._getOption('enabled');\n }\n set enabled(value: boolean) {\n this._setOption('enabled', value);\n }\n\n @Input()\n get items(): Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem> {\n return this._getOption('items');\n }\n set items(value: Array<dxHtmlEditorTableContextMenuItem | HtmlEditorPredefinedContextMenuItem>) {\n this._setOption('items', value);\n }\n\n\n protected get _optionPath() {\n return 'tableContextMenu';\n }\n\n\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\n @Host() optionHost: NestedOptionHost) {\n super();\n parentOptionHost.setNestedOption(this);\n optionHost.setHost(this, this._fullOptionPath.bind(this));\n }\n\n\n ngOnInit() {\n this._addRec