jodit-pro
Version:
PRO Version of Jodit Editor
1,180 lines (1,053 loc) • 2.19 MB
JavaScript
/*!
* jodit-pro - PRO Version of Jodit Editor
* Author: Chupurnov Valerii <chupurnov@gmail.com>
* Version: v4.9.27
* Url: https://xdsoft.net/jodit/pro/
* License(s): SEE LICENSE IN LICENSE.md
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(self, function() {
return /******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ 117:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ askInsertTypeDialog: function() { return /* binding */ askInsertTypeDialog; },
/* harmony export */ getAllTypes: function() { return /* binding */ getAllTypes; },
/* harmony export */ pasteInsertHtml: function() { return /* binding */ pasteInsertHtml; }
/* harmony export */ });
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
/* harmony import */ var _core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27613);
/* harmony import */ var _core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10830);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
/**
* Remove special HTML comments
* @private
*/ function removeExtraFragments(html) {
html = html.replace(/<meta[^>]+?>/g, '');
const start = html.search(/<!--StartFragment-->/i);
if (start !== -1) {
html = html.substring(start + 20);
}
const end = html.search(/<!--EndFragment-->/i);
if (end !== -1) {
html = html.substring(0, end);
}
return html;
}
/**
* @private
*/ function isDragEvent(e) {
return Boolean(e && e.type === 'drop');
}
/**
* One insert point for clipboard plugins
* @private
*/ function pasteInsertHtml(e, editor, html) {
if (editor.isInDestruct) {
return;
}
if (isDragEvent(e)) {
editor.s.insertCursorAtPoint(e.clientX, e.clientY);
}
const result = editor.e.fire('beforePasteInsert', html);
if (!(0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isVoid)(result) && ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(result) || (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isNumber)(result) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isNode(result))) {
html = result;
}
if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(html)) {
html = removeExtraFragments(html);
}
editor.s.insertHTML(html);
}
/**
* Return all available data types in event
* @private
*/ function getAllTypes(dt) {
const types = dt.types;
let types_str = '';
if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(types) || ({}).toString.call(types) === '[object DOMStringList]') {
for(let i = 0; i < types.length; i += 1){
types_str += types[i] + ';';
}
} else {
types_str = (types || _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN).toString() + ';';
}
return types_str;
}
/**
* Make command dialog
* @private
*/ function askInsertTypeDialog(jodit, msg, title, callback, buttonList) {
if (jodit.e.fire('beforeOpenPasteDialog', msg, title, callback, buttonList) === false) {
return;
}
const dialog = jodit.confirm(`<div style="word-break: normal; white-space: normal">${jodit.i18n(msg)}</div>`, jodit.i18n(title));
const buttons = buttonList.map(({ text, value })=>(0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__.Button)(jodit, {
text,
name: text.toLowerCase(),
tabIndex: 0
}).onAction(()=>{
dialog.close();
callback(value);
}));
dialog.e.one(dialog, 'afterClose', ()=>{
if (!jodit.s.isFocused()) {
jodit.s.focus();
}
});
const cancel = (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__.Button)(jodit, {
text: 'Cancel',
tabIndex: 0
}).onAction(()=>{
dialog.close();
});
dialog.setFooter([
...buttons,
cancel
]);
buttons[0].focus();
buttons[0].state.variant = 'primary';
jodit.e.fire('afterOpenPasteDialog', dialog, msg, title, callback, buttonList);
return dialog;
}
/***/ }),
/***/ 159:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ FileBrowserItem: function() { return /* binding */ FileBrowserItem; }
/* harmony export */ });
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21537);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
class FileBrowserItem {
static create(data) {
if (data instanceof FileBrowserItem) {
return data;
}
return new FileBrowserItem(data);
}
get path() {
return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.normalizePath)(this.data.source.path ? this.data.source.path + '/' : '/');
}
get imageURL() {
const timestamp = this.time || new Date().getTime().toString(), { thumbIsAbsolute, source, thumb, file } = this.data, path = thumb || file;
return thumbIsAbsolute && path ? path : (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.normalizeUrl)(source.baseurl, source.path, path || '') + '?_tmst=' + encodeURIComponent(timestamp);
}
get fileURL() {
let { name } = this.data;
const { file, fileIsAbsolute, source } = this.data;
if (file !== undefined) {
name = file;
}
return fileIsAbsolute && name ? name : (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.normalizeUrl)(source.baseurl, source.path, name || '');
}
get time() {
const { changed } = this.data;
return changed && (typeof changed === 'number' ? new Date(changed).toLocaleString() : changed) || '';
}
get uniqueHashKey() {
const data = this.data;
let key = [
data.sourceName,
data.name,
data.file,
this.time,
data.thumb
].join('_');
key = key.toLowerCase().replace(/[^0-9a-z\-.]/g, '-');
return key;
}
toJSON() {
return this.data;
}
constructor(data){
this.data = data;
// TODO Check with Object.assign
Object.keys(data).forEach((key)=>{
this[key] = data[key];
});
}
}
/***/ }),
/***/ 302:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ getKey: function() { return /* binding */ getKey; }
/* harmony export */ });
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /**
* @module plugins/indent
*/
/**
* Get style rule key for current direction
* @internal
*/ const getKey = (direction, box)=>`${_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(box) ? 'padding' : 'margin'}${direction === 'rtl' ? 'Right' : 'Left'}`;
/***/ }),
/***/ 384:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ sanitizeAttributes: function() { return /* binding */ sanitizeAttributes; }
/* harmony export */ });
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
/**
* @private
*/ function sanitizeAttributes(jodit, nodeElm, hadEffect) {
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.sanitizeHTMLElement)(nodeElm, {
safeJavaScriptLink: jodit.options.cleanHTML.safeJavaScriptLink,
removeOnError: jodit.options.cleanHTML.removeOnError
})) {
return true;
}
return hadEffect;
}
/***/ }),
/***/ 445:
/***/ (function(__unused_webpack_module, __webpack_exports__) {
/* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 1344v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1280q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1280q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1536q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1536q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1152q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1152q26 0 45 19t19 45z\"/> </svg> ");
/***/ }),
/***/ 575:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* unused harmony export enter */
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
/* harmony import */ var _core_helpers_checker_is_boolean_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87612);
/* harmony import */ var _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20356);
/* harmony import */ var _helpers_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35399);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
* One of most important core plugins. It is responsible for all the browsers to have the same effect when the Enter
* button is pressed. By default, it should insert the <p>
*/ class enter extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
/** @override */ afterInit(editor) {
// use 'enter' option if no set
const defaultTag = editor.o.enter.toLowerCase();
const brMode = defaultTag === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
if (!editor.o.enterBlock) {
editor.o.enterBlock = brMode ? _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.PARAGRAPH : defaultTag;
}
editor.registerCommand('enter', (command, value, event = {})=>this.onEnter(event));
}
onEnterKeyDown(event) {
if (event.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
const editor = this.j;
const beforeEnter = editor.e.fire('beforeEnter', event);
if (beforeEnter !== undefined) {
return beforeEnter;
}
if (!editor.s.isCollapsed()) {
editor.execCommand('Delete');
}
editor.s.focus();
this.onEnter(event);
editor.e.fire('afterEnter', event);
editor.synchronizeValues(); // fire change
return false;
}
}
onEnter(event) {
const { jodit } = this;
const fake = jodit.createInside.fake();
try {
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeInsertNode(jodit.s.range, fake);
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.moveCursorOutFromSpecialTags)(jodit, fake, [
'a'
]);
let block = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.getBlockWrapper)(fake, jodit);
const isLi = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(block);
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) && (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey)) {
return false;
}
// wrap no wrapped element
if (!block && !(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.hasPreviousBlock)(fake, jodit)) {
block = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.wrapText)(fake, jodit);
}
if (!block) {
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.insertParagraph)(fake, jodit, isLi ? 'li' : jodit.o.enter);
return false;
}
if (!(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.checkUnsplittableBox)(fake, jodit, block)) {
return false;
}
if (isLi && this.__isEmptyListLeaf(block)) {
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.processEmptyLILeaf)(fake, jodit, block);
return false;
}
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.splitFragment)(fake, jodit, block);
} finally{
fake.isConnected && jodit.s.setCursorBefore(fake);
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(fake);
}
}
__isEmptyListLeaf(li) {
const result = this.j.e.fire('enterIsEmptyListLeaf', li);
return (0,_core_helpers_checker_is_boolean_js__WEBPACK_IMPORTED_MODULE_4__.isBoolean)(result) ? result : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isEmpty(li);
}
/** @override */ beforeDestruct(editor) {
editor.e.off('keydown.enter');
}
}
__decorate([
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown.enter')
], enter.prototype, "onEnterKeyDown", null);
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
/***/ }),
/***/ 580:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ eventEmitter: function() { return /* binding */ eventEmitter; },
/* harmony export */ extendLang: function() { return /* binding */ extendLang; },
/* harmony export */ getContainer: function() { return /* binding */ getContainer; },
/* harmony export */ getPopupViewRoot: function() { return /* binding */ getPopupViewRoot; },
/* harmony export */ instances: function() { return /* binding */ instances; },
/* harmony export */ modules: function() { return /* binding */ modules; },
/* harmony export */ pluginSystem: function() { return /* binding */ pluginSystem; },
/* harmony export */ uniqueUid: function() { return /* binding */ uniqueUid; }
/* harmony export */ });
/* harmony import */ var _helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19306);
/* harmony import */ var _helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70799);
/* harmony import */ var _helpers_checker_is_view_object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39955);
/* harmony import */ var _helpers_string_kebab_case_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12475);
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
/* harmony import */ var _helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80568);
/* harmony import */ var _plugin_plugin_system_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41876);
/* harmony import */ var _event_emitter_global_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(57012);
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82758);
/* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22732);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
const instances = {};
let counter = 1;
const uuids = new Set();
/**
* Generate global unique uid
*/ function uniqueUid() {
function gen() {
counter += 10 * (Math.random() + 1);
return Math.round(counter).toString(16);
}
let uid = gen();
while(uuids.has(uid)){
uid = gen();
}
uuids.add(uid);
return uid;
}
const pluginSystem = new _plugin_plugin_system_js__WEBPACK_IMPORTED_MODULE_6__.PluginSystem({
getContainer
});
const modules = {};
const extendLang = (langs)=>{
Object.keys(langs).forEach((key)=>{
if (_constants_js__WEBPACK_IMPORTED_MODULE_8__.lang[key]) {
Object.assign(_constants_js__WEBPACK_IMPORTED_MODULE_8__.lang[key], langs[key]);
} else {
_constants_js__WEBPACK_IMPORTED_MODULE_8__.lang[key] = langs[key];
}
});
};
const boxes = new WeakMap();
/**
* Create unique box(HTMLCotainer) and remove it after destroy
*/ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false) {
const name = (0,_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_1__.isString)(classFunc) ? classFunc : classFunc ? (0,_helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_5__.getClassName)(classFunc.prototype) : 'jodit-utils';
const data = boxes.get(jodit) || {}, key = name + tag;
const view = (0,_helpers_checker_is_view_object_js__WEBPACK_IMPORTED_MODULE_2__.isViewObject)(jodit) ? jodit : jodit.j;
let body = null;
if (!data[key]) {
let c = view.c;
body = getPopupViewRoot(view.o, view.container, jodit.od.body);
if (createInsideEditor && (0,_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_0__.isJoditObject)(jodit) && jodit.od !== jodit.ed) {
c = jodit.createInside;
const place = tag === 'style' ? jodit.ed.head : jodit.ed.body;
body = (0,_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_0__.isJoditObject)(jodit) && jodit.o.shadowRoot ? jodit.o.shadowRoot : place;
}
const box = c.element(tag, {
className: `jodit jodit-${(0,_helpers_string_kebab_case_js__WEBPACK_IMPORTED_MODULE_3__.kebabCase)(name)}-container jodit-box`
});
box.classList.add(`jodit_theme_${view.o.theme || 'default'}`);
body.appendChild(box);
data[key] = box;
jodit.hookStatus('beforeDestruct', ()=>{
view.events.off(box);
_dom_index_js__WEBPACK_IMPORTED_MODULE_9__.Dom.safeRemove(box);
delete data[key];
if (Object.keys(data).length) {
boxes.delete(jodit);
}
});
boxes.set(jodit, data);
view.events.fire('getContainer', box);
}
data[key].classList.remove('jodit_theme_default', 'jodit_theme_dark');
data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
return data[key];
}
/**
* Get root element for view
* @internal
*/ function getPopupViewRoot(o, container, defaultRoot) {
var _a, _b, _c;
return (_c = (_b = (_a = o.popupRoot) !== null && _a !== void 0 ? _a : o.shadowRoot) !== null && _b !== void 0 ? _b : _dom_index_js__WEBPACK_IMPORTED_MODULE_9__.Dom.closest(container, (parentElement)=>_dom_index_js__WEBPACK_IMPORTED_MODULE_9__.Dom.isHTMLElement(parentElement) && (_dom_index_js__WEBPACK_IMPORTED_MODULE_9__.Dom.isTag(parentElement, 'dialog') || [
'fixed',
'absolute'
].includes((0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(parentElement, 'position'))), defaultRoot)) !== null && _c !== void 0 ? _c : defaultRoot;
}
/**
* Global event emitter
* @deprecated use `import { eventEmitter } from 'jodit/core/event-emitter/global';`
*/ const eventEmitter = _event_emitter_global_js__WEBPACK_IMPORTED_MODULE_7__.eventEmitter;
/***/ }),
/***/ 638:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Alert: function() { return /* reexport safe */ _alert_js__WEBPACK_IMPORTED_MODULE_0__.Alert; },
/* harmony export */ Confirm: function() { return /* reexport safe */ _confirm_js__WEBPACK_IMPORTED_MODULE_1__.Confirm; },
/* harmony export */ Dialog: function() { return /* reexport safe */ _dialog_js__WEBPACK_IMPORTED_MODULE_2__.Dialog; },
/* harmony export */ Prompt: function() { return /* reexport safe */ _prompt_js__WEBPACK_IMPORTED_MODULE_3__.Prompt; }
/* harmony export */ });
/* harmony import */ var _alert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71568);
/* harmony import */ var _confirm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26866);
/* harmony import */ var _dialog_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78584);
/* harmony import */ var _prompt_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36806);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /**
* [[include:modules/dialog/README.md]]
* @packageDocumentation
* @module modules/dialog
*/
/***/ }),
/***/ 757:
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6441);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /**
* @module plugins/media
*/
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.mediaFakeTag = 'jodit-media';
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.mediaInFakeBlock = true;
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.mediaBlocks = [
'video',
'audio'
];
/***/ }),
/***/ 767:
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50911);
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(66288);
/* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47686);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
class tab extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__.Plugin {
afterInit(jodit) {}
__onTab(event) {
if (event.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && this.__onShift(event.shiftKey)) {
return false;
}
}
__onCommand(command) {
if ((command === 'indent' || command === 'outdent') && this.__onShift(command === 'outdent')) {
return false;
}
}
__onShift(shift) {
const res = (0,_cases_index_js__WEBPACK_IMPORTED_MODULE_5__.onTabInsideLi)(this.j, shift);
if (res) {
this.j.e.fire('afterTab', shift);
}
return res;
}
beforeDestruct(jodit) {}
}
__decorate([
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown.tab')
], tab.prototype, "__onTab", null);
__decorate([
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':beforeCommand.tab')
], tab.prototype, "__onCommand", null);
_core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('tab', tab);
/***/ }),
/***/ 820:
/***/ (function(__unused_webpack_module, __webpack_exports__) {
/* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M747 1521q74 32 140 32 376 0 376-335 0-114-41-180-27-44-61.5-74t-67.5-46.5-80.5-25-84-10.5-94.5-2q-73 0-101 10 0 53-.5 159t-.5 158q0 8-1 67.5t-.5 96.5 4.5 83.5 12 66.5zm-14-746q42 7 109 7 82 0 143-13t110-44.5 74.5-89.5 25.5-142q0-70-29-122.5t-79-82-108-43.5-124-14q-50 0-130 13 0 50 4 151t4 152q0 27-.5 80t-.5 79q0 46 1 69zm-541 889l2-94q15-4 85-16t106-27q7-12 12.5-27t8.5-33.5 5.5-32.5 3-37.5.5-34v-65.5q0-982-22-1025-4-8-22-14.5t-44.5-11-49.5-7-48.5-4.5-30.5-3l-4-83q98-2 340-11.5t373-9.5q23 0 68.5.5t67.5.5q70 0 136.5 13t128.5 42 108 71 74 104.5 28 137.5q0 52-16.5 95.5t-39 72-64.5 57.5-73 45-84 40q154 35 256.5 134t102.5 248q0 100-35 179.5t-93.5 130.5-138 85.5-163.5 48.5-176 14q-44 0-132-3t-132-3q-106 0-307 11t-231 12z\"/> </svg> ");
/***/ }),
/***/ 1115:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /* harmony default export */ __webpack_exports__["default"] = ({
'Speech Recognize': 'Puheentunnistus',
newline: 'uusi rivi',
delete: 'poistaa',
space: 'tilaa',
Sound: 'Ääni',
'Interim Results': 'Välitulokset'
});
/***/ }),
/***/ 1172:
/***/ (function(__unused_webpack_module, __webpack_exports__) {
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /* harmony default export */ __webpack_exports__["default"] = ({
'copy-format': '复制格式'
});
/***/ }),
/***/ 1255:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* unused harmony export dragAndDropElement */
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44586);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var DragState;
(function(DragState) {
DragState[DragState["IDLE"] = 0] = "IDLE";
DragState[DragState["WAIT_DRAGGING"] = 1] = "WAIT_DRAGGING";
DragState[DragState["DRAGGING"] = 2] = "DRAGGING";
})(DragState || (DragState = {}));
/**
* Process drag and drop image or another element inside the editor
*/ class dragAndDropElement extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
/** @override */ afterInit() {
this.dragList = this.j.o.draggableTags ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.splitArray)(this.j.o.draggableTags).filter(Boolean).map((item)=>item.toLowerCase()) : [];
if (!this.dragList.length) {
return;
}
this.j.e.on('mousedown dragstart', this.onDragStart);
}
/**
* Drag start handler
*/ onDragStart(event) {
if (event.type === 'dragstart' && this.draggable) {
return false;
}
if (this.state > DragState.IDLE) {
return;
}
const target = event.target;
if (!this.dragList.length || !target) {
return;
}
const matched = (node)=>Boolean(node && this.dragList.includes(node.nodeName.toLowerCase()));
let lastTarget = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(target, matched, this.j.editor) || (matched(target) ? target : null);
if (!lastTarget) {
return;
}
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
lastTarget = lastTarget.parentElement;
}
this.startX = event.clientX;
this.startY = event.clientY;
this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
this.draggable = lastTarget.cloneNode(true);
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', lastTarget);
this.state = DragState.WAIT_DRAGGING;
this.addDragListeners();
}
/**
* Mouse move handler handler
*/ onDrag(event) {
var _a, _b;
if (!this.draggable || this.state === DragState.IDLE) {
return;
}
const x = event.clientX, y = event.clientY;
if (this.state === DragState.WAIT_DRAGGING && Math.sqrt(Math.pow(x - this.startX, 2) + Math.pow(y - this.startY, 2)) < this.diffStep) {
return;
}
if (this.state === DragState.WAIT_DRAGGING) {
this.j.lock('drag-and-drop-element');
this.state = DragState.DRAGGING;
}
this.j.e.fire('hidePopup hideResizer');
if (!this.draggable.parentNode) {
const target = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target');
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.draggable, {
zIndex: 10000000000000,
pointerEvents: 'none',
pointer: 'drag',
position: 'fixed',
opacity: 0.7,
display: 'inline-block',
left: event.clientX,
top: event.clientY,
width: (_a = target === null || target === void 0 ? void 0 : target.offsetWidth) !== null && _a !== void 0 ? _a : 100,
height: (_b = target === null || target === void 0 ? void 0 : target.offsetHeight) !== null && _b !== void 0 ? _b : 100
});
(0,_core_global_js__WEBPACK_IMPORTED_MODULE_2__.getContainer)(this.j, dragAndDropElement).appendChild(this.draggable);
}
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.draggable, {
left: event.clientX,
top: event.clientY
});
this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
}
/**
* Mouseup handler in any place
*/ onDragEnd() {
if (this.isInDestruct) {
return;
}
this.removeDragListeners();
this.j.unlock();
this.state = DragState.IDLE;
if (this.draggable) {
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(this.draggable);
this.draggable = null;
}
}
/**
* Mouseup handler inside editor
*/ onDrop() {
if (!this.draggable || this.state < DragState.DRAGGING) {
this.onDragEnd();
return;
}
let fragment = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target');
this.onDragEnd();
if (this.isCopyMode) {
fragment = fragment.cloneNode(true);
}
const { parentElement } = fragment;
this.j.s.insertNode(fragment, true, false);
if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
}
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(fragment, 'img') && this.j.e) {
this.j.e.fire('afterInsertImage', fragment);
}
this.j.e.fire('synchro');
}
/**
* Add global event listener after drag start
*/ addDragListeners() {
this.j.e.on(this.j.editor, 'mousemove', this.onDrag).on('mouseup', this.onDrop).on([
this.j.ew,
this.ow
], 'mouseup', this.onDragEnd);
}
/**
* Remove global event listener after drag start
*/ removeDragListeners() {
this.j.e.off(this.j.editor, 'mousemove', this.onDrag).off('mouseup', this.onDrop).off([
this.j.ew,
this.ow
], 'mouseup', this.onDragEnd);
}
/** @override */ beforeDestruct() {
this.onDragEnd();
this.j.e.off('mousedown dragstart', this.onDragStart);
this.removeDragListeners();
}
constructor(){
super(...arguments);
this.dragList = [];
this.draggable = null;
this.isCopyMode = false;
/**
* Shift in pixels after which we consider that the transfer of the element has begun
*/ this.diffStep = 10;
this.startX = 0;
this.startY = 0;
this.state = DragState.IDLE;
}
}
__decorate([
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
], dragAndDropElement.prototype, "onDragStart", null);
__decorate([
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.throttle)((ctx)=>ctx.defaultTimeout / 10)
], dragAndDropElement.prototype, "onDrag", null);
__decorate([
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
], dragAndDropElement.prototype, "onDragEnd", null);
__decorate([
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
], dragAndDropElement.prototype, "onDrop", null);
_core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('dragAndDropElement', dragAndDropElement);
/***/ }),
/***/ 1322:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /* harmony default export */ __webpack_exports__["default"] = ({
Spellcheck: 'Stavekontroll'
});
/***/ }),
/***/ 1580:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ processImage: function() { return /* binding */ processImage; }
/* harmony export */ });
/* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21537);
/*!
* Jodit Editor PRO (https://xdsoft.net/jodit/)
* See LICENSE.md in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
*/
const processImage = (elm, ctx)=>{
if (ctx.rtf && elm.name === '#comment' && elm.attributes.nodeValue && elm.attributes.nodeValue.indexOf('<v:shape') !== -1) {
if (!ctx.shapes) {
ctx.shapes = {};
}
const elms = ctx.jodit.create.fromHTML(elm.attributes.nodeValue);
(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_0__.toArray)(elms.getElementsByTagName('v:shape')).forEach((e)=>{
ctx.shapes[e.id] = e.getAttribute('o:spid');
});
return elm;
}
if (elm.name !== 'img') {
return elm;
}
if (ctx.rtf && elm.attributes['v:shapes']) {
const spid = ctx.shapes?.[elm.attributes['v:shapes']];
if (spid) {
const imageMap = ctx.imageMap ?? {};
if (!ctx.imageMap) {
ctx.imageMap = imageMap;
parseImages(ctx.rtf, 'i', '\\shppict', ctx.imageMap);
parseImages(ctx.rtf, 's', '\\shp{', ctx.imageMap);
}
const a = imageMap[spid.substring(7)];
if (a) {
const base = [], parsedD = a.hex.match(/[0-9a-f]{2}/gi);
if (parsedD) {
for(let i = 0; i < parsedD.length; i++){
const digit = parseInt(parsedD[i], 16);
base.push(String.fromCharCode(digit));
}
elm.attributes.src = 'data:' + a.type + ';base64,' + btoa(base.join(''));
}
}
}
}
return elm;
};
function parseImages(rtf, prefix, separator, imageMap) {
const parts = rtf.split(separator);
for (const part of parts){
const shapes = part.split('shplid');
if (1 < shapes.length) {
const shape = shapes[1];
let id = '';
for(let i = 0; i < shape.length && !/[{ \r\n\\]/.test(shape[i]); i++){
id += shape[i];
}
const images = shape.split('bliptag');
if (images && images.length < 2) {
continue;
}
let format = null;
if (images[0].indexOf('pngblip')) {
format = 'image/png';
} else if (images[0].indexOf('jpegblip') !== -1) {
format = 'image/jpeg';
}
if (!format) {
continue;
}
const endings = images[1].split('}');
if (endings && endings.length < 2) {
continue;
}
let result;
if (2 < endings.length && endings[0].includes('blipuid')) {
result = endings[1].split(' ');
} else {
result = endings[0].split(' ');
if (result && result.length < 2) {
continue;
}
result.shift();
}
imageMap[prefix + id] = {
hex: result.join(''),
type: format
};
}
}
}
/***/ }),
/***/ 1808:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ UIMessages: function() { return /* binding */ UIMessages; }
/* harmony export */ });
/* harmony import */ var _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87325);
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41180);
/* harmony import */ var _core_ui_group_group_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62405);
/* harmony import */ var _message_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68389);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
* Plugin display pop-up messages in the lower right corner of the editor
*/ let UIMessages = class UIMessages extends _core_ui_group_group_js__WEBPACK_IMPORTED_MODULE_2__.UIGroup {
className() {
return 'UIMessages';
}
/**
* Show popup info message in the lower right corner of the container
* ```js
* const jodit = Jodit.make('#editor');
* jodit.info('Hello world', 3000);
* ```
*/ info(text, timeout) {
this.__message(text, 'info', timeout);
}
/**
* Show popup success message in the lower right corner of the container
* ```js
* const jodit = Jodit.make('#editor');
* jodit.success('Hello world', 3000);
* ```
*/ success(text, timeout) {
this.__message(text, 'success', timeout);
}
/**
* Show popup error message in the lower right corner of the container
* ```js
* const jodit = Jodit.make('#editor');
* jodit.error('Hello world', 3000);
* ```
*/ error(text, timeout) {
this.__message(text, 'error', timeout);
}
/**
* Show popup message in the lower right corner of the container
* ```js
* const jodit = Jodit.make('#editor');
* jodit.message('Hello world', 'info', 3000);
* ```
*/ message(text, variant, timeout) {
this.__message(text, variant, timeout);
}
__message(text, variant = 'info', timeout) {
const key = text + ':' + variant;
if (this.__messages.has(key)) {
this.async.updateTimeout(key, timeout || this.options.defaultTimeout);
return;
}
if (!this.__box) {
throw new Error('Container is not defined: ' + key);
}
this.__box.appendChild(this.container);
const msg = new _message_js__WEBPACK_IMPORTED_MODULE_3__.UIMessage(this.j, {
text,
variant
});
this.append(msg);
this.__calcOffsets();
this.__messages.add(key);
const remove = this.__getRemoveCallback(msg, key);
this.j.e.on(msg.container, 'pointerdown', remove);
this.async.setTimeout(remove, {
label: key,
timeout: timeout || this.options.defaultTimeout
});
}
__getRemoveCallback(msg, key) {
const remove = (e)=>{
e && e.preventDefault();
if (msg.isInDestruct) {
return;
}
this.async.clearTimeout(key);
this.j.e.off(msg.container, 'pointerdown', remove);
this.__messages.delete(key);
msg.setMod('active', false);
this.async.setTimeout(()=>{
this.remove(msg);
msg.destruct();
this.__calcOffsets();
}, 300);
};
return remove;
}
__calcOffsets() {
let height = 5;
this.elements.forEach((elm)=>{
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_1__.css)(elm.container, 'bottom', height + 'px');
height += elm.container.offsetHeight + this.options.defaultOffset;
});
}
constructor(jodit, __box, options = {
defaultTimeout: 3000,
defaultOffset: 5
}){
super(jodit);
this.__box = __box;
this.options = options;
this.__messages = new Set();
}
};
UIMessages = __decorate([
_core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_0__.component
], UIMessages);
/***/ }),
/***/ 1830:
/***/ (function(__unused_webpack_module, __webpack_exports__) {
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ // English
/* harmony default export */ __webpack_exports__["default"] = ({
'Type something': 'Start writing...',
pencil: 'Edit',
Quadrate: 'Square'
});
/***/ }),
/***/ 1879:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/ /* harmony default export */ __webpack_exports__["default"] = ({
Spellcheck: 'Spellingcontrole'
});
/***/ }),
/***/ 2169:
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* unused harmony export fullsize */
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(580);
/* harmony import */ var _core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19306);
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99823);
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
*/
const fullsizeStack = new Set();
/**
* Process `toggleFullSize` event, and behavior - set/unset fullsize mode
*/ function fullsize(editor) {
editor.registerButton({
name: 'fullsize'
});
let isEnabled = false, oldHeight = 0, oldWidth = 0, wasToggled = false;
const resize = ()=>{
const { container, events } = editor;
if (!events) {
return;
}
if (isEnabled) {
oldHeight = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(container, 'height', true);
oldWidth = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(container, 'width', true);
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(container, {
height: editor.ow.innerHeight,
width: editor.ow.innerWidth
});
wasToggled = true;
} else if (wasToggled) {
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(container, {
height: oldHeight || 'auto',
width: oldWidth || 'auto'
});
}
}, /**
* Change editor's state between FullSize and normal
*/ toggle = (enable)=>{
var _a;
const { container, events } = editor;
if (!container) {
return;
}
if (enable === undefined) {
enable = !container.classList.contains('jodit_fullsize');
}
editor.setMod('fullsize', enable);
editor.o.fullsize = enable;
isEnabled = enable;
container.classList.toggle('jodit_fullsize', enable);
if (editor.toolbar) {
(0,_core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_1__.isJoditObject)(editor) && ((_a = editor.toolbarContainer) === null || _a === void 0 ? void 0 : _a.appendChild(editor.toolbar.container));
(0,_core_helpers_utils_css_js_