2024-02-24 00:37:31 +08:00

715 lines
46 KiB
JavaScript

exports.id = 4417;
exports.ids = [4417];
exports.modules = {
/***/ 94417:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ContextPrompts: () => (/* binding */ ContextPrompts),
/* harmony export */ MaskAvatar: () => (/* binding */ MaskAvatar),
/* harmony export */ MaskConfig: () => (/* binding */ MaskConfig),
/* harmony export */ MaskPage: () => (/* binding */ MaskPage)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56786);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39378);
/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13727);
/* harmony import */ var _mask_module_scss__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(95073);
/* harmony import */ var _mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_mask_module_scss__WEBPACK_IMPORTED_MODULE_26__);
/* harmony import */ var _icons_download_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24624);
/* harmony import */ var _icons_upload_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62030);
/* harmony import */ var _icons_edit_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54095);
/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31935);
/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54299);
/* harmony import */ var _icons_delete_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(77360);
/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61221);
/* harmony import */ var _icons_copy_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53231);
/* harmony import */ var _icons_drag_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3276);
/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(73706);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(1075);
/* harmony import */ var _client_api__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10616);
/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(24552);
/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(85563);
/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(57254);
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(99742);
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_25__);
/* harmony import */ var _chat_module_scss__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(48563);
/* harmony import */ var _chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_chat_module_scss__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(18038);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(92842);
/* harmony import */ var _model_config__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(80663);
/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(43684);
/* harmony import */ var _masks__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(8586);
/* harmony import */ var _hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(41423);
// drag and drop helper function
function reorder(list, startIndex, endIndex) {
const result = [
...list
];
const [removed] = result.splice(startIndex, 1);
result.splice(endIndex, 0, removed);
return result;
}
function MaskAvatar(props) {
return props.avatar !== _store_mask__WEBPACK_IMPORTED_MODULE_12__/* .DEFAULT_MASK_AVATAR */ ._G ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_emoji__WEBPACK_IMPORTED_MODULE_16__/* .Avatar */ .qE, {
avatar: props.avatar
}) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_emoji__WEBPACK_IMPORTED_MODULE_16__/* .Avatar */ .qE, {
model: props.model
});
}
function MaskConfig(props) {
const [showPicker, setShowPicker] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
const updateConfig = (updater)=>{
if (props.readonly) return;
const config = {
...props.mask.modelConfig
};
updater(config);
props.updateMask((mask)=>{
mask.modelConfig = config;
// if user changed current session mask, it will disable auto sync
mask.syncGlobalConfig = false;
});
};
const copyMaskLink = ()=>{
const maskLink = `${location.protocol}//${location.host}/#${_constant__WEBPACK_IMPORTED_MODULE_21__/* .Path */ .y$.NewChat}?mask=${props.mask.id}`;
(0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .copyToClipboard */ .vQ)(maskLink);
};
const globalConfig = (0,_store__WEBPACK_IMPORTED_MODULE_13__/* .useAppConfig */ .MG)();
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(ContextPrompts, {
context: props.mask.context,
updateContext: (updater)=>{
const context = props.mask.context.slice();
updater(context);
props.updateMask((mask)=>mask.context = context);
}
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .List */ .aV, {
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .ListItem */ .HC, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Avatar,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .Popover */ .J2, {
content: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_emoji__WEBPACK_IMPORTED_MODULE_16__/* .AvatarPicker */ .aR, {
onEmojiClick: (emoji)=>{
props.updateMask((mask)=>mask.avatar = emoji);
setShowPicker(false);
}
}),
open: showPicker,
onClose: ()=>setShowPicker(false),
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
onClick: ()=>setShowPicker(true),
style: {
cursor: "pointer"
},
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(MaskAvatar, {
avatar: props.mask.avatar,
model: props.mask.modelConfig.model
})
})
})
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .ListItem */ .HC, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Name,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
type: "text",
value: props.mask.name,
onInput: (e)=>props.updateMask((mask)=>{
mask.name = e.currentTarget.value;
})
})
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .ListItem */ .HC, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.HideContext.Title,
subTitle: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.HideContext.SubTitle,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
type: "checkbox",
checked: props.mask.hideContext,
onChange: (e)=>{
props.updateMask((mask)=>{
mask.hideContext = e.currentTarget.checked;
});
}
})
}),
!props.shouldSyncFromGlobal ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .ListItem */ .HC, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Share.Title,
subTitle: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Share.SubTitle,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Share.Action,
onClick: copyMaskLink
})
}) : null,
props.shouldSyncFromGlobal ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .ListItem */ .HC, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Sync.Title,
subTitle: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Sync.SubTitle,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
type: "checkbox",
checked: props.mask.syncGlobalConfig,
onChange: async (e)=>{
const checked = e.currentTarget.checked;
if (checked && await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .showConfirm */ .i0)(_locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Config.Sync.Confirm)) {
props.updateMask((mask)=>{
mask.syncGlobalConfig = checked;
mask.modelConfig = {
...globalConfig.modelConfig
};
});
} else if (!checked) {
props.updateMask((mask)=>{
mask.syncGlobalConfig = checked;
});
}
}
})
}) : null
]
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .List */ .aV, {
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_model_config__WEBPACK_IMPORTED_MODULE_20__/* .ModelConfigList */ .j, {
modelConfig: {
...props.mask.modelConfig
},
updateConfig: updateConfig
}),
props.extraListItems
]
})
]
});
}
function ContextPromptItem(props) {
const [focusingInput, setFocusingInput] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-prompt-row"]),
children: [
!focusingInput && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-drag"]),
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_drag_svg__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {})
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .Select */ .Ph, {
value: props.prompt.role,
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-role"]),
onChange: (e)=>props.update({
...props.prompt,
role: e.target.value
}),
children: _client_api__WEBPACK_IMPORTED_MODULE_14__/* .ROLES */ .K$.map((r)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("option", {
value: r,
children: r
}, r))
})
]
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .Input */ .II, {
value: (0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .getMessageTextContent */ .YK)(props.prompt),
type: "text",
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-content"]),
rows: focusingInput ? 5 : 1,
onFocus: ()=>setFocusingInput(true),
onBlur: ()=>{
setFocusingInput(false);
// If the selection is not removed when the user loses focus, some
// extensions like "Translate" will always display a floating bar
window?.getSelection()?.removeAllRanges();
},
onInput: (e)=>props.update({
...props.prompt,
content: e.currentTarget.value
})
}),
!focusingInput && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_delete_svg__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {}),
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-delete-button"]),
onClick: ()=>props.remove(),
bordered: true
})
]
});
}
function ContextPrompts(props) {
const context = props.context;
const addContextPrompt = (prompt, i)=>{
props.updateContext((context)=>context.splice(i, 0, prompt));
};
const removeContextPrompt = (i)=>{
props.updateContext((context)=>context.splice(i, 1));
};
const updateContextPrompt = (i, prompt)=>{
props.updateContext((context)=>{
const images = (0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .getMessageImages */ .Bs)(context[i]);
context[i] = prompt;
if (images.length > 0) {
const text = (0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .getMessageTextContent */ .YK)(context[i]);
const newContext = [
{
type: "text",
text
}
];
for (const img of images){
newContext.push({
type: "image_url",
image_url: {
url: img
}
});
}
context[i].content = newContext;
}
});
};
const onDragEnd = (result)=>{
if (!result.destination) {
return;
}
const newContext = reorder(context, result.source.index, result.destination.index);
props.updateContext((context)=>{
context.splice(0, context.length, ...newContext);
});
};
return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-prompt"]),
style: {
marginBottom: 20
},
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_24__/* .DragDropContext */ .Z5, {
onDragEnd: onDragEnd,
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_24__/* .Droppable */ .bK, {
droppableId: "context-prompt-list",
children: (provided)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
ref: provided.innerRef,
...provided.droppableProps,
children: [
context.map((c, i)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_24__/* .Draggable */ ._l, {
draggableId: c.id || i.toString(),
index: i,
children: (provided)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
ref: provided.innerRef,
...provided.draggableProps,
...provided.dragHandleProps,
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(ContextPromptItem, {
index: i,
prompt: c,
update: (prompt)=>updateContextPrompt(i, prompt),
remove: ()=>removeContextPrompt(i)
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-prompt-insert"]),
onClick: ()=>{
addContextPrompt((0,_store__WEBPACK_IMPORTED_MODULE_13__/* .createMessage */ .tn)({
role: "user",
content: "",
date: new Date().toLocaleString()
}), i + 1);
},
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {})
})
]
})
}, c.id)),
provided.placeholder
]
})
})
}),
props.context.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-prompt-row"]),
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Context.Add,
bordered: true,
className: (_chat_module_scss__WEBPACK_IMPORTED_MODULE_23___default()["context-prompt-button"]),
onClick: ()=>addContextPrompt((0,_store__WEBPACK_IMPORTED_MODULE_13__/* .createMessage */ .tn)({
role: "user",
content: "",
date: ""
}), props.context.length)
})
})
]
})
});
}
function MaskPage() {
const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_25__.useNavigate)();
const maskStore = (0,_store_mask__WEBPACK_IMPORTED_MODULE_12__/* .useMaskStore */ .Zy)();
const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_13__/* .useChatStore */ .aK)();
const [filterLang, setFilterLang] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)();
const allMasks = maskStore.getAll().filter((m)=>!filterLang || m.lang === filterLang);
const [searchMasks, setSearchMasks] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)([]);
const [searchText, setSearchText] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)("");
const masks = searchText.length > 0 ? searchMasks : allMasks;
// refactored already, now it accurate
const onSearch = (text)=>{
setSearchText(text);
if (text.length > 0) {
const result = allMasks.filter((m)=>m.name.toLowerCase().includes(text.toLowerCase()));
setSearchMasks(result);
} else {
setSearchMasks(allMasks);
}
};
const [editingMaskId, setEditingMaskId] = (0,react__WEBPACK_IMPORTED_MODULE_18__.useState)();
const editingMask = maskStore.get(editingMaskId) ?? _masks__WEBPACK_IMPORTED_MODULE_22__/* .BUILTIN_MASK_STORE */ .$n.get(editingMaskId);
const closeMaskModal = ()=>setEditingMaskId(undefined);
const downloadAll = ()=>{
(0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .downloadAs */ .CP)(JSON.stringify(masks.filter((v)=>!v.builtin)), _constant__WEBPACK_IMPORTED_MODULE_21__/* .FileName */ .dJ.Masks);
};
const importFromFile = ()=>{
(0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .readFromFile */ .j2)().then((content)=>{
try {
const importMasks = JSON.parse(content);
if (Array.isArray(importMasks)) {
for (const mask of importMasks){
if (mask.name) {
maskStore.create(mask);
}
}
return;
}
//if the content is a single mask.
if (importMasks.name) {
maskStore.create(importMasks);
}
} catch {}
});
};
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_error__WEBPACK_IMPORTED_MODULE_2__/* .ErrorBoundary */ .S, {
children: [
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-page"]),
children: [
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: "window-header",
children: [
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: "window-header-title",
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "window-header-main-title",
children: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Page.Title
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "window-header-submai-title",
children: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Page.SubTitle(allMasks.length)
})
]
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: "window-actions",
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "window-action-button",
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_download_svg__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {}),
bordered: true,
onClick: downloadAll,
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.UI.Export
})
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "window-action-button",
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_upload_svg__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.UI.Import,
bordered: true,
onClick: ()=>importFromFile()
})
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "window-action-button",
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_close_svg__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {}),
bordered: true,
onClick: ()=>navigate(-1)
})
})
]
})
]
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-page-body"]),
children: [
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-filter"]),
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
type: "text",
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["search-bar"]),
placeholder: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Page.Search,
autoFocus: true,
onInput: (e)=>onSearch(e.currentTarget.value)
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .Select */ .Ph, {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-filter-lang"]),
value: filterLang ?? _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Settings.Lang.All,
onChange: (e)=>{
const value = e.currentTarget.value;
if (value === _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Settings.Lang.All) {
setFilterLang(undefined);
} else {
setFilterLang(value);
}
},
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("option", {
value: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Settings.Lang.All,
children: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Settings.Lang.All
}, "all"),
_locales__WEBPACK_IMPORTED_MODULE_17__/* .AllLangs */ .DC.map((lang)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("option", {
value: lang,
children: _locales__WEBPACK_IMPORTED_MODULE_17__/* .ALL_LANG_OPTIONS */ .nW[lang]
}, lang))
]
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-create"]),
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Page.Create,
bordered: true,
onClick: ()=>{
const createdMask = maskStore.create();
setEditingMaskId(createdMask.id);
}
})
]
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
children: masks.map((m)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-item"]),
children: [
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-header"]),
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-icon"]),
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(MaskAvatar, {
avatar: m.avatar,
model: m.modelConfig.model
})
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-title"]),
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-name"]),
children: m.name
}),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-info"]) + " one-line",
children: `${_locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.Info(m.context.length)} / ${_locales__WEBPACK_IMPORTED_MODULE_17__/* .ALL_LANG_OPTIONS */ .nW[m.lang]} / ${m.modelConfig.model}`
})
]
})
]
}),
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
className: (_mask_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["mask-actions"]),
children: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.Chat,
onClick: ()=>{
chatStore.newSession(m);
navigate(_constant__WEBPACK_IMPORTED_MODULE_21__/* .Path */ .y$.Chat);
}
}),
m.builtin ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.View,
onClick: ()=>setEditingMaskId(m.id)
}) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.Edit,
onClick: ()=>setEditingMaskId(m.id)
}),
!m.builtin && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_delete_svg__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.Delete,
onClick: async ()=>{
if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .showConfirm */ .i0)(_locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.Item.DeleteConfirm)) {
maskStore.delete(m.id);
}
}
})
]
})
]
}, m.id))
})
]
})
]
}),
editingMask && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
className: "modal-mask",
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ui_lib__WEBPACK_IMPORTED_MODULE_15__/* .Modal */ .u_, {
title: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.EditModal.Title(editingMask?.builtin),
onClose: closeMaskModal,
actions: [
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_download_svg__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {}),
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.EditModal.Download,
bordered: true,
onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_19__/* .downloadAs */ .CP)(JSON.stringify(editingMask), `${editingMask.name}.json`)
}, "export"),
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_button__WEBPACK_IMPORTED_MODULE_1__/* .IconButton */ .h, {
icon: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {}),
bordered: true,
text: _locales__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP.Mask.EditModal.Clone,
onClick: ()=>{
navigate(_constant__WEBPACK_IMPORTED_MODULE_21__/* .Path */ .y$.Masks);
maskStore.create(editingMask);
setEditingMaskId(undefined);
}
}, "copy")
],
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(MaskConfig, {
mask: editingMask,
updateMask: (updater)=>maskStore.updateMask(editingMaskId, updater),
readonly: editingMask.builtin
})
})
})
]
});
}
/***/ }),
/***/ 48563:
/***/ ((module) => {
// Exports
module.exports = {
"attach-images": "chat_attach-images__UtJds",
"attach-image": "chat_attach-image__5zxeG",
"attach-image-mask": "chat_attach-image-mask__cOlWM",
"delete-image": "chat_delete-image__IBtAc",
"chat-input-actions": "chat_chat-input-actions__mwYC_",
"chat-input-action": "chat_chat-input-action__DMW7Y",
"slide-in": "chat_slide-in__nvZgA",
"text": "chat_text__TkPfN",
"icon": "chat_icon__Ly3TN",
"prompt-toast": "chat_prompt-toast___VCUf",
"prompt-toast-inner": "chat_prompt-toast-inner__f17E6",
"slide-in-from-top": "chat_slide-in-from-top__Q0KCt",
"prompt-toast-content": "chat_prompt-toast-content__9sp_w",
"section-title": "chat_section-title__BiPko",
"section-title-action": "chat_section-title-action__bmruw",
"context-prompt": "chat_context-prompt__cbach",
"context-prompt-insert": "chat_context-prompt-insert__UmNJi",
"context-prompt-row": "chat_context-prompt-row__3Kbix",
"context-drag": "chat_context-drag__BX7lh",
"context-role": "chat_context-role__7_IR9",
"context-content": "chat_context-content__sNXUy",
"context-delete-button": "chat_context-delete-button__C_BmS",
"context-prompt-button": "chat_context-prompt-button__AoPsw",
"memory-prompt": "chat_memory-prompt__vOzcn",
"memory-prompt-content": "chat_memory-prompt-content__kUVKj",
"clear-context": "chat_clear-context__ke8Iw",
"clear-context-tips": "chat_clear-context-tips__L1A_i",
"clear-context-revert-btn": "chat_clear-context-revert-btn___Wna1",
"chat": "chat_chat__ZebHg",
"chat-body": "chat_chat-body__QFv5x",
"chat-body-main-title": "chat_chat-body-main-title__jUL6h",
"chat-body-title": "chat_chat-body-title__d2ItC",
"chat-message": "chat_chat-message__dg8rL",
"chat-message-user": "chat_chat-message-user__ZtTEj",
"chat-message-header": "chat_chat-message-header__Dny_K",
"chat-message-actions": "chat_chat-message-actions__H90hg",
"chat-message-container": "chat_chat-message-container__O_X8_",
"chat-message-edit": "chat_chat-message-edit__h58of",
"chat-message-avatar": "chat_chat-message-avatar__3QeMq",
"chat-message-status": "chat_chat-message-status__zc9Ad",
"chat-message-item": "chat_chat-message-item__dKqMl",
"chat-message-item-image": "chat_chat-message-item-image__2jbb0",
"chat-message-item-images": "chat_chat-message-item-images__EtEM4",
"chat-message-item-image-multi": "chat_chat-message-item-image-multi__DOIxY",
"chat-message-action-date": "chat_chat-message-action-date__RsXTn",
"chat-input-panel": "chat_chat-input-panel__rO72m",
"prompt-hints": "chat_prompt-hints__VT_Oi",
"prompt-hint": "chat_prompt-hint__2616t",
"hint-title": "chat_hint-title__E53ZK",
"hint-content": "chat_hint-content__y2yj4",
"prompt-hint-selected": "chat_prompt-hint-selected__o3vYi",
"chat-input-panel-inner": "chat_chat-input-panel-inner___IQHi",
"chat-input-panel-inner-attach": "chat_chat-input-panel-inner-attach__mZheu",
"chat-input": "chat_chat-input__PQ_oF",
"chat-input-send": "chat_chat-input-send__GFQZo"
};
/***/ }),
/***/ 95073:
/***/ ((module) => {
// Exports
module.exports = {
"mask-page": "mask_mask-page__ou14k",
"mask-page-body": "mask_mask-page-body__kBXsJ",
"mask-filter": "mask_mask-filter__OdpU3",
"slide-in": "mask_slide-in__unpXH",
"search-bar": "mask_search-bar__7_Msn",
"mask-filter-lang": "mask_mask-filter-lang__mRxyv",
"mask-create": "mask_mask-create__BjAzk",
"mask-item": "mask_mask-item__dinia",
"mask-header": "mask_mask-header__RXJXI",
"mask-icon": "mask_mask-icon__wO1ER",
"mask-title": "mask_mask-title__IDEbR",
"mask-name": "mask_mask-name__77Rjh",
"mask-info": "mask_mask-info__2gtiu",
"mask-actions": "mask_mask-actions__rsWn_",
"slide-in-from-top": "mask_slide-in-from-top__DOEYB"
};
/***/ })
};
;