UNPKG

jodit-pro

Version:

PRO Version of Jodit Editor

1,093 lines (973 loc) 687 kB
/*! * 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 (self["webpackChunkjodit_pro"] = self["webpackChunkjodit_pro"] || []).push([[830],{ /***/ 473: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ handleBackToList: function() { return /* binding */ handleBackToList; }, /* harmony export */ handleConversationSearch: function() { return /* binding */ handleConversationSearch; }, /* harmony export */ handleConversationSelect: function() { return /* binding */ handleConversationSelect; }, /* harmony export */ handleToolApproval: function() { return /* binding */ handleToolApproval; }, /* harmony export */ handleToolDenial: function() { return /* binding */ handleToolDenial; } /* harmony export */ }); /* harmony import */ var _swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77688); /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11886); /* harmony import */ var _swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94899); /* harmony import */ var _swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62361); /* harmony import */ var _tool_execution__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79078); /* harmony import */ var jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(82758); // import { setToolCallDenied } from './tool-execution'; /** * Handle tool call approval */ function handleToolApproval(toolCallId, scope, stateManager, permissionManager, storage) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var pendingToolCalls, toolCall, permission, conversation; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__._)(this, function(_state) { switch(_state.label){ case 0: // Find the pending tool call pendingToolCalls = stateManager.getPendingToolCalls(); toolCall = pendingToolCalls.find(function(tc) { return tc.id === toolCallId; }); if (!toolCall) { console.error('Tool call not found:', toolCallId); return [ 2, null ]; } // Grant permission using tool name (not id) permission = permissionManager.grantPermission(toolCall.name, scope); conversation = stateManager.getCurrentConversation(); if (!conversation) return [ 3, 2 ]; conversation.permissions.push(permission); return [ 4, storage.save(conversation) ]; case 1: _state.sent(); _state.label = 2; case 2: // Remove from pending stateManager.removePendingToolCall(toolCallId); return [ 2, (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, toolCall), { status: 'approved' }) ]; } }); })(); } /** * Handle tool call denial */ function handleToolDenial(jodit, toolCallId, stateManager, storage) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var pendingToolCalls, toolCall, conversation, messagIndex, message, toolCallDenied, newMessage, messages; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__._)(this, function(_state) { switch(_state.label){ case 0: // Find the pending tool call pendingToolCalls = stateManager.getPendingToolCalls(); toolCall = pendingToolCalls.find(function(tc) { return tc.id === toolCallId; }); if (!toolCall) { return [ 2 ]; } conversation = stateManager.getCurrentConversation(); if (!conversation) { return [ 2 ]; } messagIndex = conversation.messages.findIndex(function(msg) { var _msg_toolCalls; return (_msg_toolCalls = msg.toolCalls) === null || _msg_toolCalls === void 0 ? void 0 : _msg_toolCalls.find(function(tc) { return tc.id === toolCallId; }); }); if (messagIndex === -1) { return [ 2 ]; } message = conversation.messages[messagIndex]; // Update tool call with denial result toolCallDenied = (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, toolCall), { result: { error: 'Tool call denied by user.' }, status: 'denied' }); newMessage = (0,_tool_execution__WEBPACK_IMPORTED_MODULE_5__.updateToolCallInMessage)(message, toolCallDenied); messages = (0,_swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_3__._)(conversation.messages); messages[messagIndex] = newMessage; conversation = (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, conversation), { messages: messages, updated: Date.now() }); // Save conversation and update UI stateManager.setCurrentConversation(conversation); return [ 4, storage.save(conversation) ]; case 1: _state.sent(); // Emit event for UI to show denied state jodit.e.fire('toolCallDenied.ai-assistant-pro', toolCall); // Remove from pending stateManager.removePendingToolCall(toolCallId); return [ 2 ]; } }); })(); } /** * Handle conversation selection */ function handleConversationSelect(conversationId, storage, stateManager) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var conv, error; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__._)(this, function(_state) { switch(_state.label){ case 0: _state.trys.push([ 0, 2, 3, 4 ]); stateManager.setLoading(true); return [ 4, storage.get(conversationId) ]; case 1: conv = _state.sent(); if (!conv) { throw new Error('Conversation not found: ' + conversationId); } stateManager.setCurrentConversation((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, conv)); return [ 3, 4 ]; case 2: error = _state.sent(); if (!jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_6__.IS_PROD) { console.warn(error); } return [ 3, 4 ]; case 3: stateManager.setLoading(false); return [ 7 ]; case 4: return [ 2 ]; } }); })(); } /** * Handle back to conversation list */ function handleBackToList(storage, stateManager) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var conversations; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__._)(this, function(_state) { switch(_state.label){ case 0: stateManager.setView('conversationList'); _state.label = 1; case 1: _state.trys.push([ 1, , 3, 4 ]); stateManager.setLoading(true); return [ 4, storage.list().catch(function() { return []; }) ]; case 2: conversations = _state.sent(); stateManager.setConversations(conversations); return [ 3, 4 ]; case 3: stateManager.setLoading(false); return [ 7 ]; case 4: return [ 2 ]; } }); })(); } /** * Handle conversation search */ function handleConversationSearch(query, storage, stateManager) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var conversations; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_4__._)(this, function(_state) { switch(_state.label){ case 0: stateManager.setLoading(true); _state.label = 1; case 1: _state.trys.push([ 1, , 3, 4 ]); return [ 4, storage.list(query || undefined) ]; case 2: conversations = _state.sent(); // Update state stateManager.setConversations(conversations); // Update view stateManager.setView('conversationList'); return [ 3, 4 ]; case 3: // Clear loading state stateManager.setLoading(false); return [ 7 ]; case 4: return [ 2 ]; } }); })(); } /***/ }), /***/ 2020: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11886); /* harmony import */ var _definition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96675); /* harmony import */ var _executor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3091); /* harmony default export */ __webpack_exports__["default"] = ((0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__._)({}, _definition__WEBPACK_IMPORTED_MODULE_2__), { execute: _executor__WEBPACK_IMPORTED_MODULE_3__.execute })); /***/ }), /***/ 2868: /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: function() { return /* binding */ _instanceof1; } /* harmony export */ }); function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } } function _instanceof1(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else return _instanceof(left, right); } /***/ }), /***/ 3091: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ execute: function() { return /* binding */ execute; } /* harmony export */ }); /* harmony import */ var _swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77688); /* harmony import */ var _swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62361); /* harmony import */ var _core_abort_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6689); /* harmony import */ var _core_arg_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49459); /* harmony import */ var _core_block_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44526); /* harmony import */ var jodit_esm_core_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22732); /** * Replace a specific block in the document by its index or CSS selector */ function execute(jodit, args, signal) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var index, selector, html, _resolveBlock, targetBlock, identifierMessage, // Replace the block _targetBlock_parentNode, tempDiv, newBlock; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_1__._)(this, function(_state) { index = args.index, selector = args.selector; html = (0,_core_arg_utils__WEBPACK_IMPORTED_MODULE_3__.requireString)(args, 'html'); (0,_core_abort_utils__WEBPACK_IMPORTED_MODULE_2__.throwIfAborted)(signal); // Validate that either index or selector is provided, but not both if (index === undefined && !selector || index !== undefined && selector) { throw new Error('Either index or selector must be provided, but not both'); } _resolveBlock = (0,_core_block_utils__WEBPACK_IMPORTED_MODULE_4__.resolveBlock)(jodit, { selector: selector, index: index, requireExactlyOne: true }), targetBlock = _resolveBlock.element, identifierMessage = _resolveBlock.identifier; try { ; // Create new element from HTML tempDiv = jodit.createInside.div(); tempDiv.innerHTML = html; newBlock = tempDiv.firstChild; if (!newBlock || !jodit_esm_core_dom__WEBPACK_IMPORTED_MODULE_5__.Dom.isElement(newBlock)) { throw new Error('Invalid HTML: must contain at least one element'); } (_targetBlock_parentNode = targetBlock.parentNode) === null || _targetBlock_parentNode === void 0 ? void 0 : _targetBlock_parentNode.replaceChild(newBlock, targetBlock); jodit.synchronizeValues(); return [ 2, { success: true, message: "Block ".concat(identifierMessage, " replaced successfully") } ]; } catch (error) { throw new Error("Failed to replace block ".concat(identifierMessage, ": ").concat(error.message)); } // removed by dead control flow }); })(); } /***/ }), /***/ 5618: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11886); /* harmony import */ var _definition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93809); /* harmony import */ var _executor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28157); /* harmony default export */ __webpack_exports__["default"] = ((0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__._)({}, _definition__WEBPACK_IMPORTED_MODULE_2__), { execute: _executor__WEBPACK_IMPORTED_MODULE_3__.execute })); /***/ }), /***/ 6689: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ throwIfAborted: function() { return /* binding */ throwIfAborted; } /* harmony export */ }); /* harmony import */ var jodit_esm_core_helpers_utils_error_errors_abort_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93661); /** * Throw AbortError if signal is already aborted. */ function throwIfAborted(signal) { if (signal.aborted) { throw (0,jodit_esm_core_helpers_utils_error_errors_abort_error__WEBPACK_IMPORTED_MODULE_0__.abort)(); } } /***/ }), /***/ 11886: /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: function() { return /* binding */ _object_spread_props; } /* harmony export */ }); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /***/ }), /***/ 12570: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11886); /* harmony import */ var _definition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62553); /* harmony import */ var _executor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56293); /* harmony default export */ __webpack_exports__["default"] = ((0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__._)({}, _definition__WEBPACK_IMPORTED_MODULE_2__), { execute: _executor__WEBPACK_IMPORTED_MODULE_3__.execute })); /***/ }), /***/ 15927: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ getCurrentSelectionContext: function() { return /* binding */ getCurrentSelectionContext; } /* harmony export */ }); /** * Add current selection to context */ function getCurrentSelectionContext(jodit) { if (jodit.s.isCollapsed()) { return null; } var html = jodit.s.html; var range = jodit.s.range; return { html: html, rangeInfo: { startContainer: range.startContainer.nodeName, startOffset: range.startOffset, endContainer: range.endContainer.nodeName, endOffset: range.endOffset } }; } /***/ }), /***/ 16015: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ UIDialogSettings: function() { return /* binding */ UIDialogSettings; } /* harmony export */ }); /* harmony import */ var _swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77688); /* harmony import */ var _swc_helpers_call_super__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80294); /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20616); /* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67709); /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82749); /* harmony import */ var _swc_helpers_get__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54816); /* harmony import */ var _swc_helpers_get_prototype_of__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84669); /* harmony import */ var _swc_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18766); /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11886); /* harmony import */ var _swc_helpers_type_of__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61200); /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31635); /* harmony import */ var _swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62361); /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(65478); /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(67510); /* harmony import */ var jodit_esm_core_ui_form_inputs_select_select__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12234); /* harmony import */ var jodit_pro_core_ui_form_range_range__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(62357); var UIDialogSettings = /*#__PURE__*/ function(UIElement) { "use strict"; (0,_swc_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__._)(UIDialogSettings, UIElement); function UIDialogSettings(jodit, getConversation, updateConversation, state, options) { (0,_swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_2__._)(this, UIDialogSettings); var _this; _this = (0,_swc_helpers_call_super__WEBPACK_IMPORTED_MODULE_1__._)(this, UIDialogSettings, [ jodit ]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "getConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "updateConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "modelSelect", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_4__._)(_this, "temperatureInput", void 0), _this.getConversation = getConversation, _this.updateConversation = updateConversation, _this.state = state, _this.options = options, _this.modelSelect = null, _this.temperatureInput = null; _this.build(); return _this; } (0,_swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_3__._)(UIDialogSettings, [ { key: "className", value: function className() { return 'UIDialogSettings'; } }, { key: "setParentView", value: function setParentView(view) { var _this_modelSelect, _this_temperatureInput; (_this_modelSelect = this.modelSelect) === null || _this_modelSelect === void 0 ? void 0 : _this_modelSelect.setParentView(view); (_this_temperatureInput = this.temperatureInput) === null || _this_temperatureInput === void 0 ? void 0 : _this_temperatureInput.setParentView(view); return (0,_swc_helpers_get__WEBPACK_IMPORTED_MODULE_5__._)((0,_swc_helpers_get_prototype_of__WEBPACK_IMPORTED_MODULE_6__._)(UIDialogSettings.prototype), "setParentView", this).call(this, view); } }, { key: "build", value: /** * Build settings fields */ function build() { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var fieldsContainer, currentOptions, _ref, _currentOptions_model, models, currentModel, _ref1, _currentOptions_temperature, inputElement, _this_options_dialogSettings_temperature_step; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_12__._)(this, function(_state) { fieldsContainer = this.container; currentOptions = this.getConversation().options || {}; // Model selector if (this.options.dialogSettings.models && this.options.dialogSettings.models.length > 0) { ; models = this.parseModels(this.options.dialogSettings.models); currentModel = (_ref = (_currentOptions_model = currentOptions.model) !== null && _currentOptions_model !== void 0 ? _currentOptions_model : this.state.defaultModel) !== null && _ref !== void 0 ? _ref : models[0].value; this.modelSelect = new jodit_esm_core_ui_form_inputs_select_select__WEBPACK_IMPORTED_MODULE_15__.UISelect(this.j, { label: 'Model', name: 'model', value: currentModel, options: models, onChange: this.onModelChange.bind(this) }); fieldsContainer.appendChild(this.modelSelect.container); } // Temperature slider if (this.options.dialogSettings.temperature) { ; this.temperatureInput = new jodit_pro_core_ui_form_range_range__WEBPACK_IMPORTED_MODULE_16__.UIRange(this.j, { label: 'Temperature', name: 'temperature', min: this.options.dialogSettings.temperature.min, max: this.options.dialogSettings.temperature.max, value: (_ref1 = (_currentOptions_temperature = currentOptions.temperature) !== null && _currentOptions_temperature !== void 0 ? _currentOptions_temperature : this.state.defaultTemperature) !== null && _ref1 !== void 0 ? _ref1 : 0.5, onChange: this.onTemperatureChange.bind(this) }); // Set step attribute directly on the input element inputElement = this.temperatureInput.nativeInput; if (inputElement) { ; inputElement.setAttribute('step', String((_this_options_dialogSettings_temperature_step = this.options.dialogSettings.temperature.step) !== null && _this_options_dialogSettings_temperature_step !== void 0 ? _this_options_dialogSettings_temperature_step : 0.1)); } fieldsContainer.appendChild(this.temperatureInput.container); } return [ 2 ]; }); }).call(this); } }, { key: "parseModels", value: /** * Parse models from config (supports both formats) */ function parseModels(models) { if (models.length === 0) { return []; } // Check if it's array of objects with title/value if ((0,_swc_helpers_type_of__WEBPACK_IMPORTED_MODULE_10__._)(models[0]) === 'object' && 'title' in models[0]) { return models.map(function(m) { return { text: m.title, value: m.value }; }); } // It's array of strings return models.map(function(m) { return { text: m, value: m }; }); } }, { key: "onModelChange", value: /** * Handle model change */ function onModelChange() { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var newModel; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_12__._)(this, function(_state) { if (!this.modelSelect) return [ 2 ]; newModel = this.modelSelect.value; this.updateConversation({ options: (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_9__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_8__._)({}, this.getConversation().options), { model: newModel }) }); this.state.defaultModel = newModel; return [ 2 ]; }); }).call(this); } }, { key: "onTemperatureChange", value: /** * Handle temperature change */ function onTemperatureChange() { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var newTemp; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_12__._)(this, function(_state) { if (!this.temperatureInput) return [ 2 ]; newTemp = parseFloat(this.temperatureInput.value); this.updateConversation({ options: (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_9__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_8__._)({}, this.getConversation().options), { temperature: newTemp }) }); this.state.defaultTemperature = newTemp; return [ 2 ]; }); }).call(this); } }, { key: "onDefaultModelChange", value: function onDefaultModelChange() { if (this.modelSelect && this.state.defaultModel) { this.modelSelect.value = this.state.defaultModel; } } }, { key: "onDefaultTemperatureChange", value: function onDefaultTemperatureChange() { if (this.temperatureInput && this.state.defaultTemperature !== undefined) { this.temperatureInput.value = String(this.state.defaultTemperature); } } }, { key: "destruct", value: function destruct() { var _this_modelSelect; (_this_modelSelect = this.modelSelect) === null || _this_modelSelect === void 0 ? void 0 : _this_modelSelect.destruct(); (0,_swc_helpers_get__WEBPACK_IMPORTED_MODULE_5__._)((0,_swc_helpers_get_prototype_of__WEBPACK_IMPORTED_MODULE_6__._)(UIDialogSettings.prototype), "destruct", this).call(this); } } ]); return UIDialogSettings; }(jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_14__.UIElement); (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_11__.__decorate)([ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__.watch)('state.defaultModel') ], UIDialogSettings.prototype, "onDefaultModelChange", null); (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_11__.__decorate)([ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__.watch)('state.defaultTemperature') ], UIDialogSettings.prototype, "onDefaultTemperatureChange", null); UIDialogSettings = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_11__.__decorate)([ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__.component ], UIDialogSettings); /***/ }), /***/ 16745: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11886); /* harmony import */ var _definition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56732); /* harmony import */ var _executor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39592); /* harmony default export */ __webpack_exports__["default"] = ((0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__._)({}, _definition__WEBPACK_IMPORTED_MODULE_2__), { execute: _executor__WEBPACK_IMPORTED_MODULE_3__.execute })); /***/ }), /***/ 18549: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ UIFlightPosition: function() { return /* binding */ UIFlightPosition; } /* harmony export */ }); /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20616); /* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67709); /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748); /*! * 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/ */ var flightStates = new WeakMap(); /** * Flight Position Trait * * Provides smart positioning for a panel relative to an anchor element: * - Panel is always position: fixed * - Width matches anchor element width * - Horizontal position matches anchor element * - Vertical position: stays at viewport bottom OR just below anchor (whichever is higher) * * Similar to TinyMCE AI Assistant positioning behavior. */ var UIFlightPosition = /*#__PURE__*/ function() { "use strict"; function UIFlightPosition() { (0,_swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, UIFlightPosition); } (0,_swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__._)(UIFlightPosition, null, [ { key: "install", value: /** * Install flight positioning on an element * @param element - The UI element to position * @param anchor - The anchor element (usually editor container) to track * @param options - Configuration options */ function install(element, anchor) { var _this = this; var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; // Remove existing installation if any this.remove(element); var _options_panelHeight = options.panelHeight, panelHeight = _options_panelHeight === void 0 ? 250 : _options_panelHeight, containerClassName = options.containerClassName, _options_toolbarSelector = options.toolbarSelector, toolbarSelector = _options_toolbarSelector === void 0 ? '.jodit-toolbar__box' : _options_toolbarSelector, _options_gap = options.gap, gap = _options_gap === void 0 ? 16 : _options_gap; // Create container for the panel var container = element.j.c.div('jodit-flight-position'); if (containerClassName) { container.classList.add(containerClassName); } container.style.setProperty('--flight-panel-height', "".concat(panelHeight, "px")); // Append panel to container container.appendChild(element.container); // Append container to body document.body.appendChild(container); var stateOptions = { toolbarSelector: toolbarSelector, gap: gap }; // Create scroll/resize handler var onScroll = function onScroll() { _this.updatePosition(container, anchor, stateOptions); }; // Create ResizeObserver for anchor size changes var resizeObserver = new ResizeObserver(onScroll); resizeObserver.observe(anchor); // Listen to scroll and resize events window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onScroll, { passive: true }); // Store state var state = { container: container, anchor: anchor, onScroll: onScroll, resizeObserver: resizeObserver, options: stateOptions }; flightStates.set(element, state); // Initial position this.updatePosition(container, anchor, stateOptions); } }, { key: "updatePosition", value: /** * Update container position based on anchor element * * Positioning logic: * 1. If editor is small and panel doesn't fit → top at toolbar bottom * 2. If fits and editor bottom visible → bottom at editor bottom - gap * 3. If editor bottom not visible → bottom at viewport bottom - gap */ function updatePosition(container, anchor, options) { var toolbarSelector = options.toolbarSelector, gap = options.gap; var anchorRect = anchor.getBoundingClientRect(); var viewportHeight = window.innerHeight; var panelHeight = container.offsetHeight || 250; // Calculate horizontal position (match anchor) container.style.left = "".concat(anchorRect.left, "px"); container.style.width = "".concat(anchorRect.width, "px"); // Find toolbar to get its bottom position var toolbar = anchor.querySelector(toolbarSelector); var toolbarBottom = toolbar ? toolbar.getBoundingClientRect().bottom : anchorRect.top; // Available space between toolbar bottom and editor bottom var availableSpace = anchorRect.bottom - toolbarBottom; // Check if panel fits in available space var panelFits = panelHeight <= availableSpace; // Check if editor bottom is visible in viewport var editorBottomVisible = anchorRect.bottom <= viewportHeight; if (!panelFits) { // Case 1: Editor is small and panel doesn't fit // Position panel top at toolbar bottom container.style.bottom = 'auto'; container.style.top = "".concat(toolbarBottom, "px"); } else if (editorBottomVisible) { // Case 2: Panel fits and editor bottom is visible // Position panel bottom at editor bottom - gap container.style.top = 'auto'; container.style.bottom = "".concat(viewportHeight - anchorRect.bottom + gap, "px"); } else { // Case 3: Editor bottom is not visible (scrolled below viewport) // Position panel bottom at viewport bottom - gap container.style.top = 'auto'; container.style.bottom = "".concat(gap, "px"); } } }, { key: "remove", value: /** * Remove flight positioning from an element */ function remove(element) { var state = flightStates.get(element); if (state) { // Remove event listeners window.removeEventListener('scroll', state.onScroll); window.removeEventListener('resize', state.onScroll); // Disconnect observer state.resizeObserver.disconnect(); // Move panel out of container before removing if (element.container.parentNode === state.container) { var _state_container_parentNode; (_state_container_parentNode = state.container.parentNode) === null || _state_container_parentNode === void 0 ? void 0 : _state_container_parentNode.insertBefore(element.container, state.container); } // Remove container jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(state.container); // Remove state flightStates.delete(element); } } }, { key: "isInstalled", value: /** * Check if element has flight positioning installed */ function isInstalled(element) { return flightStates.has(element); } }, { key: "setPanelHeight", value: /** * Update panel height */ function setPanelHeight(element, height) { var state = flightStates.get(element); if (state) { state.container.style.setProperty('--flight-panel-height', "".concat(height, "px")); } } }, { key: "refresh", value: /** * Force position recalculation */ function refresh(element) { var state = flightStates.get(element); if (state) { this.updatePosition(state.container, state.anchor, state.options); } } } ]); return UIFlightPosition; }(); /***/ }), /***/ 19127: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ execute: function() { return /* binding */ execute; } /* harmony export */ }); /* harmony import */ var _swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77688); /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11886); /* harmony import */ var _swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62361); /* harmony import */ var _core_abort_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6689); /* harmony import */ var _core_block_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44526); /** * Apply or remove inline formatting to the current selection or specific block */ function execute(jodit, args, signal) { return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function() { var element, attributes, remove, blockIndex, selector, element1, styleOptions; return (0,_swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_3__._)(this, function(_state) { element = args.element, attributes = args.attributes, remove = args.remove, blockIndex = args.blockIndex, selector = args.selector; (0,_core_abort_utils__WEBPACK_IMPORTED_MODULE_4__.throwIfAborted)(signal); if (!element && !attributes) { throw new Error('Either "element" or "attributes" must be provided'); } jodit.s.restore(); // If blockIndex or selector is provided, select that block first if (blockIndex !== undefined || selector) { element1 = (0,_core_block_utils__WEBPACK_IMPORTED_MODULE_5__.resolveBlock)(jodit, { selector: selector, index: blockIndex }).element; jodit.s.select(element1); } if (jodit.s.isCollapsed()) { throw new Error('No selection found. Please select text to format'); } try { styleOptions = {}; if (element) { styleOptions.element = element; } if (attributes) { styleOptions.attributes = attributes; } // Use commitStyle to apply or remove formatting if (remove) { // To remove styling, we need to pass the same style with a special flag // or use applyStyle with opposite action jodit.s.commitStyle((0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_2__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, styleOptions), { mode: 'remove' })); } else { jodit.s.commitStyle(styleOptions); } // Synchronize the editor value jodit.synchronizeValues(); return [ 2, { success: true, message: remove ? 'Formatting removed successfully' : 'Formatting applied successfully' } ]; } catch (error) { throw new Error("Failed to ".concat(remove ? 'remove' : 'apply', " formatting: ").concat(error.message)); } // removed by dead control flow }); })(); } /***/ }), /***/ 21020: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ PermissionManager: function() { return /* binding */ PermissionManager; } /* harmony export */ }); /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20616); /* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67709); /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82749); /* harmony import */ var _swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56075); /* harmony import */ var _swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11886); /** * Permission Manager - handles tool execution permissions */ var PermissionManager = /*#__PURE__*/ function() { "use strict"; function PermissionManager(jodit, toolRegistry) { (0,_swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, PermissionManager); (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "jodit", void 0);