/*! * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser * Author: Chupurnov (https://xdsoft.net/jodit/) * Version: v4.7.9 * Url: https://xdsoft.net/jodit/ * License(s): MIT */ (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 /******/ var __webpack_modules__ = ({ /***/ 198: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export poweredByJodit */ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28077); /*! * 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 */ /** * [[include:plugins/powered-by-jodit/README.md]] * @packageDocumentation * @module plugins/powered-by-jodit */ function poweredByJodit(jodit) { const { o } = jodit; if (!o.hidePoweredByJodit && !o.inline && (o.showCharsCounter || o.showWordsCounter || o.showXPathInStatusbar)) { jodit.hookStatus('ready', ()=>{ jodit.statusbar.append(jodit.create.fromHTML(` Powered by Jodit `), true); }); } } jodit_core_global__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('poweredByJodit', poweredByJodit); /***/ }), /***/ 223: /***/ (function(module) { module.exports = " " /***/ }), /***/ 421: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ getClassName: function() { return /* binding */ getClassName; }, /* harmony export */ keepNames: function() { return /* binding */ keepNames; } /* harmony export */ }); /* harmony import */ var jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91565); /*! * 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 */ /** * @module helpers/utils */ const keepNames = new Map(); const getClassName = (obj)=>{ var _obj_constructor; if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_0__.isFunction)(obj.className)) { return obj.className(); } const constructor = ((_obj_constructor = obj.constructor) === null || _obj_constructor === void 0 ? void 0 : _obj_constructor.originalConstructor) || obj.constructor; if (keepNames.has(constructor)) { return keepNames.get(constructor); } if (constructor.name) { return constructor.name; } const regex = new RegExp(/^\s*function\s*(\S*)\s*\(/); const res = constructor.toString().match(regex); return res ? res[1] : ''; }; /***/ }), /***/ 442: /***/ (function(module) { /*! * 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 */ module.exports = { symbols: 'Símbolo' }; /***/ }), /***/ 466: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _img__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75711); /*! * 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 */ /** * @module plugins/inline-popup */ /* harmony default export */ __webpack_exports__["default"] = ([ { name: 'bin', tooltip: 'Delete', exec: (editor, image)=>{ image && editor.s.removeNode(image); } }, _img__WEBPACK_IMPORTED_MODULE_0__.align ]); /***/ }), /***/ 554: /***/ (function(module) { /*! * 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 */ module.exports = { 'Line height': 'Wysokość linii' }; /***/ }), /***/ 670: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ openImagePopup: function() { return /* binding */ openImagePopup; } /* harmony export */ }); /* harmony import */ var _swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49376); /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17312); /* harmony import */ var jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23599); /* harmony import */ var jodit_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51116); /* harmony import */ var jodit_modules_widget_file_selector_file_selector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18762); /*! * 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 */ /** * @module plugins/image-properties */ /** @private */ function openImagePopup(j, dialog, state, button) { const popup = new jodit_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_3__.Popup(dialog); const closePopup = ()=>{ popup.close(); popup.destruct(); }; popup.setContent((0,jodit_modules_widget_file_selector_file_selector__WEBPACK_IMPORTED_MODULE_4__.FileSelectorWidget)(j, { upload: (data)=>{ if (data.files && data.files.length) { state.values.imageSrc = data.baseurl + data.files[0]; } closePopup(); }, filebrowser: (data)=>(0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() { if (data && (0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_1__.isArray)(data.files) && data.files.length) { state.values.imageSrc = data.files[0]; closePopup(); } })() }, state.image, closePopup)).open(()=>(0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_2__.position)(button)); } /***/ }), /***/ 928: /***/ (function(module) { module.exports = " " /***/ }), /***/ 1080: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ LazyWalker: function() { return /* binding */ LazyWalker; } /* harmony export */ }); /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045); /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84839); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23211); /* harmony import */ var jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60216); /*! * 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 */ /** * @module dom */ class LazyWalker extends jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_4__.Eventify { setWork(root) { if (this.isWorked) { this.break(); } this.workNodes = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.eachGen(root, !this.options.reverse); this.isFinished = false; this._requestStarting(); return this; } _requestStarting() { this.__schedulerController = new AbortController(); this.async.schedulerPostTask(this.__workPerform, { delay: this.options.timeout, signal: this.__schedulerController.signal }).catch(()=>null); } break(reason) { if (this.isWorked) { this.stop(); this.emit('break', reason); } } end() { if (this.isWorked) { this.stop(); this.emit('end', this.hadAffect); this.hadAffect = false; } } stop() { this.isWorked = false; this.isFinished = true; this.workNodes = null; this.async.cancelIdleCallback(this.idleId); } destruct() { super.destruct(); this.stop(); } __workPerform() { if (this.workNodes) { this.isWorked = true; let count = 0; var _this_options_timeoutChunkSize; const chunkSize = (_this_options_timeoutChunkSize = this.options.timeoutChunkSize) !== null && _this_options_timeoutChunkSize !== void 0 ? _this_options_timeoutChunkSize : 50; while(!this.isFinished && count <= chunkSize){ const item = this.workNodes.next(); count += 1; if (this.visitNode(item.value)) { this.hadAffect = true; } if (item.done) { this.end(); return; } } } else { this.end(); } if (!this.isFinished) { this._requestStarting(); } } visitNode(nodeElm) { if (!nodeElm || this.options.whatToShow !== undefined && nodeElm.nodeType !== this.options.whatToShow) { return false; } var _this_emit; return (_this_emit = this.emit('visit', nodeElm)) !== null && _this_emit !== void 0 ? _this_emit : false; } constructor(async, options = {}){ super(), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "async", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "workNodes", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "hadAffect", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isWorked", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isFinished", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "idleId", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__schedulerController", void 0), this.async = async, this.options = options, this.workNodes = null, this.hadAffect = false, this.isWorked = false, this.isFinished = false, this.idleId = 0, this.__schedulerController = null; } } (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind ], LazyWalker.prototype, "__workPerform", null); /***/ }), /***/ 1277: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ cleanFromWord: function() { return /* binding */ cleanFromWord; } /* harmony export */ }); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81937); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23211); /* harmony import */ var jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88475); /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4040); /*! * 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 */ /** * @module helpers/html */ /** * The method automatically cleans up content from Microsoft Word and other HTML sources to ensure clean, compliant * content that matches the look and feel of the site. */ function cleanFromWord(html) { if (html.indexOf('') + ''.length); } let convertedString = ''; try { const div = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div'); div.innerHTML = html; const marks = []; if (div.firstChild) { jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.each(div, (node)=>{ if (!node) { return; } switch(node.nodeType){ case Node.ELEMENT_NODE: switch(node.nodeName){ case 'STYLE': case 'LINK': case 'META': marks.push(node); break; case 'W:SDT': case 'W:SDTPR': case 'FONT': jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node); break; default: (0,jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_2__.toArray)(node.attributes).forEach((attr)=>{ if ([ 'src', 'href', 'rel', 'content' ].indexOf(attr.name.toLowerCase()) === -1) { node.removeAttribute(attr.name); } }); } break; case Node.TEXT_NODE: break; default: marks.push(node); } }); } jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove.apply(null, marks); convertedString = div.innerHTML; } catch (e) {} if (convertedString) { html = convertedString; } html = html.split(/(\n)/).filter(jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_3__.trim).join('\n'); return html.replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '').replace(/ * * * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "language", 'auto'); /** * if true all Lang.i18n(key) return `{key}` * * @example * ```html * * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "debugLanguage", false); /** * Collection of language pack data `{en: {'Type something': 'Type something', ...}}` * * @example * ```javascript * const editor = Jodit.make('#editor', { * language: 'ru', * i18n: { * ru: { * 'Type something': 'Начните что-либо вводить' * } * } * }); * console.log(editor.i18n('Type something')) //Начните что-либо вводить * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "i18n", false); /** * The tabindex global attribute is an integer indicating if the element can take * input focus (is focusable), if it should participate to sequential keyboard navigation, * and if so, at what position. It can take several values */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "tabIndex", -1); /** * Boolean, whether the toolbar should be shown. * Alternatively, a valid css-selector-string to use an element as toolbar container. */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "toolbar", true); /** * Boolean, whether the statusbar should be shown. */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "statusbar", true); /** * Show tooltip after mouse enter on the button */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showTooltip", true); /** * Delay before show tooltip */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showTooltipDelay", 200); /** * Instead of create custop tooltip - use native title tooltips */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "useNativeTooltip", false); /** * Default insert method * @default insert_as_html */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "defaultActionOnPaste", jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.INSERT_AS_HTML); // TODO // autosave: false, // false or url // autosaveCallback: false, // function // interval: 60, // seconds // TODO /** * Element that will be created when you press Enter */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "enter", jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.PARAGRAPH); /** * When this option is enabled, the editor's content will be placed in an iframe and isolated from the rest of the page. * * @example * ```javascript * Jodit.make('#editor', { * iframe: true, * iframeStyle: 'html{margin: 0px;}body{padding:10px;background:transparent;color:#000;position:relative;z-index:2;\ * user-select:auto;margin:0px;overflow:hidden;}body:after{content:"";clear:both;display:block}'; * }); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "iframe", false); /** * Allow editing the entire HTML document(html, head) * \> Works together with the iframe option. * @example * ```js * const editor = Jodit.make('#editor', { * iframe: true, * editHTMLDocumentMode: true * }); * editor.value = '' + * 'Jodit Editor' + * '

Some text

a

' + * ''; * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "editHTMLDocumentMode", false); /** * Use when you need to insert new block element * use enter option if not set */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "enterBlock", this.enter !== 'br' ? this.enter : jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.PARAGRAPH); /** * Jodit.MODE_WYSIWYG The HTML editor allows you to write like MSWord, * Jodit.MODE_SOURCE syntax highlighting source editor * @example * ```javascript * var editor = Jodit.make('#editor', { * defaultMode: Jodit.MODE_SPLIT * }); * console.log(editor.getRealMode()) * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "defaultMode", jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.MODE_WYSIWYG); /** * Use split mode */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "useSplitMode", false); /** * The colors in HEX representation to select a color for the background and for the text in colorpicker * @example * ```javascript * Jodit.make('#editor', { * colors: ['#ff0000', '#00ff00', '#0000ff'] * }) * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "colors", { greyscale: [ '#000000', '#434343', '#666666', '#999999', '#B7B7B7', '#CCCCCC', '#D9D9D9', '#EFEFEF', '#F3F3F3', '#FFFFFF' ], palette: [ '#980000', '#FF0000', '#FF9900', '#FFFF00', '#00F0F0', '#00FFFF', '#4A86E8', '#0000FF', '#9900FF', '#FF00FF' ], full: [ '#E6B8AF', '#F4CCCC', '#FCE5CD', '#FFF2CC', '#D9EAD3', '#D0E0E3', '#C9DAF8', '#CFE2F3', '#D9D2E9', '#EAD1DC', '#DD7E6B', '#EA9999', '#F9CB9C', '#FFE599', '#B6D7A8', '#A2C4C9', '#A4C2F4', '#9FC5E8', '#B4A7D6', '#D5A6BD', '#CC4125', '#E06666', '#F6B26B', '#FFD966', '#93C47D', '#76A5AF', '#6D9EEB', '#6FA8DC', '#8E7CC3', '#C27BA0', '#A61C00', '#CC0000', '#E69138', '#F1C232', '#6AA84F', '#45818E', '#3C78D8', '#3D85C6', '#674EA7', '#A64D79', '#85200C', '#990000', '#B45F06', '#BF9000', '#38761D', '#134F5C', '#1155CC', '#0B5394', '#351C75', '#733554', '#5B0F00', '#660000', '#783F04', '#7F6000', '#274E13', '#0C343D', '#1C4587', '#073763', '#20124D', '#4C1130' ] }); /** * The default tab color picker * @example * ```javascript * Jodit.make('#editor2', { * colorPickerDefaultTab: 'color' * }) * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "colorPickerDefaultTab", 'background'); /** * Image size defaults to a larger image */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "imageDefaultWidth", 300); /** * Do not display these buttons that are on the list * @example * ```javascript * Jodit.make('#editor2', { * removeButtons: ['hr', 'source'] * }); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "removeButtons", []); /** * Do not init these plugins * @example * ```typescript * var editor = Jodit.make('.editor', { * disablePlugins: 'table,iframe' * }); * //or * var editor = Jodit.make('.editor', { * disablePlugins: ['table', 'iframe'] * }); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "disablePlugins", []); /** * Init and download extra plugins * @example * ```typescript * var editor = Jodit.make('.editor', { * extraPlugins: ['emoji'] * }); * ``` * It will try load %SCRIPT_PATH%/plugins/emoji/emoji.js and after load will try init it */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "extraPlugins", []); /** * Base path for download extra plugins */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "basePath", void 0); /** * These buttons list will be added to the option. Buttons */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "extraButtons", []); /** * By default, you can only install an icon from the Jodit suite. * You can add your icon to the set using the `Jodit.modules.Icon.set (name, svg Code)` method. * But for a declarative declaration, you can use this option. * * @example * ```js * Jodit.modules.Icon.set('someIcon', ''); * const editor = Jodit.make({ * extraButtons: [{ * name: 'someButton', * icon: 'someIcon' * }] * }); * * @example * const editor = Jodit.make({ * extraIcons: { * someIcon: '' * }, * extraButtons: [{ * name: 'someButton', * icon: 'someIcon' * }] * }); * ``` * @example * ```js * const editor = Jodit.make({ * extraButtons: [{ * name: 'someButton', * icon: '' * }] * }); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "extraIcons", {}); /** * Default attributes for created inside editor elements * @example * ```js * const editor2 = Jodit.make('#editor', { * createAttributes: { * div: { * class: 'test' * }, * ul: function (ul) { * ul.classList.add('ui-test'); * } * } * }); * * const div2 = editor2.createInside.div(); * expect(div2.className).equals('test'); * * const ul = editor2.createInside.element('ul'); * expect(ul.className).equals('ui-test'); * ``` * Or JSX in React * @example * ```jsx * import React, {useState, useRef} from 'react'; * import JoditEditor from "jodit-react"; * * const config = { * createAttributes: { * div: { * class: 'align-center' * } * } * }; * * * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "createAttributes", { table: { style: 'border-collapse:collapse;width: 100%;' } }); /** * The width of the editor, accepted as the biggest. Used to the responsive version of the editor */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sizeLG", 900); /** * The width of the editor, accepted as the medium. Used to the responsive version of the editor */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sizeMD", 700); /** * The width of the editor, accepted as the small. Used to the responsive version of the editor */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sizeSM", 400); /** * The list of buttons that appear in the editor's toolbar on large places (≥ options.sizeLG). * Note - this is not the width of the device, the width of the editor * @example * ```javascript * Jodit.make('#editor', { * buttons: ['bold', 'italic', 'source'], * buttonsMD: ['bold', 'italic'], * buttonsXS: ['bold', 'fullsize'], * }); * ``` * @example * ```javascript * Jodit.make('#editor2', { * buttons: [{ * name: 'empty', * icon: 'source', * exec: function (editor) { * const dialog = new Jodit.modules.Dialog({}), * text = editor.c.element('textarea'); * * dialog.setHeader('Source code'); * dialog.setContent(text); * dialog.setSize(400, 300); * * Jodit.modules.Helpers.css(elm, { * width: '100%', * height: '100%' * }) * dialog.open(); * } * }] * }); * ``` * @example * ```javascript * Jodit.make('#editor2', { * buttons: Jodit.defaultOptions.buttons.concat([{ * name: 'listsss', * iconURL: 'stuf/dummy.png', * list: { * h1: 'insert Header 1', * h2: 'insert Header 2', * clear: 'Empty editor', * }, * exec: ({originalEvent, control, btn}) => { * var key = control.args[0], * value = control.args[1]; * if (key === 'clear') { * this.val(''); * return; * } * this.s.insertNode(this.c.element(key, '')); * this.message.info('Was inserted ' + value); * }, * template: function (key, value) { * return '
' + value + '
'; * } * }); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "buttons", [ { group: 'font-style', buttons: [] }, { group: 'list', buttons: [] }, { group: 'font', buttons: [] }, '---', { group: 'script', buttons: [] }, { group: 'media', buttons: [] }, '\n', { group: 'state', buttons: [] }, { group: 'clipboard', buttons: [] }, { group: 'insert', buttons: [] }, { group: 'indent', buttons: [] }, { group: 'color', buttons: [] }, { group: 'form', buttons: [] }, '---', { group: 'history', buttons: [] }, { group: 'search', buttons: [] }, { group: 'source', buttons: [] }, { group: 'other', buttons: [] }, { group: 'info', buttons: [] } ]); /** * Behavior for buttons */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "controls", void 0); /** * Some events are called when the editor is initialized, for example, the `afterInit` event. * So this code won't work: * ```javascript * const editor = Jodit.make('#editor'); * editor.events.on('afterInit', () => console.log('afterInit')); * ``` * You need to do this: * ```javascript * Jodit.make('#editor', { * events: { * afterInit: () => console.log('afterInit') * } * }); * ``` * The option can use any Jodit events, for example: * ```javascript * const editor = Jodit.make('#editor', { * events: { * hello: (name) => console.log('Hello', name) * } * }); * editor.e.fire('hello', 'Mike'); * ``` */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "events", {}); /** * Buttons in toolbat without SVG - only texts */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "textIcons", false); /** * Element for dialog container */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "popupRoot", null); /** * shows a INPUT[type=color] to open the browser color picker, on the right bottom of widget color picker */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showBrowserColorPicker", true); Object.assign(this, ConfigPrototype); } } (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(Config, "__defaultOptions", void 0); ConfigPrototype = Config.prototype; Config.prototype.controls = {}; /***/ }), /***/ 5650: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ getHash: function() { return /* binding */ getHash; } /* harmony export */ }); /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85932); /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4040); /*! * 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 */ /** * @module plugins/clean-html */ /** * @private */ function getHash(tags) { const attributesReg = /([^[]*)\[([^\]]+)]/; const separator = /[\s]*,[\s]*/, attrReg = /^(.*)[\s]*=[\s]*(.*)$/; const tagsHash = {}; if ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_0__.isString)(tags)) { tags.split(separator).map((elm)=>{ elm = (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__.trim)(elm); const attr = attributesReg.exec(elm), allowAttributes = {}, attributeMap = (attrName)=>{ attrName = (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__.trim)(attrName); const val = attrReg.exec(attrName); if (val) { allowAttributes[val[1]] = val[2]; } else { allowAttributes[attrName] = true; } }; if (attr) { const attr2 = attr[2].split(separator); if (attr[1]) { attr2.forEach(attributeMap); tagsHash[attr[1].toUpperCase()] = allowAttributes; } } else { tagsHash[elm.toUpperCase()] = true; } }); return tagsHash; } if (tags) { Object.keys(tags).forEach((tagName)=>{ tagsHash[tagName.toUpperCase()] = tags[tagName]; }); return tagsHash; } return false; } /***/ }), /***/ 5658: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ UIBlock: function() { return /* reexport safe */ _block_block__WEBPACK_IMPORTED_MODULE_0__.UIBlock; }, /* harmony export */ UICheckbox: function() { return /* reexport safe */ _inputs__WEBPACK_IMPORTED_MODULE_2__.UICheckbox; }, /* harmony export */ UIFileInput: function() { return /* reexport safe */ _inputs__WEBPACK_IMPORTED_MODULE_2__.UIFileInput; }, /* harmony export */ UIForm: function() { return /* reexport safe */ _form__WEBPACK_IMPORTED_MODULE_1__.UIForm; }, /* harmony export */ UIInput: function() { return /* reexport safe */ _inputs__WEBPACK_IMPORTED_MODULE_2__.UIInput; }, /* harmony export */ UISelect: function() { return /* reexport safe */ _inputs__WEBPACK_IMPORTED_MODULE_2__.UISelect; }, /* harmony export */ UITextArea: function() { return /* reexport safe */ _inputs__WEBPACK_IMPORTED_MODULE_2__.UITextArea; } /* harmony export */ }); /* harmony import */ var _block_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4561); /* harmony import */ var _form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98838); /* harmony import */ var _inputs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2602); /*! * 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 */ /** * @module ui/form */ /***/ }), /***/ 5771: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ checkRemoveEmptyNeighbor: function() { return /* binding */ checkRemoveEmptyNeighbor; } /* harmony export */ }); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211); /*! * 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 */ /** * @module plugins/backspace */ /** * Check if it is possible to remove an empty adjacent element. * * @example * ```html *


|second stop

* ``` * result * ```html *

|second stop

* ``` * @private */ function checkRemoveEmptyNeighbor(jodit, fakeNode, backspace) { const parent = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(fakeNode, jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement, jodit.editor); if (!parent) { return false; } const neighbor = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(parent, backspace); if (neighbor && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(neighbor)) { jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor); jodit.s.setCursorBefore(fakeNode); return true; } return false; } /***/ }), /***/ 5772: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ToolbarContent: function() { return /* binding */ ToolbarContent; } /* harmony export */ }); /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045); /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84839); /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27795); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65946); /* harmony import */ var jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59400); /*! * 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 */ /** * @module modules/toolbar/button */ class ToolbarContent extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_5__.UIButton { /** @override */ className() { return 'ToolbarContent'; } /** @override */ update() { const content = this.control.getContent(this.j, this); if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.isString)(content) || content.parentNode !== this.container) { jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.detach(this.container); this.container.appendChild((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.isString)(content) ? this.j.create.fromHTML(content) : content); } super.update(); } /** @override */ createContainer() { return this.j.c.span(this.componentName); } constructor(jodit, control, target = null){ super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "control", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "target", void 0), this.control = control, this.target = target; this.container.classList.add(`${this.componentName}_${this.clearName(control.name)}`); (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', 'content'); } } ToolbarContent = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.component ], ToolbarContent); /***/ }), /***/ 6209: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ToolbarEditorCollection: function() { return /* binding */ ToolbarEditorCollection; } /* harmony export */ }); /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045); /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81937); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84839); /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(27795); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65946); /* harmony import */ var _collection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42573); /*! * 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 */ /** * @module modules/toolbar/collection */ class ToolbarEditorCollection extends _collection__WEBPACK_IMPORTED_MODULE_6__.ToolbarCollection { /** @override */ className() { return 'ToolbarEditorCollection'; } /** @override */ shouldBeDisabled(button) { const disabled = super.shouldBeDisabled(button); if (disabled !== undefined) { return disabled; } const mode = button.control.mode === undefined ? jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__.MODE_WYSIWYG : button.control.mode; return !(mode === jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__.MODE_SPLIT || mode === this.j.getRealMode()); } /** @override */ shouldBeActive(button) { const active = super.shouldBeActive(button); if (active !== undefined) { return active; } const element = this.j.selection ? this.j.s.current() : null; if (!element) { return false; } let elm; if (button.control.tags) { const tags = button.control.tags; elm = element; if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.up(elm, (node)=>{ if (node && tags.indexOf(node.nodeName.toLowerCase()) !== -1) { return true; } }, this.j.editor)) { return true; } } // activate by supposed css if (button.control.css) { const css = button.control.css; elm = element; if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.up(elm, (node)=>{ if (node && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(node) && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isComment(node)) { return this.checkActiveStatus(css, node); } }, this.j.editor)) { return true; } } return false; } /** @override */ getTarget(button) { return button.target || this.j.s.current() || null; } /** * Adds an invisible element to the container that can handle the * situation when the editor is inside the