From 670d2c016d30bbdf1bb44bee343ecd4899931069 Mon Sep 17 00:00:00 2001 From: morvanzhou Date: Sat, 25 May 2024 00:38:44 +0800 Subject: [PATCH] feat(app): - add delete msg box and wait delete - add total node count --- src/retk/controllers/account.py | 14 +-- src/retk/controllers/oauth.py | 4 +- src/retk/controllers/schemas/user.py | 43 +------ src/retk/controllers/user.py | 5 +- src/retk/controllers/utils.py | 45 +++++++- src/retk/core/user.py | 4 + .../{app.8910a837.css => app.0cb61b64.css} | 67 ++++++++++- src/retk/dist-local/index.html | 2 +- src/retk/dist-local/js/app.js | 108 +++++++++++++++--- tests/test_api.py | 1 + 10 files changed, 223 insertions(+), 70 deletions(-) rename src/retk/dist-local/css/{app.8910a837.css => app.0cb61b64.css} (98%) diff --git a/src/retk/controllers/account.py b/src/retk/controllers/account.py index 8267b13..c3e9ff6 100644 --- a/src/retk/controllers/account.py +++ b/src/retk/controllers/account.py @@ -5,13 +5,13 @@ from retk import config, const, safety from retk.controllers import schemas -from retk.controllers.utils import json_exception +from retk.controllers.utils import json_exception, get_user_info_response_from_u_dict from retk.core import account, user, statistic from retk.models.tps import AuthedUser, UserMeta from retk.utils import get_token, jwt_encode, jwt_decode -def set_cookie_response( +async def set_cookie_response( u: Union[UserMeta, Dict[str, str]], req_id: str, status_code: int, @@ -26,7 +26,7 @@ def set_cookie_response( log_msg="user id not found", ) if len(u) > 1: - content = schemas.user.get_user_info_response_from_u_dict(u, request_id=req_id).model_dump() + content = (await get_user_info_response_from_u_dict(u, request_id=req_id)).model_dump() else: content = {"requestId": req_id} resp = JSONResponse( @@ -97,7 +97,7 @@ async def signup( uid=new_user["id"], language=req.language, ) - return set_cookie_response( + return await set_cookie_response( u=new_user, req_id=req_id, status_code=201, @@ -146,7 +146,7 @@ async def login( type_=const.UserBehaviorTypeEnum.LOGIN, remark="", ) - return set_cookie_response( + return await set_cookie_response( u=u, req_id=req_id, status_code=200, @@ -171,7 +171,7 @@ async def auto_login( u, code = await user.get(uid=payload["uid"], disabled=False) if code != const.CodeEnum.OK: return r - return schemas.user.get_user_info_response_from_u_dict(u, request_id=req_id) + return await get_user_info_response_from_u_dict(u, request_id=req_id) async def logout( @@ -325,7 +325,7 @@ async def get_new_access_token( "language": au.language, }, ) - return set_cookie_response( + return await set_cookie_response( u={"id": au.u.id}, req_id=au.request_id, status_code=200, diff --git a/src/retk/controllers/oauth.py b/src/retk/controllers/oauth.py index dd6c5e1..afce57c 100644 --- a/src/retk/controllers/oauth.py +++ b/src/retk/controllers/oauth.py @@ -91,7 +91,7 @@ async def provider_callback(provider_name: str, req: Request) -> JSONResponse: language=u["settings"]["language"], ) - return set_cookie_response( + return await set_cookie_response( u=u, req_id="", status_code=200, @@ -128,7 +128,7 @@ async def provider_callback(provider_name: str, req: Request) -> JSONResponse: uid=u["id"], language=language, ) - return set_cookie_response( + return await set_cookie_response( u=u, req_id="", status_code=201, diff --git a/src/retk/controllers/schemas/user.py b/src/retk/controllers/schemas/user.py index 4471fe7..d0c18e0 100644 --- a/src/retk/controllers/schemas/user.py +++ b/src/retk/controllers/schemas/user.py @@ -3,10 +3,7 @@ from pydantic import BaseModel, NonNegativeInt, Field, NonNegativeFloat -from retk import config -from retk.const import settings, LanguageEnum, app, NodeDisplaySortKeyEnum, USER_TYPE -from retk.models import tps -from retk.utils import datetime2str +from retk.const import settings, LanguageEnum, app, NodeDisplaySortKeyEnum class UserInfoResponse(BaseModel): @@ -33,6 +30,7 @@ class Settings(BaseModel): maxSpace: NonNegativeInt = 0 lastState: LastState settings: Settings + totalNodes: NonNegativeInt = 0 requestId: str user: User = None @@ -65,43 +63,6 @@ class UpdatePasswordRequest(BaseModel): newPassword: str = Field(max_length=settings.PASSWORD_MAX_LENGTH) -def get_user_info_response_from_u_dict( - u: tps.UserMeta, - request_id: str, -) -> UserInfoResponse: - if config.is_local_db(): - max_space = 0 - else: - max_space = USER_TYPE.id2config(u["type"]).max_store_space - last_state = u["lastState"] - u_settings = u["settings"] - return UserInfoResponse( - requestId=request_id, - user=UserInfoResponse.User( - email=u["email"], - nickname=u["nickname"], - avatar=u["avatar"], - source=u["source"], - createdAt=datetime2str(u["_id"].generation_time), - usedSpace=u["usedSpace"], - maxSpace=max_space, - lastState=UserInfoResponse.User.LastState( - nodeDisplayMethod=last_state["nodeDisplayMethod"], - nodeDisplaySortKey=last_state["nodeDisplaySortKey"], - ), - settings=UserInfoResponse.User.Settings( - language=u_settings["language"], - theme=u_settings["theme"], - editorMode=u_settings["editorMode"], - editorFontSize=u_settings["editorFontSize"], - editorCodeTheme=u_settings["editorCodeTheme"], - editorSepRightWidth=u_settings.get("editorSepRightWidth", 200), - editorSideCurrentToolId=u_settings.get("editorSideCurrentToolId", ""), - ), - ), - ) - - class NotificationResponse(BaseModel): class System(BaseModel): class Notice(BaseModel): diff --git a/src/retk/controllers/user.py b/src/retk/controllers/user.py index 3398963..54c9e84 100644 --- a/src/retk/controllers/user.py +++ b/src/retk/controllers/user.py @@ -1,6 +1,6 @@ from retk import const, core, config from retk.controllers import schemas -from retk.controllers.utils import maybe_raise_json_exception +from retk.controllers.utils import maybe_raise_json_exception, get_user_info_response_from_u_dict from retk.core import account, notice from retk.core.user import reset_password from retk.models.tps import AuthedUser @@ -38,6 +38,7 @@ async def get_user( editorSepRightWidth=au.u.settings.editor_sep_right_width, editorSideCurrentToolId=au.u.settings.editor_side_current_tool_id, ), + totalNodes=await core.user.get_user_nodes_count(uid=au.u.id, disabled=False, in_trash=False), ), ) @@ -53,7 +54,7 @@ async def patch_user( maybe_raise_json_exception(au=au, code=code) u["email"] = mask_email(u["email"]) - return schemas.user.get_user_info_response_from_u_dict(u=u, request_id=au.request_id) + return await get_user_info_response_from_u_dict(u=u, request_id=au.request_id) async def update_password( diff --git a/src/retk/controllers/utils.py b/src/retk/controllers/utils.py index 160d3b4..243ceda 100644 --- a/src/retk/controllers/utils.py +++ b/src/retk/controllers/utils.py @@ -4,9 +4,12 @@ from fastapi import HTTPException -from retk import const +from retk import const, config +from retk.controllers.schemas.user import UserInfoResponse +from retk.core.user import get_user_nodes_count from retk.logger import logger -from retk.models.tps import AuthedUser +from retk.models.tps import AuthedUser, UserMeta +from retk.utils import datetime2str def is_allowed_mime_type(data_url, allowed_mime_types: Sequence[str]): @@ -71,3 +74,41 @@ def maybe_raise_json_exception( code=code, language=au.language, ) + + +async def get_user_info_response_from_u_dict( + u: UserMeta, + request_id: str, +) -> UserInfoResponse: + if config.is_local_db(): + max_space = 0 + else: + max_space = const.USER_TYPE.id2config(u["type"]).max_store_space + last_state = u["lastState"] + u_settings = u["settings"] + return UserInfoResponse( + requestId=request_id, + user=UserInfoResponse.User( + email=u["email"], + nickname=u["nickname"], + avatar=u["avatar"], + source=u["source"], + createdAt=datetime2str(u["_id"].generation_time), + usedSpace=u["usedSpace"], + maxSpace=max_space, + lastState=UserInfoResponse.User.LastState( + nodeDisplayMethod=last_state["nodeDisplayMethod"], + nodeDisplaySortKey=last_state["nodeDisplaySortKey"], + ), + settings=UserInfoResponse.User.Settings( + language=u_settings["language"], + theme=u_settings["theme"], + editorMode=u_settings["editorMode"], + editorFontSize=u_settings["editorFontSize"], + editorCodeTheme=u_settings["editorCodeTheme"], + editorSepRightWidth=u_settings.get("editorSepRightWidth", 200), + editorSideCurrentToolId=u_settings.get("editorSideCurrentToolId", ""), + ), + totalNodes=await get_user_nodes_count(uid=u["id"], disabled=False, in_trash=False), + ), + ) diff --git a/src/retk/core/user.py b/src/retk/core/user.py index 9c8a76f..cdba796 100644 --- a/src/retk/core/user.py +++ b/src/retk/core/user.py @@ -234,3 +234,7 @@ async def reset_password(uid: str, hashed: str) -> const.CodeEnum: {"$set": {"hashed": hashed}} ) return const.CodeEnum.OK if res.acknowledged == 1 else const.CodeEnum.OPERATION_FAILED + + +async def get_user_nodes_count(uid: str, disabled: bool = False, in_trash: bool = False) -> int: + return await client.coll.nodes.count_documents({"uid": uid, "disabled": disabled, "inTrash": in_trash}) diff --git a/src/retk/dist-local/css/app.8910a837.css b/src/retk/dist-local/css/app.0cb61b64.css similarity index 98% rename from src/retk/dist-local/css/app.8910a837.css rename to src/retk/dist-local/css/app.0cb61b64.css index e3e4b4b..5bf21ed 100644 --- a/src/retk/dist-local/css/app.8910a837.css +++ b/src/retk/dist-local/css/app.0cb61b64.css @@ -21,7 +21,7 @@ body, } .white-font { - color: #f1f1f1; + color: #f6f6f6; } .hover-node-bg:hover { @@ -466,6 +466,28 @@ em.match { overflow-y: auto; } +@keyframes blink { + 0% { + opacity: 1; + } + 25% { + opacity: 0.25; + } + 50% { + opacity: 1; + } + 75% { + opacity: 0.25; + } + 100% { + opacity: 1; + } +} + +.blink { + animation: blink 0.6s; +} + /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&scoped=true&lang=css ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************/ @@ -526,6 +548,29 @@ em.match { .left-side-items[data-v-9c8cfb28] { margin-top: 1em; } +.static[data-v-9c8cfb28] { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-around; + margin-bottom: 1em; +} +.value[data-v-9c8cfb28] { + display: flex; + flex-direction: column; + align-items: center; + color: #606060; +} +.number[data-v-9c8cfb28] { + font-size: 1.5em; + font-weight: 600; +} +.sm-number[data-v-9c8cfb28] { + font-size: 1em; +} +.title[data-v-9c8cfb28] { + font-size: 0.8em; +} .left-side-item[data-v-9c8cfb28] { padding: 10px 20px; cursor: pointer; @@ -5578,3 +5623,23 @@ li[data-v-314222b0] { } +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ + +.del-btn[data-v-0753a324] { + padding: 10px 20px; + border-radius: 5px; + margin-left: 15px; + border: none; + color: #f2f2f2; + background-color: #ff3333; + cursor: pointer; +} +.del-btn[data-v-0753a324]:hover { + color: #ffffff; +} +.deleting[data-v-0753a324] { + background-color: #ff6666; +} + diff --git a/src/retk/dist-local/index.html b/src/retk/dist-local/index.html index a95a181..3b5b49c 100644 --- a/src/retk/dist-local/index.html +++ b/src/retk/dist-local/index.html @@ -13,7 +13,7 @@ rethink - +
diff --git a/src/retk/dist-local/js/app.js b/src/retk/dist-local/js/app.js index 5920c6d..0e0c729 100644 --- a/src/retk/dist-local/js/app.js +++ b/src/retk/dist-local/js/app.js @@ -326,7 +326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ \*********************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n/* harmony import */ var _components_app_nav_left_LeftNavItemButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/app/nav/left/LeftNavItemButton.vue */ \"./src/components/app/nav/left/LeftNavItemButton.vue\");\n/* harmony import */ var _assets_images_icons_home_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/assets/images/icons/home.svg */ \"./src/assets/images/icons/home.svg\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _assets_images_icons_trash_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/assets/images/icons/trash.svg */ \"./src/assets/images/icons/trash.svg\");\n/* harmony import */ var _assets_images_icons_import_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/assets/images/icons/import.svg */ \"./src/assets/images/icons/import.svg\");\n/* harmony import */ var _assets_images_icons_plugin_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/assets/images/icons/plugin.svg */ \"./src/assets/images/icons/plugin.svg\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'LeftItemPanel',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const sideData = [{\n icon: _assets_images_icons_home_svg__WEBPACK_IMPORTED_MODULE_3__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"sideBarHome\"),\n to: {\n name: \"rethink\"\n }\n }, {\n icon: _assets_images_icons_plugin_svg__WEBPACK_IMPORTED_MODULE_7__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"sideBarPlugins\"),\n to: {\n name: \"plugins\"\n }\n }, {\n icon: _assets_images_icons_import_svg__WEBPACK_IMPORTED_MODULE_6__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"sideBarImport\"),\n to: {\n name: \"import\"\n }\n }, {\n icon: _assets_images_icons_trash_svg__WEBPACK_IMPORTED_MODULE_5__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"sideBarTrash\"),\n to: {\n name: \"trash\"\n }\n }];\n const routeName = (0,vue_router__WEBPACK_IMPORTED_MODULE_9__.useRoute)().name;\n const __returned__ = {\n sideData,\n routeName,\n get store() {\n return _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n },\n LeftSideNavButton: _components_app_nav_left_LeftNavItemButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n get router() {\n return _router__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftItemPanel.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n/* harmony import */ var _components_app_nav_left_LeftNavItemButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/app/nav/left/LeftNavItemButton.vue */ \"./src/components/app/nav/left/LeftNavItemButton.vue\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_app_leftNav__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/app/leftNav */ \"./src/utils/app/leftNav.ts\");\n/* harmony import */ var _utils_app_user__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/app/user */ \"./src/utils/app/user.ts\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'LeftItemPanel',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const {\n sideData,\n totalNodesEl,\n day\n } = (0,_utils_app_leftNav__WEBPACK_IMPORTED_MODULE_4__.useLeftNav)();\n const routeName = (0,vue_router__WEBPACK_IMPORTED_MODULE_7__.useRoute)().name;\n const __returned__ = {\n sideData,\n totalNodesEl,\n day,\n routeName,\n get store() {\n return _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n },\n LeftSideNavButton: _components_app_nav_left_LeftNavItemButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n get router() {\n return _router__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n },\n get user() {\n return _utils_app_user__WEBPACK_IMPORTED_MODULE_5__.user;\n },\n get mLang() {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftItemPanel.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -346,7 +346,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ \*************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'LeftNavItemButton',\n props: {\n item: {\n type: Object,\n required: true\n }\n },\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const props = __props;\n const itemClass = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(() => {\n return {\n \"collapsed\": !_utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appLeftSide.show,\n \"no-collapsed\": _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appLeftSide.show\n };\n });\n const __returned__ = {\n props,\n itemClass,\n get store() {\n return _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftNavItemButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'LeftNavItemButton',\n props: {\n item: {\n type: Object,\n required: true\n }\n },\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const props = __props;\n const __returned__ = {\n props,\n get store() {\n return _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftNavItemButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -376,7 +376,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ \********************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _assets_images_icons_plus_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/assets/images/icons/plus.svg */ \"./src/assets/images/icons/plus.svg\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n/* harmony import */ var _utils_requests_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/requests/node */ \"./src/utils/requests/node.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({\n __name: 'CreateNodeButton',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const mq = (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_4__.useMQ)();\n async function goNewNodePage() {\n const n = await (0,_utils_requests_node__WEBPACK_IMPORTED_MODULE_5__.reqPostNode)({\n md: \"\"\n });\n if (n === null) return;\n await _router__WEBPACK_IMPORTED_MODULE_6__[\"default\"].push({\n name: \"node\",\n params: {\n id: n.id\n }\n });\n }\n const __returned__ = {\n mq,\n goNewNodePage,\n get PlusIcon() {\n return _assets_images_icons_plus_svg__WEBPACK_IMPORTED_MODULE_2__;\n },\n get mLang() {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/top/elements/CreateNodeButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _assets_images_icons_plus_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/assets/images/icons/plus.svg */ \"./src/assets/images/icons/plus.svg\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n/* harmony import */ var _utils_requests_node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/requests/node */ \"./src/utils/requests/node.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_app_leftNav__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/app/leftNav */ \"./src/utils/app/leftNav.ts\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'CreateNodeButton',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const mq = (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_3__.useMQ)();\n async function goNewNodePage() {\n const n = await (0,_utils_requests_node__WEBPACK_IMPORTED_MODULE_4__.reqPostNode)({\n md: \"\"\n });\n if (n === null) return;\n (0,_utils_app_leftNav__WEBPACK_IMPORTED_MODULE_6__.increaseLeftNavNodeCount)();\n await _router__WEBPACK_IMPORTED_MODULE_5__[\"default\"].replace({\n name: \"node\",\n params: {\n id: n.id\n }\n });\n }\n const __returned__ = {\n mq,\n goNewNodePage,\n get PlusIcon() {\n return _assets_images_icons_plus_svg__WEBPACK_IMPORTED_MODULE_1__;\n },\n get mLang() {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/top/elements/CreateNodeButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -760,6 +760,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true": +/*!*************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true ***! + \*************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'DeleteConfirmMsgBox',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const delBtnTxt = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(() => {\n const box = _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].msgBox.delete;\n if (!box.confirmed) {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"msgBoxDelete\");\n } else if (box.clicked && !box.deleted) {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"msgBoxDeleting\");\n } else {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"msgBoxDelete\");\n }\n });\n const __returned__ = {\n delBtnTxt,\n get store() {\n return _utils_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n },\n get mLang() {\n return _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n}));\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/ErrorMsgBox.vue?vue&type=script&lang=ts&setup=true": /*!*****************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/ErrorMsgBox.vue?vue&type=script&lang=ts&setup=true ***! @@ -1256,7 +1266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_1__.pushScopeId)(\"data-v-9c8cfb28\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"left-side-items\"\n};\nconst _hoisted_2 = [\"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(\"div\", _hoisted_1, [((0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_1__.renderList)($setup.sideData, item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", {\n key: item.to.name,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_1__.normalizeClass)([{\n 'selected-node': $setup.routeName === item.to.name,\n 'bold-font': $setup.routeName === item.to.name,\n 'collapsed': !$setup.store.appLeftSide.show,\n 'no-collapsed': $setup.store.appLeftSide.show\n }, \"left-side-item\"]),\n onClick: () => {\n $setup.router.push(item.to);\n }\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_1__.createVNode)($setup[\"LeftSideNavButton\"], {\n item: item\n }, null, 8 /* PROPS */, [\"item\"])], 10 /* CLASS, PROPS */, _hoisted_2);\n }), 64 /* STABLE_FRAGMENT */))]);\n}\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftItemPanel.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_1__.pushScopeId)(\"data-v-9c8cfb28\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"left-side-items\"\n};\nconst _hoisted_2 = {\n class: \"static\"\n};\nconst _hoisted_3 = {\n class: \"value\"\n};\nconst _hoisted_4 = {\n class: \"value\"\n};\nconst _hoisted_5 = {\n class: \"number\"\n};\nconst _hoisted_6 = {\n class: \"title\"\n};\nconst _hoisted_7 = [\"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", _hoisted_3, [$setup.user ? ((0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(\"div\", {\n key: 0,\n ref: \"totalNodesEl\",\n class: (0,vue__WEBPACK_IMPORTED_MODULE_1__.normalizeClass)([\"number\", {\n 'sm-number': !$setup.store.appLeftSide.show\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_1__.toDisplayString)($setup.user.totalNodes), 3 /* TEXT, CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_1__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_1__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", {\n class: \"title\"\n }, (0,vue__WEBPACK_IMPORTED_MODULE_1__.toDisplayString)($setup.mLang.get(\"thought\")), 513 /* TEXT, NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_1__.vShow, $setup.store.appLeftSide.show]])]), (0,vue__WEBPACK_IMPORTED_MODULE_1__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_1__.toDisplayString)($setup.day.number), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"div\", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_1__.toDisplayString)($setup.day.title), 1 /* TEXT */)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_1__.vShow, $setup.store.appLeftSide.show]])]), ((0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_1__.renderList)($setup.sideData, item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_1__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementBlock)(\"div\", {\n key: item.to.name,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_1__.normalizeClass)([{\n 'selected-node': $setup.routeName === item.to.name,\n 'bold-font': $setup.routeName === item.to.name,\n 'collapsed': !$setup.store.appLeftSide.show,\n 'no-collapsed': $setup.store.appLeftSide.show\n }, \"left-side-item\"]),\n onClick: () => {\n $setup.router.push(item.to);\n }\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_1__.createVNode)($setup[\"LeftSideNavButton\"], {\n item: item\n }, null, 8 /* PROPS */, [\"item\"])], 10 /* CLASS, PROPS */, _hoisted_7);\n }), 128 /* KEYED_FRAGMENT */))]);\n}\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftItemPanel.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -1276,7 +1286,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-3dc47c63\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = [\"alt\", \"src\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"left-side-item-text\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n alt: $setup.props.item.text,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([$setup.itemClass, \"left-side-item-icon\"]),\n src: $setup.props.item.icon\n }, null, 10 /* CLASS, PROPS */, _hoisted_1), $setup.store.appLeftSide.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.props.item.text), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftNavItemButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-3dc47c63\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = [\"alt\", \"src\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"left-side-item-text\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n alt: $setup.props.item.text,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n \"collapsed\": !$setup.store.appLeftSide.show,\n \"no-collapsed\": $setup.store.appLeftSide.show\n }, \"left-side-item-icon\"]),\n src: $setup.props.item.icon\n }, null, 10 /* CLASS, PROPS */, _hoisted_1), $setup.store.appLeftSide.show ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.props.item.text), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://rethink/./src/components/app/nav/left/LeftNavItemButton.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -1690,6 +1700,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-0753a324\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"msg-box\"\n};\nconst _hoisted_2 = {\n class: \"msg-box-content\"\n};\nconst _hoisted_3 = {\n class: \"msg-box-p\"\n};\nconst _hoisted_4 = {\n class: \"msg-box-footer\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.store.msgBox.delete.message), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"msg-box-button button-bg\",\n onClick: _cache[0] || (_cache[0] = $event => {\n $setup.store.msgBox.delete.confirmed = false;\n $setup.store.msgBox.delete.clicked = true;\n $setup.store.msgBox.delete.show = false;\n })\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.mLang.get(\"msgBoxCancelButton\")), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"del-btn\", {\n deleting: $setup.store.msgBox.delete.confirmed && !$setup.store.msgBox.delete.deleted\n }]),\n onClick: _cache[1] || (_cache[1] = $event => {\n $setup.store.msgBox.delete.confirmed = true;\n $setup.store.msgBox.delete.clicked = true;\n })\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.delBtnTxt), 3 /* TEXT, CLASS */)])])], 512 /* NEED_PATCH */)), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, $setup.store.msgBox.delete.show]]);\n}\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/ErrorMsgBox.vue?vue&type=template&id=c7e8e852&ts=true": /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/ErrorMsgBox.vue?vue&type=template&id=c7e8e852&ts=true ***! @@ -1736,7 +1756,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-314222b0\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"rethink-app\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Manager page\", -1 /* HOISTED */));\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Marco data\", -1 /* HOISTED */));\nconst _hoisted_4 = {\n key: 0,\n class: \"data-display\"\n};\nconst _hoisted_5 = {\n class: \"data-value\"\n};\nconst _hoisted_6 = {\n class: \"data-name\"\n};\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Get user\", -1 /* HOISTED */));\nconst _hoisted_8 = {\n class: \"group\"\n};\nconst _hoisted_9 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"get-user\"\n}, \"Get by:\", -1 /* HOISTED */));\nconst _hoisted_10 = {\n class: \"tool-body\"\n};\nconst _hoisted_11 = [\"value\"];\nconst _hoisted_12 = [\"value\"];\nconst _hoisted_13 = [\"value\"];\nconst _hoisted_14 = [\"value\"];\nconst _hoisted_15 = [\"type\"];\nconst _hoisted_16 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Get node\", -1 /* HOISTED */));\nconst _hoisted_17 = {\n class: \"group\"\n};\nconst _hoisted_18 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"get-user\"\n}, \"Get by nid:\", -1 /* HOISTED */));\nconst _hoisted_19 = {\n class: \"tool-body\"\n};\nconst _hoisted_20 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Deliver system message\", -1 /* HOISTED */));\nconst _hoisted_21 = {\n class: \"group\"\n};\nconst _hoisted_22 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessage\"\n}, \"Deliver to:\", -1 /* HOISTED */));\nconst _hoisted_23 = [\"value\"];\nconst _hoisted_24 = [\"value\"];\nconst _hoisted_25 = [\"value\"];\nconst _hoisted_26 = [\"value\"];\nconst _hoisted_27 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessageTitle\"\n}, \"Title:\", -1 /* HOISTED */));\nconst _hoisted_28 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessageContent\"\n}, \"Content:\", -1 /* HOISTED */));\nconst _hoisted_29 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessagePublishAt\"\n}, \"Publish at:\", -1 /* HOISTED */));\nconst _hoisted_30 = [\"min\"];\nconst _hoisted_31 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Disable / Enable user\", -1 /* HOISTED */));\nconst _hoisted_32 = {\n class: \"group\"\n};\nconst _hoisted_33 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"disable-user\"\n}, \"Disable by:\", -1 /* HOISTED */));\nconst _hoisted_34 = {\n class: \"tool-body\"\n};\nconst _hoisted_35 = [\"value\"];\nconst _hoisted_36 = [\"value\"];\nconst _hoisted_37 = [\"value\"];\nconst _hoisted_38 = [\"value\"];\nconst _hoisted_39 = [\"type\"];\nconst _hoisted_40 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"enable-user\"\n}, \"Enable by:\", -1 /* HOISTED */));\nconst _hoisted_41 = {\n class: \"tool-body\"\n};\nconst _hoisted_42 = [\"value\"];\nconst _hoisted_43 = [\"value\"];\nconst _hoisted_44 = [\"value\"];\nconst _hoisted_45 = [\"value\"];\nconst _hoisted_46 = [\"type\"];\nconst _hoisted_47 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Delete\", -1 /* HOISTED */));\nconst _hoisted_48 = {\n class: \"group\"\n};\nconst _hoisted_49 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"delete-user\"\n}, \"Delete by:\", -1 /* HOISTED */));\nconst _hoisted_50 = {\n class: \"tool-body\"\n};\nconst _hoisted_51 = [\"value\"];\nconst _hoisted_52 = [\"value\"];\nconst _hoisted_53 = [\"value\"];\nconst _hoisted_54 = [\"value\"];\nconst _hoisted_55 = [\"type\"];\nconst _hoisted_56 = {\n class: \"data-view-header\"\n};\nconst _hoisted_57 = [\"src\"];\nconst _hoisted_58 = {\n class: \"data-view-body\"\n};\nconst _hoisted_59 = {\n key: 0\n};\nconst _hoisted_60 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"AppLeftSide\"], {\n user: $setup.user\n }, null, 8 /* PROPS */, [\"user\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'right-app-section-sm': $setup.mq.sm\n }, \"right-app-section page-y-scroll\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"AppHeader\"], {\n \"with-search-and-create\": false\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'manager-page-sm': $setup.mq.sm\n }, \"manger-page\"])\n }, [_hoisted_2, _hoisted_3, $setup.marcoData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_4, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)([{\n name: 'Users',\n value: $setup.marcoData.userCount\n }, {\n name: 'Nodes',\n value: $setup.marcoData.nodeCount\n }, {\n name: 'Average Nodes',\n value: ($setup.marcoData.nodeCount / $setup.marcoData.userCount).toFixed(1)\n }], item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: item.name,\n class: \"data-number\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.value), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.name), 1 /* TEXT */)]);\n }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), _hoisted_7, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"get-user-select\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.getUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_11), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_12), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_13), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_14)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.getUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"get-user-input\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.getUserInput = $event),\n type: $setup.getUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_15), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.getUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[2] || (_cache[2] =\n //@ts-ignore\n (...args) => $setup.onClickGetUser && $setup.onClickGetUser(...args))\n }, \"Get it\")])], 2 /* CLASS */)]), _hoisted_16, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_18, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"get-node-input\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.getUserNidInput = $event),\n type: \"text\",\n class: \"row-input\",\n placeholder: \"input nid\",\n required: \"\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.getUserNidInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[4] || (_cache[4] =\n //@ts-ignore\n (...args) => $setup.onClickGetUserNode && $setup.onClickGetUserNode(...args))\n }, \"Get it\")])], 2 /* CLASS */)]), _hoisted_20, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool row-order\"])\n }, [_hoisted_22, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"deliverSystemMessageRecipientType\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.deliverSystemMessageRecipientType = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.all\n }, \"All\", 8 /* PROPS */, _hoisted_23), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.batch\n }, \"Batch\", 8 /* PROPS */, _hoisted_24), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.admin\n }, \"Admin\", 8 /* PROPS */, _hoisted_25), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.manager\n }, \"Manager\", 8 /* PROPS */, _hoisted_26)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.deliverSystemMessageRecipientType]]), $setup.deliverSystemMessageRecipientType === $setup.RecipientTypeEnum.batch ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"input\", {\n key: 0,\n id: \"deliverSystemMessageBatchTypeIds\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $setup.deliverSystemMessageBatchTypeIds = $event),\n name: \"deliverSystemMessageBatchTypeIds\",\n placeholder: \"uid1,uid2,uid3\",\n type: \"text\"\n }, null, 512 /* NEED_PATCH */)), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageBatchTypeIds, void 0, {\n lazy: true,\n trim: true\n }]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), _hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"deliverSystemMessageTitle\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $setup.deliverSystemMessageTitle = $event),\n name: \"deliverSystemMessageTitle\",\n placeholder: \"Message title\",\n type: \"text\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageTitle, void 0, {\n lazy: true,\n trim: true\n }]]), _hoisted_28, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"textarea\", {\n id: \"deliverSystemMessageContent\",\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $setup.deliverSystemMessageContent = $event),\n cols: \"50\",\n name: \"deliverSystemMessageContent\",\n placeholder: \"Message content\",\n rows: \"4\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageContent, void 0, {\n lazy: true,\n trim: true\n }]]), _hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"deliverSystemMessagePublishAt\",\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = $event => $setup.deliverSystemMessagePublishAt = $event),\n min: $setup.minDateTime,\n name: \"deliverSystemMessagePublishAt\",\n type: \"datetime-local\"\n }, null, 8 /* PROPS */, _hoisted_30), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessagePublishAt, void 0, {\n lazy: true,\n trim: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[10] || (_cache[10] =\n //@ts-ignore\n (...args) => $setup.onClickDeliverSystemMessage && $setup.onClickDeliverSystemMessage(...args))\n }, \"Send\")], 2 /* CLASS */)]), _hoisted_31, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_33, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"disable-user-select\",\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $setup.disableUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_35), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_36), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_37), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_38)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.disableUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"disable-user-input\",\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = $event => $setup.disableUserInput = $event),\n type: $setup.disableUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_39), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.disableUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[13] || (_cache[13] = $event => $setup.onClickDisableEnableUser(true))\n }, \"Disable it\")])], 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_40, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_41, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"enable-user-select\",\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = $event => $setup.enableUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_42), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_43), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_44), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_45)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.enableUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"enable-user-input\",\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $setup.enableUserInput = $event),\n type: $setup.enableUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_46), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.enableUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[16] || (_cache[16] = $event => $setup.onClickDisableEnableUser(false))\n }, \"Enable it\")])], 2 /* CLASS */)]), _hoisted_47, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_48, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_49, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_50, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"delete-user-select\",\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $setup.deleteUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_51), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_52), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_53), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_54)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.deleteUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"delete-user-input\",\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = $event => $setup.deleteUserInput = $event),\n type: $setup.deleteUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_55), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.deleteUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[19] || (_cache[19] =\n //@ts-ignore\n (...args) => $setup.onClickDeleteUser && $setup.onClickDeleteUser(...args))\n }, \"Delete it!\")])], 2 /* CLASS */)])], 2 /* CLASS */), $setup.dataView !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'data-view-popup-sm': $setup.mq.sm\n }, \"data-view-popup\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_56, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n src: $setup.CrossIcon,\n alt: \"cross\",\n onClick: _cache[20] || (_cache[20] = $event => $setup.dataView = null)\n }, null, 8 /* PROPS */, _hoisted_57)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"ul\", _hoisted_58, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.dataView, (value, key) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: key\n }, [typeof value !== 'object' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"ul\", _hoisted_59, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(key) + \": \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(value), 1 /* TEXT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"ul\", _hoisted_60, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(key) + \": \", 1 /* TEXT */), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(value, (subValue, subKey) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: subKey,\n class: \"sub-li\"\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subKey) + \": \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subValue), 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */))]))]);\n }), 128 /* KEYED_FRAGMENT */))])], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 2 /* CLASS */)]);\n}\n\n//# sourceURL=webpack://rethink/./src/views/ManagerView.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-314222b0\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"rethink-app\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Manager page\", -1 /* HOISTED */));\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Marco data\", -1 /* HOISTED */));\nconst _hoisted_4 = {\n key: 0,\n class: \"data-display\"\n};\nconst _hoisted_5 = {\n class: \"data-value\"\n};\nconst _hoisted_6 = {\n class: \"data-name\"\n};\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Get user\", -1 /* HOISTED */));\nconst _hoisted_8 = {\n class: \"group\"\n};\nconst _hoisted_9 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"get-user\"\n}, \"Get by:\", -1 /* HOISTED */));\nconst _hoisted_10 = {\n class: \"tool-body\"\n};\nconst _hoisted_11 = [\"value\"];\nconst _hoisted_12 = [\"value\"];\nconst _hoisted_13 = [\"value\"];\nconst _hoisted_14 = [\"value\"];\nconst _hoisted_15 = [\"type\"];\nconst _hoisted_16 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Get node\", -1 /* HOISTED */));\nconst _hoisted_17 = {\n class: \"group\"\n};\nconst _hoisted_18 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"get-user\"\n}, \"Get by nid:\", -1 /* HOISTED */));\nconst _hoisted_19 = {\n class: \"tool-body\"\n};\nconst _hoisted_20 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Deliver system message\", -1 /* HOISTED */));\nconst _hoisted_21 = {\n class: \"group\"\n};\nconst _hoisted_22 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessage\"\n}, \"Deliver to:\", -1 /* HOISTED */));\nconst _hoisted_23 = [\"value\"];\nconst _hoisted_24 = [\"value\"];\nconst _hoisted_25 = [\"value\"];\nconst _hoisted_26 = [\"value\"];\nconst _hoisted_27 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessageTitle\"\n}, \"Title:\", -1 /* HOISTED */));\nconst _hoisted_28 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessageContent\"\n}, \"Content:\", -1 /* HOISTED */));\nconst _hoisted_29 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"deliverSystemMessagePublishAt\"\n}, \"Publish at:\", -1 /* HOISTED */));\nconst _hoisted_30 = [\"min\"];\nconst _hoisted_31 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Disable / Enable user\", -1 /* HOISTED */));\nconst _hoisted_32 = {\n class: \"group\"\n};\nconst _hoisted_33 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"disable-user\"\n}, \"Disable by:\", -1 /* HOISTED */));\nconst _hoisted_34 = {\n class: \"tool-body\"\n};\nconst _hoisted_35 = [\"value\"];\nconst _hoisted_36 = [\"value\"];\nconst _hoisted_37 = [\"value\"];\nconst _hoisted_38 = [\"value\"];\nconst _hoisted_39 = [\"type\"];\nconst _hoisted_40 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"enable-user\"\n}, \"Enable by:\", -1 /* HOISTED */));\nconst _hoisted_41 = {\n class: \"tool-body\"\n};\nconst _hoisted_42 = [\"value\"];\nconst _hoisted_43 = [\"value\"];\nconst _hoisted_44 = [\"value\"];\nconst _hoisted_45 = [\"value\"];\nconst _hoisted_46 = [\"type\"];\nconst _hoisted_47 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h2\", null, \"Delete\", -1 /* HOISTED */));\nconst _hoisted_48 = {\n class: \"group\"\n};\nconst _hoisted_49 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n for: \"delete-user\"\n}, \"Delete by:\", -1 /* HOISTED */));\nconst _hoisted_50 = {\n class: \"tool-body\"\n};\nconst _hoisted_51 = [\"value\"];\nconst _hoisted_52 = [\"value\"];\nconst _hoisted_53 = [\"value\"];\nconst _hoisted_54 = [\"value\"];\nconst _hoisted_55 = [\"type\"];\nconst _hoisted_56 = {\n class: \"data-view-header\"\n};\nconst _hoisted_57 = [\"src\"];\nconst _hoisted_58 = {\n class: \"data-view-body\"\n};\nconst _hoisted_59 = {\n key: 0\n};\nconst _hoisted_60 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"AppLeftSide\"], {\n user: $setup.user\n }, null, 8 /* PROPS */, [\"user\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'right-app-section-sm': $setup.mq.sm\n }, \"right-app-section page-y-scroll\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"AppHeader\"], {\n \"with-search-and-create\": false\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'manager-page-sm': $setup.mq.sm\n }, \"manger-page\"])\n }, [_hoisted_2, _hoisted_3, $setup.marcoData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_4, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)([{\n name: 'Users',\n value: $setup.marcoData.userCount\n }, {\n name: 'Nodes',\n value: $setup.marcoData.nodeCount\n }, {\n name: 'Average Nodes',\n value: ($setup.marcoData.nodeCount / $setup.marcoData.userCount).toFixed(1)\n }], item => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: item.name,\n class: \"data-number\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.value), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.name), 1 /* TEXT */)]);\n }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), _hoisted_7, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"get-user-select\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.getUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_11), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_12), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_13), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_14)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.getUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"get-user-input\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.getUserInput = $event),\n type: $setup.getUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_15), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.getUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[2] || (_cache[2] =\n //@ts-ignore\n (...args) => $setup.onClickGetUser && $setup.onClickGetUser(...args))\n }, \"Get it\")])], 2 /* CLASS */)]), _hoisted_16, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_18, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"get-node-input\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.getUserNidInput = $event),\n class: \"row-input\",\n placeholder: \"input nid\",\n required: \"\",\n type: \"text\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.getUserNidInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[4] || (_cache[4] =\n //@ts-ignore\n (...args) => $setup.onClickGetUserNode && $setup.onClickGetUserNode(...args))\n }, \"Get it\")])], 2 /* CLASS */)]), _hoisted_20, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool row-order\"])\n }, [_hoisted_22, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"deliverSystemMessageRecipientType\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.deliverSystemMessageRecipientType = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.all\n }, \"All\", 8 /* PROPS */, _hoisted_23), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.batch\n }, \"Batch\", 8 /* PROPS */, _hoisted_24), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.admin\n }, \"Admin\", 8 /* PROPS */, _hoisted_25), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.RecipientTypeEnum.manager\n }, \"Manager\", 8 /* PROPS */, _hoisted_26)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.deliverSystemMessageRecipientType]]), $setup.deliverSystemMessageRecipientType === $setup.RecipientTypeEnum.batch ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"input\", {\n key: 0,\n id: \"deliverSystemMessageBatchTypeIds\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $setup.deliverSystemMessageBatchTypeIds = $event),\n name: \"deliverSystemMessageBatchTypeIds\",\n placeholder: \"uid1,uid2,uid3\",\n type: \"text\"\n }, null, 512 /* NEED_PATCH */)), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageBatchTypeIds, void 0, {\n lazy: true,\n trim: true\n }]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), _hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"deliverSystemMessageTitle\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $setup.deliverSystemMessageTitle = $event),\n name: \"deliverSystemMessageTitle\",\n placeholder: \"Message title\",\n type: \"text\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageTitle, void 0, {\n lazy: true,\n trim: true\n }]]), _hoisted_28, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"textarea\", {\n id: \"deliverSystemMessageContent\",\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $setup.deliverSystemMessageContent = $event),\n cols: \"50\",\n name: \"deliverSystemMessageContent\",\n placeholder: \"Message content\",\n rows: \"4\"\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessageContent, void 0, {\n lazy: true,\n trim: true\n }]]), _hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"deliverSystemMessagePublishAt\",\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = $event => $setup.deliverSystemMessagePublishAt = $event),\n min: $setup.minDateTime,\n name: \"deliverSystemMessagePublishAt\",\n type: \"datetime-local\"\n }, null, 8 /* PROPS */, _hoisted_30), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.deliverSystemMessagePublishAt, void 0, {\n lazy: true,\n trim: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[10] || (_cache[10] =\n //@ts-ignore\n (...args) => $setup.onClickDeliverSystemMessage && $setup.onClickDeliverSystemMessage(...args))\n }, \"Send\")], 2 /* CLASS */)]), _hoisted_31, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_33, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"disable-user-select\",\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = $event => $setup.disableUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_35), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_36), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_37), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_38)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.disableUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"disable-user-input\",\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = $event => $setup.disableUserInput = $event),\n type: $setup.disableUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_39), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.disableUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[13] || (_cache[13] = $event => $setup.onClickDisableEnableUser(true))\n }, \"Disable it\")])], 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_40, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_41, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"enable-user-select\",\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = $event => $setup.enableUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_42), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_43), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_44), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_45)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.enableUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"enable-user-input\",\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = $event => $setup.enableUserInput = $event),\n type: $setup.enableUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_46), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.enableUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[16] || (_cache[16] = $event => $setup.onClickDisableEnableUser(false))\n }, \"Enable it\")])], 2 /* CLASS */)]), _hoisted_47, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_48, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'tool-sm': $setup.mq.sm\n }, \"tool\"])\n }, [_hoisted_49, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_50, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"select\", {\n id: \"delete-user-select\",\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $setup.deleteUserMethod = $event)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.email\n }, \"email\", 8 /* PROPS */, _hoisted_51), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.uid\n }, \"uid\", 8 /* PROPS */, _hoisted_52), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.github\n }, \"github\", 8 /* PROPS */, _hoisted_53), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"option\", {\n value: $setup.GetUserMethodEnum.google\n }, \"google\", 8 /* PROPS */, _hoisted_54)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelSelect, $setup.deleteUserMethod]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n id: \"delete-user-input\",\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = $event => $setup.deleteUserInput = $event),\n type: $setup.deleteUserMethod === $setup.GetUserMethodEnum.email ? 'email' : 'text',\n class: \"row-input\",\n placeholder: \"input account\",\n required: \"\"\n }, null, 8 /* PROPS */, _hoisted_55), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelDynamic, $setup.deleteUserInput, void 0, {\n trim: true,\n lazy: true\n }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"red\",\n onClick: _cache[19] || (_cache[19] =\n //@ts-ignore\n (...args) => $setup.onClickDeleteUser && $setup.onClickDeleteUser(...args))\n }, \"Delete it!\")])], 2 /* CLASS */)])], 2 /* CLASS */), $setup.dataView !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n 'data-view-popup-sm': $setup.mq.sm\n }, \"data-view-popup\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_56, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n src: $setup.CrossIcon,\n alt: \"cross\",\n onClick: _cache[20] || (_cache[20] = $event => $setup.dataView = null)\n }, null, 8 /* PROPS */, _hoisted_57)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"ul\", _hoisted_58, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.dataView, (value, key) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: key\n }, [typeof value !== 'object' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"ul\", _hoisted_59, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(key) + \": \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(value), 1 /* TEXT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"ul\", _hoisted_60, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(key) + \": \", 1 /* TEXT */), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(value, (subValue, subKey) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: subKey,\n class: \"sub-li\"\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subKey) + \": \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subValue), 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */))]))]);\n }), 128 /* KEYED_FRAGMENT */))])], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 2 /* CLASS */)]);\n}\n\n//# sourceURL=webpack://rethink/./src/views/ManagerView.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -1876,7 +1896,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*********************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/App.vue */ \"./src/App.vue\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _components_messageBox_ErrorMsgBox_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/messageBox/ErrorMsgBox.vue */ \"./src/components/messageBox/ErrorMsgBox.vue\");\n/* harmony import */ var _components_messageBox_InfoMsgBox_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/messageBox/InfoMsgBox.vue */ \"./src/components/messageBox/InfoMsgBox.vue\");\n/* harmony import */ var _components_messageBox_FlashMsgBox_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/messageBox/FlashMsgBox.vue */ \"./src/components/messageBox/FlashMsgBox.vue\");\n/* harmony import */ var _components_messageBox_ConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/messageBox/ConfirmMsgBox.vue */ \"./src/components/messageBox/ConfirmMsgBox.vue\");\n\n\n\n\n\n\n\nconst app = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(_App_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\napp.component('ErrorMsgBox', _components_messageBox_ErrorMsgBox_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\napp.component(\"InfoMsgBox\", _components_messageBox_InfoMsgBox_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\napp.component(\"FlashMsgBox\", _components_messageBox_FlashMsgBox_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\napp.component(\"ConfirmMsgBox\", _components_messageBox_ConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\napp.use(_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).mount('#app');\n\n//# sourceURL=webpack://rethink/./src/main.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/App.vue */ \"./src/App.vue\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _components_messageBox_ErrorMsgBox_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/messageBox/ErrorMsgBox.vue */ \"./src/components/messageBox/ErrorMsgBox.vue\");\n/* harmony import */ var _components_messageBox_InfoMsgBox_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/messageBox/InfoMsgBox.vue */ \"./src/components/messageBox/InfoMsgBox.vue\");\n/* harmony import */ var _components_messageBox_FlashMsgBox_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/messageBox/FlashMsgBox.vue */ \"./src/components/messageBox/FlashMsgBox.vue\");\n/* harmony import */ var _components_messageBox_ConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/messageBox/ConfirmMsgBox.vue */ \"./src/components/messageBox/ConfirmMsgBox.vue\");\n/* harmony import */ var _components_messageBox_DeleteConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/messageBox/DeleteConfirmMsgBox.vue */ \"./src/components/messageBox/DeleteConfirmMsgBox.vue\");\n\n\n\n\n\n\n\n\nconst app = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(_App_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\napp.component('ErrorMsgBox', _components_messageBox_ErrorMsgBox_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\napp.component(\"InfoMsgBox\", _components_messageBox_InfoMsgBox_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\napp.component(\"FlashMsgBox\", _components_messageBox_FlashMsgBox_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\napp.component(\"ConfirmMsgBox\", _components_messageBox_ConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\napp.component(\"DeleteConfirmMsgBox\", _components_messageBox_DeleteConfirmMsgBox_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\napp.use(_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).mount('#app');\n\n//# sourceURL=webpack://rethink/./src/main.ts?"); /***/ }), @@ -1936,7 +1956,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useManager: function() { return /* binding */ useManager; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/requests/manager */ \"./src/utils/requests/manager.ts\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n\n\n\n\n\nfunction useManager() {\n let GetUserMethodEnum;\n (function (GetUserMethodEnum) {\n GetUserMethodEnum[GetUserMethodEnum[\"uid\"] = 0] = \"uid\";\n GetUserMethodEnum[GetUserMethodEnum[\"email\"] = 1] = \"email\";\n GetUserMethodEnum[GetUserMethodEnum[\"github\"] = 2] = \"github\";\n GetUserMethodEnum[GetUserMethodEnum[\"google\"] = 3] = \"google\";\n })(GetUserMethodEnum || (GetUserMethodEnum = {}));\n const marcoData = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)({\n userCount: 0,\n nodeCount: 0\n });\n const minDateTime = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageTitle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageContent = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageRecipientType = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.RecipientTypeEnum.all);\n const deliverSystemMessageBatchTypeIds = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)([]);\n const deliverSystemMessagePublishAt = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const dataView = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null);\n const getUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const getUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const getUserNidInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const disableUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const enableUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const disableUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const enableUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const deleteUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const deleteUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onBeforeMount)(async () => {\n const data = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqGetManagerData)();\n if (data === null) {\n await _router__WEBPACK_IMPORTED_MODULE_4__[\"default\"].push({\n name: \"404\"\n });\n }\n marcoData.value = data;\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, \"0\");\n const day = String(now.getDate()).padStart(2, \"0\");\n const hours = String(now.getHours()).padStart(2, \"0\");\n const minutes = String(now.getMinutes()).padStart(2, \"0\");\n minDateTime.value = `${year}-${month}-${day}T${hours}:${minutes}`;\n });\n async function onClickDeliverSystemMessage() {\n if (deliverSystemMessageTitle.value === \"\" || deliverSystemMessageContent.value === \"\") {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Please input message.\");\n return;\n }\n if (!(await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showConfirmMsgBox)(`Are you sure to deliver this message?` + `\\ntitle:\\n${deliverSystemMessageTitle.value}` + `\\n\\ncontent:\\n${deliverSystemMessageContent.value}` + `\\n\\npublish at:\\n${deliverSystemMessagePublishAt.value}`))) return;\n // convert to utc time\n const publishAt = deliverSystemMessagePublishAt.value !== \"\" ? new Date(deliverSystemMessagePublishAt.value) : new Date();\n if (await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPostManagerSystemMessage)({\n title: deliverSystemMessageTitle.value,\n content: deliverSystemMessageContent.value,\n recipientType: deliverSystemMessageRecipientType.value,\n batchTypeIds: deliverSystemMessageBatchTypeIds.value,\n publishAt: publishAt.toISOString()\n })) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(\"Message has been successfully delivered.\");\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to deliver message.\");\n }\n }\n // eslint-disable-next-line\n function collectData(method, input) {\n if (input === \"\") {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Please input user identifier.\");\n return;\n }\n const req = {};\n switch (method) {\n case GetUserMethodEnum.uid:\n req.uid = input;\n break;\n case GetUserMethodEnum.email:\n req.email = input;\n break;\n case GetUserMethodEnum.github:\n req.github = input;\n break;\n case GetUserMethodEnum.google:\n req.google = input;\n break;\n default:\n return;\n }\n return req;\n }\n async function onClickGetUser() {\n const req = collectData(getUserMethod.value, getUserInput.value);\n if (!req) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n const user = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutGetUser)(req);\n if (user !== null) {\n dataView.value = user;\n getUserInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get user.\");\n }\n }\n async function onClickGetUserNode() {\n const node = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqGetUserNode)(getUserNidInput.value);\n if (node !== null) {\n dataView.value = node;\n getUserNidInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get user node.\");\n }\n }\n async function onClickDisableEnableUser(disable) {\n const method = disable ? disableUserMethod : enableUserMethod;\n const input = disable ? disableUserInput : enableUserInput;\n const data = collectData(method.value, input.value);\n if (!data) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n let done, subject;\n if (disable) {\n done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutDisableUser)(data);\n subject = \"disable\";\n } else {\n done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutEnableUser)(data);\n subject = \"enable\";\n }\n if (done) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(`User has been successfully ${subject}.`);\n input.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(`Failed to ${subject} user.`);\n }\n }\n async function onClickDeleteUser() {\n await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showConfirmMsgBox)(`Are you sure to delete this user (${deleteUserInput.value})? `);\n const data = collectData(deleteUserMethod.value, deleteUserInput.value);\n if (!data) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n const done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutDeleteUser)(data);\n if (done) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(\"User has been successfully deleted.\");\n deleteUserInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to delete user.\");\n }\n }\n return {\n marcoData,\n dataView,\n GetUserMethodEnum,\n getUserMethod,\n getUserInput,\n onClickGetUser,\n getUserNidInput,\n onClickGetUserNode,\n disableUserInput,\n enableUserInput,\n disableUserMethod,\n enableUserMethod,\n onClickDisableEnableUser,\n deleteUserMethod,\n deleteUserInput,\n onClickDeleteUser,\n minDateTime,\n deliverSystemMessageTitle,\n deliverSystemMessageContent,\n deliverSystemMessageRecipientType,\n deliverSystemMessageBatchTypeIds,\n deliverSystemMessagePublishAt,\n onClickDeliverSystemMessage\n };\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/account/manager.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useManager: function() { return /* binding */ useManager; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/requests/manager */ \"./src/utils/requests/manager.ts\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n\n\n\n\n\nfunction useManager() {\n let GetUserMethodEnum;\n (function (GetUserMethodEnum) {\n GetUserMethodEnum[GetUserMethodEnum[\"uid\"] = 0] = \"uid\";\n GetUserMethodEnum[GetUserMethodEnum[\"email\"] = 1] = \"email\";\n GetUserMethodEnum[GetUserMethodEnum[\"github\"] = 2] = \"github\";\n GetUserMethodEnum[GetUserMethodEnum[\"google\"] = 3] = \"google\";\n })(GetUserMethodEnum || (GetUserMethodEnum = {}));\n const marcoData = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)({\n userCount: 0,\n nodeCount: 0\n });\n const minDateTime = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageTitle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageContent = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const deliverSystemMessageRecipientType = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.RecipientTypeEnum.all);\n const deliverSystemMessageBatchTypeIds = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)([]);\n const deliverSystemMessagePublishAt = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const dataView = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null);\n const getUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const getUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const getUserNidInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const disableUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const enableUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n const disableUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const enableUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const deleteUserMethod = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(GetUserMethodEnum.email);\n const deleteUserInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(\"\");\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onBeforeMount)(async () => {\n const data = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqGetManagerData)();\n if (data === null) {\n await _router__WEBPACK_IMPORTED_MODULE_4__[\"default\"].push({\n name: \"404\"\n });\n }\n marcoData.value = data;\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, \"0\");\n const day = String(now.getDate()).padStart(2, \"0\");\n const hours = String(now.getHours()).padStart(2, \"0\");\n const minutes = String(now.getMinutes()).padStart(2, \"0\");\n minDateTime.value = `${year}-${month}-${day}T${hours}:${minutes}`;\n });\n async function onClickDeliverSystemMessage() {\n if (deliverSystemMessageTitle.value === \"\" || deliverSystemMessageContent.value === \"\") {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Please input message.\");\n return;\n }\n if (!(await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showConfirmMsgBox)(`Are you sure to deliver this message?` + `\\ntitle:\\n${deliverSystemMessageTitle.value}` + `\\n\\ncontent:\\n${deliverSystemMessageContent.value}` + `\\n\\npublish at:\\n${deliverSystemMessagePublishAt.value}`))) return;\n // convert to utc time\n const publishAt = deliverSystemMessagePublishAt.value !== \"\" ? new Date(deliverSystemMessagePublishAt.value) : new Date();\n if (await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPostManagerSystemMessage)({\n title: deliverSystemMessageTitle.value,\n content: deliverSystemMessageContent.value,\n recipientType: deliverSystemMessageRecipientType.value,\n batchTypeIds: deliverSystemMessageBatchTypeIds.value,\n publishAt: publishAt.toISOString()\n })) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(\"Message has been successfully delivered.\");\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to deliver message.\");\n }\n }\n // eslint-disable-next-line\n function collectData(method, input) {\n if (input === \"\") {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Please input user identifier.\");\n return;\n }\n const req = {};\n switch (method) {\n case GetUserMethodEnum.uid:\n req.uid = input;\n break;\n case GetUserMethodEnum.email:\n req.email = input;\n break;\n case GetUserMethodEnum.github:\n req.github = input;\n break;\n case GetUserMethodEnum.google:\n req.google = input;\n break;\n default:\n return;\n }\n return req;\n }\n async function onClickGetUser() {\n const req = collectData(getUserMethod.value, getUserInput.value);\n if (!req) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n const user = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutGetUser)(req);\n if (user !== null) {\n dataView.value = user;\n getUserInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get user.\");\n }\n }\n async function onClickGetUserNode() {\n const node = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqGetUserNode)(getUserNidInput.value);\n if (node !== null) {\n dataView.value = node;\n getUserNidInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get user node.\");\n }\n }\n async function onClickDisableEnableUser(disable) {\n const method = disable ? disableUserMethod : enableUserMethod;\n const input = disable ? disableUserInput : enableUserInput;\n const data = collectData(method.value, input.value);\n if (!data) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n let done, subject;\n if (disable) {\n done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutDisableUser)(data);\n subject = \"disable\";\n } else {\n done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutEnableUser)(data);\n subject = \"enable\";\n }\n if (done) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(`User has been successfully ${subject}.`);\n input.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(`Failed to ${subject} user.`);\n }\n }\n async function onClickDeleteUser() {\n if (!(await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showDelConfirmMsgBox)(`Are you sure to delete this user (${deleteUserInput.value})? `))) return;\n const data = collectData(deleteUserMethod.value, deleteUserInput.value);\n if (!data) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.setDelConfirmMsgBoxDeleted)();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to get input.\");\n return;\n }\n const done = await (0,_utils_requests_manager__WEBPACK_IMPORTED_MODULE_2__.reqPutDeleteUser)(data);\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.setDelConfirmMsgBoxDeleted)();\n if (done) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showInfoMsgBox)(\"User has been successfully deleted.\");\n deleteUserInput.value = \"\";\n } else {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_3__.showErrorMsgBox)(\"Failed to delete user.\");\n }\n }\n return {\n marcoData,\n dataView,\n GetUserMethodEnum,\n getUserMethod,\n getUserInput,\n onClickGetUser,\n getUserNidInput,\n onClickGetUserNode,\n disableUserInput,\n enableUserInput,\n disableUserMethod,\n enableUserMethod,\n onClickDisableEnableUser,\n deleteUserMethod,\n deleteUserInput,\n onClickDeleteUser,\n minDateTime,\n deliverSystemMessageTitle,\n deliverSystemMessageContent,\n deliverSystemMessageRecipientType,\n deliverSystemMessageBatchTypeIds,\n deliverSystemMessagePublishAt,\n onClickDeliverSystemMessage\n };\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/account/manager.ts?"); /***/ }), @@ -1966,7 +1986,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkedAll: function() { return /* binding */ checkedAll; },\n/* harmony export */ select: function() { return /* binding */ select; },\n/* harmony export */ showBatchOps: function() { return /* binding */ showBatchOps; },\n/* harmony export */ useBatchFilesOps: function() { return /* binding */ useBatchFilesOps; },\n/* harmony export */ useCheckboxSelect: function() { return /* binding */ useCheckboxSelect; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n/* harmony import */ var _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/app/nodesDisplay */ \"./src/utils/app/nodesDisplay.ts\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/requests/trash */ \"./src/utils/requests/trash.ts\");\n\n\n\n\n\n\n\nconst checkedAll = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\nconst lastCheckedNid = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(\"\");\nconst showBatchOps = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\nfunction getInputs() {\n return Array.from(document.querySelectorAll(\".node-checkbox\"));\n}\nfunction setChecked(input, checked) {\n input.checked = checked;\n const itemGroup = input.closest(\".item-group\");\n if (checked) {\n itemGroup?.classList.add(\"selected-node\");\n if ((0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\") {\n input.classList.remove(\"cb-hide\");\n }\n } else {\n if ((0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\") {\n input.classList.add(\"cb-hide\");\n }\n itemGroup?.classList.remove(\"selected-node\");\n }\n}\nfunction select(e, nid) {\n // input is the checkbox, and event is the click event\n const input = e.target;\n if (input.checked) {\n if (e.shiftKey) {\n if (lastCheckedNid.value !== \"\") {\n // if hold shift key, set all inputs between the current input and the last input be checked\n const inputs = getInputs();\n const lastCheckedIndex = inputs.findIndex(input => input.value === lastCheckedNid.value);\n const currentCheckedIndex = inputs.findIndex(input => input.value === nid);\n const minIndex = Math.min(lastCheckedIndex, currentCheckedIndex);\n const maxIndex = Math.max(lastCheckedIndex, currentCheckedIndex);\n for (let i = minIndex; i <= maxIndex; i++) {\n setChecked(inputs[i], true);\n }\n }\n } else {\n // if not hold shift key, set the current input be checked\n setChecked(input, true);\n }\n showBatchOps.value = true;\n lastCheckedNid.value = nid;\n } else {\n setChecked(input, false);\n showBatchOps.value = getCheckedNids().length > 0;\n }\n}\nfunction getCheckedNids() {\n const inputs = getInputs();\n const checkedInputs = inputs.filter(input => input.checked);\n return checkedInputs.map(input => input.value);\n}\nfunction filterPagedNodes(nids) {\n // remove deleted nodes from pagedNodesInfo.value\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value = {\n nodes: _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.filter(node => !nids.includes(node.id)),\n total: _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total - nids.length\n };\n const pnl = _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.length;\n if (_utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total > pnl && pnl < 10) {\n _router__WEBPACK_IMPORTED_MODULE_5__[\"default\"].go(0);\n }\n}\nfunction reset() {\n checkedAll.value = false;\n lastCheckedNid.value = \"\";\n showBatchOps.value = false;\n getInputs().forEach(input => {\n setChecked(input, false);\n });\n}\nasync function batchShare() {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(\"还没做完,记得催我一下\");\n}\nfunction batchCancel() {\n reset();\n}\nasync function batchTrash() {\n const nids = getCheckedNids();\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatch)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchTrashed\"));\n}\nasync function batchDelete() {\n const nids = getCheckedNids();\n if (!(await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showConfirmMsgBox)(`${_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleteConfirmPre\")} ${nids.length} ${_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleteConfirmPost\")}`))) return;\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatchDel)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleted\"));\n}\nasync function batchDownload() {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(\"还没做完,记得催我一下\");\n reset();\n}\nasync function batchRestore() {\n const nids = getCheckedNids();\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatchRestore)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchRestored\"));\n}\n(0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(checkedAll, newVal => {\n if (newVal) {\n showBatchOps.value = true;\n }\n const nodes = getInputs();\n nodes.forEach(input => {\n setChecked(input, newVal);\n });\n});\nfunction useBatchFilesOps() {\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n reset();\n });\n return {\n batchShare,\n batchCancel,\n batchTrash,\n batchDelete,\n batchDownload,\n batchRestore\n };\n}\nfunction useCheckboxSelect() {\n const mq = (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.useMQ)();\n function handleMouseEnterNode(event) {\n if (!mq.lg) return;\n const el = event.target;\n const moreEl = el.querySelector('.node-more-ops');\n if (moreEl) {\n moreEl.classList.remove(\"node-more-hide\");\n }\n const multiSelectEl = el.querySelector('.checkbox');\n if (multiSelectEl) {\n multiSelectEl.classList.remove(\"cb-hide\");\n }\n }\n function handleMouseLeaveNode(event) {\n if (!mq.lg) return;\n const el = event.target;\n const moreEl = el.querySelector('.node-more-ops');\n if (moreEl) {\n moreEl.classList.add(\"node-more-hide\");\n }\n const multiSelectEl = el.querySelector('.checkbox');\n if (multiSelectEl && !multiSelectEl.checked) {\n multiSelectEl.classList.add(\"cb-hide\");\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => mq.lg, (val, oldValue) => {\n if (val === oldValue) return;\n const moreEls = document.querySelectorAll('.node-more-ops');\n if (moreEls.length === 0) return;\n moreEls.forEach(el => {\n if (val) {\n el.classList.add('node-more-hide');\n } else {\n el.classList.remove('node-more-hide');\n }\n });\n });\n return {\n handleMouseEnterNode,\n handleMouseLeaveNode\n };\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/app/batchFilesOps.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkedAll: function() { return /* binding */ checkedAll; },\n/* harmony export */ select: function() { return /* binding */ select; },\n/* harmony export */ showBatchOps: function() { return /* binding */ showBatchOps; },\n/* harmony export */ useBatchFilesOps: function() { return /* binding */ useBatchFilesOps; },\n/* harmony export */ useCheckboxSelect: function() { return /* binding */ useCheckboxSelect; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n/* harmony import */ var _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/app/nodesDisplay */ \"./src/utils/app/nodesDisplay.ts\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/requests/trash */ \"./src/utils/requests/trash.ts\");\n\n\n\n\n\n\n\nconst checkedAll = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\nconst lastCheckedNid = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(\"\");\nconst showBatchOps = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\nfunction getInputs() {\n return Array.from(document.querySelectorAll(\".node-checkbox\"));\n}\nfunction setChecked(input, checked) {\n input.checked = checked;\n const itemGroup = input.closest(\".item-group\");\n if (checked) {\n itemGroup?.classList.add(\"selected-node\");\n if ((0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\") {\n input.classList.remove(\"cb-hide\");\n }\n } else {\n if ((0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\") {\n input.classList.add(\"cb-hide\");\n }\n itemGroup?.classList.remove(\"selected-node\");\n }\n}\nfunction select(e, nid) {\n // input is the checkbox, and event is the click event\n const input = e.target;\n if (input.checked) {\n if (e.shiftKey) {\n if (lastCheckedNid.value !== \"\") {\n // if hold shift key, set all inputs between the current input and the last input be checked\n const inputs = getInputs();\n const lastCheckedIndex = inputs.findIndex(input => input.value === lastCheckedNid.value);\n const currentCheckedIndex = inputs.findIndex(input => input.value === nid);\n const minIndex = Math.min(lastCheckedIndex, currentCheckedIndex);\n const maxIndex = Math.max(lastCheckedIndex, currentCheckedIndex);\n for (let i = minIndex; i <= maxIndex; i++) {\n setChecked(inputs[i], true);\n }\n }\n } else {\n // if not hold shift key, set the current input be checked\n setChecked(input, true);\n }\n showBatchOps.value = true;\n lastCheckedNid.value = nid;\n } else {\n setChecked(input, false);\n showBatchOps.value = getCheckedNids().length > 0;\n }\n}\nfunction getCheckedNids() {\n const inputs = getInputs();\n const checkedInputs = inputs.filter(input => input.checked);\n return checkedInputs.map(input => input.value);\n}\nfunction filterPagedNodes(nids) {\n // remove deleted nodes from pagedNodesInfo.value\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value = {\n nodes: _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.filter(node => !nids.includes(node.id)),\n total: _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total - nids.length\n };\n const pnl = _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.length;\n if (_utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total > pnl && pnl < 10) {\n _router__WEBPACK_IMPORTED_MODULE_5__[\"default\"].go(0);\n }\n}\nfunction reset() {\n checkedAll.value = false;\n lastCheckedNid.value = \"\";\n showBatchOps.value = false;\n getInputs().forEach(input => {\n setChecked(input, false);\n });\n}\nasync function batchShare() {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(\"还没做完,记得催我一下\");\n}\nfunction batchCancel() {\n reset();\n}\nasync function batchTrash() {\n const nids = getCheckedNids();\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatch)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchTrashed\"));\n}\nasync function batchDelete() {\n const nids = getCheckedNids();\n if (!(await (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showDelConfirmMsgBox)(`${_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleteConfirmPre\")} ${nids.length} ${_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleteConfirmPost\")}`))) return;\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatchDel)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.setDelConfirmMsgBoxDeleted)();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchDeleted\"));\n}\nasync function batchDownload() {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(\"还没做完,记得催我一下\");\n reset();\n}\nasync function batchRestore() {\n const nids = getCheckedNids();\n if (await (0,_utils_requests_trash__WEBPACK_IMPORTED_MODULE_6__.reqPutTrashBatchRestore)(nids)) {\n filterPagedNodes(nids);\n }\n reset();\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.flashMsgBox)(_utils_multiLang__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get(\"batchRestored\"));\n}\n(0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(checkedAll, newVal => {\n if (newVal) {\n showBatchOps.value = true;\n }\n const nodes = getInputs();\n nodes.forEach(input => {\n setChecked(input, newVal);\n });\n});\nfunction useBatchFilesOps() {\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n reset();\n });\n return {\n batchShare,\n batchCancel,\n batchTrash,\n batchDelete,\n batchDownload,\n batchRestore\n };\n}\nfunction useCheckboxSelect() {\n const mq = (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.useMQ)();\n function handleMouseEnterNode(event) {\n if (!mq.lg) return;\n const el = event.target;\n const moreEl = el.querySelector('.node-more-ops');\n if (moreEl) {\n moreEl.classList.remove(\"node-more-hide\");\n }\n const multiSelectEl = el.querySelector('.checkbox');\n if (multiSelectEl) {\n multiSelectEl.classList.remove(\"cb-hide\");\n }\n }\n function handleMouseLeaveNode(event) {\n if (!mq.lg) return;\n const el = event.target;\n const moreEl = el.querySelector('.node-more-ops');\n if (moreEl) {\n moreEl.classList.add(\"node-more-hide\");\n }\n const multiSelectEl = el.querySelector('.checkbox');\n if (multiSelectEl && !multiSelectEl.checked) {\n multiSelectEl.classList.add(\"cb-hide\");\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => mq.lg, (val, oldValue) => {\n if (val === oldValue) return;\n const moreEls = document.querySelectorAll('.node-more-ops');\n if (moreEls.length === 0) return;\n moreEls.forEach(el => {\n if (val) {\n el.classList.add('node-more-hide');\n } else {\n el.classList.remove('node-more-hide');\n }\n });\n });\n return {\n handleMouseEnterNode,\n handleMouseLeaveNode\n };\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/app/batchFilesOps.ts?"); /***/ }), @@ -2170,6 +2190,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/utils/app/leftNav.ts": +/*!**********************************!*\ + !*** ./src/utils/app/leftNav.ts ***! + \**********************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ increaseLeftNavNodeCount: function() { return /* binding */ increaseLeftNavNodeCount; },\n/* harmony export */ useLeftNav: function() { return /* binding */ useLeftNav; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_app_user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/app/user */ \"./src/utils/app/user.ts\");\n/* harmony import */ var _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/multiLang */ \"./src/utils/multiLang.ts\");\n/* harmony import */ var _assets_images_icons_home_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/assets/images/icons/home.svg */ \"./src/assets/images/icons/home.svg\");\n/* harmony import */ var _assets_images_icons_plugin_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/assets/images/icons/plugin.svg */ \"./src/assets/images/icons/plugin.svg\");\n/* harmony import */ var _assets_images_icons_import_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/assets/images/icons/import.svg */ \"./src/assets/images/icons/import.svg\");\n/* harmony import */ var _assets_images_icons_trash_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/assets/images/icons/trash.svg */ \"./src/assets/images/icons/trash.svg\");\n\n\n\n\n\n\n\nconst day = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)({\n title: _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"day\"),\n number: 0\n});\nconst totalNodesEl = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\nfunction useLeftNav() {\n const sideData = [{\n icon: _assets_images_icons_home_svg__WEBPACK_IMPORTED_MODULE_3__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"sideBarHome\"),\n to: {\n name: \"rethink\"\n }\n }, {\n icon: _assets_images_icons_plugin_svg__WEBPACK_IMPORTED_MODULE_4__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"sideBarPlugins\"),\n to: {\n name: \"plugins\"\n }\n }, {\n icon: _assets_images_icons_import_svg__WEBPACK_IMPORTED_MODULE_5__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"sideBarImport\"),\n to: {\n name: \"import\"\n }\n }, {\n icon: _assets_images_icons_trash_svg__WEBPACK_IMPORTED_MODULE_6__,\n text: _utils_multiLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"sideBarTrash\"),\n to: {\n name: \"trash\"\n }\n }];\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeMount)(() => {\n if (!_utils_app_user__WEBPACK_IMPORTED_MODULE_1__.user.value) return;\n day.value.number = Math.floor((new Date().getTime() - new Date(_utils_app_user__WEBPACK_IMPORTED_MODULE_1__.user.value.createdAt).getTime()) / 1000 / 60 / 60 / 24);\n });\n return {\n sideData,\n totalNodesEl,\n day\n };\n}\nfunction increaseLeftNavNodeCount() {\n if (!_utils_app_user__WEBPACK_IMPORTED_MODULE_1__.user.value) return;\n _utils_app_user__WEBPACK_IMPORTED_MODULE_1__.user.value.totalNodes++;\n if (totalNodesEl.value) {\n totalNodesEl.value.classList.add(\"blink\");\n setTimeout(() => {\n if (totalNodesEl.value) totalNodesEl.value.classList.remove(\"blink\");\n }, 1000);\n }\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/app/leftNav.ts?"); + +/***/ }), + /***/ "./src/utils/app/nodesDisplay.ts": /*!***************************************!*\ !*** ./src/utils/app/nodesDisplay.ts ***! @@ -2206,7 +2236,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core \************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/app/nodesDisplay */ \"./src/utils/app/nodesDisplay.ts\");\n/* harmony import */ var _utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/tools/textOps */ \"./src/utils/tools/textOps.ts\");\n/* harmony import */ var _utils_requests_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/requests/node */ \"./src/utils/requests/node.ts\");\n\n\n\n\n\n\nconst maxLength = 500;\nfunction useQuickPost() {\n const wordCount = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const ExceedMaxLength = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n const quickPost = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)('');\n const quickPostPanelEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n const quickPostTextareaEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n const postBtnEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {\n wordCount.value = 0;\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onUnmounted)(() => {\n wordCount.value = 0;\n document.removeEventListener(\"click\", blurOnQuickPost);\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.watch)(quickPost, newVal => {\n ExceedMaxLength.value = false;\n if (!postBtnEle.value) return;\n const el = postBtnEle.value;\n wordCount.value = newVal.length;\n if (newVal === \"\") {\n el.setAttribute(\"disabled\", \"disabled\");\n el.classList.remove(\"btn-light\");\n return;\n }\n el.removeAttribute(\"disabled\");\n el.classList.add(\"btn-light\");\n if (newVal.length >= maxLength) {\n quickPost.value = newVal.slice(0, maxLength);\n ExceedMaxLength.value = true;\n }\n });\n function focusOnQuickPost() {\n if (!quickPostPanelEle.value) return;\n const cl = quickPostPanelEle.value.classList;\n if (cl.contains(\"focus-expand\")) return;\n cl.add(\"focus-expand\");\n quickPostTextareaEle.value?.focus();\n document.addEventListener(\"click\", blurOnQuickPost);\n }\n function blurOnQuickPost(e) {\n if (!quickPostPanelEle.value) return;\n // click on places other than quick post panel\n const target = e.target;\n if (target.parentElement === quickPostPanelEle.value) return;\n const cl = quickPostPanelEle.value.classList;\n if (!cl.contains(\"focus-expand\")) return;\n cl.remove(\"focus-expand\");\n document.removeEventListener(\"click\", blurOnQuickPost);\n }\n async function editInNodePage() {\n const newNode = await postQuickPost();\n if (!newNode) return;\n await _router__WEBPACK_IMPORTED_MODULE_2__[\"default\"].push({\n name: \"node\",\n params: {\n id: newNode.id\n }\n });\n }\n async function postQuickPost() {\n if (!quickPost.value) return null;\n const newNode = await (0,_utils_requests_node__WEBPACK_IMPORTED_MODULE_5__.reqPostQuickNode)({\n md: (0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.replace1EnterTo2)(quickPost.value)\n });\n if (!newNode) {\n return null;\n }\n quickPost.value = \"\";\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total++;\n const newNodeSearchResult = {\n id: newNode.id,\n title: newNode.title,\n snippet: (0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.clipText)((0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.getBodyFromMd)(newNode.md), 100),\n titleHighlight: \"\",\n bodyHighlights: [],\n score: 0,\n type: newNode.type,\n createdAt: newNode.createdAt,\n modifiedAt: newNode.modifiedAt\n };\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.unshift(newNodeSearchResult);\n // collapse quick post panel\n if (!quickPostPanelEle.value) return newNode;\n const cl = quickPostPanelEle.value.classList;\n if (!cl.contains(\"focus-expand\")) return newNode;\n cl.remove(\"focus-expand\");\n return newNode;\n }\n return {\n wordCount,\n ExceedMaxLength,\n quickPost,\n quickPostPanelEle,\n quickPostTextareaEle,\n postBtnEle,\n focusOnQuickPost,\n editInNodePage,\n postQuickPost\n };\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (useQuickPost);\n\n//# sourceURL=webpack://rethink/./src/utils/app/quickPost.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/router */ \"./src/router/index.ts\");\n/* harmony import */ var _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/app/nodesDisplay */ \"./src/utils/app/nodesDisplay.ts\");\n/* harmony import */ var _utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/tools/textOps */ \"./src/utils/tools/textOps.ts\");\n/* harmony import */ var _utils_requests_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/requests/node */ \"./src/utils/requests/node.ts\");\n/* harmony import */ var _utils_app_leftNav__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/app/leftNav */ \"./src/utils/app/leftNav.ts\");\n\n\n\n\n\n\n\nconst maxLength = 500;\nfunction useQuickPost() {\n const wordCount = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(0);\n const ExceedMaxLength = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n const quickPost = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)('');\n const quickPostPanelEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n const quickPostTextareaEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n const postBtnEle = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onMounted)(() => {\n wordCount.value = 0;\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.onUnmounted)(() => {\n wordCount.value = 0;\n document.removeEventListener(\"click\", blurOnQuickPost);\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_1__.watch)(quickPost, newVal => {\n ExceedMaxLength.value = false;\n if (!postBtnEle.value) return;\n const el = postBtnEle.value;\n wordCount.value = newVal.length;\n if (newVal === \"\") {\n el.setAttribute(\"disabled\", \"disabled\");\n el.classList.remove(\"btn-light\");\n return;\n }\n el.removeAttribute(\"disabled\");\n el.classList.add(\"btn-light\");\n if (newVal.length >= maxLength) {\n quickPost.value = newVal.slice(0, maxLength);\n ExceedMaxLength.value = true;\n }\n });\n function focusOnQuickPost() {\n if (!quickPostPanelEle.value) return;\n const cl = quickPostPanelEle.value.classList;\n if (cl.contains(\"focus-expand\")) return;\n cl.add(\"focus-expand\");\n quickPostTextareaEle.value?.focus();\n document.addEventListener(\"click\", blurOnQuickPost);\n }\n function blurOnQuickPost(e) {\n if (!quickPostPanelEle.value) return;\n // click on places other than quick post panel\n const target = e.target;\n if (target.parentElement === quickPostPanelEle.value) return;\n const cl = quickPostPanelEle.value.classList;\n if (!cl.contains(\"focus-expand\")) return;\n cl.remove(\"focus-expand\");\n document.removeEventListener(\"click\", blurOnQuickPost);\n }\n async function editInNodePage() {\n const newNode = await postQuickPost();\n if (!newNode) return;\n await _router__WEBPACK_IMPORTED_MODULE_2__[\"default\"].push({\n name: \"node\",\n params: {\n id: newNode.id\n }\n });\n }\n async function postQuickPost() {\n if (!quickPost.value) return null;\n const newNode = await (0,_utils_requests_node__WEBPACK_IMPORTED_MODULE_5__.reqPostQuickNode)({\n md: (0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.replace1EnterTo2)(quickPost.value)\n });\n if (!newNode) {\n return null;\n }\n quickPost.value = \"\";\n (0,_utils_app_leftNav__WEBPACK_IMPORTED_MODULE_6__.increaseLeftNavNodeCount)();\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.total++;\n const newNodeSearchResult = {\n id: newNode.id,\n title: newNode.title,\n snippet: (0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.clipText)((0,_utils_tools_textOps__WEBPACK_IMPORTED_MODULE_4__.getBodyFromMd)(newNode.md), 100),\n titleHighlight: \"\",\n bodyHighlights: [],\n score: 0,\n type: newNode.type,\n createdAt: newNode.createdAt,\n modifiedAt: newNode.modifiedAt\n };\n _utils_app_nodesDisplay__WEBPACK_IMPORTED_MODULE_3__.pagedNodesInfo.value.nodes.unshift(newNodeSearchResult);\n // collapse quick post panel\n if (!quickPostPanelEle.value) return newNode;\n const cl = quickPostPanelEle.value.classList;\n if (!cl.contains(\"focus-expand\")) return newNode;\n cl.remove(\"focus-expand\");\n return newNode;\n }\n return {\n wordCount,\n ExceedMaxLength,\n quickPost,\n quickPostPanelEle,\n quickPostTextareaEle,\n postBtnEle,\n focusOnQuickPost,\n editInNodePage,\n postQuickPost\n };\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (useQuickPost);\n\n//# sourceURL=webpack://rethink/./src/utils/app/quickPost.ts?"); /***/ }), @@ -2296,7 +2326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\nvar SortType;\n(function (Sor \*****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flashMsgBox: function() { return /* binding */ flashMsgBox; },\n/* harmony export */ hideErrorMsgBox: function() { return /* binding */ hideErrorMsgBox; },\n/* harmony export */ hideInfoMsgBox: function() { return /* binding */ hideInfoMsgBox; },\n/* harmony export */ showConfirmMsgBox: function() { return /* binding */ showConfirmMsgBox; },\n/* harmony export */ showErrorMsgBox: function() { return /* binding */ showErrorMsgBox; },\n/* harmony export */ showInfoMsgBox: function() { return /* binding */ showInfoMsgBox; }\n/* harmony export */ });\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n\nfunction showErrorMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.message = msg;\n}\nfunction hideErrorMsgBox() {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.message = \"\";\n}\nfunction showInfoMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.message = msg;\n}\nfunction hideInfoMsgBox() {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.message = \"\";\n}\nfunction flashMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.message = msg;\n setTimeout(() => {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.message = \"\";\n }, 2000);\n}\nasync function showConfirmMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.confirmed = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.message = msg;\n return new Promise(resolve => {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked = false;\n const timer = setInterval(() => {\n if (_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked) {\n clearInterval(timer);\n resolve(_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.confirmed);\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.confirmed = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked = false;\n }\n }, 100);\n });\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/msgBox.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flashMsgBox: function() { return /* binding */ flashMsgBox; },\n/* harmony export */ hideErrorMsgBox: function() { return /* binding */ hideErrorMsgBox; },\n/* harmony export */ hideInfoMsgBox: function() { return /* binding */ hideInfoMsgBox; },\n/* harmony export */ setDelConfirmMsgBoxDeleted: function() { return /* binding */ setDelConfirmMsgBoxDeleted; },\n/* harmony export */ showConfirmMsgBox: function() { return /* binding */ showConfirmMsgBox; },\n/* harmony export */ showDelConfirmMsgBox: function() { return /* binding */ showDelConfirmMsgBox; },\n/* harmony export */ showErrorMsgBox: function() { return /* binding */ showErrorMsgBox; },\n/* harmony export */ showInfoMsgBox: function() { return /* binding */ showInfoMsgBox; }\n/* harmony export */ });\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/store */ \"./src/utils/store.ts\");\n\nfunction showErrorMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.message = msg;\n}\nfunction hideErrorMsgBox() {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.error.message = \"\";\n}\nfunction showInfoMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.message = msg;\n}\nfunction hideInfoMsgBox() {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.info.message = \"\";\n}\nfunction flashMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.show = true;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.message = msg;\n setTimeout(() => {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.show = false;\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.flash.message = \"\";\n }, 4000);\n}\nasync function showConfirmMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm = {\n message: msg,\n show: true,\n clicked: false,\n confirmed: false\n };\n return new Promise(resolve => {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked = false;\n const timer = setInterval(() => {\n if (_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.clicked) {\n clearInterval(timer);\n resolve(_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm.confirmed);\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.confirm = {\n message: \"\",\n show: false,\n clicked: false,\n confirmed: false\n };\n }\n }, 100);\n });\n}\nasync function showDelConfirmMsgBox(msg) {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.delete = {\n message: msg,\n show: true,\n clicked: false,\n confirmed: false,\n deleted: false\n };\n return new Promise(resolve => {\n _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.delete.clicked = false;\n const timer = setInterval(() => {\n if (_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.delete.clicked) {\n clearInterval(timer);\n resolve(_utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.delete.confirmed);\n }\n }, 100);\n });\n}\nfunction setDelConfirmMsgBoxDeleted() {\n const box = _utils_store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].msgBox.delete;\n if (box.confirmed) {\n box.deleted = true;\n box.show = false;\n }\n}\n\n\n//# sourceURL=webpack://rethink/./src/utils/msgBox.ts?"); /***/ }), @@ -2306,7 +2336,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty.js */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n\n\nclass MultiLang {\n constructor(data) {\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"langData\", void 0);\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"availableLangCodes\", [\"zh\", \"en\"]);\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"langCodeMap\", {\n zh: \"中文\",\n en: \"English\"\n });\n this.langData = data;\n }\n get(key) {\n const l = this.langData[key];\n if (!l) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(`Lang key ${key} not found`);\n return \"\";\n }\n return this.getGlobalLang() === \"zh\" ? l.zh : l.en;\n }\n setGlobalLang(lang) {\n localStorage.setItem(\"rethinkLang\", lang);\n }\n getGlobalLang() {\n return localStorage.getItem(\"rethinkLang\") || \"en\";\n }\n}\nconst mLang = new MultiLang({\n navbarHome: {\n zh: \"首页\",\n en: \"Home\"\n },\n navbarAbout: {\n zh: \"关于\",\n en: \"About\"\n },\n navbarLogin: {\n zh: \"登录\",\n en: \"Login\"\n },\n navbarStart: {\n zh: \"开始\",\n en: \"Start\"\n },\n goBackIcon: {\n zh: \"返回\",\n en: \"Back\"\n },\n sideBarHome: {\n zh: \"想法\",\n en: \"Thoughts\"\n },\n importDataH1: {\n zh: \"导入数据\",\n en: \"Import Data\"\n },\n import: {\n zh: \"开始导入\",\n en: \"Start importing\"\n },\n sideBarTrash: {\n zh: \"回收站\",\n en: \"Trash\"\n },\n sideBarImport: {\n zh: \"导入数据\",\n en: \"Import Data\"\n },\n sideBarPlugins: {\n zh: \"插件\",\n en: \"Plugins\"\n },\n arrangeNodeList: {\n zh: \"列表\",\n en: \"List\"\n },\n arrangeNodeGrid: {\n zh: \"网格\",\n en: \"Grid\"\n },\n sortNodeByTime: {\n zh: \"时间\",\n en: \"Time\"\n },\n sortNodeByCreatedAt: {\n zh: \"最新\",\n en: \"Create\"\n },\n sortNodeByModifiedAt: {\n zh: \"最后修改\",\n en: \"Update\"\n },\n sortNodeByTitle: {\n zh: \"名称\",\n en: \"Title\"\n },\n node2Trash: {\n zh: \"移至回收桶\",\n en: \"Move To Trash\"\n },\n nodeDelete: {\n zh: \"删除\",\n en: \"Delete\"\n },\n nodeDeleteConfirmation: {\n zh: \"确认删除\",\n en: \"Delete this thought\"\n },\n nodeRestoreFromTrash: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n searchBarPlaceholder: {\n zh: \"搜想法...\",\n en: \"Search...\"\n },\n searchWindowSMSubmit: {\n zh: \"搜索\",\n en: \"Search\"\n },\n searchWindowSMCollapse: {\n zh: \"收起\",\n en: \"Collapse\"\n },\n noSearchResult: {\n zh: \"没有搜索结果\",\n en: \"No search result\"\n },\n search: {\n zh: \"搜索\",\n en: \"Search\"\n },\n notices: {\n zh: \"消息\",\n en: \"Notices\"\n },\n notice: {\n zh: \"消息\",\n en: \"Notice\"\n },\n noticeNotFind: {\n zh: \"未找到消息\",\n en: \"Notice not found\"\n },\n noticeSwitchUnread: {\n zh: \"未读\",\n en: \"Unread\"\n },\n noticeSwitchAll: {\n zh: \"全部\",\n en: \"All\"\n },\n markAsRead: {\n zh: \"标为已读\",\n en: \"Mark as read\"\n },\n markAllAsRead: {\n zh: \"全部标为已读\",\n en: \"Mark all as read\"\n },\n headerBarNewThink: {\n zh: \"写想法\",\n en: \"Add Thought\"\n },\n nodeTimeJustNow: {\n zh: \"刚刚\",\n en: \"Just now\"\n },\n nodeTimeYesterdayPrefix: {\n zh: \"昨天\",\n en: \"Yesterday\"\n },\n nodeTimeTodayPrefix: {\n zh: \"今天\",\n en: \"Today\"\n },\n nodeViewHeaderTitle: {\n zh: \"标题\",\n en: \"Title\"\n },\n nodeViewHeaderSnippet: {\n zh: \"内容\",\n en: \"Content\"\n },\n nodeViewHeaderTime: {\n zh: \"时间\",\n en: \"Time\"\n },\n sortNodeBySimilarity: {\n zh: \"相似度\",\n en: \"Similarity\"\n },\n cursorSearchDropdownSearchResult: {\n zh: \"Rethink\",\n en: \"Rethink\"\n },\n cursorSearchDropdownSearchRecent: {\n zh: \"最近链接的想法\",\n en: \"Recent linked thoughts\"\n },\n cursorSearchDropdownCreateNew: {\n zh: \"新建\",\n en: \"Create new\"\n },\n cursorSearchDropdownTitle: {\n zh: \"选择连接的想法\",\n en: \"Select a thought to link\"\n },\n emptyNodeTitle: {\n zh: \"无标题\",\n en: \"Untitled\"\n },\n settingsViewHeading: {\n zh: \"设置\",\n en: \"Settings\"\n },\n settingsViewGlobal: {\n zh: \"通用\",\n en: \"Common\"\n },\n settingsLanguage: {\n zh: \"语言\",\n en: \"Language\"\n },\n settingsTheme: {\n zh: \"主题\",\n en: \"Theme\"\n },\n settingsViewEditor: {\n zh: \"编辑器\",\n en: \"Editor\"\n },\n settingsEditorMode: {\n zh: \"模式\",\n en: \"Mode\"\n },\n settingsEditorFontSize: {\n zh: \"字体大小\",\n en: \"Font Size\"\n },\n settingsEditorCodeTheme: {\n zh: \"代码主题\",\n en: \"Code Theme\"\n },\n settingsChangePwd: {\n zh: \"修改密码\",\n en: \"Change Password\"\n },\n settingsOldPwd: {\n zh: \"旧密码\",\n en: \"Old Password\"\n },\n settingsNewPwd: {\n zh: \"新密码\",\n en: \"New Password\"\n },\n settingsNewPwdConfirm: {\n zh: \"确认新密码\",\n en: \"Confirm New Password\"\n },\n settingsUpdatePwd: {\n zh: \"更新密码\",\n en: \"Update Password\"\n },\n settingsPwdNotMatch: {\n zh: \"新密码与确认新密码不一致\",\n en: \"New Password not match\"\n },\n settingsChangePwdHint: {\n zh: \"修改密码\",\n en: \"Change Password\"\n },\n settingsPwdUpdated: {\n zh: \"密码已更新,请重新登陆\",\n en: \"Password updated, please login again\"\n },\n settingsPwdSameAsOld: {\n zh: \"新密码与旧密码相同\",\n en: \"New password is the same as the old one\"\n },\n settingsIForgetMyPwd: {\n zh: \"我忘记了我的密码\",\n en: \"I forgot my password\"\n },\n userViewProfilePage: {\n zh: \"个人信息\",\n en: \"Profile\"\n },\n userProfileMeta: {\n zh: \"个人信息\",\n en: \"Profile\"\n },\n userViewName: {\n zh: \"名字\",\n en: \"Name\"\n },\n userViewEmail: {\n zh: \"邮箱\",\n en: \"Email\"\n },\n userViewAvatar: {\n zh: \"头像\",\n en: \"Picture\"\n },\n userProfileStats: {\n zh: \"统计\",\n en: \"Stats\"\n },\n userViewStorageUsage: {\n zh: \"已使用:\",\n en: \"Used Space:\"\n },\n loginViewHeading: {\n zh: \"登录\",\n en: \"Login\"\n },\n loginViewHeadingSignup: {\n zh: \"新用户注册\",\n en: \"New User Register\"\n },\n loginViewAccountLabel: {\n zh: \"账号\",\n en: \"Account\"\n },\n loginViewAccountPlaceholder: {\n zh: \"邮箱\",\n en: \"email\"\n },\n loginViewAccountInputTitle: {\n zh: \"请输入正确的邮箱\",\n en: \"Please input a valid email\"\n },\n loginViewPasswordLabel: {\n zh: \"密码\",\n en: \"Password\"\n },\n loginViewNoUserOrPassword: {\n zh: \"账号或密码错误\",\n en: \"Account or password error\"\n },\n loginViewAccountPasswordEmpty: {\n zh: \"账号或密码不能为空\",\n en: \"Account or password can not be empty\"\n },\n loginViewPasswordInputTitle: {\n zh: \"必须至少包含 1 位数字和 1 位字母,且最少 6 个字符以上,最多 20 字符以下\",\n en: \"Must contain at least one number and one letter, and more than 6 and less than 20 characters\"\n },\n loginViewConfirmPasswordLabel: {\n zh: \"确认密码\",\n en: \"Confirm password\"\n },\n loginViewConfirmPasswordNotMatch: {\n zh: \"两次密码不一致\",\n en: \"Confirm password not match\"\n },\n loginViewLoginButton: {\n zh: \"登录\",\n en: \"Log In\"\n },\n loginViewSignupButton: {\n zh: \"注册\",\n en: \"Create new account\"\n },\n loginViewSignupHasAccount: {\n zh: \"已有账号?\",\n en: \"Already have an account?\"\n },\n loginViewForgetPassword: {\n zh: \"忘记密码\",\n en: \"Forget password\"\n },\n loginViewWrongPasswordLength: {\n zh: \"密码长度不正确,密码应在 6-20 字符之间\",\n en: \"Password length is not correct, should be 6-20 characters\"\n },\n loginViewOAuthLogin: {\n zh: \"其他方式登录\",\n en: \"Other Login\"\n },\n notValidEmail: {\n zh: \"邮箱格式不正确\",\n en: \"Email format is not correct\"\n },\n registerCaptchaLabel: {\n zh: \"验证码\",\n en: \"Verification code\"\n },\n loginViewCaptchaEmpty: {\n zh: \"验证码不能为空\",\n en: \"Verification code can not be empty\"\n },\n forgetPasswordH1: {\n zh: \"忘记密码\",\n en: \"Forget password\"\n },\n forgetPasswordNewLabel: {\n zh: \"新密码\",\n en: \"New password\"\n },\n sendVerificationCode: {\n zh: \"发送验证码\",\n en: \"Send verification code\"\n },\n noCaptcha: {\n zh: \"请先完成验证码\",\n en: \"Please complete the verification code first\"\n },\n emailVerificationCode: {\n zh: \"邮箱验证码\",\n en: \"Email verification code\"\n },\n resendVerificationCode: {\n zh: \"重新发送\",\n en: \"Resend\"\n },\n verificationCodeLabel: {\n zh: \"验证码\",\n en: \"Verification code\"\n },\n resetPasswordFailed: {\n zh: \"重置密码失败\",\n en: \"Reset password failed\"\n },\n headerMenuLogout: {\n zh: \"登出\",\n en: \"Logout\"\n },\n headerMenuProfile: {\n zh: \"你的信息\",\n en: \"Your profile\"\n },\n headerMenuSettings: {\n zh: \"设置\",\n en: \"Settings\"\n },\n headerDocSite: {\n zh: \"文档\",\n en: \"Documents\"\n },\n oauthPageHeading: {\n zh: \"账号正在验证中...\",\n en: \"Verifying your account...\"\n },\n msgBoxConfirmButton: {\n zh: \"确定\",\n en: \"OK\"\n },\n msgBoxCancelButton: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n modificationSuccessful: {\n zh: \"修改成功\",\n en: \"Modification successful\"\n },\n cancel: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n submit: {\n zh: \"提交\",\n en: \"Submit\"\n },\n next: {\n zh: \"下一步\",\n en: \"Next\"\n },\n recentSearchedTitle: {\n zh: \"最近搜索\",\n en: \"Recent Queries\"\n },\n editorContentPlaceholder: {\n zh: \"记录我的新想法...\",\n en: \"Record my new thought...\"\n },\n editorSyncStatusSaved: {\n zh: \"已自动保存\",\n en: \"Auto saved\"\n },\n editorSyncStatusLastSaved: {\n zh: \"最近保存 \",\n en: \"Last saved \"\n },\n editorHistMdRestoreConfirm: {\n zh: \"确认恢复至该版本吗?\",\n en: \"Confirm to restore this version?\"\n },\n editorExternalLinkConfirm: {\n zh: \"点击确定将会去往外部链接:\",\n en: \"Click OK to go to external link: \"\n },\n nodeHistEditionRestoreNoVersions: {\n zh: \"没有历史版本\",\n en: \"No history versions\"\n },\n nodeHistEditionRestoreHeading: {\n zh: \"历史版本\",\n en: \"History Versions\"\n },\n nodeHistEditionRestoreNotice: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n quickPostPanelPlaceholder: {\n zh: \"速记想法 / 链接 ...\",\n en: \"Quick thought / link ...\"\n },\n quickPostBtn: {\n zh: \"记下\",\n en: \"Send\"\n },\n quickPostTooLong: {\n zh: \"用编辑器记长想法 >\",\n en: \"Use editor for long thought >\"\n },\n quickPostEditInNodePage: {\n zh: \"在新页面编辑\",\n en: \"Edit in new page\"\n },\n quickPostBtnTitle: {\n zh: \"快速记录\",\n en: \"Quick post\"\n },\n tryRestoreFromTrash: {\n zh: \"此想法被放在回收站中,是否要从回收站恢复?\",\n en: \"This thought is in trash, do you want to restore it?\"\n },\n nodeIsDeleted: {\n zh: \"此想法已被您删除\",\n en: \"This thought is deleted\"\n },\n noLinkedNode: {\n zh: \"还没有链接到任何想法,尝试 @ 一些吧\",\n en: \"No linked thought yet, try @ some\"\n },\n batchFileOpsShare: {\n zh: \"分享\",\n en: \"Share\"\n },\n batchFileOpsDelete: {\n zh: \"删除\",\n en: \"Delete\"\n },\n batchFileOpsTrash: {\n zh: \"回收\",\n en: \"To Trash\"\n },\n batchFileOpsCancel: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n batchFileOpsDownload: {\n zh: \"下载\",\n en: \"Download\"\n },\n batchFileOpsRestore: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n batchDeleteConfirmPre: {\n zh: \"确认删除\",\n en: \"Confirm to delete\"\n },\n batchDeleteConfirmPost: {\n zh: \"个想法?\",\n en: \"thoughts?\"\n },\n batchTrashed: {\n zh: \"已放入回收站\",\n en: \"Moved to trash\"\n },\n batchDeleted: {\n zh: \"已删除\",\n en: \"Deleted\"\n },\n batchRestore: {\n zh: \"已恢复\",\n en: \"Restored\"\n },\n nodeNeedRestoreToView: {\n zh: \"需要恢复后才能查看,确认恢复并查看?\",\n en: \"Need restore to be viewed, confirm restore?\"\n },\n uploadFilesLabel: {\n zh: \"上传文件\",\n en: \"Upload files\"\n },\n uploadFilesEmptyTask: {\n zh: \"无任务\",\n en: \"No Task\"\n },\n fileDropIsDragging: {\n zh: \"放入文件\",\n en: \"Release to drop files here.\"\n },\n fileDropNotDraggingPre: {\n zh: \"拖拽文件到此处或\",\n en: \"Drag and drop files here, or \"\n },\n fileDropNotDraggingClick: {\n zh: \"点此\",\n en: \"click here\"\n },\n fileDropNotDraggingPost: {\n zh: \" 上传\",\n en: \" to upload\"\n },\n fileDropInvalidFile: {\n zh: \"文件格式错误\",\n en: \"Invalid file format\"\n },\n fileDropTooLarge: {\n zh: \"文件过大\",\n en: \"File too large\"\n },\n fileDropTooManyPre: {\n zh: \"文件个数超过上限: \",\n en: \"File count exceeds limit: \"\n },\n fileDropTooManyPost: {\n zh: \",请分批上传\",\n en: \", please upload in batches\"\n },\n filesSubmitBtn: {\n zh: \"上传\",\n en: \"Upload\"\n },\n fileDropPreviewFileCount: {\n zh: \"已加载文件数:\",\n en: \"Loaded file count: \"\n },\n uploadFilesTaskNotFinished: {\n zh: \"任务未完成: \",\n en: \"Task not finished: \"\n },\n newJobProgress: {\n zh: \"最新任务进度\",\n en: \"The latest job progress\"\n },\n autoRecommendation: {\n zh: \"自动展示相关想法...\",\n en: \"Auto show related thoughts...\"\n },\n pluginPanelDescription: {\n zh: \"插件是一种括展能力,可以基于你的想法库,延伸不同的功能。当前仅可以在私有化部署的版本中,开发、体验自己的插件。\",\n en: \"Plugin is an extension capability, which can extend different functions based on your own data. \" + \"Currently, you can only develop and view your own plugins in the self-hosted version.\"\n },\n pluginPageTitle: {\n zh: \"插件页\",\n en: \"Plugin page\"\n },\n authExpired: {\n zh: \"登录状态已过期,请重新登录\",\n en: \"Login status expired, please login again\"\n },\n resendVerificationSuccess: {\n zh: \"已发送\",\n en: \"Sent\"\n },\n page404msg: {\n zh: \"你所访问的页面不存在!\",\n en: \"Sorry, the page you are looking for does not exist.\"\n },\n page404Detail: {\n zh: \"请检查您的链接是否正确,或者返回\",\n en: \"Please check the URL or return to the \"\n },\n page404Home: {\n zh: \"首页\",\n en: \"home\"\n }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (mLang);\n\n//# sourceURL=webpack://rethink/./src/utils/multiLang.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty.js */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _utils_msgBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/msgBox */ \"./src/utils/msgBox.ts\");\n\n\nclass MultiLang {\n constructor(data) {\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"langData\", void 0);\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"availableLangCodes\", [\"zh\", \"en\"]);\n (0,_Users_morvanzhou_Documents_repo_rethink_frontend_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"langCodeMap\", {\n zh: \"中文\",\n en: \"English\"\n });\n this.langData = data;\n }\n get(key) {\n const l = this.langData[key];\n if (!l) {\n (0,_utils_msgBox__WEBPACK_IMPORTED_MODULE_1__.showErrorMsgBox)(`Lang key ${key} not found`);\n return \"\";\n }\n return this.getGlobalLang() === \"zh\" ? l.zh : l.en;\n }\n setGlobalLang(lang) {\n localStorage.setItem(\"rethinkLang\", lang);\n }\n getGlobalLang() {\n return localStorage.getItem(\"rethinkLang\") || \"en\";\n }\n}\nconst mLang = new MultiLang({\n navbarHome: {\n zh: \"首页\",\n en: \"Home\"\n },\n navbarAbout: {\n zh: \"关于\",\n en: \"About\"\n },\n navbarLogin: {\n zh: \"登录\",\n en: \"Login\"\n },\n navbarStart: {\n zh: \"开始\",\n en: \"Start\"\n },\n goBackIcon: {\n zh: \"返回\",\n en: \"Back\"\n },\n thought: {\n zh: \"THINK\",\n en: \"THINK\"\n },\n day: {\n zh: \"DAY\",\n en: \"DAY\"\n },\n sideBarHome: {\n zh: \"想法\",\n en: \"Thoughts\"\n },\n importDataH1: {\n zh: \"导入数据\",\n en: \"Import Data\"\n },\n import: {\n zh: \"开始导入\",\n en: \"Start importing\"\n },\n sideBarTrash: {\n zh: \"回收站\",\n en: \"Trash\"\n },\n sideBarImport: {\n zh: \"导入数据\",\n en: \"Import Data\"\n },\n sideBarPlugins: {\n zh: \"插件\",\n en: \"Plugins\"\n },\n arrangeNodeList: {\n zh: \"列表\",\n en: \"List\"\n },\n arrangeNodeGrid: {\n zh: \"网格\",\n en: \"Grid\"\n },\n sortNodeByTime: {\n zh: \"时间\",\n en: \"Time\"\n },\n sortNodeByCreatedAt: {\n zh: \"最新\",\n en: \"Create\"\n },\n sortNodeByModifiedAt: {\n zh: \"最后修改\",\n en: \"Update\"\n },\n sortNodeByTitle: {\n zh: \"名称\",\n en: \"Title\"\n },\n node2Trash: {\n zh: \"移至回收桶\",\n en: \"Move To Trash\"\n },\n nodeDelete: {\n zh: \"删除\",\n en: \"Delete\"\n },\n nodeDeleteConfirmation: {\n zh: \"确认删除\",\n en: \"Delete this thought\"\n },\n nodeRestoreFromTrash: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n searchBarPlaceholder: {\n zh: \"搜想法...\",\n en: \"Search...\"\n },\n searchWindowSMSubmit: {\n zh: \"搜索\",\n en: \"Search\"\n },\n searchWindowSMCollapse: {\n zh: \"收起\",\n en: \"Collapse\"\n },\n noSearchResult: {\n zh: \"没有搜索结果\",\n en: \"No search result\"\n },\n search: {\n zh: \"搜索\",\n en: \"Search\"\n },\n notices: {\n zh: \"消息\",\n en: \"Notices\"\n },\n notice: {\n zh: \"消息\",\n en: \"Notice\"\n },\n noticeNotFind: {\n zh: \"未找到消息\",\n en: \"Notice not found\"\n },\n noticeSwitchUnread: {\n zh: \"未读\",\n en: \"Unread\"\n },\n noticeSwitchAll: {\n zh: \"全部\",\n en: \"All\"\n },\n markAsRead: {\n zh: \"标为已读\",\n en: \"Mark as read\"\n },\n markAllAsRead: {\n zh: \"全部标为已读\",\n en: \"Mark all as read\"\n },\n headerBarNewThink: {\n zh: \"写想法\",\n en: \"Add Thought\"\n },\n nodeTimeJustNow: {\n zh: \"刚刚\",\n en: \"Just now\"\n },\n nodeTimeYesterdayPrefix: {\n zh: \"昨天\",\n en: \"Yesterday\"\n },\n nodeTimeTodayPrefix: {\n zh: \"今天\",\n en: \"Today\"\n },\n nodeViewHeaderTitle: {\n zh: \"标题\",\n en: \"Title\"\n },\n nodeViewHeaderSnippet: {\n zh: \"内容\",\n en: \"Content\"\n },\n nodeViewHeaderTime: {\n zh: \"时间\",\n en: \"Time\"\n },\n sortNodeBySimilarity: {\n zh: \"相似度\",\n en: \"Similarity\"\n },\n cursorSearchDropdownSearchResult: {\n zh: \"Rethink\",\n en: \"Rethink\"\n },\n cursorSearchDropdownSearchRecent: {\n zh: \"最近链接的想法\",\n en: \"Recent linked thoughts\"\n },\n cursorSearchDropdownCreateNew: {\n zh: \"新建\",\n en: \"Create new\"\n },\n cursorSearchDropdownTitle: {\n zh: \"选择连接的想法\",\n en: \"Select a thought to link\"\n },\n emptyNodeTitle: {\n zh: \"无标题\",\n en: \"Untitled\"\n },\n settingsViewHeading: {\n zh: \"设置\",\n en: \"Settings\"\n },\n settingsViewGlobal: {\n zh: \"通用\",\n en: \"Common\"\n },\n settingsLanguage: {\n zh: \"语言\",\n en: \"Language\"\n },\n settingsTheme: {\n zh: \"主题\",\n en: \"Theme\"\n },\n settingsViewEditor: {\n zh: \"编辑器\",\n en: \"Editor\"\n },\n settingsEditorMode: {\n zh: \"模式\",\n en: \"Mode\"\n },\n settingsEditorFontSize: {\n zh: \"字体大小\",\n en: \"Font Size\"\n },\n settingsEditorCodeTheme: {\n zh: \"代码主题\",\n en: \"Code Theme\"\n },\n settingsChangePwd: {\n zh: \"修改密码\",\n en: \"Change Password\"\n },\n settingsOldPwd: {\n zh: \"旧密码\",\n en: \"Old Password\"\n },\n settingsNewPwd: {\n zh: \"新密码\",\n en: \"New Password\"\n },\n settingsNewPwdConfirm: {\n zh: \"确认新密码\",\n en: \"Confirm New Password\"\n },\n settingsUpdatePwd: {\n zh: \"更新密码\",\n en: \"Update Password\"\n },\n settingsPwdNotMatch: {\n zh: \"新密码与确认新密码不一致\",\n en: \"New Password not match\"\n },\n settingsChangePwdHint: {\n zh: \"修改密码\",\n en: \"Change Password\"\n },\n settingsPwdUpdated: {\n zh: \"密码已更新,请重新登陆\",\n en: \"Password updated, please login again\"\n },\n settingsPwdSameAsOld: {\n zh: \"新密码与旧密码相同\",\n en: \"New password is the same as the old one\"\n },\n settingsIForgetMyPwd: {\n zh: \"我忘记了我的密码\",\n en: \"I forgot my password\"\n },\n userViewProfilePage: {\n zh: \"个人信息\",\n en: \"Profile\"\n },\n userProfileMeta: {\n zh: \"个人信息\",\n en: \"Profile\"\n },\n userViewName: {\n zh: \"名字\",\n en: \"Name\"\n },\n userViewEmail: {\n zh: \"邮箱\",\n en: \"Email\"\n },\n userViewAvatar: {\n zh: \"头像\",\n en: \"Picture\"\n },\n userProfileStats: {\n zh: \"统计\",\n en: \"Stats\"\n },\n userViewStorageUsage: {\n zh: \"已使用:\",\n en: \"Used Space:\"\n },\n loginViewHeading: {\n zh: \"登录\",\n en: \"Login\"\n },\n loginViewHeadingSignup: {\n zh: \"新用户注册\",\n en: \"New User Register\"\n },\n loginViewAccountLabel: {\n zh: \"账号\",\n en: \"Account\"\n },\n loginViewAccountPlaceholder: {\n zh: \"邮箱\",\n en: \"email\"\n },\n loginViewAccountInputTitle: {\n zh: \"请输入正确的邮箱\",\n en: \"Please input a valid email\"\n },\n loginViewPasswordLabel: {\n zh: \"密码\",\n en: \"Password\"\n },\n loginViewNoUserOrPassword: {\n zh: \"账号或密码错误\",\n en: \"Account or password error\"\n },\n loginViewAccountPasswordEmpty: {\n zh: \"账号或密码不能为空\",\n en: \"Account or password can not be empty\"\n },\n loginViewPasswordInputTitle: {\n zh: \"必须至少包含 1 位数字和 1 位字母,且最少 6 个字符以上,最多 20 字符以下\",\n en: \"Must contain at least one number and one letter, and more than 6 and less than 20 characters\"\n },\n loginViewConfirmPasswordLabel: {\n zh: \"确认密码\",\n en: \"Confirm password\"\n },\n loginViewConfirmPasswordNotMatch: {\n zh: \"两次密码不一致\",\n en: \"Confirm password not match\"\n },\n loginViewLoginButton: {\n zh: \"登录\",\n en: \"Log In\"\n },\n loginViewSignupButton: {\n zh: \"注册\",\n en: \"Create new account\"\n },\n loginViewSignupHasAccount: {\n zh: \"已有账号?\",\n en: \"Already have an account?\"\n },\n loginViewForgetPassword: {\n zh: \"忘记密码\",\n en: \"Forget password\"\n },\n loginViewWrongPasswordLength: {\n zh: \"密码长度不正确,密码应在 6-20 字符之间\",\n en: \"Password length is not correct, should be 6-20 characters\"\n },\n loginViewOAuthLogin: {\n zh: \"其他方式登录\",\n en: \"Other Login\"\n },\n notValidEmail: {\n zh: \"邮箱格式不正确\",\n en: \"Email format is not correct\"\n },\n registerCaptchaLabel: {\n zh: \"验证码\",\n en: \"Verification code\"\n },\n loginViewCaptchaEmpty: {\n zh: \"验证码不能为空\",\n en: \"Verification code can not be empty\"\n },\n forgetPasswordH1: {\n zh: \"忘记密码\",\n en: \"Forget password\"\n },\n forgetPasswordNewLabel: {\n zh: \"新密码\",\n en: \"New password\"\n },\n sendVerificationCode: {\n zh: \"发送验证码\",\n en: \"Send verification code\"\n },\n noCaptcha: {\n zh: \"请先完成验证码\",\n en: \"Please complete the verification code first\"\n },\n emailVerificationCode: {\n zh: \"邮箱验证码\",\n en: \"Email verification code\"\n },\n resendVerificationCode: {\n zh: \"重新发送\",\n en: \"Resend\"\n },\n verificationCodeLabel: {\n zh: \"验证码\",\n en: \"Verification code\"\n },\n resetPasswordFailed: {\n zh: \"重置密码失败\",\n en: \"Reset password failed\"\n },\n headerMenuLogout: {\n zh: \"登出\",\n en: \"Logout\"\n },\n headerMenuProfile: {\n zh: \"你的信息\",\n en: \"Your profile\"\n },\n headerMenuSettings: {\n zh: \"设置\",\n en: \"Settings\"\n },\n headerDocSite: {\n zh: \"文档\",\n en: \"Documents\"\n },\n oauthPageHeading: {\n zh: \"账号正在验证中...\",\n en: \"Verifying your account...\"\n },\n msgBoxConfirmButton: {\n zh: \"确定\",\n en: \"OK\"\n },\n msgBoxCancelButton: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n msgBoxDelete: {\n zh: \"删除\",\n en: \"Delete\"\n },\n msgBoxDeleting: {\n zh: \"删除中...\",\n en: \"Deleting...\"\n },\n modificationSuccessful: {\n zh: \"修改成功\",\n en: \"Modification successful\"\n },\n cancel: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n submit: {\n zh: \"提交\",\n en: \"Submit\"\n },\n next: {\n zh: \"下一步\",\n en: \"Next\"\n },\n recentSearchedTitle: {\n zh: \"最近搜索\",\n en: \"Recent Queries\"\n },\n editorContentPlaceholder: {\n zh: \"记录我的新想法...\",\n en: \"Record my new thought...\"\n },\n editorSyncStatusSaved: {\n zh: \"已自动保存\",\n en: \"Auto saved\"\n },\n editorSyncStatusLastSaved: {\n zh: \"最近保存 \",\n en: \"Last saved \"\n },\n editorHistMdRestoreConfirm: {\n zh: \"确认恢复至该版本吗?\",\n en: \"Confirm to restore this version?\"\n },\n editorExternalLinkConfirm: {\n zh: \"点击确定将会去往外部链接:\",\n en: \"Click OK to go to external link: \"\n },\n nodeHistEditionRestoreNoVersions: {\n zh: \"没有历史版本\",\n en: \"No history versions\"\n },\n nodeHistEditionRestoreHeading: {\n zh: \"历史版本\",\n en: \"History Versions\"\n },\n nodeHistEditionRestoreNotice: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n quickPostPanelPlaceholder: {\n zh: \"速记想法 / 链接 ...\",\n en: \"Quick thought / link ...\"\n },\n quickPostBtn: {\n zh: \"记下\",\n en: \"Send\"\n },\n quickPostTooLong: {\n zh: \"用编辑器记长想法 >\",\n en: \"Use editor for long thought >\"\n },\n quickPostEditInNodePage: {\n zh: \"在新页面编辑\",\n en: \"Edit in new page\"\n },\n quickPostBtnTitle: {\n zh: \"快速记录\",\n en: \"Quick post\"\n },\n tryRestoreFromTrash: {\n zh: \"此想法被放在回收站中,是否要从回收站恢复?\",\n en: \"This thought is in trash, do you want to restore it?\"\n },\n nodeIsDeleted: {\n zh: \"此想法已被您删除\",\n en: \"This thought is deleted\"\n },\n noLinkedNode: {\n zh: \"还没有链接到任何想法,尝试 @ 一些吧\",\n en: \"No linked thought yet, try @ some\"\n },\n batchFileOpsShare: {\n zh: \"分享\",\n en: \"Share\"\n },\n batchFileOpsDelete: {\n zh: \"删除\",\n en: \"Delete\"\n },\n batchFileOpsTrash: {\n zh: \"回收\",\n en: \"To Trash\"\n },\n batchFileOpsCancel: {\n zh: \"取消\",\n en: \"Cancel\"\n },\n batchFileOpsDownload: {\n zh: \"下载\",\n en: \"Download\"\n },\n batchFileOpsRestore: {\n zh: \"恢复\",\n en: \"Restore\"\n },\n batchDeleteConfirmPre: {\n zh: \"确认删除\",\n en: \"Confirm to delete\"\n },\n batchDeleteConfirmPost: {\n zh: \"个想法?\",\n en: \"thoughts?\"\n },\n batchTrashed: {\n zh: \"已放入回收站\",\n en: \"Moved to trash\"\n },\n batchDeleted: {\n zh: \"已全部删除\",\n en: \"All Deleted\"\n },\n batchRestored: {\n zh: \"已全部恢复\",\n en: \"All Restored\"\n },\n nodeNeedRestoreToView: {\n zh: \"需要恢复后才能查看,确认恢复并查看?\",\n en: \"Need restore to be viewed, confirm restore?\"\n },\n uploadFilesLabel: {\n zh: \"上传文件\",\n en: \"Upload files\"\n },\n uploadFilesEmptyTask: {\n zh: \"无任务\",\n en: \"No Task\"\n },\n fileDropIsDragging: {\n zh: \"放入文件\",\n en: \"Release to drop files here.\"\n },\n fileDropNotDraggingPre: {\n zh: \"拖拽文件到此处或\",\n en: \"Drag and drop files here, or \"\n },\n fileDropNotDraggingClick: {\n zh: \"点此\",\n en: \"click here\"\n },\n fileDropNotDraggingPost: {\n zh: \" 上传\",\n en: \" to upload\"\n },\n fileDropInvalidFile: {\n zh: \"文件格式错误\",\n en: \"Invalid file format\"\n },\n fileDropTooLarge: {\n zh: \"文件过大\",\n en: \"File too large\"\n },\n fileDropTooManyPre: {\n zh: \"文件个数超过上限: \",\n en: \"File count exceeds limit: \"\n },\n fileDropTooManyPost: {\n zh: \",请分批上传\",\n en: \", please upload in batches\"\n },\n filesSubmitBtn: {\n zh: \"上传\",\n en: \"Upload\"\n },\n fileDropPreviewFileCount: {\n zh: \"已加载文件数:\",\n en: \"Loaded file count: \"\n },\n uploadFilesTaskNotFinished: {\n zh: \"任务未完成: \",\n en: \"Task not finished: \"\n },\n newJobProgress: {\n zh: \"最新任务进度\",\n en: \"The latest job progress\"\n },\n autoRecommendation: {\n zh: \"自动展示相关想法...\",\n en: \"Auto show related thoughts...\"\n },\n pluginPanelDescription: {\n zh: \"插件是一种括展能力,可以基于你的想法库,延伸不同的功能。当前仅可以在私有化部署的版本中,开发、体验自己的插件。\",\n en: \"Plugin is an extension capability, which can extend different functions based on your own data. \" + \"Currently, you can only develop and view your own plugins in the self-hosted version.\"\n },\n pluginPageTitle: {\n zh: \"插件页\",\n en: \"Plugin page\"\n },\n authExpired: {\n zh: \"登录状态已过期,请重新登录\",\n en: \"Login status expired, please login again\"\n },\n resendVerificationSuccess: {\n zh: \"已发送\",\n en: \"Sent\"\n },\n page404msg: {\n zh: \"你所访问的页面不存在!\",\n en: \"Sorry, the page you are looking for does not exist.\"\n },\n page404Detail: {\n zh: \"请检查您的链接是否正确,或者返回\",\n en: \"Please check the URL or return to the \"\n },\n page404Home: {\n zh: \"首页\",\n en: \"home\"\n }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (mLang);\n\n//# sourceURL=webpack://rethink/./src/utils/multiLang.ts?"); /***/ }), @@ -2446,7 +2476,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/const */ \"./src/utils/const.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n\n\n\nconst store = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({\n msgBox: {\n error: {\n message: \"\",\n show: false\n },\n info: {\n message: \"\",\n show: false\n },\n flash: {\n message: \"\",\n show: false\n },\n confirm: {\n message: \"\",\n show: false,\n clicked: false,\n confirmed: false\n }\n },\n appLeftSide: {\n show: (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\" || (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"md\"\n },\n appHome: {\n dropArrangements: false,\n dropSort: false\n },\n editor: {\n cursorQueryResultType: _utils_const__WEBPACK_IMPORTED_MODULE_1__[\"default\"].cursorQueryResultType.RecentSearch\n }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (store);\n\n//# sourceURL=webpack://rethink/./src/utils/store.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _utils_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/const */ \"./src/utils/const.ts\");\n/* harmony import */ var _utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/tools/mq */ \"./src/utils/tools/mq.ts\");\n\n\n\nconst store = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({\n msgBox: {\n error: {\n message: \"\",\n show: false\n },\n info: {\n message: \"\",\n show: false\n },\n flash: {\n message: \"\",\n show: false\n },\n confirm: {\n message: \"\",\n show: false,\n clicked: false,\n confirmed: false\n },\n delete: {\n message: \"\",\n show: false,\n clicked: false,\n confirmed: false,\n deleted: false\n }\n },\n appLeftSide: {\n show: (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"lg\" || (0,_utils_tools_mq__WEBPACK_IMPORTED_MODULE_2__.getMQ)() === \"md\"\n },\n appHome: {\n dropArrangements: false,\n dropSort: false\n },\n editor: {\n cursorQueryResultType: _utils_const__WEBPACK_IMPORTED_MODULE_1__[\"default\"].cursorQueryResultType.RecentSearch\n }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (store);\n\n//# sourceURL=webpack://rethink/./src/utils/store.ts?"); /***/ }), @@ -2506,7 +2536,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \******************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nfunction render(_ctx, _cache) {\n const _component_router_view = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-view\");\n const _component_InfoMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"InfoMsgBox\");\n const _component_FlashMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"FlashMsgBox\");\n const _component_ErrorMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ErrorMsgBox\");\n const _component_ConfirmMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ConfirmMsgBox\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_router_view), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_InfoMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FlashMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ErrorMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ConfirmMsgBox)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://rethink/./src/App.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nfunction render(_ctx, _cache) {\n const _component_router_view = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-view\");\n const _component_InfoMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"InfoMsgBox\");\n const _component_FlashMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"FlashMsgBox\");\n const _component_ErrorMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ErrorMsgBox\");\n const _component_ConfirmMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"ConfirmMsgBox\");\n const _component_DeleteConfirmMsgBox = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"DeleteConfirmMsgBox\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_router_view), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_InfoMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FlashMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ErrorMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_ConfirmMsgBox), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_DeleteConfirmMsgBox)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://rethink/./src/App.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), @@ -3190,6 +3220,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extr /***/ }), +/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use%5B0%5D!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use%5B1%5D!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/FlashMsgBox.vue?vue&type=style&index=0&id=21d867bf&lang=css": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/FlashMsgBox.vue?vue&type=style&index=0&id=21d867bf&lang=css ***! @@ -4040,6 +4080,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Con /***/ }), +/***/ "./src/components/messageBox/DeleteConfirmMsgBox.vue": +/*!***********************************************************!*\ + !*** ./src/components/messageBox/DeleteConfirmMsgBox.vue ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DeleteConfirmMsgBox_vue_vue_type_template_id_0753a324_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true */ \"./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true\");\n/* harmony import */ var _DeleteConfirmMsgBox_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true */ \"./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true\");\n/* harmony import */ var _DeleteConfirmMsgBox_vue_vue_type_style_index_0_id_0753a324_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css */ \"./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css\");\n/* harmony import */ var _node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\nconst __exports__ = /*#__PURE__*/(0,_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_DeleteConfirmMsgBox_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_DeleteConfirmMsgBox_vue_vue_type_template_id_0753a324_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-0753a324\"],['__file',\"src/components/messageBox/DeleteConfirmMsgBox.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?"); + +/***/ }), + /***/ "./src/components/messageBox/ErrorMsgBox.vue": /*!***************************************************!*\ !*** ./src/components/messageBox/ErrorMsgBox.vue ***! @@ -4970,6 +5020,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true": +/*!**********************************************************************************************!*\ + !*** ./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_DeleteConfirmMsgBox_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_DeleteConfirmMsgBox_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true */ \"./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=script&lang=ts&setup=true\");\n \n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?"); + +/***/ }), + /***/ "./src/components/messageBox/ErrorMsgBox.vue?vue&type=script&lang=ts&setup=true": /*!**************************************************************************************!*\ !*** ./src/components/messageBox/ErrorMsgBox.vue?vue&type=script&lang=ts&setup=true ***! @@ -5900,6 +5960,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true": +/*!*************************************************************************************************************!*\ + !*** ./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true ***! + \*************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_DeleteConfirmMsgBox_vue_vue_type_template_id_0753a324_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.render; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_DeleteConfirmMsgBox_vue_vue_type_template_id_0753a324_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true */ \"./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=template&id=0753a324&scoped=true&ts=true\");\n\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?"); + +/***/ }), + /***/ "./src/components/messageBox/ErrorMsgBox.vue?vue&type=template&id=c7e8e852&ts=true": /*!*****************************************************************************************!*\ !*** ./src/components/messageBox/ErrorMsgBox.vue?vue&type=template&id=c7e8e852&ts=true ***! @@ -6770,6 +6840,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod /***/ }), +/***/ "./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css": +/*!*******************************************************************************************************************!*\ + !*** ./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css ***! + \*******************************************************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_clonedRuleSet_12_use_0_node_modules_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_DeleteConfirmMsgBox_vue_vue_type_style_index_0_id_0753a324_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css */ \"./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/messageBox/DeleteConfirmMsgBox.vue?vue&type=style&index=0&id=0753a324&scoped=true&lang=css\");\n\n\n//# sourceURL=webpack://rethink/./src/components/messageBox/DeleteConfirmMsgBox.vue?"); + +/***/ }), + /***/ "./src/components/messageBox/FlashMsgBox.vue?vue&type=style&index=0&id=21d867bf&lang=css": /*!***********************************************************************************************!*\ !*** ./src/components/messageBox/FlashMsgBox.vue?vue&type=style&index=0&id=21d867bf&lang=css ***! diff --git a/tests/test_api.py b/tests/test_api.py index e6cd559..fee671c 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -196,6 +196,7 @@ async def create_new_temp_user(self, email): rj = self.check_ok_response(resp, 201) self.assertEqual("xxx", rj["requestId"]) self.assertEqual(email, rj["user"]["email"]) + self.assertEqual(2, rj["user"]["totalNodes"]) return resp