/** * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /** * @module paste-from-office/normalizer */ import type { ClipboardInputTransformationData } from 'ckeditor5/src/clipboard.js'; import type { ParseHtmlResult } from './filters/parse.js'; /** * Interface defining a content transformation pasted from an external editor. * * Normalizers are registered by the {@link module:paste-from-office/pastefromoffice~PasteFromOffice} plugin and run on * {@link module:clipboard/clipboardpipeline~ClipboardPipeline#event:inputTransformation inputTransformation event}. * They detect environment-specific quirks and transform it into a form compatible with other CKEditor features. */ export interface Normalizer { /** * Must return `true` if the `htmlString` contains content which this normalizer can transform. */ isActive(htmlString: string): boolean; /** * Executes the normalization of a given data. */ execute(data: NormalizerData): void; } export interface NormalizerData extends ClipboardInputTransformationData { _isTransformedWithPasteFromOffice?: boolean; _parsedData: ParseHtmlResult; }