mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
Merge remote-tracking branch 'origin/support/3.2' into develop
This commit is contained in:
@@ -1061,11 +1061,6 @@ HTML
|
||||
}
|
||||
}
|
||||
|
||||
// Fields with CKEditor need to have the highlight.js lib loaded even if they are in read-only, as it is needed to format code snippets
|
||||
if ($bHasFieldsWithRichTextEditor) {
|
||||
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
|
||||
}
|
||||
|
||||
return $aFieldsMap;
|
||||
}
|
||||
|
||||
@@ -2320,40 +2315,10 @@ JS
|
||||
|
||||
$oPage->add_ready_script("$('#$iId').on('keyup change validate', function(evt, sFormId) { return ValidateCaseLogField('$iId', $bMandatory, sFormId, $sNullValue, $sOriginalValue) } );"); // Custom validation function
|
||||
|
||||
// Replace the text area with CKEditor
|
||||
// To change the default settings of the editor,
|
||||
// a) edit the file /js/ckeditor/config.js
|
||||
// b) or override some of the configuration settings, using the second parameter of ckeditor()
|
||||
$aConfig = CKEditorHelper::GetCkeditorPref();
|
||||
$aConfig['placeholder'] = Dict::S('UI:CaseLogTypeYourTextHere');
|
||||
$aConfig['detectChanges'] = ['initialValue' => $sOriginalValue];
|
||||
|
||||
// - Final config
|
||||
$sConfigJS = json_encode($aConfig);
|
||||
|
||||
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
|
||||
$oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$iId')");
|
||||
|
||||
$oPage->add_ready_script(
|
||||
<<<EOF
|
||||
$('#$iId').on('update', function(evt){
|
||||
BlockField('cke_$iId', $('#$iId').attr('disabled'));
|
||||
//Delayed execution - ckeditor must be properly initialized before setting readonly
|
||||
var retryCount = 0;
|
||||
var oMe = $('#$iId');
|
||||
var delayedSetReadOnly = function () {
|
||||
if (oMe.data('ckeditorInstance').editable() == undefined && retryCount++ < 10) {
|
||||
setTimeout(delayedSetReadOnly, retryCount * 100); //Wait a while longer each iteration
|
||||
}
|
||||
else
|
||||
{
|
||||
oMe.data('ckeditorInstance').setReadOnly(oMe.prop('disabled'));
|
||||
}
|
||||
};
|
||||
setTimeout(delayedSetReadOnly, 50);
|
||||
});
|
||||
EOF
|
||||
);
|
||||
// configure CKEditor
|
||||
CKEditorHelper::ConfigureCKEditorElementForWebPage($oPage, $iId, $sOriginalValue, true, [
|
||||
'placeholder' => Dict::S('UI:CaseLogTypeYourTextHere'),
|
||||
]);
|
||||
break;
|
||||
|
||||
case 'HTML':
|
||||
|
||||
@@ -71,66 +71,12 @@ class UIHTMLEditorWidget
|
||||
|
||||
$sHtmlValue = "<div class=\"field_input_zone field_input_html ibo-input-wrapper\"><textarea class=\"htmlEditor ibo-input-richtext-placeholder\" title=\"$sHelpText\" name=\"attr_{$this->m_sFieldPrefix}{$sCode}\" id=\"$iId\">$sValue</textarea></div>$sValidationField";
|
||||
|
||||
// Replace the text area with CKEditor
|
||||
// To change the default settings of the editor,
|
||||
// a) edit the file /js/ckeditor/config.js
|
||||
// b) or override some of the configuration settings, using the second parameter of ckeditor()
|
||||
$sJSDefineWidth = '';
|
||||
$aConfig = CKEditorHelper::GetCkeditorPref();
|
||||
$sWidthSpec = addslashes(trim($this->m_oAttDef->GetWidth()));
|
||||
if ($sWidthSpec != '') {
|
||||
/*N°6543 - the function min allow to keep text inside the column when width is defined*/
|
||||
$aConfig['width'] = "min($sWidthSpec,100%)";
|
||||
}
|
||||
$sHeightSpec = addslashes(trim($this->m_oAttDef->GetHeight()));
|
||||
if ($sHeightSpec != '') {
|
||||
$aConfig['height'] = $sHeightSpec;
|
||||
}
|
||||
$aConfig['detectChanges'] = ['initialValue' => $sValue];
|
||||
$sConfigJS = json_encode($aConfig);
|
||||
|
||||
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
|
||||
$oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$iId', $sConfigJS)");
|
||||
|
||||
// inject mention item renderer template
|
||||
$oTwig = TwigHelper::GetTwigEnvironment(BlockRenderer::TWIG_BASE_PATH);
|
||||
$sTemplate = $oTwig->render('application/object/set/option_renderer.html.twig');
|
||||
$oPage->add(<<<HTML
|
||||
<template id="{$iId}_items_template">
|
||||
$sTemplate
|
||||
</template>
|
||||
HTML);
|
||||
|
||||
// Please read...
|
||||
// ValidateCKEditField triggers a timer... calling itself indefinitely
|
||||
// This design was the quickest way to achieve the field validation (only checking if the field is blank)
|
||||
// because the ckeditor does not fire events like "change" or "keyup", etc.
|
||||
// See http://dev.ckeditor.com/ticket/900 => won't fix
|
||||
// The most relevant solution would be to implement a plugin to CKEdit, and handle the internal events like: setData, insertHtml, insertElement, loadSnapshot, key, afterUndo, afterRedo
|
||||
// Enable CKEditor
|
||||
CKEditorHelper::ConfigureCKEditorElementForWebPage($oPage, $iId, $sValue, true);
|
||||
|
||||
// Could also be bound to 'instanceReady.ckeditor'
|
||||
$oPage->add_ready_script("$('#$iId').on('validate', function(evt, sFormId) { return ValidateCKEditField('$iId', '', {$this->m_sMandatory}, sFormId, '') } );\n");
|
||||
$oPage->add_ready_script(
|
||||
<<<EOF
|
||||
$('#$iId').on('update', function(evt){
|
||||
BlockField('cke_$iId', $('#$iId').prop('disabled'));
|
||||
//Delayed execution - ckeditor must be properly initialized before setting readonly
|
||||
var retryCount = 0;
|
||||
var oMe = $('#$iId');
|
||||
var delayedSetReadOnly = function () {
|
||||
if (oMe.data('ckeditorInstance').editable() == undefined && retryCount++ < 10) {
|
||||
setTimeout(delayedSetReadOnly, retryCount * 100); //Wait a while longer each iteration
|
||||
}
|
||||
else
|
||||
{
|
||||
oMe.data('ckeditorInstance').setReadOnly(oMe.prop('disabled'));
|
||||
$sJSDefineWidth
|
||||
}
|
||||
};
|
||||
setTimeout(delayedSetReadOnly, 50);
|
||||
});
|
||||
EOF
|
||||
);
|
||||
|
||||
return $sHtmlValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4568,10 +4568,6 @@ class AttributeText extends AttributeString
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$sValue = str_replace('&', '&', $sValue);
|
||||
}
|
||||
|
||||
return $sValue;
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ class HTMLDOMSanitizer extends DOMSanitizer
|
||||
'p' => array('style'),
|
||||
'blockquote' => array('style'),
|
||||
'br' => array(),
|
||||
'span' => array('style'),
|
||||
'span' => array('style', 'class'),
|
||||
'div' => array('style'),
|
||||
'b' => array(),
|
||||
'i' => array(),
|
||||
@@ -323,7 +323,8 @@ class HTMLDOMSanitizer extends DOMSanitizer
|
||||
'hr' => array('style'),
|
||||
'pre' => array(),
|
||||
'center' => array(),
|
||||
'figure' => array('class'), // Ckeditor 5 puts images in figures
|
||||
'figure' => array('class', 'style'), // Ckeditor 5 puts images in figures
|
||||
'figcaption' => array('class'),
|
||||
'mark' => array('class')
|
||||
);
|
||||
|
||||
|
||||
@@ -55,42 +55,18 @@ $(function()
|
||||
},
|
||||
validate: function(oEvent, oData)
|
||||
{
|
||||
var oResult = { is_valid: true, error_messages: [] };
|
||||
const oResult = { is_valid: true, error_messages: [] };
|
||||
|
||||
// Doing data validation
|
||||
if(this.options.validators !== null)
|
||||
{
|
||||
var bMandatory = (this.options.validators.mandatory !== undefined);
|
||||
|
||||
// Extracting value for the field (without the tags)
|
||||
// Note : The following code comes from /js/forms-json-utils.js / ValidateCKEditField()
|
||||
var sTextContent = '';
|
||||
var oFormattedContents = this.element.find('.cke iframe');
|
||||
if (oFormattedContents.length == 0)
|
||||
{
|
||||
var oSourceContents = this.element.find('.cke textarea.cke_source');
|
||||
sTextContent = oSourceContents.val();
|
||||
}
|
||||
else
|
||||
{
|
||||
sTextContent = oFormattedContents.contents().find("body").text();
|
||||
const bMandatory = (this.options.validators['mandatory'] !== undefined);
|
||||
const oTextArea = this.element.find('textarea')[0];
|
||||
|
||||
if (sTextContent == '')
|
||||
{
|
||||
// No plain text, maybe there is just an image...
|
||||
var oImg = oFormattedContents.contents().find('body img');
|
||||
if (oImg.length != 0)
|
||||
{
|
||||
sTextContent = 'image';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Checks are very basic for now
|
||||
if( (sTextContent == '') && bMandatory )
|
||||
{
|
||||
if(oTextArea.value === '' && bMandatory ){
|
||||
oResult.is_valid = false;
|
||||
oResult.error_messages.push(this.options.validators.mandatory.message);
|
||||
oResult.error_messages.push(this.options.validators['mandatory'].message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2013-2023 Combodo SARL
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
namespace Combodo\iTop\Portal\Twig;
|
||||
|
||||
use Combodo\iTop\Application\Helper\CKEditorHelper;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
|
||||
use Twig\TwigFunction;
|
||||
|
||||
/**
|
||||
* Class CKEditorExtension
|
||||
*
|
||||
* Twig functions for CKEditor.
|
||||
*
|
||||
* @package Combodo\iTop\Portal\Twig
|
||||
* @since 3.2.0
|
||||
*/
|
||||
class CKEditorExtension extends AbstractExtension
|
||||
{
|
||||
/** @inheritdoc */
|
||||
public function getFunctions() : array
|
||||
{
|
||||
return [
|
||||
new TwigFunction('inject_ckeditor_resources', [$this, 'injectCKEditorResources']),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Inject CKEditor resources.
|
||||
*
|
||||
* @return string
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function injectCKEditorResources() : string
|
||||
{
|
||||
$sScriptTemplate = '';
|
||||
$aJSFilesRelPaths = CKEditorHelper::GetJSFilesRelPathsForCKEditor();
|
||||
|
||||
foreach ($aJSFilesRelPaths as $sJSFileRelPath){
|
||||
$sUrl = \utils::GetAbsoluteUrlAppRoot() . $sJSFileRelPath;
|
||||
$sUrl = \utils::AddParameterToUrl($sUrl, 't', \utils::GetCacheBusterTimestamp());
|
||||
$sScriptTemplate .= '<script type="text/javascript" src="' . $sUrl . '"></script>';
|
||||
}
|
||||
|
||||
return $sScriptTemplate;
|
||||
}
|
||||
}
|
||||
@@ -125,13 +125,9 @@
|
||||
{# Export for Datatables #}
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'js/export.js'|add_itop_version }}"></script>
|
||||
{# CKEditor files for HTML WYSIWYG #}
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/ckeditor/build/ckeditor.js'|add_itop_version }}"></script>
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/highlight/highlight.js'|add_itop_version }}"></script>
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/ckeditor/adapters/jquery.js'|add_itop_version }}"></script>
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/ckeditor.handler.js'|add_itop_version }}"></script>
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/ckeditor.feeds.js'|add_itop_version }}"></script>
|
||||
{# - Highlighter for code snippets created with CKEditor #}
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/highlight/highlight.min.js'|add_itop_version }}"></script>
|
||||
{{ inject_ckeditor_resources()|raw }}
|
||||
{# - Hilighter for code snippets created with CKEditor #}
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'js/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js'|add_itop_version }}"></script>
|
||||
{# Date-time picker for Bootstrap #}
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'lib/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js'|add_itop_version }}"></script>
|
||||
{# Typeahead files for autocomplete #}
|
||||
|
||||
@@ -45,35 +45,34 @@ class ClassLoader
|
||||
/** @var \Closure(string):void */
|
||||
private static $includeFile;
|
||||
|
||||
/** @var ?string */
|
||||
/** @var string|null */
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array<string, int>>
|
||||
* @var array<string, array<string, int>>
|
||||
*/
|
||||
private $prefixLengthsPsr4 = array();
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array<int, string>>
|
||||
* @var array<string, list<string>>
|
||||
*/
|
||||
private $prefixDirsPsr4 = array();
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, string>
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array<string, string[]>>
|
||||
* List of PSR-0 prefixes
|
||||
*
|
||||
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||
*
|
||||
* @var array<string, array<string, list<string>>>
|
||||
*/
|
||||
private $prefixesPsr0 = array();
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, string>
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
@@ -81,8 +80,7 @@ class ClassLoader
|
||||
private $useIncludePath = false;
|
||||
|
||||
/**
|
||||
* @var string[]
|
||||
* @psalm-var array<string, string>
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $classMap = array();
|
||||
|
||||
@@ -90,21 +88,20 @@ class ClassLoader
|
||||
private $classMapAuthoritative = false;
|
||||
|
||||
/**
|
||||
* @var bool[]
|
||||
* @psalm-var array<string, bool>
|
||||
* @var array<string, bool>
|
||||
*/
|
||||
private $missingClasses = array();
|
||||
|
||||
/** @var ?string */
|
||||
/** @var string|null */
|
||||
private $apcuPrefix;
|
||||
|
||||
/**
|
||||
* @var self[]
|
||||
* @var array<string, self>
|
||||
*/
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
/**
|
||||
* @param ?string $vendorDir
|
||||
* @param string|null $vendorDir
|
||||
*/
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
@@ -113,7 +110,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixes()
|
||||
{
|
||||
@@ -125,8 +122,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return array<string, array<int, string>>
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
@@ -134,8 +130,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return array<string, string>
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
@@ -143,8 +138,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return array<string, string>
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
@@ -152,8 +146,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[] Array of classname => path
|
||||
* @psalm-return array<string, string>
|
||||
* @return array<string, string> Array of classname => path
|
||||
*/
|
||||
public function getClassMap()
|
||||
{
|
||||
@@ -161,8 +154,7 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string[] $classMap Class to filename map
|
||||
* @psalm-param array<string, string> $classMap
|
||||
* @param array<string, string> $classMap Class to filename map
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@@ -179,24 +171,25 @@ class ClassLoader
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param string[]|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
|
||||
@@ -205,19 +198,19 @@ class ClassLoader
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -226,9 +219,9 @@ class ClassLoader
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param string[]|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
@@ -236,17 +229,18 @@ class ClassLoader
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
@@ -256,18 +250,18 @@ class ClassLoader
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -276,8 +270,8 @@ class ClassLoader
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param string[]|string $paths The PSR-0 base directories
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 base directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@@ -294,8 +288,8 @@ class ClassLoader
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param string[]|string $paths The PSR-4 base directories
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
@@ -481,9 +475,9 @@ class ClassLoader
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
||||
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||
*
|
||||
* @return self[]
|
||||
* @return array<string, self>
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
|
||||
@@ -6,62 +6,5 @@ $vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => $baseDir . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => $baseDir . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => $baseDir . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => $baseDir . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => $baseDir . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => $baseDir . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => $baseDir . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => $baseDir . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => $baseDir . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => $baseDir . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => $baseDir . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => $baseDir . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => $baseDir . '/src/Controller/AggregatePageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => $baseDir . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => $baseDir . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => $baseDir . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => $baseDir . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => $baseDir . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => $baseDir . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => $baseDir . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => $baseDir . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => $baseDir . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => $baseDir . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => $baseDir . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => $baseDir . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => $baseDir . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => $baseDir . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => $baseDir . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => $baseDir . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => $baseDir . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => $baseDir . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => $baseDir . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => $baseDir . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => $baseDir . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => $baseDir . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => $baseDir . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => $baseDir . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => $baseDir . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => $baseDir . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => $baseDir . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => $baseDir . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => $baseDir . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => $baseDir . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => $baseDir . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => $baseDir . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => $baseDir . '/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => $baseDir . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => $baseDir . '/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => $baseDir . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => $baseDir . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => $baseDir . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
);
|
||||
|
||||
@@ -29,7 +29,6 @@ class ComposerAutoloaderInitdf408f3f8ea034d298269cdf7647358b
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitdf408f3f8ea034d298269cdf7647358b::getInitializer($loader));
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
|
||||
@@ -26,63 +26,6 @@ class ComposerStaticInitdf408f3f8ea034d298269cdf7647358b
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => __DIR__ . '/../..' . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => __DIR__ . '/../..' . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => __DIR__ . '/../..' . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => __DIR__ . '/../..' . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => __DIR__ . '/../..' . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => __DIR__ . '/../..' . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => __DIR__ . '/../..' . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => __DIR__ . '/../..' . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => __DIR__ . '/../..' . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => __DIR__ . '/../..' . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => __DIR__ . '/../..' . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => __DIR__ . '/../..' . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => __DIR__ . '/../..' . '/src/Controller/AggregatePageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => __DIR__ . '/../..' . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => __DIR__ . '/../..' . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => __DIR__ . '/../..' . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => __DIR__ . '/../..' . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => __DIR__ . '/../..' . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => __DIR__ . '/../..' . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => __DIR__ . '/../..' . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => __DIR__ . '/../..' . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => __DIR__ . '/../..' . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => __DIR__ . '/../..' . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => __DIR__ . '/../..' . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => __DIR__ . '/../..' . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => __DIR__ . '/../..' . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => __DIR__ . '/../..' . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => __DIR__ . '/../..' . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => __DIR__ . '/../..' . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => __DIR__ . '/../..' . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => __DIR__ . '/../..' . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => __DIR__ . '/../..' . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => __DIR__ . '/../..' . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => __DIR__ . '/../..' . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => __DIR__ . '/../..' . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => __DIR__ . '/../..' . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => __DIR__ . '/../..' . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => __DIR__ . '/../..' . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => __DIR__ . '/../..' . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => __DIR__ . '/../..' . '/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => __DIR__ . '/../..' . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => __DIR__ . '/../..' . '/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => __DIR__ . '/../..' . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
);
|
||||
|
||||
|
||||
@@ -1426,6 +1426,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
|
||||
'UI:ShortcutRenameDlg:Title' => 'Rename the shortcut',
|
||||
'UI:ShortcutListDlg:Title' => 'Create a shortcut for the list',
|
||||
'UI:ShortcutDelete:Confirm' => 'Please confirm that wou wish to delete the shortcut(s).',
|
||||
'UI:ObjectShortcutInsert' => 'Insert Object Shortcut',
|
||||
'Class:Shortcut' => 'Shortcut',
|
||||
'Class:Shortcut+' => '',
|
||||
'Class:Shortcut/Attribute:name' => 'Name',
|
||||
|
||||
@@ -1363,6 +1363,7 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
|
||||
'UI:ShortcutRenameDlg:Title' => 'Renommer le raccourci',
|
||||
'UI:ShortcutListDlg:Title' => 'Créer un raccourci pour la liste',
|
||||
'UI:ShortcutDelete:Confirm' => 'Veuillez confirmer la suppression du ou des raccourci(s)',
|
||||
'UI:ObjectShortcutInsert' => 'Insérer un raccourcis vers un objet',
|
||||
'Class:Shortcut' => 'Raccourci',
|
||||
'Class:Shortcut+' => '',
|
||||
'Class:Shortcut/Attribute:name' => 'Nom',
|
||||
|
||||
5
js/ckeditor/build/ckeditor.d.ts
vendored
5
js/ckeditor/build/ckeditor.d.ts
vendored
@@ -20,11 +20,10 @@ import { List, ListProperties } from '@ckeditor/ckeditor5-list';
|
||||
import { Mention } from '@ckeditor/ckeditor5-mention';
|
||||
import { Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar } from '@ckeditor/ckeditor5-table';
|
||||
import { Undo } from '@ckeditor/ckeditor5-undo';
|
||||
import InsertHtml from './plugins/insert-html/insert-html.plugin';
|
||||
import ObjectShortcut from './plugins/object-shortcut/object-shortcut.plugin';
|
||||
import AppendITopClasses from "./plugins/append-itop-classes/append-itop-classes.plugin";
|
||||
import './resources/console-theme.css';
|
||||
declare class Editor extends ClassicEditor {
|
||||
static builtinPlugins: (typeof InsertHtml | typeof Alignment | typeof Superscript | typeof Subscript | typeof Bold | typeof Italic | typeof Strikethrough | typeof Underline | typeof BlockQuote | typeof CodeBlock | typeof Undo | typeof Essentials | typeof FontBackgroundColor | typeof FontColor | typeof FontFamily | typeof FontSize | typeof Heading | typeof Highlight | typeof HorizontalLine | typeof Image | typeof ImageCaption | typeof ImageResize | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof Indent | typeof Link | typeof LinkImage | typeof List | typeof ListProperties | typeof Mention | typeof Table | typeof TableCaption | typeof TableCellProperties | typeof TableColumnResize | typeof TableProperties | typeof TableToolbar | typeof ObjectShortcut | typeof PictureEditing)[];
|
||||
static builtinPlugins: (typeof AppendITopClasses | typeof Alignment | typeof Superscript | typeof Subscript | typeof Bold | typeof Italic | typeof Strikethrough | typeof Underline | typeof BlockQuote | typeof CodeBlock | typeof Undo | typeof Essentials | typeof FontBackgroundColor | typeof FontColor | typeof FontFamily | typeof FontSize | typeof Heading | typeof Highlight | typeof HorizontalLine | typeof Image | typeof ImageCaption | typeof ImageResize | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof Indent | typeof Link | typeof LinkImage | typeof List | typeof ListProperties | typeof Mention | typeof Table | typeof TableCaption | typeof TableCellProperties | typeof TableColumnResize | typeof TableProperties | typeof TableToolbar | typeof PictureEditing)[];
|
||||
static defaultConfig: EditorConfig;
|
||||
}
|
||||
export default Editor;
|
||||
|
||||
4
js/ckeditor/build/ckeditor.js
vendored
4
js/ckeditor/build/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.af=e.af||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"%0 van %1","Align center":"Belyn in die middel","Align left":"Belyn links","Align right":"Belyn regs","Block quote":"Verwysingsaanhaling",Bold:"Vet","Bold text":"",Cancel:"Kanselleer",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Bronkode","Content editing keystrokes":"","Execute the currently focused button":"","Insert code block":"Voeg bronkodeblok in",Italic:"Kursief","Italic text":"",Justify:"Belyn beide kante","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Open the accessibility help dialog":"","Plain text":"Gewone skrif","Remove color":"Verwyder kleur","Restore default":"Herstel verstek",Save:"Stoor","Show more items":"Wys meer items",Strikethrough:"Deurstreep","Strikethrough text":"",Subscript:"Onderskrif",Superscript:"Boskrif","Text alignment":"Teksbelyning","Text alignment toolbar":"Teksbelyning nutsbank","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"Onderstreep","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.af=e.af||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"%0 van %1",Accept:"",Accessibility:"","Accessibility help":"","Align center":"Belyn in die middel","Align left":"Belyn links","Align right":"Belyn regs",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Black:"","Block quote":"Verwysingsaanhaling",Blue:"",Bold:"Vet","Bold text":"",Cancel:"Kanselleer",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Bronkode","Code block":"","Content editing keystrokes":"","Dim grey":"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor menu bar":"","Editor toolbar":"","Entering %0 code snippet":"","Entering code snippet":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"",Green:"",Grey:"","Help Contents. To close this dialog press ESC.":"",HEX:"","Insert code block":"Voeg bronkodeblok in",Italic:"Kursief","Italic text":"",Justify:"Belyn beide kante","Leaving %0 code snippet":"","Leaving code snippet":"","Light blue":"","Light green":"","Light grey":"",MENU_BAR_MENU_EDIT:"Wysig",MENU_BAR_MENU_FILE:"",MENU_BAR_MENU_FONT:"",MENU_BAR_MENU_FORMAT:"",MENU_BAR_MENU_HELP:"",MENU_BAR_MENU_INSERT:"",MENU_BAR_MENU_TEXT:"",MENU_BAR_MENU_TOOLS:"",MENU_BAR_MENU_VIEW:"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"",Next:"","No results found":"","No searchable items":"","Open the accessibility help dialog":"",Orange:"","Plain text":"Gewone skrif",'Please enter a valid color (e.g. "ff0000").':"","Press %0 for help.":"",Previous:"",Purple:"",Red:"","Remove color":"Verwyder kleur","Restore default":"Herstel verstek","Rich Text Editor":"",Save:"Stoor","Show more items":"Wys meer items",Strikethrough:"Deurstreep","Strikethrough text":"",Subscript:"Onderskrif",Superscript:"Boskrif","Text alignment":"Teksbelyning","Text alignment toolbar":"Teksbelyning nutsbank","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Turquoise:"",Underline:"Onderstreep","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"",Yellow:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.ast=e.ast||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"",Accept:"","Accessibility help":"",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Black:"",Blue:"",Bold:"Negrina","Bold text":"","Break text":"","Bulleted List":"Llista con viñetes","Bulleted list styles toolbar":"",Cancel:"Encaboxar","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Create link":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"","Dim grey":"",Disc:"",Downloadable:"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"","Execute the currently focused button":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"","Help Contents. To close this dialog press ESC.":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"complementu d'imaxen","In line":"","Increase list item indent":"",Insert:"","Insert image":"","Insert image via URL":"","Invalid start index value.":"",Italic:"Cursiva","Italic text":"","Keystrokes that can be used in a list":"","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link image":"","Link URL":"URL del enllaz","List properties":"","Lower-latin":"","Lower–roman":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Navigate through the toolbar":"",Next:"","No results found":"","No searchable items":"","Numbered List":"Llista numberada","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Orange:"",Original:"","Press %0 for help.":"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Editor de testu arriquecíu","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"","Underline text":"",Undo:"Desfacer",Unlink:"Desenllazar",Update:"","Update image URL":"","Upload failed":"","Upload from computer":"","Upload image from computer":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"",Yellow:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.ast=e.ast||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"",Accept:"",Accessibility:"","Accessibility help":"",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Black:"",Blue:"",Bold:"Negrina","Bold text":"","Break text":"","Bulleted List":"Llista con viñetes","Bulleted list styles toolbar":"",Cancel:"Encaboxar","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Create link":"",Custom:"","Custom image size":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"","Dim grey":"",Disc:"",Downloadable:"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor menu bar":"","Editor toolbar":"","Enter image caption":"","Entering a to-do list":"","Error during image upload":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"","Help Contents. To close this dialog press ESC.":"",HEX:"","Image from computer":"","Image resize list":"","Image toolbar":"","Image upload complete":"","image widget":"complementu d'imaxen","In line":"","Increase list item indent":"",Insert:"","Insert image":"","Insert image via URL":"","Invalid start index value.":"",Italic:"Cursiva","Italic text":"","Keystrokes that can be used in a list":"","Leaving a to-do list":"","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link image":"","Link URL":"URL del enllaz","Link URL must not be empty.":"","List properties":"","Lower-latin":"","Lower–roman":"",MENU_BAR_MENU_EDIT:"",MENU_BAR_MENU_FILE:"",MENU_BAR_MENU_FONT:"",MENU_BAR_MENU_FORMAT:"",MENU_BAR_MENU_HELP:"",MENU_BAR_MENU_INSERT:"",MENU_BAR_MENU_TEXT:"",MENU_BAR_MENU_TOOLS:"",MENU_BAR_MENU_VIEW:"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"",Next:"","No results found":"","No searchable items":"","Numbered List":"Llista numberada","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Orange:"",Original:"",'Please enter a valid color (e.g. "ff0000").':"","Press %0 for help.":"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image (in %0)":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Editor de testu arriquecíu","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"","The value must not be empty.":"","The value should be a plain number.":"","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"","Underline text":"",Undo:"Desfacer",Unlink:"Desenllazar",Update:"","Update image URL":"","Upload failed":"","Upload from computer":"","Upload image from computer":"","Uploading image":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"",Yellow:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const a=e.bs=e.bs||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"%0 od %1","Align center":"Centrirati","Align left":"Lijevo poravnanje","Align right":"Desno poravnanje",Big:"","Block quote":"Citat",Bold:"Podebljano","Bold text":"","Break text":"",Cancel:"Poništi","Caption for image: %0":"","Caption for the image":"","Centered image":"Centrirana slika","Change image text alternative":"Promijeni ALT atribut za sliku","Choose heading":"Odaberi naslov",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Kod","Content editing keystrokes":"",Default:"Zadani","Document colors":"","Enter image caption":"Unesi naziv slike","Execute the currently focused button":"","Font Background Color":"Boja pozadine","Font Color":"Boja","Font Family":"Font","Font Size":"Veličina fonta","Full size image":"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"Naslov 3","Heading 4":"Naslov 4","Heading 5":"Naslov 5","Heading 6":"Naslov 6","Horizontal line":"Horizontalna linija",Huge:"","Image resize list":"Lista veličina slike","Image toolbar":"","image widget":"","In line":"",Insert:"Umetni","Insert code block":"Umetni kod blok","Insert image":"Umetni sliku","Insert image via URL":"Umetni sliku preko URLa",Italic:"Zakrivljeno","Italic text":"",Justify:"","Left aligned image":"Lijevo poravnata slika","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Open the accessibility help dialog":"",Original:"Original",Paragraph:"Paragraf","Plain text":"Tekst","Remove color":"Ukloni boju","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"Promijeni veličinu slike","Resize image to %0":"","Resize image to the original size":"Postavi originalnu veličinu slike","Restore default":"Vrati na zadano","Right aligned image":"Desno poravnata slika",Save:"Sačuvaj","Show more items":"Prikaži više stavki","Side image":"",Small:"",Strikethrough:"Precrtano","Strikethrough text":"",Subscript:"",Superscript:"","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje teksta","Text alternative":"ALT atribut","These keyboard shortcuts allow for quick access to content editing features.":"",Tiny:"","Toggle caption off":"","Toggle caption on":"","Type or paste your content here.":"Unesite ili zalijepite vaš sadržaj ovdje","Type your title":"Unesite naslov",Underline:"Podcrtano","Underline text":"",Update:"Ažuriraj","Update image URL":"Ažuriraj URL slike","Upload failed":"Učitavanje slike nije uspjelo","Upload from computer":"","Upload image from computer":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"","Wrap text":"Prelomi tekst"}),a.getPluralForm=function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.bs=e.bs||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"%0 od %1",Accept:"",Accessibility:"","Accessibility help":"","Align center":"Centrirati","Align left":"Lijevo poravnanje","Align right":"Desno poravnanje",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Big:"",Black:"","Block quote":"Citat",Blue:"",Bold:"Podebljano","Bold text":"","Break text":"",Cancel:"Poništi","Caption for image: %0":"","Caption for the image":"","Centered image":"Centrirana slika","Change image text alternative":"Promijeni ALT atribut za sliku","Choose heading":"Odaberi naslov",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Kod","Code block":"","Content editing keystrokes":"",Custom:"","Custom image size":"",Default:"Zadani","Dim grey":"","Document colors":"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor menu bar":"","Editor toolbar":"","Enter image caption":"Unesi naziv slike","Entering %0 code snippet":"","Entering code snippet":"","Error during image upload":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"","Font Background Color":"Boja pozadine","Font Color":"Boja","Font Family":"Font","Font Size":"Veličina fonta","Full size image":"",Green:"",Grey:"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"Naslov 3","Heading 4":"Naslov 4","Heading 5":"Naslov 5","Heading 6":"Naslov 6","Help Contents. To close this dialog press ESC.":"",HEX:"","Horizontal line":"Horizontalna linija",Huge:"","Image from computer":"","Image resize list":"Lista veličina slike","Image toolbar":"","Image upload complete":"","image widget":"","In line":"",Insert:"Umetni","Insert code block":"Umetni kod blok","Insert image":"Umetni sliku","Insert image via URL":"Umetni sliku preko URLa",Italic:"Zakrivljeno","Italic text":"",Justify:"","Leaving %0 code snippet":"","Leaving code snippet":"","Left aligned image":"Lijevo poravnata slika","Light blue":"","Light green":"","Light grey":"",MENU_BAR_MENU_EDIT:"Uredi",MENU_BAR_MENU_FILE:"",MENU_BAR_MENU_FONT:"",MENU_BAR_MENU_FORMAT:"",MENU_BAR_MENU_HELP:"",MENU_BAR_MENU_INSERT:"Umetni",MENU_BAR_MENU_TEXT:"",MENU_BAR_MENU_TOOLS:"",MENU_BAR_MENU_VIEW:"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"",Next:"","No results found":"","No searchable items":"","Open the accessibility help dialog":"",Orange:"",Original:"Original",Paragraph:"Paragraf","Plain text":"Tekst",'Please enter a valid color (e.g. "ff0000").':"","Press %0 for help.":"",Previous:"",Purple:"",Red:"","Remove color":"Ukloni boju","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"Promijeni veličinu slike","Resize image (in %0)":"","Resize image to %0":"","Resize image to the original size":"Postavi originalnu veličinu slike","Restore default":"Vrati na zadano","Rich Text Editor":"","Right aligned image":"Desno poravnata slika",Save:"Sačuvaj","Show more items":"Prikaži više stavki","Side image":"",Small:"",Strikethrough:"Precrtano","Strikethrough text":"",Subscript:"",Superscript:"","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje teksta","Text alternative":"ALT atribut","The value must not be empty.":"","The value should be a plain number.":"","These keyboard shortcuts allow for quick access to content editing features.":"",Tiny:"","Toggle caption off":"","Toggle caption on":"",Turquoise:"","Type or paste your content here.":"Unesite ili zalijepite vaš sadržaj ovdje","Type your title":"Unesite naslov",Underline:"Podcrtano","Underline text":"",Update:"Ažuriraj","Update image URL":"Ažuriraj URL slike","Upload failed":"Učitavanje slike nije uspjelo","Upload from computer":"","Upload image from computer":"","Uploading image":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"Prelomi tekst",Yellow:""}),t.getPluralForm=function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.eo=e.eo||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"",Accept:"","Accessibility help":"",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Black:"",Blue:"",Bold:"grasa","Bold text":"","Break text":"","Bulleted List":"Bula Listo","Bulleted list styles toolbar":"",Cancel:"Nuligi","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Circle:"",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Create link":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"","Dim grey":"",Disc:"",Downloadable:"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Execute the currently focused button":"","Full size image":"Bildo kun reala dimensio",Green:"",Grey:"",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"","Help Contents. To close this dialog press ESC.":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"bilda fenestraĵo","In line":"","Increase list item indent":"",Insert:"","Insert image":"Enmetu bildon","Insert image via URL":"","Invalid start index value.":"",Italic:"kursiva","Italic text":"","Keystrokes that can be used in a list":"","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Ligilo","Link image":"","Link URL":"URL de la ligilo","List properties":"","Lower-latin":"","Lower–roman":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Navigate through the toolbar":"",Next:"","No results found":"","No searchable items":"","Numbered List":"Numerita Listo","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Orange:"",Original:"",Paragraph:"Paragrafo","Press %0 for help.":"",Previous:"",Purple:"",Red:"",Redo:"Refari","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Redaktilo de Riĉa Teksto","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"Alternativa teksto","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"","Type or paste your content here.":"","Type your title":"",Underline:"","Underline text":"",Undo:"Malfari",Unlink:"Malligi",Update:"","Update image URL":"","Upload failed":"","Upload from computer":"","Upload image from computer":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"",Yellow:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.eo=e.eo||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"",Accept:"",Accessibility:"","Accessibility help":"",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Black:"",Blue:"",Bold:"grasa","Bold text":"","Break text":"","Bulleted List":"Bula Listo","Bulleted list styles toolbar":"",Cancel:"Nuligi","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Circle:"",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Create link":"",Custom:"","Custom image size":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"","Dim grey":"",Disc:"",Downloadable:"","Drag to move":"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor menu bar":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Entering a to-do list":"","Error during image upload":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"","Full size image":"Bildo kun reala dimensio",Green:"",Grey:"",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"","Help Contents. To close this dialog press ESC.":"",HEX:"","Image from computer":"","Image resize list":"","Image toolbar":"","Image upload complete":"","image widget":"bilda fenestraĵo","In line":"","Increase list item indent":"",Insert:"","Insert image":"Enmetu bildon","Insert image via URL":"","Invalid start index value.":"",Italic:"kursiva","Italic text":"","Keystrokes that can be used in a list":"","Leaving a to-do list":"","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Ligilo","Link image":"","Link URL":"URL de la ligilo","Link URL must not be empty.":"","List properties":"","Lower-latin":"","Lower–roman":"",MENU_BAR_MENU_EDIT:"",MENU_BAR_MENU_FILE:"",MENU_BAR_MENU_FONT:"",MENU_BAR_MENU_FORMAT:"",MENU_BAR_MENU_HELP:"",MENU_BAR_MENU_INSERT:"",MENU_BAR_MENU_TEXT:"",MENU_BAR_MENU_TOOLS:"",MENU_BAR_MENU_VIEW:"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"",Next:"","No results found":"","No searchable items":"","Numbered List":"Numerita Listo","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Orange:"",Original:"",Paragraph:"Paragrafo",'Please enter a valid color (e.g. "ff0000").':"","Press %0 for help.":"",Previous:"",Purple:"",Red:"",Redo:"Refari","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image (in %0)":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Redaktilo de Riĉa Teksto","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"Alternativa teksto","The value must not be empty.":"","The value should be a plain number.":"","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"","Type or paste your content here.":"","Type your title":"",Underline:"","Underline text":"",Undo:"Malfari",Unlink:"Malligi",Update:"","Update image URL":"","Upload failed":"","Upload from computer":"","Upload image from computer":"","Uploading image":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"",Yellow:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
@@ -1 +1 @@
|
||||
!function(e){const t=e["es-co"]=e["es-co"]||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"%0 de %1","Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Block quote":"Cita de bloque",Bold:"Negrita","Bold text":"",Cancel:"Cancelar",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Código","Content editing keystrokes":"","Execute the currently focused button":"","Insert code block":"Insertar bloque de código",Italic:"Cursiva","Italic text":"",Justify:"Justificar","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Open the accessibility help dialog":"","Plain text":"Texto plano","Remove color":"Quitar color","Restore default":"Restaurar valores predeterminados",Save:"Guardar","Show more items":"Mostrar más elementos",Strikethrough:"Tachado","Strikethrough text":"",Subscript:"Subíndice",Superscript:"Superíndice","Text alignment":"Alineación de texto","Text alignment toolbar":"Herramientas de alineación de texto","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"Subrayado","Underline text":"","Upload in progress":"Carga en progreso","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return 1==e?0:0!=e&&e%1e6==0?1:2}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e["es-co"]=e["es-co"]||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require <kbd>Fn</kbd>)":"","%0 of %1":"%0 de %1",Accept:"",Accessibility:"","Accessibility help":"","Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha",Aquamarine:"","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"",Big:"Grande",Black:"","Block quote":"Cita de bloque",Blue:"","Blue marker":"Marcador azul",Bold:"Negrita","Bold text":"","Break text":"",Cancel:"Cancelar","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Clear:"","Click to edit block":"",Close:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Código","Code block":"","Content editing keystrokes":"","Copy selected content":"Copiar contenido seleccionado",Custom:"","Custom image size":"",Default:"Por defecto","Dim grey":"","Document colors":"Colores del documento","Drag to move":"","Dropdown toolbar":"","Edit block":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor dialog":"","Editor editing area: %0":"","Editor menu bar":"","Editor toolbar":"","Enter image caption":"","Entering %0 code snippet":"","Entering code snippet":"","Error during image upload":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"","Font Background Color":"Color de fondo de fuente","Font Color":"Color de fuente","Font Family":"Familia de fuente","Font Size":"Tamaño de fuente","Full size image":"",Green:"","Green marker":"Marcador verde","Green pen":"Pincel verde",Grey:"","Help Contents. To close this dialog press ESC.":"",HEX:"",Highlight:"Resaltar",Huge:"Enorme","Image from computer":"","Image resize list":"","Image toolbar":"","Image upload complete":"","image widget":"","In line":"",Insert:"Insertar","Insert code block":"Insertar bloque de código","Insert image":"","Insert image via URL":"",Italic:"Cursiva","Italic text":"Texto en cursiva",Justify:"Justificar","Leaving %0 code snippet":"","Leaving code snippet":"","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",MENU_BAR_MENU_EDIT:"Editar",MENU_BAR_MENU_FILE:"",MENU_BAR_MENU_FONT:"",MENU_BAR_MENU_FORMAT:"",MENU_BAR_MENU_HELP:"",MENU_BAR_MENU_INSERT:"Insertar",MENU_BAR_MENU_TEXT:"",MENU_BAR_MENU_TOOLS:"",MENU_BAR_MENU_VIEW:"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus in and out of an active dialog window":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"",Next:"","No results found":"","No searchable items":"","Open the accessibility help dialog":"",Orange:"",Original:"","Paste content":"Pegar contenido","Paste content as plain text":"Pegar contenido como texto plano","Pink marker":"Marcador rosa","Plain text":"Texto plano",'Please enter a valid color (e.g. "ff0000").':"","Press %0 for help.":"",Previous:"",Purple:"",Red:"","Red pen":"Pincel rojo","Remove color":"Quitar color","Remove highlight":"Quitar resaltado","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image (in %0)":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"Restaurar valores predeterminados","Rich Text Editor":"","Right aligned image":"",Save:"Guardar","Show more items":"Mostrar más elementos","Side image":"",Small:"Pequeña",Strikethrough:"Tachado","Strikethrough text":"",Subscript:"Subíndice",Superscript:"Superíndice","Text alignment":"Alineación de texto","Text alignment toolbar":"Herramientas de alineación de texto","Text alternative":"","Text highlight toolbar":"Herramientas de resaltado de texto","The value must not be empty.":"","The value should be a plain number.":"","These keyboard shortcuts allow for quick access to content editing features.":"",Tiny:"Diminuta","Toggle caption off":"","Toggle caption on":"",Turquoise:"",Underline:"Subrayado","Underline text":"",Update:"","Update image URL":"","Upload failed":"","Upload from computer":"","Upload image from computer":"","Upload in progress":"Carga en progreso","Uploading image":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"",White:"","Wrap text":"",Yellow:"","Yellow marker":"Marcador amarillo"}),t.getPluralForm=function(e){return 1==e?0:0!=e&&e%1e6==0?1:2}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.gu=e.gu||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"","Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્","Bold text":"",Cancel:"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Execute the currently focused button":"",Italic:"ત્રાંસુ - ઇટલિક્","Italic text":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Open the accessibility help dialog":"","Remove color":"","Restore default":"",Save:"","Show more items":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"નીચે લિટી - અન્ડરલાઇન્","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.gu=e.gu||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Accept:"","Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્","Bold text":"",Cancel:"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"",Italic:"ત્રાંસુ - ઇટલિક્","Italic text":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"","Open the accessibility help dialog":"","Remove color":"","Restore default":"",Save:"","Show more items":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"નીચે લિટી - અન્ડરલાઇન્","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.hy=e.hy||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"","Align cell text to the bottom":"","Align cell text to the center":"","Align cell text to the left":"","Align cell text to the middle":"","Align cell text to the right":"","Align cell text to the top":"","Align table to the left":"","Align table to the right":"",Alignment:"",Background:"",Bold:"Թավագիր","Bold text":"",Border:"",Cancel:"Չեղարկել","Cell properties":"","Center table":"","Choose heading":"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Կոդ",Color:"","Color picker":"",Column:"Սյունակ","Content editing keystrokes":"","Create link":"",Dashed:"","Delete column":"","Delete row":"",Dimensions:"",Dotted:"",Double:"",Downloadable:"","Edit link":"Խմբագրել հղումը","Enter table caption":"","Execute the currently focused button":"",Groove:"","Header column":"","Header row":"",Heading:"","Heading 1":"Վերնագիր 1","Heading 2":"Վերնագիր 2","Heading 3":"Վերնագիր 3","Heading 4":"","Heading 5":"","Heading 6":"",Height:"","Horizontal text alignment toolbar":"","Insert a new table row (when in the last cell of a table)":"","Insert column left":"","Insert column right":"","Insert row above":"","Insert row below":"","Insert table":"",Inset:"",Italic:"Շեղագիր","Italic text":"","Justify cell text":"","Keystrokes that can be used in a table cell":"",Link:"Հղում","Link image":"","Link URL":"","Merge cell down":"","Merge cell left":"","Merge cell right":"","Merge cell up":"","Merge cells":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Move the selection to the next cell":"","Move the selection to the previous cell":"","Navigate through the table":"","Navigate through the toolbar":"",None:"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Outset:"",Padding:"",Paragraph:"","Remove color":"","Restore default":"",Ridge:"",Row:"",Save:"","Select column":"","Select row":"","Show more items":"",Solid:"","Split cell horizontally":"","Split cell vertically":"",Strikethrough:"Գծանշել","Strikethrough text":"",Style:"",Subscript:"Ենթատեքստ",Superscript:"Գերագիր","Table alignment toolbar":"","Table cell text alignment":"","Table properties":"","Table toolbar":"",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':"",'The value is invalid. Try "10px" or "2em" or simply "2".':"","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","Toggle caption off":"","Toggle caption on":"","Type or paste your content here.":"","Type your title":"",Underline:"Ընդգծել","Underline text":"",Unlink:"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"","Vertical text alignment toolbar":"",Width:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.hy=e.hy||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Accept:"","Align cell text to the bottom":"","Align cell text to the center":"","Align cell text to the left":"","Align cell text to the middle":"","Align cell text to the right":"","Align cell text to the top":"","Align table to the left":"","Align table to the right":"",Alignment:"",Background:"",Bold:"Թավագիր","Bold text":"",Border:"",Cancel:"Չեղարկել","Cell properties":"","Center table":"","Choose heading":"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"Կոդ",Color:"","Color picker":"",Column:"Սյունակ","Content editing keystrokes":"","Create link":"",Dashed:"","Delete column":"","Delete row":"",Dimensions:"",Dotted:"",Double:"",Downloadable:"","Edit link":"Խմբագրել հղումը","Enter table caption":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"",Groove:"","Header column":"","Header row":"",Heading:"","Heading 1":"Վերնագիր 1","Heading 2":"Վերնագիր 2","Heading 3":"Վերնագիր 3","Heading 4":"","Heading 5":"","Heading 6":"",Height:"","Horizontal text alignment toolbar":"","Insert a new table row (when in the last cell of a table)":"","Insert column left":"","Insert column right":"","Insert row above":"","Insert row below":"","Insert table":"",Inset:"",Italic:"Շեղագիր","Italic text":"","Justify cell text":"","Keystrokes that can be used in a table cell":"",Link:"Հղում","Link image":"","Link URL":"","Link URL must not be empty.":"","Merge cell down":"","Merge cell left":"","Merge cell right":"","Merge cell up":"","Merge cells":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of a link":"","Move out of an inline code style":"","Move the selection to the next cell":"","Move the selection to the previous cell":"","Navigate through the table":"","Navigate through the toolbar or menu bar":"",None:"","Open in a new tab":"","Open link in new tab":"","Open the accessibility help dialog":"",Outset:"",Padding:"",Paragraph:"","Remove color":"","Restore default":"",Ridge:"",Row:"",Save:"","Select column":"","Select row":"","Show more items":"",Solid:"","Split cell horizontally":"","Split cell vertically":"",Strikethrough:"Գծանշել","Strikethrough text":"",Style:"",Subscript:"Ենթատեքստ",Superscript:"Գերագիր",Table:"","Table alignment toolbar":"","Table cell text alignment":"","Table properties":"","Table toolbar":"",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':"",'The value is invalid. Try "10px" or "2em" or simply "2".':"","These keyboard shortcuts allow for quick access to content editing features.":"","This link has no URL":"","Toggle caption off":"","Toggle caption on":"","Type or paste your content here.":"","Type your title":"",Underline:"Ընդգծել","Underline text":"",Unlink:"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"","Vertical text alignment toolbar":"",Width:""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.oc=e.oc||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Bold:"Gras","Bold text":"",Cancel:"Anullar",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Execute the currently focused button":"",Italic:"Italica","Italic text":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Open the accessibility help dialog":"","Remove color":"","Restore default":"",Save:"Enregistrar","Show more items":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return e>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.oc=e.oc||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Accept:"",Bold:"Gras","Bold text":"",Cancel:"Anullar",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"",Italic:"Italica","Italic text":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"","Open the accessibility help dialog":"","Remove color":"","Restore default":"",Save:"Enregistrar","Show more items":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","These keyboard shortcuts allow for quick access to content editing features.":"","Toggle caption off":"","Toggle caption on":"",Underline:"","Underline text":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":""}),t.getPluralForm=function(e){return e>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
!function(e){const t=e.si=e.si||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Bold:"තදකුරු","Bold text":"","Break text":"","Bulleted List":"බුලටිත ලැයිස්තුව","Bulleted list styles toolbar":"",Cancel:"","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"",Disc:"","Enter image caption":"","Execute the currently focused button":"","Full size image":"","Image resize list":"","Image toolbar":"","image widget":"","In line":"","Increase list item indent":"",Insert:"","Insert image":"පින්තූරය ඇතුල් කරන්න","Insert image via URL":"","Invalid start index value.":"",Italic:"ඇලකුරු","Italic text":"","Keystrokes that can be used in a list":"","Left aligned image":"","List properties":"","Lower-latin":"","Lower–roman":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar":"","Numbered List":"අංකිත ලැයිස්තුව","Numbered list styles toolbar":"","Open the accessibility help dialog":"",Original:"",Redo:"නැවත කරන්න","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Right aligned image":"",Save:"","Show more items":"","Side image":"",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"","These keyboard shortcuts allow for quick access to content editing features.":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Underline:"","Underline text":"",Undo:"අහෝසි කරන්න",Update:"","Update image URL":"","Upload failed":"උඩුගත කිරීම අසාර්ථක විය","Upload from computer":"","Upload image from computer":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"","Wrap text":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
!function(e){const t=e.si=e.si||{};t.dictionary=Object.assign(t.dictionary||{},{"%0 of %1":"",Accept:"",Bold:"තදකුරු","Bold text":"","Break text":"","Bulleted List":"බුලටිත ලැයිස්තුව","Bulleted list styles toolbar":"",Cancel:"","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Clear:"","Close contextual balloons, dropdowns, and dialogs":"",Code:"","Content editing keystrokes":"",Custom:"","Custom image size":"",Decimal:"","Decimal with leading zero":"","Decrease list item indent":"",Disc:"","Enter image caption":"","Entering a to-do list":"","Error during image upload":"","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"","Full size image":"","Image from computer":"","Image resize list":"","Image toolbar":"","Image upload complete":"","image widget":"","In line":"","Increase list item indent":"",Insert:"","Insert image":"පින්තූරය ඇතුල් කරන්න","Insert image via URL":"","Invalid start index value.":"",Italic:"ඇලකුරු","Italic text":"","Keystrokes that can be used in a list":"","Leaving a to-do list":"","Left aligned image":"","List properties":"","Lower-latin":"","Lower–roman":"","Move focus between form fields (inputs, buttons, etc.)":"","Move focus to the menu bar, navigate between menu bars":"","Move focus to the toolbar, navigate between toolbars":"","Move out of an inline code style":"","Navigate through the toolbar or menu bar":"","Numbered List":"අංකිත ලැයිස්තුව","Numbered list styles toolbar":"","Open the accessibility help dialog":"",Original:"",Redo:"නැවත කරන්න","Remove color":"","Replace from computer":"","Replace image":"","Replace image from computer":"","Resize image":"","Resize image (in %0)":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Right aligned image":"",Save:"","Show more items":"","Side image":"",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Strikethrough text":"",Subscript:"",Superscript:"","Text alternative":"","The value must not be empty.":"","The value should be a plain number.":"","These keyboard shortcuts allow for quick access to content editing features.":"","To-do List":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Underline:"","Underline text":"",Undo:"අහෝසි කරන්න",Update:"","Update image URL":"","Upload failed":"උඩුගත කිරීම අසාර්ථක විය","Upload from computer":"","Upload image from computer":"","Uploading image":"","Upper-latin":"","Upper-roman":"","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"","User interface and content navigation keystrokes":"","Wrap text":""}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1570
js/ckeditor/package-lock.json
generated
1570
js/ckeditor/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -8,45 +8,45 @@
|
||||
"main": "./build/ckeditor.js",
|
||||
"types": "./build/ckeditor.d.ts",
|
||||
"dependencies": {
|
||||
"@ckeditor/ckeditor5-alignment": "41.2.1",
|
||||
"@ckeditor/ckeditor5-basic-styles": "41.2.1",
|
||||
"@ckeditor/ckeditor5-block-quote": "41.2.1",
|
||||
"@ckeditor/ckeditor5-ckbox": "41.2.1",
|
||||
"@ckeditor/ckeditor5-code-block": "41.2.1",
|
||||
"@ckeditor/ckeditor5-editor-classic": "41.2.1",
|
||||
"@ckeditor/ckeditor5-essentials": "41.2.1",
|
||||
"@ckeditor/ckeditor5-font": "41.2.1",
|
||||
"@ckeditor/ckeditor5-heading": "41.2.1",
|
||||
"@ckeditor/ckeditor5-highlight": "41.2.1",
|
||||
"@ckeditor/ckeditor5-horizontal-line": "41.2.1",
|
||||
"@ckeditor/ckeditor5-html-support": "^41.2.1",
|
||||
"@ckeditor/ckeditor5-image": "41.2.1",
|
||||
"@ckeditor/ckeditor5-indent": "41.2.1",
|
||||
"@ckeditor/ckeditor5-link": "41.2.1",
|
||||
"@ckeditor/ckeditor5-list": "41.2.1",
|
||||
"@ckeditor/ckeditor5-mention": "41.2.1",
|
||||
"@ckeditor/ckeditor5-paragraph": "41.2.1",
|
||||
"@ckeditor/ckeditor5-paste-from-office": "41.2.1",
|
||||
"@ckeditor/ckeditor5-table": "41.2.1",
|
||||
"@ckeditor/ckeditor5-typing": "41.2.1",
|
||||
"@ckeditor/ckeditor5-ui": "^41.2.1",
|
||||
"@ckeditor/ckeditor5-undo": "41.2.1"
|
||||
"@ckeditor/ckeditor5-alignment": "~41.4",
|
||||
"@ckeditor/ckeditor5-basic-styles": "~41.4",
|
||||
"@ckeditor/ckeditor5-block-quote": "~41.4",
|
||||
"@ckeditor/ckeditor5-ckbox": "~41.4",
|
||||
"@ckeditor/ckeditor5-code-block": "~41.4",
|
||||
"@ckeditor/ckeditor5-editor-classic": "~41.4",
|
||||
"@ckeditor/ckeditor5-essentials": "~41.4",
|
||||
"@ckeditor/ckeditor5-font": "~41.4",
|
||||
"@ckeditor/ckeditor5-heading": "~41.4",
|
||||
"@ckeditor/ckeditor5-highlight": "~41.4",
|
||||
"@ckeditor/ckeditor5-horizontal-line": "~41.4",
|
||||
"@ckeditor/ckeditor5-html-support": "~41.4",
|
||||
"@ckeditor/ckeditor5-image": "~41.4",
|
||||
"@ckeditor/ckeditor5-indent": "~41.4",
|
||||
"@ckeditor/ckeditor5-link": "~41.4",
|
||||
"@ckeditor/ckeditor5-list": "~41.4",
|
||||
"@ckeditor/ckeditor5-mention": "~41.4",
|
||||
"@ckeditor/ckeditor5-paragraph": "~41.4",
|
||||
"@ckeditor/ckeditor5-paste-from-office": "~41.4",
|
||||
"@ckeditor/ckeditor5-table": "~41.4",
|
||||
"@ckeditor/ckeditor5-typing": "~41.4",
|
||||
"@ckeditor/ckeditor5-ui": "~41.4",
|
||||
"@ckeditor/ckeditor5-undo": "~41.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-core": "^41.2.1",
|
||||
"@ckeditor/ckeditor5-dev-translations": "^32.1.2",
|
||||
"@ckeditor/ckeditor5-dev-utils": "^32.1.2",
|
||||
"@ckeditor/ckeditor5-theme-lark": "41.2.1",
|
||||
"css-loader": "^5.2.7",
|
||||
"postcss": "^8.4.36",
|
||||
"postcss-loader": "^4.3.0",
|
||||
"raw-loader": "^4.0.2",
|
||||
"style-loader": "^2.0.0",
|
||||
"terser-webpack-plugin": "^4.2.3",
|
||||
"ts-loader": "^9.5.1",
|
||||
"typescript": "5.0.4",
|
||||
"webpack": "^5.90.3",
|
||||
"webpack-cli": "^4.10.0"
|
||||
"@ckeditor/ckeditor5-core": "~41.4",
|
||||
"@ckeditor/ckeditor5-dev-translations": "~32.1",
|
||||
"@ckeditor/ckeditor5-dev-utils": "~32.1",
|
||||
"@ckeditor/ckeditor5-theme-lark": "~41.4",
|
||||
"css-loader": "~5.2",
|
||||
"postcss": "~8.4",
|
||||
"postcss-loader": "~4.3",
|
||||
"raw-loader": "~4.0",
|
||||
"style-loader": "~2.0",
|
||||
"terser-webpack-plugin": "~4.2",
|
||||
"ts-loader": "~9.5",
|
||||
"typescript": "~5.0",
|
||||
"webpack": "~5.91",
|
||||
"webpack-cli": "~4.10"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "webpack --mode production",
|
||||
|
||||
@@ -47,17 +47,18 @@ import {
|
||||
} from '@ckeditor/ckeditor5-table';
|
||||
import { TextTransformation } from '@ckeditor/ckeditor5-typing';
|
||||
import { Undo } from '@ckeditor/ckeditor5-undo';
|
||||
import InsertHtml from './plugins/insert-html/insert-html.plugin';
|
||||
|
||||
|
||||
// combodo plugins
|
||||
import AppendITopClasses from "./plugins/append-itop-classes/append-itop-classes.plugin";
|
||||
import KeyboardShortcut from "./plugins/keyboard-shortcut/keyboard-shortcut.plugin";
|
||||
import MentionsMarkup from "./plugins/mentions-markup/mentions-markup.plugin";
|
||||
import TriggerUpdateOnReady from "./plugins/trigger_update_on_ready/trigger_update_on_ready.plugin";
|
||||
import TriggerUpdateOnReady from "./plugins/trigger-update-on-ready/trigger-update-on-ready.plugin";
|
||||
import Maximize from './plugins/maximize/maximize.plugin';
|
||||
import ObjectShortcut from './plugins/object-shortcut/object-shortcut.plugin';
|
||||
import DetectChanges from "./plugins/detect-change/detect-change.plugin";
|
||||
import UpdateInputOnChange from "./plugins/update-input-on-change/update-input-on-change.plugin";
|
||||
import Disabler from "./plugins/disabler/disabler.plugin";
|
||||
import InsertHtml from './plugins/insert-html/insert-html.plugin';
|
||||
|
||||
// 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.
|
||||
@@ -65,6 +66,7 @@ import DetectChanges from "./plugins/detect-change/detect-change.plugin";
|
||||
// iTop console theme
|
||||
import './resources/console-theme.css';
|
||||
|
||||
|
||||
class Editor extends ClassicEditor {
|
||||
public static override builtinPlugins = [
|
||||
Alignment,
|
||||
@@ -116,9 +118,11 @@ class Editor extends ClassicEditor {
|
||||
MentionsMarkup,
|
||||
TriggerUpdateOnReady,
|
||||
Maximize,
|
||||
ObjectShortcut,
|
||||
// ObjectShortcut, // wait a clean implementation before adding it (mentions plugin allow this feature)
|
||||
InsertHtml,
|
||||
DetectChanges
|
||||
DetectChanges,
|
||||
UpdateInputOnChange,
|
||||
Disabler
|
||||
];
|
||||
|
||||
// default configuration editor
|
||||
@@ -130,12 +134,12 @@ class Editor extends ClassicEditor {
|
||||
'undo',
|
||||
'redo',
|
||||
'|',
|
||||
'bold',
|
||||
'italic',
|
||||
'underline',
|
||||
'fontSize',
|
||||
'fontColor',
|
||||
'highlight:yellowMarker',
|
||||
'bold',
|
||||
'italic',
|
||||
'underline',
|
||||
'highlight',
|
||||
{
|
||||
label: 'More styles',
|
||||
items: ['strikethrough', 'superscript', 'subscript' ]
|
||||
@@ -155,17 +159,15 @@ class Editor extends ClassicEditor {
|
||||
language: 'en',
|
||||
image: {
|
||||
toolbar: [
|
||||
'imageTextAlternative',
|
||||
'toggleImageCaption',
|
||||
'|',
|
||||
'imageStyle:inline',
|
||||
'imageStyle:block',
|
||||
'imageStyle:side',
|
||||
'linkImage',
|
||||
'|',
|
||||
'resizeImage:25',
|
||||
'resizeImage:50',
|
||||
'resizeImage:75',
|
||||
'resizeImage:original',
|
||||
'|',
|
||||
'imageStyle:alignLeft',
|
||||
'imageStyle:alignCenter',
|
||||
'imageStyle:alignRight',
|
||||
'|',
|
||||
'toggleImageCaption',
|
||||
],
|
||||
resizeOptions: [
|
||||
{
|
||||
@@ -173,16 +175,16 @@ class Editor extends ClassicEditor {
|
||||
value: null,
|
||||
icon: 'original'
|
||||
},
|
||||
{
|
||||
name: 'resizeImage:25',
|
||||
value: '25',
|
||||
icon: 'small'
|
||||
},
|
||||
{
|
||||
name: 'resizeImage:50',
|
||||
value: '50',
|
||||
icon: 'medium'
|
||||
},
|
||||
{
|
||||
name: 'resizeImage:75',
|
||||
value: '75',
|
||||
icon: 'large'
|
||||
}
|
||||
],
|
||||
},
|
||||
table: {
|
||||
@@ -190,8 +192,11 @@ class Editor extends ClassicEditor {
|
||||
'tableColumn',
|
||||
'tableRow',
|
||||
'mergeTableCells',
|
||||
'|',
|
||||
'tableCellProperties',
|
||||
'tableProperties'
|
||||
'tableProperties',
|
||||
'|',
|
||||
'toggleTableCaption'
|
||||
]
|
||||
},
|
||||
htmlSupport: {
|
||||
@@ -206,6 +211,17 @@ class Editor extends ClassicEditor {
|
||||
},
|
||||
link: {
|
||||
defaultProtocol: 'http://'
|
||||
},
|
||||
highlight: {
|
||||
options: [
|
||||
{
|
||||
model: 'yellowMarker',
|
||||
class: 'marker-yellow',
|
||||
title: 'Yellow marker',
|
||||
color: 'var(--ck-highlight-marker-yellow)',
|
||||
type: 'marker'
|
||||
},
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,19 +10,16 @@ export default class DetectChanges extends Plugin {
|
||||
constructor( editor: Editor ) {
|
||||
super( editor );
|
||||
const sInitialValue:string = editor.config.get('detectChanges.initialValue') as string;
|
||||
// TODO 3.2.0: How to use CombodoJSConsole here ?
|
||||
console.debug('DetectChanges initial value', sInitialValue);
|
||||
// If the initial value is not set or empty, we don't need to do anything
|
||||
if( !sInitialValue || sInitialValue === '') {
|
||||
return;
|
||||
}
|
||||
// Initialize our own data processor
|
||||
editor.data.processor= new iTopDataProcessor( editor.data.viewDocument, sInitialValue, editor.getData() ) as iTopDataProcessor;
|
||||
const oProcessor = new iTopDataProcessor( editor.data.viewDocument, sInitialValue, editor.getData() ) as iTopDataProcessor;
|
||||
editor.data.processor = oProcessor;
|
||||
// Listen for the dataReady event only once
|
||||
editor.model.document.once('change:data', () => {
|
||||
// Ignore linter as processor can be any kind of DataProcessor but we're sure that we have an iTopDataProcessor
|
||||
// @ts-ignore
|
||||
editor.data.processor.setTransformedInitialValue( editor.getData());
|
||||
oProcessor.setTransformedInitialValue( editor.getData());
|
||||
});
|
||||
}
|
||||
init() {
|
||||
|
||||
@@ -36,15 +36,9 @@ export default class iTopDataProcessor extends HtmlDataProcessor {
|
||||
|
||||
override toData( viewFragment: ViewDocumentFragment ): string {
|
||||
const html = this._htmlDP.toData( viewFragment );
|
||||
// TODO 3.2.0: How to use CombodoJSConsole here ?
|
||||
console.debug('DataProcessor toData', html);
|
||||
if( html === this._transformedInitialValue ) {
|
||||
// TODO 3.2.0: How to use CombodoJSConsole here ?
|
||||
console.debug('iTopDataProcessor: initialData detected, returning initial value');
|
||||
return this._initialValue;
|
||||
}
|
||||
// TODO 3.2.0: How to use CombodoJSConsole here ?
|
||||
console.debug('iTopDataProcessor: initialData not detected, returning transformed value');
|
||||
return html;
|
||||
}
|
||||
}
|
||||
57
js/ckeditor/src/plugins/disabler/disabler.plugin.ts
Normal file
57
js/ckeditor/src/plugins/disabler/disabler.plugin.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import {ClassicEditor} from "@ckeditor/ckeditor5-editor-classic";
|
||||
|
||||
interface BlockFieldInterface{
|
||||
(element:HTMLElement, isBlocked: boolean):any;
|
||||
}
|
||||
|
||||
declare var BlockFieldElement: BlockFieldInterface;
|
||||
|
||||
export default class Disabler extends Plugin {
|
||||
|
||||
static get pluginName() {
|
||||
return 'Disabler';
|
||||
}
|
||||
|
||||
init() {
|
||||
|
||||
// retrieve editor instance
|
||||
const oEditor:ClassicEditor = this.editor as ClassicEditor;
|
||||
|
||||
// perform disabling when editor ui is ready
|
||||
oEditor.ui.on('ready', () => {
|
||||
Disabler.processDisabling(oEditor, oInputElement);
|
||||
});
|
||||
|
||||
// perform disabling when input is updated
|
||||
const oInputElement = oEditor.sourceElement as HTMLInputElement;
|
||||
// @ts-ignore
|
||||
$('#' + oInputElement.id).on('update', function(){
|
||||
Disabler.processDisabling(oEditor, oInputElement);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Process ckeditor disabling.
|
||||
*
|
||||
* @param oEditor
|
||||
* @param oInputElement
|
||||
*/
|
||||
static processDisabling(oEditor:ClassicEditor, oInputElement:HTMLInputElement){
|
||||
|
||||
// @ts-ignore
|
||||
const oElement = $(oEditor.ui.element);
|
||||
if(typeof oElement.block === 'function') {
|
||||
BlockFieldElement(oElement, oInputElement.disabled);
|
||||
}
|
||||
|
||||
// handle ckeditor read only mode
|
||||
if(oInputElement.disabled){
|
||||
oEditor.enableReadOnlyMode('ibo');
|
||||
}
|
||||
else{
|
||||
oEditor.disableReadOnlyMode('ibo');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import { ButtonView, ContextualBalloon, clickOutsideHandler } from '@ckeditor/ckeditor5-ui';
|
||||
import {ButtonView, ContextualBalloon, clickOutsideHandler} from '@ckeditor/ckeditor5-ui';
|
||||
import FormView from './object-shortcut.form-view';
|
||||
import './styles.css';
|
||||
|
||||
@@ -25,7 +25,7 @@ export default class ObjectShortcutUI extends Plugin {
|
||||
|
||||
editor.ui.componentFactory.add( 'object-shortcut', () => {
|
||||
const oButton = new ButtonView();
|
||||
oButton.label = 'Insert Object Shortcut';
|
||||
oButton.label = editor.config.get('objectShortcut.buttonLabel') as string ?? 'Insert Object Shortcut';
|
||||
oButton.tooltip = true;
|
||||
oButton.icon = sPluginIconSVG;
|
||||
|
||||
@@ -116,12 +116,6 @@ export default class ObjectShortcutUI extends Plugin {
|
||||
|
||||
_hideUI() {
|
||||
if( this.oFormView !== undefined && this.oBalloon !== undefined){
|
||||
// @ts-ignore
|
||||
this.oFormView.oLabelInputView.set({value: null});
|
||||
// @ts-ignore
|
||||
this.oFormView.oClassInputView.set({value: null});
|
||||
// @ts-ignore
|
||||
this.oFormView.oReferenceInputView.set({value: null});
|
||||
|
||||
if( this.oFormView.element !== null){
|
||||
(<HTMLFormElement>this.oFormView.element).reset();
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import {ClassicEditor} from "@ckeditor/ckeditor5-editor-classic";
|
||||
|
||||
export default class UpdateInputOnChange extends Plugin {
|
||||
|
||||
static get pluginName() {
|
||||
return 'UpdateInputOnChange';
|
||||
}
|
||||
|
||||
init() {
|
||||
|
||||
// retrieve editor instance
|
||||
const oEditor:ClassicEditor = this.editor as ClassicEditor;
|
||||
|
||||
if(oEditor.sourceElement !== undefined) {
|
||||
const oInputElement = oEditor.sourceElement as HTMLInputElement;
|
||||
|
||||
// update input when data change
|
||||
oEditor.model.document.on('change:data', (event) => {
|
||||
oInputElement.value = oEditor.getData();
|
||||
const oEvent = new Event('change');
|
||||
oInputElement.dispatchEvent(oEvent);
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,4 +4,6 @@
|
||||
--ck-color-list-button-on-background-focus: #EFF0EF;
|
||||
--ck-color-list-button-hover-background: #EFF0EF;
|
||||
--ck-color-list-button-on-text: black;
|
||||
|
||||
--ck-z-default: 9999;
|
||||
}
|
||||
@@ -76,7 +76,7 @@ $(function()
|
||||
{
|
||||
var value = null;
|
||||
|
||||
this.element.find(':input').each(function(iIndex, oElem){
|
||||
this.element.find(':input:not(:button)').each(function(iIndex, oElem){
|
||||
if($(oElem).is(':hidden:not(.ck-hidden)') || $(oElem).is(':text') || $(oElem).is(':password') || $(oElem).is('textarea'))
|
||||
{
|
||||
value = $(oElem).val();
|
||||
|
||||
@@ -358,8 +358,7 @@ function ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue,
|
||||
}
|
||||
|
||||
// Put and event to check the field when the content changes, remove the event right after as we'll call this same function again, and we don't want to call the event more than once (especially not ^2 times on each call)
|
||||
oCKEditor.model.document.on('change:data', (event) => {
|
||||
oCKEditor.model.document.off('change:data');
|
||||
oCKEditor.model.document.once('change:data', (event) => {
|
||||
ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue, originalValue);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -313,6 +313,15 @@ function BlockField(field_id, bBlocked) {
|
||||
$('#'+field_id).unblock();
|
||||
}
|
||||
}
|
||||
|
||||
function BlockFieldElement(element, bBlocked) {
|
||||
if (bBlocked) {
|
||||
element.block({message: '', enableValidation : true, baseZ: 9999, overlayCSS: { backgroundColor: '#ccd6e066'}});
|
||||
} else {
|
||||
element.unblock();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates (enables/disables) a "duration" field
|
||||
*/
|
||||
|
||||
@@ -103,11 +103,6 @@ function DisplayPreferences($oP)
|
||||
$oTabsFieldset->AddSubBlock(GetTabsLayoutFieldBlock());
|
||||
$oTabsFieldset->AddSubBlock(GetTabsNavigationFieldBlock());
|
||||
|
||||
// Rich text editor
|
||||
$oRichTextFieldset = FieldSetUIBlockFactory::MakeStandard(Dict::S('UI:Preferences:RichText:Title'), 'ibo-fieldset-for-rich-text-preferences');
|
||||
$oSecondColumn->AddSubBlock($oRichTextFieldset);
|
||||
$oRichTextFieldset->AddSubBlock(GetRichTextToolbarExpandedFieldBlock());
|
||||
|
||||
// Activity panel
|
||||
$oActivityPanelfieldset = FieldSetUIBlockFactory::MakeStandard(Dict::S('UI:Preferences:ActivityPanel:Title'), 'ibo-fieldset-for-activity-panel');
|
||||
$oSecondColumn->AddSubBlock($oActivityPanelfieldset);
|
||||
@@ -619,34 +614,6 @@ function GetTabsNavigationFieldBlock(): iUIBlock
|
||||
return $oSelect;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Combodo\iTop\Application\UI\Base\iUIBlock
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \MySQLException
|
||||
* @since 3.0.0
|
||||
*/
|
||||
function GetRichTextToolbarExpandedFieldBlock(): iUIBlock
|
||||
{
|
||||
$bCurrentValue = isset(CKEditorHelper::GetCkeditorPref()['toolbarStartupExpanded']) ? (bool)CKEditorHelper::GetCkeditorPref()['toolbarStartupExpanded'] : false;
|
||||
$sCurrentValueAsString = $bCurrentValue ? 'true' : 'false';
|
||||
|
||||
$aOptionsValues = [
|
||||
'true' => 'Expanded',
|
||||
'false' => 'Collapsed',
|
||||
];
|
||||
$oSelect = SelectUIBlockFactory::MakeForSelectWithLabel('toolbarexpanded', Dict::S('UI:Preferences:RichText:ToolbarState'));
|
||||
foreach ($aOptionsValues as $sValue => $sDictEntrySuffix) {
|
||||
$oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption(
|
||||
$sValue,
|
||||
Dict::S('UI:Preferences:RichText:ToolbarState:'.$sDictEntrySuffix),
|
||||
$sValue === $sCurrentValueAsString)
|
||||
);
|
||||
}
|
||||
|
||||
return $oSelect;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Combodo\iTop\Application\UI\Base\iUIBlock
|
||||
* @throws \CoreException
|
||||
|
||||
@@ -2,86 +2,77 @@
|
||||
|
||||
namespace Combodo\iTop\Application\Helper;
|
||||
|
||||
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
|
||||
use Combodo\iTop\Application\WebPage\WebPage;
|
||||
use Combodo\iTop\Renderer\BlockRenderer;
|
||||
use Combodo\iTop\Renderer\RenderingOutput;
|
||||
use Dict;
|
||||
use Exception;
|
||||
use ExceptionLog;
|
||||
use UserRights;
|
||||
use MetaModel;
|
||||
use DBSearch;
|
||||
use utils;
|
||||
use appUserPreferences;
|
||||
|
||||
/***
|
||||
/**
|
||||
* Class CKEditorHelper
|
||||
*
|
||||
* (34) [
|
||||
* 'blockQuote',
|
||||
* 'bold',
|
||||
* 'link',
|
||||
* 'ckfinder',
|
||||
* 'codeBlock',
|
||||
* 'selectAll',
|
||||
* 'undo',
|
||||
* 'redo',
|
||||
* 'heading',
|
||||
* 'horizontalLine',
|
||||
* 'imageTextAlternative',
|
||||
* 'toggleImageCaption',
|
||||
* 'imageStyle:inline',
|
||||
* 'imageStyle:alignLeft',
|
||||
* 'imageStyle:alignRight',
|
||||
* 'imageStyle:alignCenter',
|
||||
* 'imageStyle:alignBlockLeft',
|
||||
* 'imageStyle:alignBlockRight',
|
||||
* 'imageStyle:block',
|
||||
* 'imageStyle:side',
|
||||
* 'imageStyle:wrapText',
|
||||
* 'imageStyle:breakText',
|
||||
* 'uploadImage',
|
||||
* 'imageUpload',
|
||||
* 'indent',
|
||||
* 'outdent',
|
||||
* 'italic',
|
||||
* 'numberedList',
|
||||
* 'bulletedList',
|
||||
* 'mediaEmbed',
|
||||
* 'insertTable',
|
||||
* 'tableColumn',
|
||||
* 'tableRow',
|
||||
* 'mergeTableCells']
|
||||
* Utilities for CKEditor.
|
||||
*
|
||||
* @package Combodo\iTop\Application\Helper
|
||||
* @since 3.2.0
|
||||
*/
|
||||
|
||||
class CKEditorHelper
|
||||
{
|
||||
/**
|
||||
* Return the CKEditor config as an array
|
||||
* Get the CKEditor configuration.
|
||||
*
|
||||
* Create a default configuration, merge it with the user preferences and overload it with the provided configuration.
|
||||
*
|
||||
* @param bool $bWithMentions
|
||||
* @param string|null $sInitialValue
|
||||
* @param array $aOverloadConfiguration
|
||||
*
|
||||
* @return array
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \MySQLException
|
||||
* @since 3.0.0
|
||||
*/
|
||||
static public function GetCkeditorPref()
|
||||
static public function GetCkeditorConfiguration(bool $bWithMentions, ?string $sInitialValue, array $aOverloadConfiguration = []) : array
|
||||
{
|
||||
// Extract language from user preferences
|
||||
$sLanguageCountry = trim(UserRights::GetUserLanguage());
|
||||
$sLanguage = strtolower(explode(' ', $sLanguageCountry)[0]);
|
||||
|
||||
$aDefaultConf = array(
|
||||
// configuration
|
||||
$aConfiguration = array(
|
||||
'language' => $sLanguage,
|
||||
'detectChanges' => [
|
||||
'initialValue' => $sInitialValue
|
||||
],
|
||||
'objectShortcut' => [
|
||||
'buttonLabel' => Dict::S('UI:ObjectShortcutInsert')
|
||||
],
|
||||
);
|
||||
|
||||
// Mentions
|
||||
$aDefaultConf['mention'] = self::GetMentionConfiguration();
|
||||
if($bWithMentions){
|
||||
try{
|
||||
$aMentionConfiguration = self::GetMentionConfiguration();
|
||||
$aConfiguration['mention'] = $aMentionConfiguration;
|
||||
}
|
||||
catch(Exception $e){
|
||||
ExceptionLog::LogException($e);
|
||||
}
|
||||
}
|
||||
|
||||
// Rich text config
|
||||
$aRichTextConfig = json_decode(appUserPreferences::GetPref('richtext_config', '{}'), true);
|
||||
|
||||
return array_merge($aDefaultConf, $aRichTextConfig);
|
||||
// merge with overloaded configuration
|
||||
return array_merge($aConfiguration, $aOverloadConfiguration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get mention configuration.
|
||||
*
|
||||
* @return array|array[]
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
* @throws \Exception
|
||||
*/
|
||||
static private function GetMentionConfiguration() : array
|
||||
{
|
||||
@@ -124,4 +115,149 @@ class CKEditorHelper
|
||||
return $aMentionConfiguration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure CKEditor element (WebPage).
|
||||
*
|
||||
* @param \Combodo\iTop\Application\WebPage\WebPage $oPage
|
||||
* @param string $sInputElementId ID of the HTML Input element
|
||||
* @param string|null $sInitialValue input initial value
|
||||
* @param bool $bWithMentions enable mentions
|
||||
* @param array $aOverloadConfiguration overload configuration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function ConfigureCKEditorElementForWebPage(WebPage $oPage, string $sInputElementId, string $sInitialValue = null, bool $bWithMentions = false, array $aOverloadConfiguration = []): void
|
||||
{
|
||||
// link CKEditor JS files
|
||||
foreach (static::GetJSFilesRelPathsForCKEditor() as $sFile) {
|
||||
try{
|
||||
$oPage->LinkScriptFromAppRoot($sFile);
|
||||
}
|
||||
catch(Exception $e){
|
||||
ExceptionLog::LogException($e);
|
||||
}
|
||||
}
|
||||
|
||||
// retrieve CKEditor configuration
|
||||
$aConfiguration = self::GetCkeditorConfiguration($bWithMentions, $sInitialValue, $aOverloadConfiguration);
|
||||
|
||||
// add CKEditor initialization script
|
||||
$sConfigJS = json_encode($aConfiguration);
|
||||
$oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$sInputElementId', $sConfigJS)");
|
||||
|
||||
// handle mentions template
|
||||
if($bWithMentions){
|
||||
try{
|
||||
$sMentionTemplate = self::GetMentionsTemplate($sInputElementId);
|
||||
$oPage->add($sMentionTemplate);
|
||||
}
|
||||
catch(Exception $e){
|
||||
ExceptionLog::LogException($e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure CKEditor element (RenderingOutput).
|
||||
*
|
||||
* @param \Combodo\iTop\Renderer\RenderingOutput $oOutput
|
||||
* @param string $sInputElementId ID of the HTML Input element
|
||||
* @param string|null $sInitialValue input initial value
|
||||
* @param bool $bWithMentions enable mentions
|
||||
* @param bool $bAddJSFiles add JS files to the output
|
||||
* @param array $aOverloadConfiguration overload configuration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function ConfigureCKEditorElementForRenderingOutput(RenderingOutput $oOutput, string $sInputElementId, string $sInitialValue = null, bool $bWithMentions = false, bool $bAddJSFiles = true, array $aOverloadConfiguration = []): void
|
||||
{
|
||||
// link CKEditor JS files
|
||||
if($bAddJSFiles){
|
||||
foreach (static::GetJSFilesRelPathsForCKEditor() as $sFile) {
|
||||
try{
|
||||
$oOutput->AddJsFile($sFile);
|
||||
}
|
||||
catch(Exception $e){
|
||||
ExceptionLog::LogException($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// configuration
|
||||
$aConfiguration = self::GetCkeditorConfiguration($bWithMentions, $sInitialValue, $aOverloadConfiguration);
|
||||
|
||||
// add CKEditor initialization script
|
||||
$sConfigJS = json_encode($aConfiguration);
|
||||
$oOutput->AddJs("CombodoCKEditorHandler.CreateInstance('#$sInputElementId', $sConfigJS)");
|
||||
|
||||
// mentions template
|
||||
if($bWithMentions){
|
||||
try{
|
||||
$sMentionTemplate = self::GetMentionsTemplate($sInputElementId);
|
||||
$oOutput->add($sMentionTemplate);
|
||||
}
|
||||
catch(Exception $e){
|
||||
ExceptionLog::LogException($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* GetMentionsTemplate.
|
||||
*
|
||||
* @param string $sComponentId
|
||||
*
|
||||
* @return string
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function GetMentionsTemplate(string $sComponentId): string
|
||||
{
|
||||
// twig environment
|
||||
$oTwig = TwigHelper::GetTwigEnvironment(BlockRenderer::TWIG_BASE_PATH);
|
||||
|
||||
// mention template
|
||||
$sMentionsTemplate = $oTwig->render('application/object/set/option_renderer.html.twig');
|
||||
|
||||
return <<<HTML
|
||||
<template id="{$sComponentId}_items_template">
|
||||
$sMentionsTemplate
|
||||
</template>
|
||||
HTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[] Relative URLs to the JS files necessary for CKEditor
|
||||
*/
|
||||
public static function GetJSFilesRelPathsForCKEditor(): array
|
||||
{
|
||||
// all js file needed by ckeditor
|
||||
$aJSRelPaths = [
|
||||
'js/ckeditor/build/ckeditor.js',
|
||||
'js/highlight/highlight.js',
|
||||
'js/ckeditor.handler.js',
|
||||
'js/ckeditor.feeds.js'
|
||||
];
|
||||
|
||||
// add CKEditor translations resource
|
||||
$sUserLanguage = Dict::GetUserLanguage();
|
||||
$sLanguage = strtolower(explode(' ', $sUserLanguage)[0]);
|
||||
$sCountry = strtolower(explode(' ', $sUserLanguage)[1]);
|
||||
|
||||
// add corresponding ckeditor language file
|
||||
// P1 language + country
|
||||
// P2 language
|
||||
$sLanguageFileRelPath = 'js/ckeditor/build/translations/' . $sLanguage . '-' . $sCountry . '.js';
|
||||
if(file_exists(APPROOT . $sLanguageFileRelPath)){
|
||||
$aJSRelPaths[] = $sLanguageFileRelPath;
|
||||
}
|
||||
else {
|
||||
$sLanguageFileRelPath = 'js/ckeditor/build/translations/' . $sLanguage . '.js';
|
||||
if(file_exists(APPROOT . $sLanguageFileRelPath)){
|
||||
$aJSRelPaths[] = $sLanguageFileRelPath;
|
||||
}
|
||||
}
|
||||
|
||||
return $aJSRelPaths;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user