245 lines
3.8 KiB
JavaScript
245 lines
3.8 KiB
JavaScript
/*!
|
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
|
|
*/
|
|
import { Icon } from "../../core/ui/icon.js";
|
|
import { Config } from "../../config.js";
|
|
import symbolsIcon from "./symbols.svg.js";
|
|
Config.prototype.usePopupForSpecialCharacters = false;
|
|
Config.prototype.specialCharacters = [
|
|
'!',
|
|
'"',
|
|
'#',
|
|
'$',
|
|
'%',
|
|
'&',
|
|
"'",
|
|
'(',
|
|
')',
|
|
'*',
|
|
'+',
|
|
'-',
|
|
'.',
|
|
'/',
|
|
'0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
':',
|
|
';',
|
|
'<',
|
|
'=',
|
|
'>',
|
|
'?',
|
|
'@',
|
|
'A',
|
|
'B',
|
|
'C',
|
|
'D',
|
|
'E',
|
|
'F',
|
|
'G',
|
|
'H',
|
|
'I',
|
|
'J',
|
|
'K',
|
|
'L',
|
|
'M',
|
|
'N',
|
|
'O',
|
|
'P',
|
|
'Q',
|
|
'R',
|
|
'S',
|
|
'T',
|
|
'U',
|
|
'V',
|
|
'W',
|
|
'X',
|
|
'Y',
|
|
'Z',
|
|
'[',
|
|
']',
|
|
'^',
|
|
'_',
|
|
'`',
|
|
'a',
|
|
'b',
|
|
'c',
|
|
'd',
|
|
'e',
|
|
'f',
|
|
'g',
|
|
'h',
|
|
'i',
|
|
'j',
|
|
'k',
|
|
'l',
|
|
'm',
|
|
'n',
|
|
'o',
|
|
'p',
|
|
'q',
|
|
'r',
|
|
's',
|
|
't',
|
|
'u',
|
|
'v',
|
|
'w',
|
|
'x',
|
|
'y',
|
|
'z',
|
|
'{',
|
|
'|',
|
|
'}',
|
|
'~',
|
|
'€',
|
|
'‘',
|
|
'’',
|
|
'“',
|
|
'”',
|
|
'–',
|
|
'—',
|
|
'¡',
|
|
'¢',
|
|
'£',
|
|
'¤',
|
|
'¥',
|
|
'¦',
|
|
'§',
|
|
'¨',
|
|
'©',
|
|
'ª',
|
|
'«',
|
|
'»',
|
|
'¬',
|
|
'®',
|
|
'¯',
|
|
'°',
|
|
'²',
|
|
'³',
|
|
'´',
|
|
'µ',
|
|
'¶',
|
|
'·',
|
|
'¸',
|
|
'¹',
|
|
'º',
|
|
'¼',
|
|
'½',
|
|
'¾',
|
|
'¿',
|
|
'À',
|
|
'Á',
|
|
'Â',
|
|
'Ã',
|
|
'Ä',
|
|
'Å',
|
|
'Æ',
|
|
'Ç',
|
|
'È',
|
|
'É',
|
|
'Ê',
|
|
'Ë',
|
|
'Ì',
|
|
'Í',
|
|
'Î',
|
|
'Ï',
|
|
'Ð',
|
|
'Ñ',
|
|
'Ò',
|
|
'Ó',
|
|
'Ô',
|
|
'Õ',
|
|
'Ö',
|
|
'×',
|
|
'Ø',
|
|
'Ù',
|
|
'Ú',
|
|
'Û',
|
|
'Ü',
|
|
'Ý',
|
|
'Þ',
|
|
'ß',
|
|
'à',
|
|
'á',
|
|
'â',
|
|
'ã',
|
|
'ä',
|
|
'å',
|
|
'æ',
|
|
'ç',
|
|
'è',
|
|
'é',
|
|
'ê',
|
|
'ë',
|
|
'ì',
|
|
'í',
|
|
'î',
|
|
'ï',
|
|
'ð',
|
|
'ñ',
|
|
'ò',
|
|
'ó',
|
|
'ô',
|
|
'õ',
|
|
'ö',
|
|
'÷',
|
|
'ø',
|
|
'ù',
|
|
'ú',
|
|
'û',
|
|
'ü',
|
|
'ý',
|
|
'þ',
|
|
'ÿ',
|
|
'Œ',
|
|
'œ',
|
|
'Ŵ',
|
|
'Ŷ',
|
|
'ŵ',
|
|
'ŷ',
|
|
'‚',
|
|
'‛',
|
|
'„',
|
|
'…',
|
|
'™',
|
|
'►',
|
|
'•',
|
|
'→',
|
|
'⇒',
|
|
'⇔',
|
|
'♦',
|
|
'≈'
|
|
];
|
|
Icon.set('symbols', symbolsIcon);
|
|
Config.prototype.controls.symbols = {
|
|
hotkeys: ['ctrl+shift+i', 'cmd+shift+i'],
|
|
tooltip: 'Insert Special Character',
|
|
popup: (editor, current, close) => {
|
|
const container = editor.e.fire('generateSpecialCharactersTable.symbols');
|
|
if (container) {
|
|
if (editor.o.usePopupForSpecialCharacters) {
|
|
const box = editor.c.div();
|
|
box.classList.add('jodit-symbols');
|
|
box.appendChild(container);
|
|
editor.e.on(container, 'close_dialog', close);
|
|
return box;
|
|
}
|
|
editor
|
|
.alert(container, 'Select Special Character', undefined, 'jodit-symbols')
|
|
.bindDestruct(editor);
|
|
const a = container.querySelector('a');
|
|
a && a.focus();
|
|
}
|
|
return;
|
|
}
|
|
};
|