UNPKG

jodit

Version:

Jodit is an awesome and useful wysiwyg editor with filebrowser

1,253 lines (1,119 loc) 1.92 MB
/*! * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/) * Version: v4.6.2 * 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__ = ({ /***/ 140: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ V: function() { return /* binding */ FileBrowser; } /* harmony export */ }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(31635); /* harmony import */ var jodit_core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77753); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17352); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22664); /* harmony import */ var jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66927); /* harmony import */ var jodit_core_event_emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50025); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65147); /* harmony import */ var jodit_core_storage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63915); /* harmony import */ var jodit_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(58597); /* harmony import */ var jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14961); /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(36115); /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(70265); /* harmony import */ var _fetch_load_items__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(9979); /* harmony import */ var _fetch_load_tree__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31859); /* harmony import */ var _listeners_native_listeners__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62994); /* harmony import */ var _listeners_self_listeners__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18043); /* harmony import */ var _listeners_state_listeners__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80004); /* harmony import */ var _data_provider__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(75889); /* harmony import */ var _factories__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(83797); /* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(10274); /*! * 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 */ let FileBrowser = class FileBrowser extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_8__/* .ViewWithToolbar */ .T { /** @override */ className() { return 'FileBrowser'; } get dataProvider() { return (0,_factories__WEBPACK_IMPORTED_MODULE_16__/* .makeDataProvider */ .S)(this, this.options); } onSelect(callback) { return () => { if (this.state.activeElements.length) { const files = []; const isImages = []; this.state.activeElements.forEach(elm => { const url = elm.fileURL; if (url) { files.push(url); isImages.push(elm.isImage || false); } }); this.close(); const data = { baseurl: '', files, isImages }; if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isFunction)(callback)) { callback(data); } this.close(); } return false; }; } get _dialog() { const dialog = this.dlg({ minWidth: Math.min(700, screen.width), minHeight: 300, buttons: this.o.headerButtons ?? ['fullsize', 'dialog.close'] }); ['beforeClose', 'afterClose', 'beforeOpen'].forEach(proxyEvent => dialog.events.on(dialog, proxyEvent, () => this.e.fire(proxyEvent))); dialog.setSize(this.o.width, this.o.height); return dialog; } /** * Container for set/get value */ get storage() { return jodit_core_storage__WEBPACK_IMPORTED_MODULE_6__/* .Storage */ .wc.makeStorage(Boolean(this.o.saveStateInStorage), this.componentName); } get isOpened() { return this._dialog.isOpened && this.browser.style.display !== 'none'; } /** * It displays a message in the status bar of filebrowser * * @param message - The message that will be displayed * @param success - true It will be shown a message light . If no option is specified , * ßan error will be shown the red * @example * ```javascript * parent.filebrowser.status('There was an error uploading file', false); * ``` */ status(message, success) { if (!message || (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isAbortError)(message)) { return; } if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isString)(message)) { message = message.message; } if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isString)(message) || !(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.trim)(message).length) { return; } this.message.message(message, success ? 'success' : 'error', this.o.howLongShowMsg); } /** * It opens a web browser window * * @param callback - The function that will be called after the file selection in the browser * @param onlyImages - Show only images * @example * ```javascript * var fb = new Jodit.modules.FileBrowser(parent); * fb.open(function (data) { * var i; * for (i = 0;i < data.files.length; i += 1) { * parent.s.insertImage(data.baseurl + data.files[i]); * } * }); * ``` */ open(callback = this.o .defaultCallback, onlyImages = false) { this.state.onlyImages = onlyImages; return this.async .promise((resolve, reject) => { if (!this.o.items || !this.o.items.url) { throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.error)('Need set options.filebrowser.ajax.url'); } let localTimeout = 0; this.e .off(this.files.container, 'dblclick') .on(this.files.container, 'dblclick', this.onSelect(callback)) .on(this.files.container, 'touchstart', () => { const now = new Date().getTime(); if (now - localTimeout < jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.EMULATE_DBLCLICK_TIMEOUT) { this.onSelect(callback)(); } localTimeout = now; }) .off('select.filebrowser') .on('select.filebrowser', this.onSelect(callback)); const header = this.c.div(); this.toolbar?.appendTo(header); this.__updateToolbarButtons(); this._dialog.open(this.browser, header); this.e.fire('sort.filebrowser', this.state.sortBy); (0,_fetch_load_tree__WEBPACK_IMPORTED_MODULE_11__/* .loadTree */ .r)(this) .then(resolve, reject) .finally(() => { if (this.isInDestruct) { return; } this?.e?.fire('fileBrowserReady.filebrowser'); }); }) .catch((e) => { if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isAbortError)(e) && !jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.IS_PROD) { throw e; } }); } __getButtons() { const options = (this.o.buttons ?? []); return options.filter((btn) => { if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isString)(btn)) { return true; } switch (btn) { case 'filebrowser.upload': return this.dataProvider.canI('FileUpload'); case 'filebrowser.edit': return (this.dataProvider.canI('ImageResize') || this.dataProvider.canI('ImageCrop')); case 'filebrowser.remove': return this.dataProvider.canI('FileRemove'); } return true; }); } initUploader(editor) { const self = this, options = editor?.options?.uploader, uploaderOptions = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.ConfigProto)(options || {}, jodit_config__WEBPACK_IMPORTED_MODULE_9__/* .Config */ .T.defaultOptions.uploader); const uploadHandler = () => (0,_fetch_load_items__WEBPACK_IMPORTED_MODULE_18__/* .loadItems */ .f)(this); self.uploader = self.getInstance('Uploader', uploaderOptions); self.uploader .setPath(self.state.currentPath) .setSource(self.state.currentSource) .bind(self.browser, uploadHandler, self.errorHandler); this.state.on(['change.currentPath', 'change.currentSource'], () => { this.uploader .setPath(this.state.currentPath) .setSource(this.state.currentSource); }); self.e.on('bindUploader.filebrowser', (button) => { self.uploader.bind(button, uploadHandler, self.errorHandler); }); } constructor(options) { super(options); this.browser = this.c.div(this.componentName); this.status_line = this.c.div(this.getFullElName('status')); this.tree = new _ui__WEBPACK_IMPORTED_MODULE_17__/* .FileBrowserTree */ .V(this); this.files = new _ui__WEBPACK_IMPORTED_MODULE_17__/* .FileBrowserFiles */ .Q(this); this.state = (0,jodit_core_event_emitter__WEBPACK_IMPORTED_MODULE_4__/* .observable */ .sH)({ currentPath: '', currentSource: _data_provider__WEBPACK_IMPORTED_MODULE_15__/* .DEFAULT_SOURCE_NAME */ .o, currentBaseUrl: '', activeElements: [], elements: [], sources: [], view: 'tiles', sortBy: 'changed-desc', filterWord: '', onlyImages: false }); this.errorHandler = (resp) => { if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.isAbortError)(resp)) { return; } if (resp instanceof Error) { this.status(this.i18n(resp.message)); } else { this.status(this.dataProvider.getMessage(resp)); } }; /** * Close dialog */ this.close = () => { this._dialog.close(); }; this.__prevButtons = []; this.attachEvents(options); const self = this; self.options = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.ConfigProto)(options || {}, jodit_config__WEBPACK_IMPORTED_MODULE_9__/* .Config */ .T.defaultOptions.filebrowser); self.browser.component = this; self.container = self.browser; if (self.o.showFoldersPanel) { self.browser.appendChild(self.tree.container); } self.browser.appendChild(self.files.container); self.browser.appendChild(self.status_line); _listeners_self_listeners__WEBPACK_IMPORTED_MODULE_13__/* .selfListeners */ .c.call(self); _listeners_native_listeners__WEBPACK_IMPORTED_MODULE_12__/* .nativeListeners */ .nW.call(self); _listeners_state_listeners__WEBPACK_IMPORTED_MODULE_14__/* .stateListeners */ .r.call(self); const keys = [ 'getLocalFileByUrl', 'crop', 'resize', 'create', 'fileMove', 'folderMove', 'fileRename', 'folderRename', 'fileRemove', 'folderRemove', 'folder', 'items', 'permissions' ]; keys.forEach(key => { if (this.options[key] != null) { this.options[key] = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.ConfigProto)(this.options[key], this.o.ajax); } }); const { storeView, storeSortBy, storeLastOpenedFolder } = this.o .saveStateInStorage || { storeLastOpenedFolder: false, storeView: false, storeSortBy: false }; const view = storeView && this.storage.get('view'); if (view && this.o.view == null) { self.state.view = view === 'list' ? 'list' : 'tiles'; } else { self.state.view = self.o.view === 'list' ? 'list' : 'tiles'; } self.files.setMod('view', self.state.view); const sortBy = storeSortBy && self.storage.get('sortBy'); if (sortBy) { const parts = sortBy.split('-'); self.state.sortBy = ['changed', 'name', 'size'].includes(parts[0]) ? sortBy : 'changed-desc'; } else { self.state.sortBy = self.o.sortBy || 'changed-desc'; } if (storeLastOpenedFolder) { const currentPath = self.storage.get('currentPath'), currentSource = self.storage.get('currentSource'); self.state.currentPath = currentPath ?? ''; self.state.currentSource = currentSource ?? ''; } self.initUploader(self); self.setStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready); } destruct() { if (this.isInDestruct) { return; } (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cached)(this, '_dialog')?.destruct(); super.destruct(); this.events && this.e.off('.filebrowser'); this.uploader && this.uploader.destruct(); } __updateToolbarButtons() { const buttons = this.__getButtons(); if (isEqualButtonList(this.__prevButtons, buttons)) { return; } this.__prevButtons = buttons; this.toolbar?.build(buttons); } }; (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cache ], FileBrowser.prototype, "dataProvider", null); (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cache ], FileBrowser.prototype, "_dialog", null); (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cache ], FileBrowser.prototype, "storage", null); (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind ], FileBrowser.prototype, "status", null); (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind ], FileBrowser.prototype, "open", null); (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_3__/* .watch */ .w)('dataProvider:changePermissions') ], FileBrowser.prototype, "__updateToolbarButtons", null); FileBrowser = (0,tslib__WEBPACK_IMPORTED_MODULE_19__/* .__decorate */ .Cg)([ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.derive)(jodit_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_7__/* .Dlgs */ .z) ], FileBrowser); function isEqualButtonList(prevButtons, buttons) { if (prevButtons.length !== buttons.length) { return false; } for (let i = 0; i < prevButtons.length; i++) { if (prevButtons[i] !== buttons[i]) { return false; } } return true; } /***/ }), /***/ 223: /***/ (function(module) { module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M5.09668 6.99707H7.17358L4.17358 3.99707L1.17358 6.99707H3.09668V17.0031H1.15881L4.15881 20.0031L7.15881 17.0031H5.09668V6.99707Z\"/> <path d=\"M22.8412 7H8.84119V5H22.8412V7Z\"/> <path d=\"M22.8412 11H8.84119V9H22.8412V11Z\"/> <path d=\"M8.84119 15H22.8412V13H8.84119V15Z\"/> <path d=\"M22.8412 19H8.84119V17H22.8412V19Z\"/> </svg>" /***/ }), /***/ 225: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony exports isEditorEmpty, placeholder */ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31635); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22664); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55186); /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56298); /* harmony import */ var jodit_core_helpers_checker_is_marker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71274); /* harmony import */ var jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26150); /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(38322); /* harmony import */ var jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(29866); /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50248); /*! * 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 */ /** * Check if root node is empty * @private */ function isEditorEmpty(root) { if (!root.firstChild) { return true; } const first = root.firstChild; if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS.has(first.nodeName?.toLowerCase()) || /^(TABLE)$/i.test(first.nodeName)) { return false; } const next = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.next(first, node => node && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(node), root); if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(first) && !next) { return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(first); } return (!next && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.each(first, elm => !(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isLeaf(elm) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isList(elm)) && (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmpty(elm) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(elm, 'br')))); } /** * Show placeholder inside empty editor */ class placeholder extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_6__/* .Plugin */ .k { constructor() { super(...arguments); this.addNativeListeners = () => { this.j.e .off(this.j.editor, 'input.placeholder keydown.placeholder') .on(this.j.editor, 'input.placeholder keydown.placeholder', this.toggle); }; this.addEvents = () => { const editor = this.j; if (editor.o.useInputsPlaceholder && editor.element.hasAttribute('placeholder')) { this.placeholderElm.innerHTML = (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_5__/* .attr */ .C)(editor.element, 'placeholder') || ''; } editor.e.fire('placeholder', this.placeholderElm.innerHTML); editor.e .off('.placeholder') .on('changePlace.placeholder', this.addNativeListeners) .on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' + 'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder', this.toggle) .on(window, 'load', this.toggle); this.addNativeListeners(); this.toggle(); }; } afterInit(editor) { if (!editor.o.showPlaceholder) { return; } this.placeholderElm = editor.c.fromHTML(`<span data-ref="placeholder" style="display: none;" class="jodit-placeholder">${editor.i18n(editor.o.placeholder)}</span>`); if (editor.o.direction === 'rtl') { this.placeholderElm.style.right = '0px'; this.placeholderElm.style.direction = 'rtl'; } editor.e .on('readonly', (isReadOnly) => { if (isReadOnly) { this.hide(); } else { this.toggle(); } }) .on('changePlace', this.addEvents); this.addEvents(); } show() { const editor = this.j; if (editor.o.readonly) { return; } let marginTop = 0, marginLeft = 0; const current = editor.s.current(), wrapper = (current && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.closest(current, jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isBlock, editor.editor)) || editor.editor; const style = editor.ew.getComputedStyle(wrapper); const styleEditor = editor.ew.getComputedStyle(editor.editor); editor.workplace.appendChild(this.placeholderElm); const { firstChild } = editor.editor; if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isElement(firstChild) && !(0,jodit_core_helpers_checker_is_marker__WEBPACK_IMPORTED_MODULE_4__/* .isMarker */ .r)(firstChild)) { const style2 = editor.ew.getComputedStyle(firstChild); marginTop = parseInt(style2.getPropertyValue('margin-top'), 10); marginLeft = parseInt(style2.getPropertyValue('margin-left'), 10); this.placeholderElm.style.fontSize = parseInt(style2.getPropertyValue('font-size'), 10) + 'px'; this.placeholderElm.style.lineHeight = style2.getPropertyValue('line-height'); } else { this.placeholderElm.style.fontSize = parseInt(style.getPropertyValue('font-size'), 10) + 'px'; this.placeholderElm.style.lineHeight = style.getPropertyValue('line-height'); } (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__/* .css */ .A)(this.placeholderElm, { display: 'block', textAlign: style.getPropertyValue('text-align'), paddingTop: parseInt(styleEditor.paddingTop, 10) + 'px', paddingLeft: parseInt(styleEditor.paddingLeft, 10) + 'px', paddingRight: parseInt(styleEditor.paddingRight, 10) + 'px', marginTop: Math.max(parseInt(style.getPropertyValue('margin-top'), 10), marginTop), marginLeft: Math.max(parseInt(style.getPropertyValue('margin-left'), 10), marginLeft) }); } hide() { jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.safeRemove(this.placeholderElm); } toggle() { const editor = this.j; if (!editor.editor || editor.isInDestruct) { return; } if (editor.getRealMode() !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.MODE_WYSIWYG) { this.hide(); return; } if (!isEditorEmpty(editor.editor)) { this.hide(); } else { this.show(); } } beforeDestruct(jodit) { this.hide(); jodit.e.off('.placeholder').off(window, 'load', this.toggle); } } (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.debounce)(ctx => ctx.defaultTimeout / 10, true) ], placeholder.prototype, "toggle", null); jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .pluginSystem */ .fg.add('placeholder', placeholder); /***/ }), /***/ 449: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ N: function() { return /* binding */ CamelCaseToKebabCase; }, /* harmony export */ k: function() { return /* binding */ kebabCase; } /* harmony export */ }); /*! * 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/string */ const kebabCase = (key) => { return key .replace(/([A-Z])([A-Z])([a-z])/g, '$1-$2$3') .replace(/([a-z])([A-Z])/g, '$1-$2') .replace(/[\s_]+/g, '-') .toLowerCase(); }; const CamelCaseToKebabCase = (key) => { return key .replace(/([A-Z])([A-Z])([a-z])/g, '$1-$2$3') .replace(/([a-z])([A-Z])/g, '$1-$2') .toLowerCase(); }; /***/ }), /***/ 641: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ $: function() { return /* binding */ scrollIntoViewIfNeeded; }, /* harmony export */ l: function() { return /* binding */ inView; } /* harmony export */ }); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186); /*! * 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 */ /** * Check if element is in view */ function inView(elm, root, doc) { let rect = elm.getBoundingClientRect(), el = elm; const top = rect.top, height = rect.height; while (el && el !== root && el.parentNode) { el = el.parentNode; rect = el.getBoundingClientRect(); if (!(top <= rect.bottom)) { return false; } // Check if the element is out of view due to a container scrolling if (top + height <= rect.top) { return false; } } // Check it's within the document viewport return (top <= ((doc.documentElement && doc.documentElement.clientHeight) || 0)); } /** * Scroll element into view if it is not in view */ function scrollIntoViewIfNeeded(elm, root, doc) { if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isHTMLElement(elm) && !inView(elm, root, doc)) { if (root.clientHeight !== root.scrollHeight) { root.scrollTop = elm.offsetTop; } if (!inView(elm, root, doc)) { elm.scrollIntoView(); } } } /***/ }), /***/ 926: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ r: function() { return /* binding */ removeEmptyTextNode; } /* harmony export */ }); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186); /*! * 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 */ /** * @private */ function removeEmptyTextNode(jodit, node, hadEffect, arg, argi, currentNode) { if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(node) && !node.nodeValue) { if (node === currentNode && jodit.s.isCollapsed()) { jodit.s.setCursorAfter(node); } jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.safeRemove(node); return true; } return hadEffect; } /***/ }), /***/ 928: /***/ (function(module) { module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M621 1280h595v-595zm-45-45l595-595h-595v595zm1152 77v192q0 14-9 23t-23 9h-224v224q0 14-9 23t-23 9h-192q-14 0-23-9t-9-23v-224h-864q-14 0-23-9t-9-23v-864h-224q-14 0-23-9t-9-23v-192q0-14 9-23t23-9h224v-224q0-14 9-23t23-9h192q14 0 23 9t9 23v224h851l246-247q10-9 23-9t23 9q9 10 9 23t-9 23l-247 246v851h224q14 0 23 9t9 23z\"/> </svg>" /***/ }), /***/ 931: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ I: function() { return /* binding */ Icon; } /* harmony export */ }); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65147); /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38322); /*! * 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 */ class Icon { static getIcon(name) { if (/<svg/i.test(name)) { return name; } const icon = Icon.icons[name] || Icon.icons[name.replace(/-/g, '_')] || Icon.icons[name.replace(/_/g, '-')] || Icon.icons[(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.camelCase)(name)] || Icon.icons[(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.kebabCase)(name)] || Icon.icons[name.toLowerCase()]; if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_PROD && !icon) { console.warn(`Icon "${name}" not found`); } return icon; } /** * Check if icon exist in store */ static exists(name) { return this.getIcon(name) !== undefined; } /** * Return SVG icon */ static get(name, defaultValue = '<span></span>') { return this.getIcon(name) || defaultValue; } /** * Set SVG in store */ static set(name, value) { this.icons[name.replace('_', '-')] = value; return this; } /** * Make icon html element */ static makeIcon(jodit, icon) { if (!icon) { return; } let iconElement; const { name, iconURL, fill } = icon; const clearName = name.replace(/[^a-zA-Z0-9]/g, '_'); let iconFromEvent; if (!/<svg/.test(name)) { iconFromEvent = jodit.o.getIcon?.(name, clearName); } const cacheKey = `${name}${iconURL}${fill}${iconFromEvent ?? ''}`; if (jodit.o.cache && this.__cache.has(cacheKey)) { return this.__cache.get(cacheKey)?.cloneNode(true); } if (iconURL) { iconElement = jodit.c.span(); (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_2__/* .css */ .A)(iconElement, 'backgroundImage', 'url(' + iconURL.replace('{basePath}', jodit?.basePath || '') + ')'); } else { const svg = iconFromEvent || Icon.get(name, '') || jodit.o.extraIcons?.[name]; if (svg) { iconElement = jodit.c.fromHTML(svg.trim()); if (!/^<svg/i.test(name)) { iconElement.classList.add('jodit-icon_' + clearName); } } } if (iconElement) { iconElement.classList.add('jodit-icon'); iconElement.style.fill = fill; jodit.o.cache && this.__cache.set(cacheKey, iconElement.cloneNode(true)); } return iconElement; } } Icon.icons = {}; Icon.__cache = new Map(); /***/ }), /***/ 1239: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export orderedList */ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31635); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22664); /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56298); /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71005); /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20797); /*! * 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 */ /** * Process commands insertOrderedList and insertUnOrderedList */ class orderedList extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_2__/* .Plugin */ .k { constructor() { super(...arguments); this.buttons = [ { name: 'ul', group: 'list' }, { name: 'ol', group: 'list' } ]; } afterInit(jodit) { jodit .registerCommand('insertUnorderedList', this.onCommand) .registerCommand('insertOrderedList', this.onCommand); } onCommand(command, _, type) { this.jodit.s.commitStyle({ element: command === 'insertunorderedlist' ? 'ul' : 'ol', attributes: { style: { listStyleType: type ?? null } } }); this.jodit.synchronizeValues(); return false; } beforeDestruct(jodit) { } } (0,tslib__WEBPACK_IMPORTED_MODULE_4__/* .__decorate */ .Cg)([ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_0__.autobind ], orderedList.prototype, "onCommand", null); jodit_core_global__WEBPACK_IMPORTED_MODULE_1__/* .pluginSystem */ .fg.add('orderedList', orderedList); /***/ }), /***/ 1311: /***/ (function(module) { "use strict"; /*! * 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: 'Symbolit' }; /***/ }), /***/ 1540: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ $: function() { return /* binding */ UISelect; } /* harmony export */ }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31635); /* harmony import */ var jodit_core_decorators_component_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24767); /* harmony import */ var jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26150); /* harmony import */ var jodit_core_ui_form_inputs_input_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69198); /* harmony import */ var jodit_core_ui_form_validators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84103); /*! * 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 */ var UISelect_1; let UISelect = UISelect_1 = class UISelect extends jodit_core_ui_form_inputs_input_input__WEBPACK_IMPORTED_MODULE_1__/* .UIInput */ .t { /** @override */ className() { return 'UISelect'; } /** @override **/ createContainer(state) { const container = super.createContainer(state); const { j } = this, { nativeInput } = this; const opt = () => j.create.element('option'); if (state.placeholder !== undefined) { const option = opt(); option.value = ''; option.text = j.i18n(state.placeholder); nativeInput.add(option); } state.options?.forEach(element => { const option = opt(); option.value = element.value.toString(); option.text = j.i18n(element.text); nativeInput.add(option); }); if (state.size && state.size > 0) { (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_0__/* .attr */ .C)(nativeInput, 'size', state.size); } if (state.multiple) { (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_0__/* .attr */ .C)(nativeInput, 'multiple', ''); } return container; } /** @override **/ createNativeInput() { return this.j.create.element('select'); } /** @override **/ updateValidators() { super.updateValidators(); if (this.state.required) { this.validators.delete(jodit_core_ui_form_validators__WEBPACK_IMPORTED_MODULE_2__/* .inputValidators.required */ .O.required); this.validators.add(jodit_core_ui_form_validators__WEBPACK_IMPORTED_MODULE_2__/* .selectValidators.required */ .U.m); } } constructor(jodit, state) { super(jodit, state); /** @override */ this.state = { ...UISelect_1.defaultState }; Object.assign(this.state, state); } }; /** @override */ UISelect.defaultState = { ...jodit_core_ui_form_inputs_input_input__WEBPACK_IMPORTED_MODULE_1__/* .UIInput */ .t.defaultState, options: [], size: 1, multiple: false }; UISelect = UISelect_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__/* .__decorate */ .Cg)([ jodit_core_decorators_component_component__WEBPACK_IMPORTED_MODULE_4__/* .component */ .s ], UISelect); /***/ }), /***/ 1663: /***/ (function(module) { "use strict"; /*! * 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: 'Simbolo' }; /***/ }), /***/ 1677: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export sticky */ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31635); /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352); /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22664); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55186); /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56298); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65147); /* harmony import */ var jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29866); /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63400); /*! * 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 */ const NEED_DUMMY_BOX = !jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_ES_NEXT && jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_IE; class sticky extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plugin */ .k { constructor() { super(...arguments); this.__isToolbarStuck = false; this.__createDummy = (toolbar) => { this.__dummyBox = this.j.c.div(); this.__dummyBox.classList.add('jodit_sticky-dummy_toolbar'); this.j.container.insertBefore(this.__dummyBox, toolbar); }; /** * Add sticky */ this.addSticky = (toolbar) => { if (!this.__isToolbarStuck) { if (NEED_DUMMY_BOX && !this.__dummyBox) { this.__createDummy(toolbar); } this.j.container.classList.add('jodit_sticky'); this.__isToolbarStuck = true; } // on resize, it should work always (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.css)(toolbar, { top: this.j.o.toolbarStickyOffset || null, width: this.j.container.offsetWidth - 2 }); this.__dummyBox && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.css)(this.__dummyBox, { height: toolbar.offsetHeight }); }; /** * Remove sticky behaviour */ this.removeSticky = (toolbar) => { if (!this.__isToolbarStuck) { return; } (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.css)(toolbar, { width: '', top: '' }); this.j.container.classList.remove('jodit_sticky'); this.__isToolbarStuck = false; }; } afterInit(jodit) { jodit.e .on(jodit.ow, 'scroll.sticky wheel.sticky mousewheel.sticky resize.sticky', this.__onScroll) .on('getStickyState.sticky', () => this.__isToolbarStuck); } /** * Scroll handler */ __onScroll() { const { jodit } = this; if (!jodit.o.toolbarSticky || !jodit.o.toolbar) { return; } const scrollWindowTop = jodit.ow.pageYOffset || (jodit.od.documentElement && jodit.od.documentElement.scrollTop) || 0; const offsetEditor = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.offset)(jodit.container, jodit, jodit.od, true); const doSticky = jodit.getMode() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.MODE_WYSIWYG && scrollWindowTop + jodit.o.toolbarStickyOffset > offsetEditor.top && scrollWindowTop + jodit.o.toolbarStickyOffset < offsetEditor.top + offsetEditor.height && !(jodit.o.toolbarDisableStickyForMobile && this.__isMobile()); if (this.__isToolbarStuck === doSticky) { return; } const container = jodit.toolbarContainer; if (container) { doSticky ? this.addSticky(container) : this.removeSticky(container); } jodit.e.fire('toggleSticky', doSticky); } /** * Is mobile device */ __isMobile() { const { j } = this; return (j && j.options && j.container && j.options.sizeSM >= j.container.offsetWidth); } beforeDestruct(jodit) { jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.safeRemove(this.__dummyBox); jodit.e .off(jodit.ow, 'scroll.sticky wheel.sticky mousewheel.sticky resize.sticky', this.__onScroll) .off('.sticky'); } } (0,tslib__WEBPACK_IMPORTED_MODULE_7__/* .__decorate */ .Cg)([ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.throttle)() ], sticky.prototype, "__onScroll", null); jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .pluginSystem */ .fg.add('sticky', sticky); /***/ }), /***/ 1916: /***/ (function(module) { module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 24 24\"> <g transform=\"scale(1.2 1.2) translate(-2 -0.5)\"> <path d=\"M 22,12.5 A 1.49995,1.49995 0 0 0 20.50006,11 H 20 V 10 A 3,3 0 0 0 17,7 H 13 V 5.7226 a 2,2 0 1 0 -2,0 V 7 H 7 a 3,3 0 0 0 -3,3 v 1 H 3.49994 a 1.5,1.5 0 0 0 0,3 H 4 v 1 A 3.00128,3.00128 0 0 0 6.20251,17.89282 1.03113,1.03113 0 0 1 7,18.86975 v 0.716 a 0.99928,0.99928 0 0 0 1.00726,1.002 0.9792,0.9792 0 0 0 0.69983,-0.29486 l 2,-2 A 1,1 0 0 1 11.41425,18 H 17 a 3,3 0 0 0 3,-3 v -1 h 0.50006 A 1.49995,1.49995 0 0 0 22,12.5 Z M 19,15 a 2.00226,2.00226 0 0 1 -2,2 H 11.41425 A 1.987,1.987 0 0 0 10,17.58575 l -2,2 v -0.716 A 2.02082,2.02082 0 0 0 6.46771,16.92865 2.00439,2.00439 0 0 1 5,15 V 10 A 2.00226,2.00226 0 0 1 7,8 h 10 a 2.00222,2.00222 0 0 1 2,2 z M 10,12.5 A 1.5,1.5 0 1 1 8.5,11 1.5,1.5 0 0 1 10,12.5 Z m 7,0 A 1.5,1.5 0 1 1 15.5,11 1.5,1.5 0 0 1 17,12.5 Z\"/> </g> </svg>" /***/ }), /***/ 1963: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ C: function() { return /* binding */ derive; } /* harmony export */ }); /* harmony import */ var jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69052); /*! * 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:core/decorators/derive/README.md]] * @packageDocumentation * @module decorators/derive */ function derive(...traits) { return (target) => { const origin = target.prototype; for (let i = 0; i < traits.length; i++) { const trait = traits[i]; const keys = Object.getOwnPropertyNames(trait.prototype); for (let j = 0; j < keys.length; j++) { const key = keys[j], method = Object.getOwnPropertyDescriptor(trait.prototype, key); const canDerive = method != null && (0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_0__/* .isFunction */ .T)(method.value) && !(0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_0__/* .isFunction */ .T)(origin[key]); if (canDerive) { Object.defineProperty(origin, key, { enumerable: true, configurable: true, writable: true, value: function (...args) { return method.value.call(this, ...args); } }); } } } }; } /***/ }), /***/ 1992: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ b: function() { return /* binding */ createSourceEditor; } /* harmony export */ }); /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65147); /* harmony import */ var _engines__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76134); /*! * 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 */ function createSourceEditor(type, editor, container, toWYSIWYG, fromWYSIWYG) { let sourceEditor; if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.isFunction)(type)) { sourceEditor = type(editor); } else { switch (type) { case 'ace': if (!editor.o.shadowRoot) { sourceEditor = new _engines__WEBPACK_IMPORTED_MODULE_1__/* .AceEditor */ .p(editor, container, toWYSIWYG, fromWYSIWYG); break; } default: sourceEditor = new _engines__WEBPACK_IMPORTED_MODULE_1__/* .TextAreaEditor */ .S(editor, container, toWYSIWYG, fromWYSIWYG); } } sourceEditor.init(editor); sourceEditor.onReadyAlways(() => { sourceEditor.setReadOnly(editor.o.readonly); }); return sourceEditor; } /***/ }), /***/ 2461: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ E: function() { return /* binding */ isNumber; } /* harmony export */ }); /*! * 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/checker */ /** * Check value is a number */ function isNumber(value) { return typeof value === 'number' && !isNaN(value) && isFinite(value); } /***/ }), /***/ 2533: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export tableKeyboardNavigation */ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352); /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186); /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);