jodit-pro
Version:
PRO Version of Jodit Editor
1,093 lines (973 loc) • 687 kB
JavaScript
/*!
* jodit-pro - PRO Version of Jodit Editor
* Author: Chupurnov Valerii <chupurnov@gmail.com>
* Version: v4.9.27
* Url: https://xdsoft.net/jodit/pro/
* License(s): SEE LICENSE IN LICENSE.md
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(self, function() {
return (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);