diff --git a/client/demo/dist/index.js b/client/demo/dist/index.js index 67fb0402..8ee8ed8e 100644 --- a/client/demo/dist/index.js +++ b/client/demo/dist/index.js @@ -180,7 +180,7 @@ eval("var __filename = \"/index.js\";\n__webpack_require__.r(__webpack_exports__ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("var __filename = \"/index.js\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MainScreen: () => (/* binding */ MainScreen)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _001_GuiStateProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./001_GuiStateProvider */ \"./src/components/demo/001_GuiStateProvider.tsx\");\n/* harmony import */ var _001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../001_provider/001_AppStateProvider */ \"./src/001_provider/001_AppStateProvider.tsx\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _hooks_useMessageBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../hooks/useMessageBuilder */ \"./src/hooks/useMessageBuilder.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/utils */ \"./src/utils/utils.ts\");\n\n\n\n\n\n\n\n\nvar MainScreen = function MainScreen(props) {\n var _useAppState = (0,_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_4__.useAppState)(),\n serverSetting = _useAppState.serverSetting;\n var guiState = (0,_001_GuiStateProvider__WEBPACK_IMPORTED_MODULE_3__.useGuiState)();\n var messageBuilderState = (0,_hooks_useMessageBuilder__WEBPACK_IMPORTED_MODULE_6__.useMessageBuilder)();\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n messageBuilderState.setMessage(__filename, \"change_icon\", {\n ja: \"アイコン変更\",\n en: \"change icon\"\n });\n messageBuilderState.setMessage(__filename, \"rename\", {\n ja: \"リネーム\",\n en: \"rename\"\n });\n messageBuilderState.setMessage(__filename, \"download\", {\n ja: \"ダウンロード\",\n en: \"download\"\n });\n messageBuilderState.setMessage(__filename, \"terms_of_use\", {\n ja: \"利用規約\",\n en: \"terms of use\"\n });\n messageBuilderState.setMessage(__filename, \"sample\", {\n ja: \"サンプル\",\n en: \"DL sample\"\n });\n messageBuilderState.setMessage(__filename, \"upload\", {\n ja: \"アップロード\",\n en: \"upload\"\n });\n messageBuilderState.setMessage(__filename, \"edit\", {\n ja: \"編集\",\n en: \"edit\"\n });\n messageBuilderState.setMessage(__filename, \"close\", {\n ja: \"閉じる\",\n en: \"close\"\n });\n }, []);\n var screen = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n if (props.screen != \"Main\") {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n }\n if (!serverSetting.serverSetting.modelSlots) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n }\n var iconAction = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(index) {\n var file;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(!serverSetting.serverSetting.modelSlots[index].name || serverSetting.serverSetting.modelSlots[index].name.length == 0)) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n _context.next = 4;\n return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__.fileSelector)(\"\");\n case 4:\n file = _context.sent;\n if (!((0,_utils_utils__WEBPACK_IMPORTED_MODULE_7__.checkExtention)(file.name, [\"png\", \"jpg\", \"jpeg\", \"gif\"]) == false)) {\n _context.next = 8;\n break;\n }\n alert(\"\\u30B5\\u30E0\\u30CD\\u30A4\\u30EB\\u306E\\u62E1\\u5F35\\u5B50\\u306F\\\".png\\\", \\\".jpg\\\", \\\".jpeg\\\", \\\".gif\\\"\\u3067\\u3042\\u308B\\u5FC5\\u8981\\u304C\\u3042\\u308A\\u307E\\u3059\\u3002\");\n return _context.abrupt(\"return\");\n case 8:\n _context.next = 10;\n return serverSetting.uploadAssets(index, \"iconFile\", file);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function iconAction(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n var nameValueAction = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(index) {\n var p, text;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(!serverSetting.serverSetting.modelSlots[index].name || serverSetting.serverSetting.modelSlots[index].name.length == 0)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n // Open Text Input Dialog\n p = new Promise(function (resolve) {\n guiState.setTextInputResolve({\n resolve: resolve\n });\n });\n guiState.stateControls.showTextInputCheckbox.updateState(true);\n _context2.next = 6;\n return p;\n case 6:\n text = _context2.sent;\n if (!(text.length > 0)) {\n _context2.next = 11;\n break;\n }\n console.log(\"input text:\", text);\n _context2.next = 11;\n return serverSetting.updateModelInfo(index, \"name\", text);\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function nameValueAction(_x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n var fileValueAction = function fileValueAction(url) {\n if (url.length == 0) {\n return;\n }\n var link = document.createElement(\"a\");\n link.href = \"./\" + url;\n link.download = url.replace(/^.*[\\\\\\/]/, \"\");\n link.click();\n link.remove();\n };\n var closeButtonRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-row split-3-4-3 left-padding-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-item-text\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-button-container body-button-container-space-around\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-button\",\n onClick: function onClick() {\n props.close();\n }\n }, messageBuilderState.getMessage(__filename, \"close\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-item-text\"\n }));\n var slotRow = serverSetting.serverSetting.modelSlots.map(function (x, index) {\n // モデルのアイコン\n var generateIconArea = function generateIconArea(slotIndex, iconUrl, tooltip) {\n var realIconUrl = iconUrl.length > 0 ? serverSetting.serverSetting.voiceChangerParams.model_dir + \"/\" + slotIndex + \"/\" + iconUrl.split(/[\\/\\\\]/).pop() : \"/assets/icons/noimage.png\";\n var iconDivClass = tooltip ? \"tooltip\" : \"\";\n var iconClass = tooltip ? \"model-slot-icon-pointable\" : \"model-slot-icon\";\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: iconDivClass\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"img\", {\n src: realIconUrl,\n className: iconClass,\n onClick: function onClick() {\n iconAction(slotIndex);\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin tooltip-text-lower\"\n }, messageBuilderState.getMessage(__filename, \"change_icon\")));\n };\n\n // モデルの名前\n var generateNameRow = function generateNameRow(slotIndex, name, termsOfUseUrl) {\n var nameValueClass = name.length > 0 ? \"model-slot-detail-row-value-pointable tooltip\" : \"model-slot-detail-row-value\";\n var displayName = name.length > 0 ? name : \"blank\";\n var termOfUseUrlLink = termsOfUseUrl.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"a\", {\n href: termsOfUseUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"body-item-text-small\"\n }, \"[\", messageBuilderState.getMessage(__filename, \"terms_of_use\"), \"]\") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, \"[\", slotIndex, \"]\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: nameValueClass,\n onClick: function onClick() {\n nameValueAction(slotIndex);\n }\n }, displayName, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin\"\n }, messageBuilderState.getMessage(__filename, \"rename\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"\"\n }, termOfUseUrlLink));\n };\n\n // モデルを構成するファイル\n var generateFileRow = function generateFileRow(title, filePath) {\n var fileValueClass = filePath.length > 0 ? \"model-slot-detail-row-value-download tooltip\" : \"model-slot-detail-row-value\";\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n key: \"\".concat(title),\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, title, \":\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: fileValueClass,\n onClick: function onClick() {\n fileValueAction(filePath);\n }\n }, (0,_utils_utils__WEBPACK_IMPORTED_MODULE_7__.trimfileName)(filePath, 20), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin\"\n }, messageBuilderState.getMessage(__filename, \"download\"))));\n };\n\n // その他情報欄\n var generateInfoRow = function generateInfoRow(info) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, \"info: \"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-value\"\n }, info), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"\"\n }));\n };\n var iconArea = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n var nameRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n var fileRows = [];\n var infoRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n if (x.voiceChangerType == \"RVC\") {\n var slotInfo = x;\n iconArea = generateIconArea(index, slotInfo.iconFile, true);\n nameRow = generateNameRow(index, slotInfo.name, slotInfo.termsOfUseUrl);\n fileRows.push(generateFileRow(\"model\", slotInfo.modelFile));\n fileRows.push(generateFileRow(\"index\", slotInfo.indexFile));\n infoRow = generateInfoRow(\"\".concat(slotInfo.f0 ? \"f0\" : \"nof0\", \", \").concat(slotInfo.samplingRate, \", \").concat(slotInfo.embChannels, \", \").concat(slotInfo.modelType, \", \").concat(slotInfo.defaultTune, \", \").concat(slotInfo.defaultIndexRatio, \", \").concat(slotInfo.defaultProtect));\n } else if (x.voiceChangerType == \"MMVCv13\") {\n var _slotInfo = x;\n iconArea = generateIconArea(index, _slotInfo.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo.name, _slotInfo.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo.modelFile));\n infoRow = generateInfoRow(\"\");\n } else if (x.voiceChangerType == \"MMVCv15\") {\n var _slotInfo2 = x;\n iconArea = generateIconArea(index, _slotInfo2.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo2.name, _slotInfo2.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo2.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo2.modelFile));\n infoRow = generateInfoRow(\"f0factor:\".concat(_slotInfo2.f0Factor));\n } else if (x.voiceChangerType == \"so-vits-svc-40\") {\n var _slotInfo3 = x;\n iconArea = generateIconArea(index, _slotInfo3.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo3.name, _slotInfo3.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo3.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo3.modelFile));\n fileRows.push(generateFileRow(\"cluster\", _slotInfo3.clusterFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo3.defaultTune, \",cluster:\").concat(_slotInfo3.defaultClusterInferRatio, \",noise:\").concat(_slotInfo3.noiseScale));\n } else if (x.voiceChangerType == \"DDSP-SVC\") {\n var _slotInfo4 = x;\n iconArea = generateIconArea(index, _slotInfo4.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo4.name, _slotInfo4.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo4.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo4.modelFile));\n fileRows.push(generateFileRow(\"diff conf\", _slotInfo4.diffConfigFile));\n fileRows.push(generateFileRow(\"diff model\", _slotInfo4.diffModelFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo4.defaultTune, \",acc:\").concat(_slotInfo4.acc, \",ks:\").concat(_slotInfo4.kstep, \", diff:\").concat(_slotInfo4.diffusion, \",enh:\").concat(_slotInfo4.enhancer));\n } else if (x.voiceChangerType == \"Diffusion-SVC\") {\n var _slotInfo5 = x;\n iconArea = generateIconArea(index, _slotInfo5.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo5.name, _slotInfo5.termsOfUseUrl);\n fileRows.push(generateFileRow(\"model\", _slotInfo5.modelFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo5.defaultTune, \",mks:\").concat(_slotInfo5.kStepMax, \",ks:\").concat(_slotInfo5.defaultKstep, \", sp:\").concat(_slotInfo5.defaultSpeedup, \", l:\").concat(_slotInfo5.nLayers, \",\").concat(_slotInfo5.nnLayers, \",\"));\n } else {\n iconArea = generateIconArea(index, \"/assets/icons/blank.png\", false);\n nameRow = generateNameRow(index, \"\", \"\");\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n key: index,\n className: \"model-slot\"\n }, iconArea, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail\"\n }, nameRow, fileRows, infoRow), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-buttons\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openFileUploader(index);\n }\n }, messageBuilderState.getMessage(__filename, \"upload\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openSampleDownloader(index);\n }\n }, messageBuilderState.getMessage(__filename, \"sample\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openEditor(index);\n }\n }, messageBuilderState.getMessage(__filename, \"edit\"))));\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-frame\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-title\"\n }, \"Model Slot Configuration\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-fixed-size-content\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-container\"\n }, slotRow), closeButtonRow));\n }, [props.screen, serverSetting.serverSetting]);\n return screen;\n};\n\n//# sourceURL=webpack://demo/./src/components/demo/904-1_MainScreen.tsx?"); +eval("var __filename = \"/index.js\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MainScreen: () => (/* binding */ MainScreen)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _001_GuiStateProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./001_GuiStateProvider */ \"./src/components/demo/001_GuiStateProvider.tsx\");\n/* harmony import */ var _001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../001_provider/001_AppStateProvider */ \"./src/001_provider/001_AppStateProvider.tsx\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _hooks_useMessageBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../hooks/useMessageBuilder */ \"./src/hooks/useMessageBuilder.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/utils */ \"./src/utils/utils.ts\");\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../const */ \"./src/const.ts\");\n\n\n\n\n\n\n\n\n\nvar MainScreen = function MainScreen(props) {\n var _useAppState = (0,_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_4__.useAppState)(),\n serverSetting = _useAppState.serverSetting;\n var guiState = (0,_001_GuiStateProvider__WEBPACK_IMPORTED_MODULE_3__.useGuiState)();\n var messageBuilderState = (0,_hooks_useMessageBuilder__WEBPACK_IMPORTED_MODULE_6__.useMessageBuilder)();\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n messageBuilderState.setMessage(__filename, \"change_icon\", {\n ja: \"アイコン変更\",\n en: \"change icon\"\n });\n messageBuilderState.setMessage(__filename, \"rename\", {\n ja: \"リネーム\",\n en: \"rename\"\n });\n messageBuilderState.setMessage(__filename, \"download\", {\n ja: \"ダウンロード\",\n en: \"download\"\n });\n messageBuilderState.setMessage(__filename, \"terms_of_use\", {\n ja: \"利用規約\",\n en: \"terms of use\"\n });\n messageBuilderState.setMessage(__filename, \"sample\", {\n ja: \"サンプル\",\n en: \"DL sample\"\n });\n messageBuilderState.setMessage(__filename, \"upload\", {\n ja: \"アップロード\",\n en: \"upload\"\n });\n messageBuilderState.setMessage(__filename, \"edit\", {\n ja: \"編集\",\n en: \"edit\"\n });\n messageBuilderState.setMessage(__filename, \"close\", {\n ja: \"閉じる\",\n en: \"close\"\n });\n }, []);\n var screen = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n if (props.screen != \"Main\") {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n }\n if (!serverSetting.serverSetting.modelSlots) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n }\n var iconAction = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(index) {\n var file;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(!serverSetting.serverSetting.modelSlots[index].name || serverSetting.serverSetting.modelSlots[index].name.length == 0)) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n _context.next = 4;\n return (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_5__.fileSelector)(\"\");\n case 4:\n file = _context.sent;\n if (!((0,_utils_utils__WEBPACK_IMPORTED_MODULE_7__.checkExtention)(file.name, [\"png\", \"jpg\", \"jpeg\", \"gif\"]) == false)) {\n _context.next = 8;\n break;\n }\n alert(\"\\u30B5\\u30E0\\u30CD\\u30A4\\u30EB\\u306E\\u62E1\\u5F35\\u5B50\\u306F\\\".png\\\", \\\".jpg\\\", \\\".jpeg\\\", \\\".gif\\\"\\u3067\\u3042\\u308B\\u5FC5\\u8981\\u304C\\u3042\\u308A\\u307E\\u3059\\u3002\");\n return _context.abrupt(\"return\");\n case 8:\n _context.next = 10;\n return serverSetting.uploadAssets(index, \"iconFile\", file);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function iconAction(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n var nameValueAction = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(index) {\n var p, text;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(!serverSetting.serverSetting.modelSlots[index].name || serverSetting.serverSetting.modelSlots[index].name.length == 0)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n // Open Text Input Dialog\n p = new Promise(function (resolve) {\n guiState.setTextInputResolve({\n resolve: resolve\n });\n });\n guiState.stateControls.showTextInputCheckbox.updateState(true);\n _context2.next = 6;\n return p;\n case 6:\n text = _context2.sent;\n if (!(text.length > 0)) {\n _context2.next = 11;\n break;\n }\n console.log(\"input text:\", text);\n _context2.next = 11;\n return serverSetting.updateModelInfo(index, \"name\", text);\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function nameValueAction(_x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n var fileValueAction = function fileValueAction(url) {\n if (url.length == 0) {\n return;\n }\n var link = document.createElement(\"a\");\n link.href = \"./\" + url;\n link.download = url.replace(/^.*[\\\\\\/]/, \"\");\n link.click();\n link.remove();\n };\n var closeButtonRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-row split-3-4-3 left-padding-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-item-text\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-button-container body-button-container-space-around\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-button\",\n onClick: function onClick() {\n props.close();\n }\n }, messageBuilderState.getMessage(__filename, \"close\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"body-item-text\"\n }));\n var slotRow = serverSetting.serverSetting.modelSlots.map(function (x, index) {\n // モデルのアイコン\n var generateIconArea = function generateIconArea(slotIndex, iconUrl, tooltip) {\n var realIconUrl = _const__WEBPACK_IMPORTED_MODULE_8__.MODEL_ICON_BLANK_URL;\n if (iconUrl) {\n realIconUrl = iconUrl.length > 0 ? serverSetting.serverSetting.voiceChangerParams.model_dir + \"/\" + slotIndex + \"/\" + iconUrl.split(/[\\/\\\\]/).pop() : \"/assets/icons/noimage.png\";\n }\n var iconDivClass = tooltip ? \"tooltip\" : \"\";\n var iconClass = tooltip ? \"model-slot-icon-pointable\" : \"model-slot-icon\";\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: iconDivClass\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"img\", {\n src: realIconUrl,\n className: iconClass,\n onClick: function onClick() {\n iconAction(slotIndex);\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin tooltip-text-lower\"\n }, messageBuilderState.getMessage(__filename, \"change_icon\")));\n };\n\n // モデルの名前\n var generateNameRow = function generateNameRow(slotIndex, name, termsOfUseUrl) {\n var nameValueClass = name.length > 0 ? \"model-slot-detail-row-value-pointable tooltip\" : \"model-slot-detail-row-value\";\n var displayName = name.length > 0 ? name : \"blank\";\n var termOfUseUrlLink = termsOfUseUrl.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"a\", {\n href: termsOfUseUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"body-item-text-small\"\n }, \"[\", messageBuilderState.getMessage(__filename, \"terms_of_use\"), \"]\") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, \"[\", slotIndex, \"]\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: nameValueClass,\n onClick: function onClick() {\n nameValueAction(slotIndex);\n }\n }, displayName, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin\"\n }, messageBuilderState.getMessage(__filename, \"rename\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"\"\n }, termOfUseUrlLink));\n };\n\n // モデルを構成するファイル\n var generateFileRow = function generateFileRow(title, filePath) {\n var fileValueClass = filePath.length > 0 ? \"model-slot-detail-row-value-download tooltip\" : \"model-slot-detail-row-value\";\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n key: \"\".concat(title),\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, title, \":\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: fileValueClass,\n onClick: function onClick() {\n fileValueAction(filePath);\n }\n }, (0,_utils_utils__WEBPACK_IMPORTED_MODULE_7__.trimfileName)(filePath, 20), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"tooltip-text tooltip-text-thin\"\n }, messageBuilderState.getMessage(__filename, \"download\"))));\n };\n\n // その他情報欄\n var generateInfoRow = function generateInfoRow(info) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-label\"\n }, \"info: \"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail-row-value\"\n }, info), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"\"\n }));\n };\n var iconArea = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n var nameRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n var fileRows = [];\n var infoRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null);\n if (x.voiceChangerType == \"RVC\") {\n var slotInfo = x;\n iconArea = generateIconArea(index, slotInfo.iconFile, true);\n nameRow = generateNameRow(index, slotInfo.name, slotInfo.termsOfUseUrl);\n fileRows.push(generateFileRow(\"model\", slotInfo.modelFile));\n fileRows.push(generateFileRow(\"index\", slotInfo.indexFile));\n infoRow = generateInfoRow(\"\".concat(slotInfo.f0 ? \"f0\" : \"nof0\", \", \").concat(slotInfo.samplingRate, \", \").concat(slotInfo.embChannels, \", \").concat(slotInfo.modelType, \", \").concat(slotInfo.defaultTune, \", \").concat(slotInfo.defaultIndexRatio, \", \").concat(slotInfo.defaultProtect));\n } else if (x.voiceChangerType == \"MMVCv13\") {\n var _slotInfo = x;\n iconArea = generateIconArea(index, _slotInfo.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo.name, _slotInfo.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo.modelFile));\n infoRow = generateInfoRow(\"\");\n } else if (x.voiceChangerType == \"MMVCv15\") {\n var _slotInfo2 = x;\n iconArea = generateIconArea(index, _slotInfo2.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo2.name, _slotInfo2.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo2.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo2.modelFile));\n infoRow = generateInfoRow(\"f0factor:\".concat(_slotInfo2.f0Factor));\n } else if (x.voiceChangerType == \"so-vits-svc-40\") {\n var _slotInfo3 = x;\n iconArea = generateIconArea(index, _slotInfo3.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo3.name, _slotInfo3.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo3.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo3.modelFile));\n fileRows.push(generateFileRow(\"cluster\", _slotInfo3.clusterFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo3.defaultTune, \",cluster:\").concat(_slotInfo3.defaultClusterInferRatio, \",noise:\").concat(_slotInfo3.noiseScale));\n } else if (x.voiceChangerType == \"DDSP-SVC\") {\n var _slotInfo4 = x;\n iconArea = generateIconArea(index, _slotInfo4.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo4.name, _slotInfo4.termsOfUseUrl);\n fileRows.push(generateFileRow(\"config\", _slotInfo4.configFile));\n fileRows.push(generateFileRow(\"model\", _slotInfo4.modelFile));\n fileRows.push(generateFileRow(\"diff conf\", _slotInfo4.diffConfigFile));\n fileRows.push(generateFileRow(\"diff model\", _slotInfo4.diffModelFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo4.defaultTune, \",acc:\").concat(_slotInfo4.acc, \",ks:\").concat(_slotInfo4.kstep, \", diff:\").concat(_slotInfo4.diffusion, \",enh:\").concat(_slotInfo4.enhancer));\n } else if (x.voiceChangerType == \"Diffusion-SVC\") {\n var _slotInfo5 = x;\n iconArea = generateIconArea(index, _slotInfo5.iconFile, true);\n nameRow = generateNameRow(index, _slotInfo5.name, _slotInfo5.termsOfUseUrl);\n fileRows.push(generateFileRow(\"model\", _slotInfo5.modelFile));\n infoRow = generateInfoRow(\"tune:\".concat(_slotInfo5.defaultTune, \",mks:\").concat(_slotInfo5.kStepMax, \",ks:\").concat(_slotInfo5.defaultKstep, \", sp:\").concat(_slotInfo5.defaultSpeedup, \", l:\").concat(_slotInfo5.nLayers, \",\").concat(_slotInfo5.nnLayers, \",\"));\n } else {\n iconArea = generateIconArea(index, null, false);\n nameRow = generateNameRow(index, \"\", \"\");\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n key: index,\n className: \"model-slot\"\n }, iconArea, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-detail\"\n }, nameRow, fileRows, infoRow), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-buttons\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openFileUploader(index);\n }\n }, messageBuilderState.getMessage(__filename, \"upload\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openSampleDownloader(index);\n }\n }, messageBuilderState.getMessage(__filename, \"sample\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-button\",\n onClick: function onClick() {\n props.openEditor(index);\n }\n }, messageBuilderState.getMessage(__filename, \"edit\"))));\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-frame\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-title\"\n }, \"Model Slot Configuration\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"dialog-fixed-size-content\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"model-slot-container\"\n }, slotRow), closeButtonRow));\n }, [props.screen, serverSetting.serverSetting]);\n return screen;\n};\n\n//# sourceURL=webpack://demo/./src/components/demo/904-1_MainScreen.tsx?"); /***/ }), @@ -510,7 +510,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AUDIO_ELEMENT_FOR_PLAY_MONITOR: () => (/* binding */ AUDIO_ELEMENT_FOR_PLAY_MONITOR),\n/* harmony export */ AUDIO_ELEMENT_FOR_PLAY_RESULT: () => (/* binding */ AUDIO_ELEMENT_FOR_PLAY_RESULT),\n/* harmony export */ AUDIO_ELEMENT_FOR_SAMPLING_INPUT: () => (/* binding */ AUDIO_ELEMENT_FOR_SAMPLING_INPUT),\n/* harmony export */ AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT: () => (/* binding */ AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_CONVERTED: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_ORIGINAL: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_ORIGINAL),\n/* harmony export */ INDEXEDDB_KEY_AUDIO_MONITR: () => (/* binding */ INDEXEDDB_KEY_AUDIO_MONITR),\n/* harmony export */ INDEXEDDB_KEY_AUDIO_OUTPUT: () => (/* binding */ INDEXEDDB_KEY_AUDIO_OUTPUT),\n/* harmony export */ INDEXEDDB_KEY_DEFAULT_MODEL_TYPE: () => (/* binding */ INDEXEDDB_KEY_DEFAULT_MODEL_TYPE),\n/* harmony export */ isDesktopApp: () => (/* binding */ isDesktopApp)\n/* harmony export */ });\nvar AUDIO_ELEMENT_FOR_PLAY_RESULT = \"audio-result\"; // 変換後の出力用プレイヤー\nvar AUDIO_ELEMENT_FOR_PLAY_MONITOR = \"audio-monitor\"; // 変換後のモニター用プレイヤー\nvar AUDIO_ELEMENT_FOR_TEST_ORIGINAL = \"audio-test-original\"; // ??? 使ってないかも。\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED = \"audio-test-converted\"; // ファイルインプットのコントロール\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK = \"audio-test-converted-echoback\"; // ファイルインプットのエコーバック\n\nvar AUDIO_ELEMENT_FOR_SAMPLING_INPUT = \"body-wav-container-wav-input\";\nvar AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT = \"body-wav-container-wav-output\";\nvar INDEXEDDB_KEY_AUDIO_OUTPUT = \"INDEXEDDB_KEY_AUDIO_OUTPUT\";\nvar INDEXEDDB_KEY_AUDIO_MONITR = \"INDEXEDDB_KEY_AUDIO_MONITOR\";\nvar INDEXEDDB_KEY_DEFAULT_MODEL_TYPE = \"INDEXEDDB_KEY_DEFALT_MODEL_TYPE\";\nvar isDesktopApp = function isDesktopApp() {\n if (navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n } else {\n return false;\n }\n};\n\n//# sourceURL=webpack://demo/./src/const.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AUDIO_ELEMENT_FOR_PLAY_MONITOR: () => (/* binding */ AUDIO_ELEMENT_FOR_PLAY_MONITOR),\n/* harmony export */ AUDIO_ELEMENT_FOR_PLAY_RESULT: () => (/* binding */ AUDIO_ELEMENT_FOR_PLAY_RESULT),\n/* harmony export */ AUDIO_ELEMENT_FOR_SAMPLING_INPUT: () => (/* binding */ AUDIO_ELEMENT_FOR_SAMPLING_INPUT),\n/* harmony export */ AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT: () => (/* binding */ AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_CONVERTED: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK),\n/* harmony export */ AUDIO_ELEMENT_FOR_TEST_ORIGINAL: () => (/* binding */ AUDIO_ELEMENT_FOR_TEST_ORIGINAL),\n/* harmony export */ INDEXEDDB_KEY_AUDIO_MONITR: () => (/* binding */ INDEXEDDB_KEY_AUDIO_MONITR),\n/* harmony export */ INDEXEDDB_KEY_AUDIO_OUTPUT: () => (/* binding */ INDEXEDDB_KEY_AUDIO_OUTPUT),\n/* harmony export */ INDEXEDDB_KEY_DEFAULT_MODEL_TYPE: () => (/* binding */ INDEXEDDB_KEY_DEFAULT_MODEL_TYPE),\n/* harmony export */ MODEL_ICON_BLANK_URL: () => (/* binding */ MODEL_ICON_BLANK_URL),\n/* harmony export */ isDesktopApp: () => (/* binding */ isDesktopApp)\n/* harmony export */ });\nvar AUDIO_ELEMENT_FOR_PLAY_RESULT = \"audio-result\"; // 変換後の出力用プレイヤー\nvar AUDIO_ELEMENT_FOR_PLAY_MONITOR = \"audio-monitor\"; // 変換後のモニター用プレイヤー\nvar AUDIO_ELEMENT_FOR_TEST_ORIGINAL = \"audio-test-original\"; // ??? 使ってないかも。\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED = \"audio-test-converted\"; // ファイルインプットのコントロール\nvar AUDIO_ELEMENT_FOR_TEST_CONVERTED_ECHOBACK = \"audio-test-converted-echoback\"; // ファイルインプットのエコーバック\n\nvar AUDIO_ELEMENT_FOR_SAMPLING_INPUT = \"body-wav-container-wav-input\";\nvar AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT = \"body-wav-container-wav-output\";\nvar INDEXEDDB_KEY_AUDIO_OUTPUT = \"INDEXEDDB_KEY_AUDIO_OUTPUT\";\nvar INDEXEDDB_KEY_AUDIO_MONITR = \"INDEXEDDB_KEY_AUDIO_MONITOR\";\nvar INDEXEDDB_KEY_DEFAULT_MODEL_TYPE = \"INDEXEDDB_KEY_DEFALT_MODEL_TYPE\";\nvar MODEL_ICON_BLANK_URL = \"/assets/icons/blank.png\";\nvar isDesktopApp = function isDesktopApp() {\n if (navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n } else {\n return false;\n }\n};\n\n//# sourceURL=webpack://demo/./src/const.ts?"); /***/ }), diff --git a/client/demo/src/components/demo/904-1_MainScreen.tsx b/client/demo/src/components/demo/904-1_MainScreen.tsx index 7172c22f..743f7bab 100644 --- a/client/demo/src/components/demo/904-1_MainScreen.tsx +++ b/client/demo/src/components/demo/904-1_MainScreen.tsx @@ -5,6 +5,7 @@ import { DDSPSVCModelSlot, DiffusionSVCModelSlot, MMVCv13ModelSlot, MMVCv15Model import { useMessageBuilder } from "../../hooks/useMessageBuilder"; import { ModelSlotManagerDialogScreen } from "./904_ModelSlotManagerDialog"; import { checkExtention, trimfileName } from "../../utils/utils"; +import { MODEL_ICON_BLANK_URL } from "../../const"; export type MainScreenProps = { screen: ModelSlotManagerDialogScreen; @@ -98,8 +99,11 @@ export const MainScreen = (props: MainScreenProps) => { const slotRow = serverSetting.serverSetting.modelSlots.map((x, index) => { // モデルのアイコン - const generateIconArea = (slotIndex: number, iconUrl: string, tooltip: boolean) => { - const realIconUrl = iconUrl.length > 0 ? serverSetting.serverSetting.voiceChangerParams.model_dir + "/" + slotIndex + "/" + iconUrl.split(/[\/\\]/).pop() : "/assets/icons/noimage.png"; + const generateIconArea = (slotIndex: number, iconUrl: string | null, tooltip: boolean) => { + let realIconUrl = MODEL_ICON_BLANK_URL; + if (iconUrl) { + realIconUrl = iconUrl.length > 0 ? serverSetting.serverSetting.voiceChangerParams.model_dir + "/" + slotIndex + "/" + iconUrl.split(/[\/\\]/).pop() : "/assets/icons/noimage.png"; + } const iconDivClass = tooltip ? "tooltip" : ""; const iconClass = tooltip ? "model-slot-icon-pointable" : "model-slot-icon"; return ( @@ -225,7 +229,7 @@ export const MainScreen = (props: MainScreenProps) => { fileRows.push(generateFileRow("model", slotInfo.modelFile)); infoRow = generateInfoRow(`tune:${slotInfo.defaultTune},mks:${slotInfo.kStepMax},ks:${slotInfo.defaultKstep}, sp:${slotInfo.defaultSpeedup}, l:${slotInfo.nLayers},${slotInfo.nnLayers},`); } else { - iconArea = generateIconArea(index, "/assets/icons/blank.png", false); + iconArea = generateIconArea(index, null, false); nameRow = generateNameRow(index, "", ""); } return ( diff --git a/client/demo/src/const.ts b/client/demo/src/const.ts index eb70c4f3..a2151aa2 100644 --- a/client/demo/src/const.ts +++ b/client/demo/src/const.ts @@ -12,6 +12,7 @@ export const INDEXEDDB_KEY_AUDIO_OUTPUT = "INDEXEDDB_KEY_AUDIO_OUTPUT" export const INDEXEDDB_KEY_AUDIO_MONITR = "INDEXEDDB_KEY_AUDIO_MONITOR" export const INDEXEDDB_KEY_DEFAULT_MODEL_TYPE = "INDEXEDDB_KEY_DEFALT_MODEL_TYPE" +export const MODEL_ICON_BLANK_URL = "/assets/icons/blank.png" export const isDesktopApp = () => { if (navigator.userAgent.indexOf('Electron') >= 0) {