ckeditor5_paste_filter-1.0.0-alpha1/js/ckeditor5_plugins/pasteFilter/src/pastefilter.js

js/ckeditor5_plugins/pasteFilter/src/pastefilter.js
import { Plugin } from 'ckeditor5/src/core';
import { ClipboardPipeline } from 'ckeditor5/src/clipboard';

export default class PasteFilter extends Plugin {
  /**
   * @inheritDoc
   */
  static get pluginName() {
    return 'PasteFilter';
  }

  /**
   * @inheritDoc
   */
  static get requires() {
    return [ClipboardPipeline];
  }

  /**
   * @inheritDoc
   */
  init() {
    this.editor.plugins
      .get('ClipboardPipeline')
      .on('inputTransformation', (evt, data) => {
        const filters = this.editor.config.get('pasteFilter');
        if (!filters) {
          return;
        }

        let html = this.editor.data.htmlProcessor.toData(data.content);
        filters.forEach((filter) => {
          try {
            html = html.replace(
              new RegExp(filter.search, 'gimsu'),
              filter.replace,
            );
          } catch (e) {
            // eslint-disable-next-line no-console
            console.error(
              Drupal.t(
                'CKEditor 5 Paste Filter: Invalid regular expression "!error"',
                {
                  '!error': filter.search,
                },
              ),
            );
          }
        });

        data.content = this.editor.data.htmlProcessor.toView(html);
      });
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc