diff --git a/src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts index d665316af5..1d45e10605 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts @@ -1,19 +1,16 @@ import type { UmbPropertyEditorUiValueType } from '../types.js'; import { UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS } from '../constants.js'; import { property, state } from '@umbraco-cms/backoffice/external/lit'; +import { observeMultiple } from '@umbraco-cms/backoffice/observable-api'; +import { UmbBlockRteEntriesContext, UmbBlockRteManagerContext } from '@umbraco-cms/backoffice/block-rte'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; +import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; +import type { UmbBlockRteTypeModel } from '@umbraco-cms/backoffice/block-rte'; import type { UmbPropertyEditorUiElement, UmbPropertyEditorConfigCollection, } from '@umbraco-cms/backoffice/property-editor'; -import { - UmbBlockRteEntriesContext, - UmbBlockRteManagerContext, - type UmbBlockRteTypeModel, -} from '@umbraco-cms/backoffice/block-rte'; -import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { observeMultiple } from '@umbraco-cms/backoffice/observable-api'; export abstract class UmbPropertyEditorUiRteElementBase extends UmbLitElement implements UmbPropertyEditorUiElement { public set config(config: UmbPropertyEditorConfigCollection | undefined) { @@ -189,6 +186,7 @@ export abstract class UmbPropertyEditorUiRteElementBase extends UmbLitElement im this.#managerContext.removeManySettings(unusedSettingsKeys); this.#managerContext.removeManyLayouts(unusedContentKeys); } + protected _fireChangeEvent() { this.dispatchEvent(new UmbPropertyValueChangeEvent()); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts index 0a081ea5a8..c61116da94 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts @@ -3,23 +3,20 @@ import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; import type { UmbTinyMcePluginBase } from './tiny-mce-plugin.js'; -import { type ClassConstructor, loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { css, customElement, html, property, query } from '@umbraco-cms/backoffice/external/lit'; +import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { getProcessedImageUrl, umbDeepMerge } from '@umbraco-cms/backoffice/utils'; +import { renderEditor } from '@umbraco-cms/backoffice/external/tinymce'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { ImageCropModeModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { - type EditorEvent, - type Editor, - type RawEditorOptions, - renderEditor, -} from '@umbraco-cms/backoffice/external/tinymce'; -import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { ImageCropModeModel } from '@umbraco-cms/backoffice/external/backend-api'; +import type { ClassConstructor } from '@umbraco-cms/backoffice/extension-api'; +import type { EditorEvent, Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; import type { ManifestTinyMcePlugin } from '@umbraco-cms/backoffice/tiny-mce'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; /** * Handles the resize event @@ -367,6 +364,7 @@ export class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, ' } #onChange(value: string) { + if (this.value === value) return; this.value = value; this.dispatchEvent(new UmbChangeEvent()); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts index 41a5d4b4b0..9d375b8f38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts @@ -1,6 +1,6 @@ import type { UmbInputTinyMceElement } from '../../components/input-tiny-mce/input-tiny-mce.element.js'; -import { UmbPropertyEditorUiRteElementBase, UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '@umbraco-cms/backoffice/rte'; import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbPropertyEditorUiRteElementBase, UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '@umbraco-cms/backoffice/rte'; import '../../components/input-tiny-mce/input-tiny-mce.element.js';