gestione gare pubbliche
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 

226 righe
5.9 KiB

/**
* @license Copyright (c) 2014-2024, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';
import { Style } from '@ckeditor/ckeditor5-style';
import { Alignment } from '@ckeditor/ckeditor5-alignment';
import { Autoformat } from '@ckeditor/ckeditor5-autoformat';
import { Autosave } from '@ckeditor/ckeditor5-autosave';
import { Bold, Italic, Strikethrough, Underline, Subscript, Superscript } from '@ckeditor/ckeditor5-basic-styles';
import { BlockQuote } from '@ckeditor/ckeditor5-block-quote';
import { CloudServices } from '@ckeditor/ckeditor5-cloud-services';
import type { EditorConfig, PluginConstructor } from '@ckeditor/ckeditor5-core';
import { Essentials } from '@ckeditor/ckeditor5-essentials';
import { FindAndReplace } from '@ckeditor/ckeditor5-find-and-replace';
import { FontBackgroundColor, FontColor, FontFamily, FontSize, } from '@ckeditor/ckeditor5-font';
import { Heading, Title } from '@ckeditor/ckeditor5-heading';
import { Highlight } from '@ckeditor/ckeditor5-highlight';
import { HorizontalLine } from '@ckeditor/ckeditor5-horizontal-line';
import { DataFilter, GeneralHtmlSupport } from '@ckeditor/ckeditor5-html-support';
import {
AutoImage,
Image,
ImageCaption,
ImageResize,
ImageStyle,
ImageToolbar,
ImageResizeEditing,
ImageResizeHandles,
PictureEditing,
ImageInsertViaUrl
} from '@ckeditor/ckeditor5-image';
import { Indent, IndentBlock } from '@ckeditor/ckeditor5-indent';
import { AutoLink, Link } from '@ckeditor/ckeditor5-link';
import { List, ListProperties } from '@ckeditor/ckeditor5-list';
import { MediaEmbed } from '@ckeditor/ckeditor5-media-embed';
import { PageBreak } from '@ckeditor/ckeditor5-page-break';
import { Paragraph } from '@ckeditor/ckeditor5-paragraph';
import { PasteFromOffice } from '@ckeditor/ckeditor5-paste-from-office';
import { RemoveFormat } from '@ckeditor/ckeditor5-remove-format';
import {
SpecialCharacters,
SpecialCharactersEssentials,
SpecialCharactersLatin
} from '@ckeditor/ckeditor5-special-characters';
import {
Table,
TableCaption,
TableCellProperties,
TableColumnResize,
TableProperties,
TableToolbar
} from '@ckeditor/ckeditor5-table';
import { TextTransformation } from '@ckeditor/ckeditor5-typing';
import { Undo } from '@ckeditor/ckeditor5-undo';
import { WordCount } from '@ckeditor/ckeditor5-word-count';
import { SourceEditing } from '@ckeditor/ckeditor5-source-editing';
// You can read more about extending the build with additional plugins in the "Installing plugins" guide.
// See https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html for details.
import { DataProcessor, ViewDocument, ViewDocumentFragment, MatcherPattern } from '@ckeditor/ckeditor5-engine';
import { Plugin } from '@ckeditor/ckeditor5-core';
class PlainTextProcessor implements DataProcessor {
editor : any
constructor(editor : any) {
this.editor = editor
}
/**
* Restituisce il contenuto della textarea dopo averlo processato,
* in questa implementazione sostituisce i tag <p> con tag <br> rimuovendo
* il primo tag
* @param viewFragment
* @returns
*/
public toData( viewFragment: ViewDocumentFragment ): string {
var htmlData = this.editor.data.htmlProcessor.toData( viewFragment ).replace(/<\/?p>/g, '<br>');
const tmp = document.createElement( 'DIV' );
tmp.innerHTML = htmlData;
if (htmlData.startsWith('<br>')) {
htmlData = htmlData.substring(4);
}
return htmlData;
}
/**
* Effettua il primo rendering del contenuto
* @param data
* @returns
*/
public toView( data: string ): ViewDocumentFragment {
var escapedData = data
.replace(/<\/div>/g, '<br>')
.replace(/<\/?p>/g, '<br>')
.replace('<br>','||br||')
.replace( /&/g, '&amp;' )
.replace( /</g, '&lt;' )
.replace( />/g, '&gt;' )
.trim()
.replace('||br||','<br>')
var escapedData = data
// Wrap the escaped data in a paragraph element.
const viewFragment = this.editor.data.htmlProcessor.toView( escapedData );
return viewFragment;
}
public registerRawContentMatcher( pattern: MatcherPattern ): void {}
public useFillerType( type: 'default' | 'marked' ): void {}
}
class PlainText extends Plugin {
static get pluginName() {
return "PlainText"
}
init() : void {
this.editor.data.processor = new PlainTextProcessor(this.editor)
}
}
class Editor extends ClassicEditor {
public static override builtinPlugins : PluginConstructor[] = [
PlainText,
SourceEditing,
Subscript,
Superscript,
Alignment,
Autoformat,
AutoImage,
AutoLink,
Autosave,
BlockQuote,
Bold,
CloudServices,
DataFilter,
Essentials,
FindAndReplace,
FontBackgroundColor,
FontColor,
FontFamily,
FontSize,
GeneralHtmlSupport,
Heading,
Highlight,
HorizontalLine,
Image,
ImageCaption,
ImageResize,
ImageStyle,
ImageToolbar,
ImageInsertViaUrl,
Image,
ImageResizeEditing,
ImageResizeHandles,
Indent,
IndentBlock,
Italic,
Link,
List,
ListProperties,
MediaEmbed,
PageBreak,
Paragraph,
PasteFromOffice,
PictureEditing,
RemoveFormat,
SpecialCharacters,
SpecialCharactersEssentials,
SpecialCharactersLatin,
Strikethrough,
Style,
Table,
TableCaption,
TableCellProperties,
TableColumnResize,
TableProperties,
TableToolbar,
TextTransformation,
Title,
Underline,
Undo,
WordCount
];
public static override defaultConfig: EditorConfig = {
toolbar: {
items: [
'undo',
'redo',
'|',
'alignment',
'|',
'bold',
'italic',
'underline',
'|',
'fontColor',
'highlight',
'|',
'bulletedList',
'numberedList',
'|',
'outdent',
'indent'
]
},
language: 'it',
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells',
'tableCellProperties',
'tableProperties'
]
}
};
}
export default Editor