diff --git a/CMakeLists.txt b/CMakeLists.txt index 97298bc..08a4aad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,32 +1,36 @@ -cmake_minimum_required(VERSION 3.26.0) -project(Notes VERSION 1.0.0) +cmake_minimum_required(VERSION 3.25.1) + +project(Notes VERSION 1.0.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if (NOT TARGET simdjson) -add_subdirectory(thirdparty/simdjson) -endif() +include(FetchContent) -if (NOT TARGET libwebview_edge_static) -add_subdirectory(thirdparty/libwebview) -endif() +FetchContent_Declare(simdjson + SOURCE_DIR ${PROJECT_SOURCE_DIR}/thirdparty/simdjson + BINARY_DIR ${CMAKE_BINARY_DIR}/thirdparty/simdjson) -if (NOT TARGET SQLiteCpp) -add_subdirectory(thirdparty/SQLiteCpp) -endif() +FetchContent_Declare(libwebview + SOURCE_DIR ${PROJECT_SOURCE_DIR}/thirdparty/libwebview + BINARY_DIR ${CMAKE_BINARY_DIR}/thirdparty/libwebview) -if (NOT TARGET base64pp) -add_subdirectory(thirdparty/base64pp) -endif() +FetchContent_Declare(SQLiteCpp + SOURCE_DIR ${PROJECT_SOURCE_DIR}/thirdparty/SQLiteCpp + BINARY_DIR ${CMAKE_BINARY_DIR}/thirdparty/SQLiteCpp) + +FetchContent_Declare(base64pp + SOURCE_DIR ${PROJECT_SOURCE_DIR}/thirdparty/base64pp + BINARY_DIR ${CMAKE_BINARY_DIR}/thirdparty/base64pp) + +FetchContent_MakeAvailable(simdjson libwebview SQLiteCpp base64pp) add_executable(Notes src/exporters/txt.cpp src/main.cpp src/view_model.cpp src/note_storage.cpp - src/note.cpp - app.rc) + src/note.cpp) if(WIN32) set_target_properties(Notes @@ -36,6 +40,8 @@ set_target_properties(Notes LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:windows /ENTRY:mainCRTStartup" LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:windows /ENTRY:mainCRTStartup" ) + +target_sources(Notes PRIVATE app.rc) endif() target_include_directories(Notes PRIVATE @@ -44,11 +50,17 @@ target_include_directories(Notes PRIVATE target_precompile_headers(Notes PRIVATE ${PROJECT_SOURCE_DIR}/include/precompiled.hpp) -target_link_libraries(Notes PUBLIC +target_link_libraries(Notes PRIVATE base64pp SQLiteCpp simdjson - libwebview_edge_static) + libwebview_edge) + +if(WIN32) +target_link_libraries(Notes PRIVATE libwebview_edge) +elseif(UNIX) +target_link_libraries(Notes PRIVATE libwebview_webkit) +endif() add_custom_command( TARGET Notes diff --git a/README.md b/README.md index ef21710..1308542 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ Download all dependencies (thirdparty) using --recursive git. ### Requirements -- C++23 Compiler -- CMake 3.26.0 +- Visual Studio 2022 or Clang-18 +- CMake 3.25.1+ ## Thirdparties - [base64pp](https://github.com/matheusgomes28/base64pp) - [libwebview](https://github.com/a3st/libwebview) - [simdjson](https://github.com/simdjson/simdjson) -- [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) +- [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 1ee3d74..910f901 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,8 +6,8 @@ int32_t main(int32_t argc, char** argv) { try { - libwebview::App app("notes-app", "Notes", 580, 600, true, false); - app.setMinWindowSize(580, 600); + libwebview::App app("app.dl.notes", "Notes", 580, 600, true, false); + app.setWindowMinSize(580, 600); notes::ViewModel viewModel(&app); diff --git a/thirdparty/libwebview b/thirdparty/libwebview index 33fc526..f30c6cf 160000 --- a/thirdparty/libwebview +++ b/thirdparty/libwebview @@ -1 +1 @@ -Subproject commit 33fc5260025ccd65a6e691559bc8ea63d47ee2d4 +Subproject commit f30c6cfd858ab645dc07b393fc31a829d576badf diff --git a/ui/dist/images/ellipsis.svg b/ui/dist/64018085f4e026c65ae1.svg similarity index 100% rename from ui/dist/images/ellipsis.svg rename to ui/dist/64018085f4e026c65ae1.svg diff --git a/ui/dist/images/eye.svg b/ui/dist/960626cf300fd233c5c5.svg similarity index 100% rename from ui/dist/images/eye.svg rename to ui/dist/960626cf300fd233c5c5.svg diff --git a/ui/dist/app.bundle.js b/ui/dist/app.bundle.js index 5151714..f239ece 100644 --- a/ui/dist/app.bundle.js +++ b/ui/dist/app.bundle.js @@ -16,7 +16,7 @@ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.esm.js\");\n/* harmony import */ var ctxmenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ctxmenu */ \"./node_modules/ctxmenu/index.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n emits: ['save'],\n data() {\n return {\n isOpenEditor: false,\n isPreview: false,\n isChanged: false,\n content: \"\",\n title: \"\",\n id: -1\n };\n },\n computed: {\n previewText() {\n return (0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.content);\n }\n },\n watch: {\n content: {\n handler(value, oldValue) {\n this.isChanged = true;\n }\n },\n title: {\n handler(value, oldValue) {\n this.isChanged = true;\n }\n }\n },\n methods: {\n onFocusInput(e) {\n jquery__WEBPACK_IMPORTED_MODULE_2___default()('.header-input-container input').attr('placeholder', 'Заголовок');\n this.isOpenEditor = true;\n },\n onCloseClick(e) {\n jquery__WEBPACK_IMPORTED_MODULE_2___default()('.header-input-container input').attr('placeholder', 'Придумайте что написать...');\n this.title = \"\";\n this.content = \"\";\n this.isOpenEditor = false;\n this.isPreview = false;\n this.id = -1;\n },\n onSaveClick(e) {\n webview.invoke('saveNote', this.id, this.title, btoa(unescape(encodeURIComponent(this.content)))).then(id => this.id = id);\n this.$emit('save', e);\n this.isChanged = false;\n },\n onExportClick(e) {\n e.stopPropagation();\n ctxmenu__WEBPACK_IMPORTED_MODULE_1__.ctxmenu.show([{\n text: \"Экспорт\"\n }, {\n text: \".TXT\",\n action: () => webview.invoke('exportNote', this.id, 'txt')\n }], e.target);\n },\n open(preview) {\n this.isOpenEditor = true;\n this.isPreview = preview;\n },\n isOpen() {\n return this.isOpenEditor;\n },\n setID(id) {\n this.id = id;\n },\n setTitle(title) {\n this.title = title;\n this.isChanged = false;\n },\n setContent(content) {\n this.content = content;\n this.isChanged = false;\n },\n onSwitchVisibleClick(e) {\n this.isPreview = !this.isPreview;\n },\n onSwitchVisibleEditorClick(e) {\n const containerElement = jquery__WEBPACK_IMPORTED_MODULE_2___default()('.markdown-container');\n if (e.offsetX >= containerElement.width() - 15 || e.offsetY >= containerElement.height() - 15) {\n return;\n }\n this.isPreview = false;\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.esm.js\");\n/* harmony import */ var ctxmenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ctxmenu */ \"./node_modules/ctxmenu/index.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n emits: [\"save\"],\n data() {\n return {\n isOpenEditor: false,\n isPreview: false,\n isChanged: false,\n content: \"\",\n title: \"\",\n id: -1\n };\n },\n computed: {\n previewText() {\n return (0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.content);\n }\n },\n watch: {\n content: {\n handler(value, oldValue) {\n this.isChanged = true;\n }\n },\n title: {\n handler(value, oldValue) {\n this.isChanged = true;\n }\n }\n },\n methods: {\n onFocusInput(e) {\n jquery__WEBPACK_IMPORTED_MODULE_2___default()(\".header-input-container input\").attr(\"placeholder\", \"Заголовок\");\n this.isOpenEditor = true;\n },\n onCloseClick(e) {\n jquery__WEBPACK_IMPORTED_MODULE_2___default()(\".header-input-container input\").attr(\"placeholder\", \"Придумайте что написать...\");\n this.title = \"\";\n this.content = \"\";\n this.isOpenEditor = false;\n this.isPreview = false;\n this.id = -1;\n },\n onSaveClick(e) {\n webview.invoke(\"saveNote\", this.id, this.title, btoa(unescape(encodeURIComponent(this.content)))).then(id => this.id = id);\n this.$emit(\"save\", e);\n this.isChanged = false;\n },\n onExportClick(e) {\n e.stopPropagation();\n ctxmenu__WEBPACK_IMPORTED_MODULE_1__.ctxmenu.show([{\n text: \"Экспорт\"\n }, {\n text: \".TXT\",\n action: () => webview.invoke(\"exportNote\", this.id, \"txt\")\n }], e.target);\n },\n open(preview) {\n this.isOpenEditor = true;\n this.isPreview = preview;\n },\n isOpen() {\n return this.isOpenEditor;\n },\n setID(id) {\n this.id = id;\n },\n setTitle(title) {\n this.title = title;\n this.isChanged = false;\n },\n setContent(content) {\n this.content = content;\n this.isChanged = false;\n },\n onSwitchVisibleClick(e) {\n this.isPreview = !this.isPreview;\n },\n onSwitchVisibleEditorClick(e) {\n const containerElement = jquery__WEBPACK_IMPORTED_MODULE_2___default()(\".markdown-container\");\n if (e.offsetX >= containerElement.width() - 15 || e.offsetY >= containerElement.height() - 15) {\n return;\n }\n this.isPreview = false;\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -27,7 +27,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.esm.js\");\n/* harmony import */ var ctxmenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ctxmenu */ \"./node_modules/ctxmenu/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n emits: ['note-click', 'menu-click'],\n props: {\n id: Number,\n title: String,\n data: String\n },\n computed: {\n description() {\n return (0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.data);\n }\n },\n methods: {\n onMenuClick(e) {\n e.stopPropagation();\n ctxmenu__WEBPACK_IMPORTED_MODULE_1__.ctxmenu.show([{\n text: \"Удалить\",\n action: () => {\n webview.invoke('removeNote', this.id).then(() => this.$emit('menu-click', e));\n }\n }], e.target);\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ \"./node_modules/marked/lib/marked.esm.js\");\n/* harmony import */ var ctxmenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ctxmenu */ \"./node_modules/ctxmenu/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n emits: [\"note-click\", \"menu-click\"],\n props: {\n id: Number,\n title: String,\n data: String\n },\n computed: {\n description() {\n return (0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.data);\n }\n },\n methods: {\n onMenuClick(e) {\n e.stopPropagation();\n ctxmenu__WEBPACK_IMPORTED_MODULE_1__.ctxmenu.show([{\n text: \"Удалить\",\n action: () => {\n webview.invoke(\"removeNote\", this.id).then(() => this.$emit(\"menu-click\", e));\n }\n }], e.target);\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -38,7 +38,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_note_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/note.vue */ \"./src/components/note.vue\");\n/* harmony import */ var _components_editor_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/editor.vue */ \"./src/components/editor.vue\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n 'note': _components_note_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n 'editor': _components_editor_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n data() {\n return {\n isReady: true,\n notes: []\n };\n },\n created() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize', e => {\n this.updateNoteGroupHeight(e.target.outerHeight);\n });\n },\n destroyed() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('resize');\n },\n mounted() {\n this.updateNoteList();\n this.$nextTick(() => {\n this.updateNoteGroupHeight(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).outerHeight());\n });\n },\n methods: {\n updateNoteGroupHeight(windowHeight) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.notegr-container').css('height', windowHeight - (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.editor-container').height() + 80));\n },\n updateNoteList() {\n this.isReady = false;\n this.notes.splice(0, this.notes.length);\n webview.invoke('getNotes').then(data => {\n for (const note of Object.values(data.notes)) {\n const noteData = {\n 'id': note.id,\n 'title': note.name,\n 'content': decodeURIComponent(escape(atob(note.data)))\n };\n this.notes.push(noteData);\n }\n this.isReady = true;\n });\n },\n onNoteClick(e, index) {\n const editor = this.$refs.editor;\n if (editor.isOpen()) {\n return;\n }\n editor.open(true);\n editor.setID(this.notes[index].id);\n editor.setTitle(this.notes[index].title);\n editor.setContent(this.notes[index].content);\n },\n onNoteMenuClick(e) {\n this.updateNoteList();\n },\n onEditorSaveClick(e) {\n this.updateNoteList();\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_note_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/note.vue */ \"./src/components/note.vue\");\n/* harmony import */ var _components_editor_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/editor.vue */ \"./src/components/editor.vue\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n note: _components_note_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n editor: _components_editor_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n data() {\n return {\n isReady: true,\n notes: []\n };\n },\n created() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"resize\", e => {\n this.updateNoteGroupHeight(e.target.outerHeight);\n });\n },\n destroyed() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\"resize\");\n },\n mounted() {\n this.updateNoteList();\n this.$nextTick(() => {\n this.updateNoteGroupHeight(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).outerHeight());\n });\n },\n methods: {\n updateNoteGroupHeight(windowHeight) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".notegr-container\").css(\"height\", windowHeight - (jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".editor-container\").height() + 80));\n },\n updateNoteList() {\n this.isReady = false;\n this.notes.splice(0, this.notes.length);\n webview.invoke(\"getNotes\").then(data => {\n for (const note of Object.values(data.notes)) {\n const noteData = {\n id: note.id,\n title: note.name,\n content: decodeURIComponent(escape(atob(note.data)))\n };\n this.notes.push(noteData);\n }\n this.isReady = true;\n });\n },\n onNoteClick(e, index) {\n const editor = this.$refs.editor;\n if (editor.isOpen()) {\n return;\n }\n editor.open(true);\n editor.setID(this.notes[index].id);\n editor.setTitle(this.notes[index].title);\n editor.setContent(this.notes[index].content);\n },\n onNoteMenuClick(e) {\n this.updateNoteList();\n },\n onEditorSaveClick(e) {\n this.updateNoteList();\n }\n }\n});\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -49,7 +49,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"editor-container\"\n};\nconst _hoisted_2 = {\n class: \"header-input-container\"\n};\nconst _hoisted_3 = {\n class: \"body-input-container\"\n};\nconst _hoisted_4 = {\n key: 0,\n style: {\n \"display\": \"flex\",\n \"padding\": \"10px\",\n \"height\": \"calc(100% - 80px)\"\n }\n};\nconst _hoisted_5 = [\"innerHTML\"];\nconst _hoisted_6 = {\n key: 1,\n style: {\n \"display\": \"flex\",\n \"padding\": \"10px\",\n \"height\": \"calc(100% - 80px)\"\n }\n};\nconst _hoisted_7 = {\n class: \"footer-input-container\"\n};\nconst _hoisted_8 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n \"width\": \"100%\"\n }\n};\nconst _hoisted_9 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"gap\": \"10px\"\n }\n};\nconst _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"object\", {\n style: {\n \"pointer-events\": \"none\"\n },\n data: \"images/eye.svg\",\n width: \"20\",\n height: \"20\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_11 = [_hoisted_10];\nconst _hoisted_12 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"object\", {\n style: {\n \"pointer-events\": \"none\"\n },\n data: \"images/file-export.svg\",\n width: \"20\",\n height: \"20\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_13 = [_hoisted_12];\nconst _hoisted_14 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"margin-left\": \"auto\"\n }\n};\nconst _hoisted_15 = [\"disabled\"];\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__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n placeholder: \"Придумайте что написать...\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.title = $event),\n onFocus: _cache[1] || (_cache[1] = $event => $options.onFocusInput($event))\n }, null, 544 /* NEED_HYDRATION, NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.title]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [$data.isPreview ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"markdown-container\",\n innerHTML: $options.previewText,\n onMousedown: _cache[2] || (_cache[2] = $event => $options.onSwitchVisibleEditorClick($event))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_5)])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"textarea\", {\n placeholder: \"Заметка...\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.content = $event)\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.content]])])), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n title: \"Предпросмотр\",\n class: \"btn-icon circle\",\n style: {\n \"width\": \"36px\",\n \"height\": \"36px\"\n },\n onClick: _cache[4] || (_cache[4] = $event => $options.onSwitchVisibleClick($event))\n }, [..._hoisted_11]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n id: \"export-btn\",\n title: \"Экспорт\",\n class: \"btn-icon circle\",\n style: {\n \"width\": \"36px\",\n \"height\": \"36px\"\n },\n onClick: _cache[5] || (_cache[5] = $event => $options.onExportClick($event))\n }, [..._hoisted_13], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, this.id != -1]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-text\",\n onClick: _cache[6] || (_cache[6] = $event => $options.onSaveClick($event)),\n style: {\n \"font-weight\": \"bold\"\n },\n disabled: !$data.isChanged || this.title.length == 0\n }, \"Сохранить\", 8 /* PROPS */, _hoisted_15), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-text\",\n onClick: _cache[7] || (_cache[7] = $event => $options.onCloseClick($event)),\n style: {\n \"font-weight\": \"bold\"\n }\n }, \"Закрыть\")])])])], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, $data.isOpenEditor]])]);\n}\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"editor-container\"\n};\nconst _hoisted_2 = {\n class: \"header-input-container\"\n};\nconst _hoisted_3 = {\n class: \"body-input-container\"\n};\nconst _hoisted_4 = {\n key: 0,\n style: {\n \"display\": \"flex\",\n \"padding\": \"10px\",\n \"height\": \"calc(100% - 80px)\"\n }\n};\nconst _hoisted_5 = [\"innerHTML\"];\nconst _hoisted_6 = {\n key: 1,\n style: {\n \"display\": \"flex\",\n \"padding\": \"10px\",\n \"height\": \"calc(100% - 80px)\"\n }\n};\nconst _hoisted_7 = {\n class: \"footer-input-container\"\n};\nconst _hoisted_8 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n \"width\": \"100%\"\n }\n};\nconst _hoisted_9 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"gap\": \"10px\"\n }\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"margin-left\": \"auto\"\n }\n};\nconst _hoisted_13 = [\"disabled\"];\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__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n placeholder: \"Придумайте что написать...\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $data.title = $event),\n onFocus: _cache[1] || (_cache[1] = (...args) => $options.onFocusInput && $options.onFocusInput(...args))\n }, null, 544 /* NEED_HYDRATION, NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.title]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [$data.isPreview ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"markdown-container\",\n innerHTML: $options.previewText,\n onMousedown: _cache[2] || (_cache[2] = (...args) => $options.onSwitchVisibleEditorClick && $options.onSwitchVisibleEditorClick(...args))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_5)])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"textarea\", {\n placeholder: \"Заметка...\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.content = $event)\n }, null, 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.content]])])), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n title: \"Предпросмотр\",\n class: \"btn-icon circle\",\n style: {\n \"width\": \"36px\",\n \"height\": \"36px\"\n },\n onClick: _cache[4] || (_cache[4] = (...args) => $options.onSwitchVisibleClick && $options.onSwitchVisibleClick(...args))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n src: __webpack_require__(/*! ../images/eye.svg */ \"./src/images/eye.svg\"),\n width: \"20\",\n height: \"20\"\n }, null, 8 /* PROPS */, _hoisted_10)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n id: \"export-btn\",\n title: \"Экспорт\",\n class: \"btn-icon circle\",\n style: {\n \"width\": \"36px\",\n \"height\": \"36px\"\n },\n onClick: _cache[5] || (_cache[5] = (...args) => $options.onExportClick && $options.onExportClick(...args))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n src: __webpack_require__(/*! ../images/file-export.svg */ \"./src/images/file-export.svg\"),\n width: \"20\",\n height: \"20\"\n }, null, 8 /* PROPS */, _hoisted_11)], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, this.id != -1]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-text\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.onSaveClick && $options.onSaveClick(...args)),\n style: {\n \"font-weight\": \"bold\"\n },\n disabled: !$data.isChanged || this.title.length == 0\n }, \" Сохранить \", 8 /* PROPS */, _hoisted_13), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-text\",\n onClick: _cache[7] || (_cache[7] = (...args) => $options.onCloseClick && $options.onCloseClick(...args)),\n style: {\n \"font-weight\": \"bold\"\n }\n }, \" Закрыть \")])])])], 512 /* NEED_PATCH */), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, $data.isOpenEditor]])]);\n}\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -60,7 +60,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"note-container\"\n};\nconst _hoisted_2 = {\n class: \"note-header-container\"\n};\nconst _hoisted_3 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"margin-left\": \"auto\"\n }\n};\nconst _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"object\", {\n style: {\n \"pointer-events\": \"none\"\n },\n data: \"images/ellipsis.svg\",\n width: \"16\",\n height: \"16\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_5 = [_hoisted_4];\nconst _hoisted_6 = [\"innerHTML\"];\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__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"note-title\",\n onMousedown: _cache[0] || (_cache[0] = $event => _ctx.$emit('note-click', $event))\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.title), 33 /* TEXT, NEED_HYDRATION */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-icon\",\n onClick: _cache[1] || (_cache[1] = $event => $options.onMenuClick($event))\n }, [..._hoisted_5])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"note-body-container\",\n innerHTML: $options.description,\n onMousedown: _cache[2] || (_cache[2] = $event => _ctx.$emit('note-click', $event))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_6)]);\n}\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"note-container\"\n};\nconst _hoisted_2 = {\n class: \"note-header-container\"\n};\nconst _hoisted_3 = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"row\",\n \"margin-left\": \"auto\"\n }\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = [\"innerHTML\"];\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__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"note-title\",\n onMousedown: _cache[0] || (_cache[0] = $event => _ctx.$emit('note-click', $event))\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.title), 33 /* TEXT, NEED_HYDRATION */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"btn-icon\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onMenuClick && $options.onMenuClick(...args))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n src: __webpack_require__(/*! ../images/ellipsis.svg */ \"./src/images/ellipsis.svg\"),\n width: \"16\",\n height: \"16\"\n }, null, 8 /* PROPS */, _hoisted_4)])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"note-body-container\",\n innerHTML: $options.description,\n onMousedown: _cache[2] || (_cache[2] = $event => _ctx.$emit('note-click', $event))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_5)]);\n}\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -71,7 +71,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"wrapper-container\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"notegr-container\"\n};\nconst _hoisted_3 = {\n key: 1,\n class: \"notegr-loading-container\"\n};\nconst _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"loader\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_5 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, \"Загрузка заметок...\", -1 /* HOISTED */);\nconst _hoisted_6 = [_hoisted_4, _hoisted_5];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_editor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"editor\");\n const _component_note = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"note\");\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)(_component_editor, {\n ref: \"editor\",\n onSave: _cache[0] || (_cache[0] = $event => $options.onEditorSaveClick($event))\n }, null, 512 /* NEED_PATCH */), $data.isReady ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [((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)($data.notes, (note, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_note, {\n id: note.id,\n title: note.title,\n data: note.content,\n onNoteClick: $event => $options.onNoteClick($event, index),\n onMenuClick: _cache[1] || (_cache[1] = $event => $options.onNoteMenuClick($event))\n }, null, 8 /* PROPS */, [\"id\", \"title\", \"data\", \"onNoteClick\"]);\n }), 256 /* UNKEYED_FRAGMENT */))])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_3, [..._hoisted_6]))]);\n}\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-browser.js\");\n\nconst _hoisted_1 = {\n class: \"wrapper-container\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"notegr-container\"\n};\nconst _hoisted_3 = {\n key: 1,\n class: \"notegr-loading-container\"\n};\nconst _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"loader\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_5 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, \"Загрузка заметок...\", -1 /* HOISTED */);\nconst _hoisted_6 = [_hoisted_4, _hoisted_5];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_editor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"editor\");\n const _component_note = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"note\");\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)(_component_editor, {\n ref: \"editor\",\n onSave: $options.onEditorSaveClick\n }, null, 8 /* PROPS */, [\"onSave\"]), $data.isReady ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [((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)($data.notes, (note, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_note, {\n key: note.id,\n id: note.id,\n title: note.title,\n data: note.content,\n onNoteClick: $event => $options.onNoteClick($event, index),\n onMenuClick: $options.onNoteMenuClick\n }, null, 8 /* PROPS */, [\"id\", \"title\", \"data\", \"onNoteClick\", \"onMenuClick\"]);\n }), 128 /* KEYED_FRAGMENT */))])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_3, [..._hoisted_6]))]);\n}\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -93,7 +93,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.editor-container {\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 10px;\r\n background-color: white; \r\n outline: rgb(78, 78, 78) solid 1.5px;\r\n box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.137);\n}\n.header-input-container {\r\n display: flex;\r\n height: 45px;\r\n padding-left: 10px;\r\n padding-right: 10px;\n}\n.footer-input-container {\r\n border-top: 1px solid rgb(221, 221, 221);\r\n display: flex;\r\n height: 40px;\r\n padding: 10px;\n}\n.body-input-container {\r\n display: flex;\r\n flex-direction: column;\r\n height: 400px;\n}\n.markdown-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n cursor: text;\r\n overflow-y: auto;\r\n overflow-x: auto;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.editor-container {\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 10px;\r\n background-color: white;\r\n outline: rgb(78, 78, 78) solid 1.5px;\r\n box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.137);\n}\n.header-input-container {\r\n display: flex;\r\n height: 45px;\r\n padding-left: 10px;\r\n padding-right: 10px;\n}\n.footer-input-container {\r\n border-top: 1px solid rgb(221, 221, 221);\r\n display: flex;\r\n height: 40px;\r\n padding: 10px;\n}\n.body-input-container {\r\n display: flex;\r\n flex-direction: column;\r\n height: 400px;\n}\n.markdown-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n cursor: text;\r\n overflow-y: auto;\r\n overflow-x: auto;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/components/editor.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -104,7 +104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.note-container {\r\n position: relative;\r\n border-top: 5px solid rgb(227 221 192);\r\n display: flex; \r\n flex-direction: column;\r\n background-color: rgb(255, 247, 209);\r\n min-height: 70px;\r\n max-height: 130px;\n}\n.note-container:before {\r\n content: \"\";\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n border-width: 0 16px 16px 0;\r\n border-style: solid;\r\n border-color: rgb(227 221 192) rgb(255, 255, 255);\r\n transform: rotateZ(90deg);\n}\n.note-container:hover {\r\n background-color: rgb(238, 231, 195)\n}\n.note-header-container {\r\n display: flex;\r\n height: 30px;\r\n padding: 5px;\r\n align-items: center;\n}\n.note-title {\r\n display: flex;\r\n width: 100%;\r\n justify-content: start;\r\n align-items: center;\r\n padding-left: 5px;\r\n font-weight: bold;\n}\n.note-body-container {\r\n display: flex;\r\n flex-direction: column;\r\n padding: 5px;\r\n margin: 5px;\r\n overflow: hidden;\n}\n.note-body-container h1 {\r\n font-size: 16px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h2 {\r\n font-size: 14px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h3 {\r\n font-size: 12px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h4 {\r\n font-size: 10px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h5 {\r\n font-size: 8px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h6 {\r\n font-size: 6px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container p {\r\n font-size: 12px;\r\n margin: 1px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container ol, ul {\r\n margin: 1px 0px 0px 0px;\n}\n.note-body-container li {\r\n font-size: 10px;\n}\n.note-body-container img {\r\n width: 50%;\r\n height: auto;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.note-container {\r\n position: relative;\r\n border-top: 5px solid rgb(227 221 192);\r\n display: flex;\r\n flex-direction: column;\r\n background-color: rgb(255, 247, 209);\r\n min-height: 70px;\r\n max-height: 130px;\n}\n.note-container:before {\r\n content: \"\";\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n border-width: 0 16px 16px 0;\r\n border-style: solid;\r\n border-color: rgb(227 221 192) rgb(255, 255, 255);\r\n transform: rotateZ(90deg);\n}\n.note-container:hover {\r\n background-color: rgb(238, 231, 195);\n}\n.note-header-container {\r\n display: flex;\r\n height: 30px;\r\n padding: 5px;\r\n align-items: center;\n}\n.note-title {\r\n display: flex;\r\n width: 100%;\r\n justify-content: start;\r\n align-items: center;\r\n padding-left: 5px;\r\n font-weight: bold;\n}\n.note-body-container {\r\n display: flex;\r\n flex-direction: column;\r\n padding: 5px;\r\n margin: 5px;\r\n overflow: hidden;\n}\n.note-body-container h1 {\r\n font-size: 16px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h2 {\r\n font-size: 14px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h3 {\r\n font-size: 12px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h4 {\r\n font-size: 10px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h5 {\r\n font-size: 8px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container h6 {\r\n font-size: 6px;\r\n margin: 2px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container p {\r\n font-size: 12px;\r\n margin: 1px 0px 0px 0px;\r\n font-weight: normal;\n}\n.note-body-container ol,\r\nul {\r\n margin: 1px 0px 0px 0px;\n}\n.note-body-container li {\r\n font-size: 10px;\n}\n.note-body-container img {\r\n width: 50%;\r\n height: auto;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/components/note.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -115,7 +115,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Regular.ttf */ \"./src/fonts/Roboto-Regular.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Bold.ttf */ \"./src/fonts/Roboto-Bold.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Medium.ttf */ \"./src/fonts/Roboto-Medium.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n@font-face {\r\n font-family: 'Roboto', sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('truetype');\r\n font-weight: 400;\r\n font-style: normal;\n}\n@font-face {\r\n font-family: 'Roboto', sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('truetype');\r\n font-weight: bold;\r\n font-style: normal;\n}\n@font-face {\r\n font-family: 'Roboto', sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('truetype');\r\n font-weight: 500;\r\n font-style: normal;\n}\n.loader {\r\n width: 50px;\r\n aspect-ratio: 1;\r\n border-radius: 50%;\r\n border: 8px solid;\r\n border-color: #000 #0000;\r\n animation: l1 1s infinite;\n}\n@keyframes l1 {\nto {\r\n transform: rotate(.5turn)\n}\n}\n.notegr-container {\r\n display: flex; \r\n flex-direction: column;\r\n gap: 20px; \r\n padding: 10px; \r\n margin-top: 10px; \r\n overflow-y: auto;\r\n overflow-x: hidden;\n}\n.notegr-loading-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n margin-top: 50px;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 20px;\n}\n.wrapper-container {\r\n padding: 20px;\n}\n.btn-text {\r\n outline: none;\r\n border: none;\r\n background: none;\r\n padding: 10px 15px 10px 15px;\n}\n.btn-text:hover {\r\n border-radius: 6px;\r\n background-color: rgba(236, 236, 236, 0.76);\n}\n.btn-icon {\r\n background: none;\r\n outline: none;\r\n border: none;\n}\n.btn-icon.circle:hover {\r\n border-radius: 30px;\r\n background-color: rgba(150, 150, 150, 0.26);\n}\n.expand-inline-menu {\r\n display: inline-flex;\r\n border-radius: 6px;\n}\nbody {\r\n margin: 0;\r\n padding: 0;\r\n overflow-y: hidden;\r\n overflow-x: hidden;\r\n font-family: 'Roboto', sans-serif;\n}\ntextarea {\r\n width: 100%;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n resize: none;\r\n font-size: 14px;\n}\ninput {\r\n outline: none;\r\n border: none;\r\n font-size: 18px;\r\n width: 100%;\n}\nspan, div {\r\n user-select: none;\n}\n.ctxmenu {\r\n border-radius: 4px;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Regular.ttf */ \"./src/fonts/Roboto-Regular.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Bold.ttf */ \"./src/fonts/Roboto-Bold.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! ../fonts/Roboto-Medium.ttf */ \"./src/fonts/Roboto-Medium.ttf\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n@font-face {\r\n font-family: \"Roboto\", sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"truetype\");\r\n font-weight: 400;\r\n font-style: normal;\n}\n@font-face {\r\n font-family: \"Roboto\", sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"truetype\");\r\n font-weight: bold;\r\n font-style: normal;\n}\n@font-face {\r\n font-family: \"Roboto\", sans-serif;\r\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format(\"truetype\");\r\n font-weight: 500;\r\n font-style: normal;\n}\n.loader {\r\n width: 50px;\r\n aspect-ratio: 1;\r\n border-radius: 50%;\r\n border: 8px solid;\r\n border-color: #000 #0000;\r\n animation: l1 1s infinite;\n}\n@keyframes l1 {\nto {\r\n transform: rotate(0.5turn);\n}\n}\n.notegr-container {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n padding: 10px;\r\n margin-top: 10px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\n}\n.notegr-loading-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n margin-top: 50px;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 20px;\n}\n.wrapper-container {\r\n padding: 20px;\n}\n.btn-text {\r\n outline: none;\r\n border: none;\r\n background: none;\r\n padding: 10px 15px 10px 15px;\n}\n.btn-text:hover {\r\n border-radius: 6px;\r\n background-color: rgba(236, 236, 236, 0.76);\n}\n.btn-icon {\r\n background: none;\r\n outline: none;\r\n border: none;\n}\n.btn-icon.circle:hover {\r\n border-radius: 30px;\r\n background-color: rgba(150, 150, 150, 0.26);\n}\n.expand-inline-menu {\r\n display: inline-flex;\r\n border-radius: 6px;\n}\nbody {\r\n margin: 0;\r\n padding: 0;\r\n overflow-y: hidden;\r\n overflow-x: hidden;\r\n font-family: \"Roboto\", sans-serif;\n}\ntextarea {\r\n width: 100%;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n resize: none;\r\n font-size: 14px;\n}\ninput {\r\n outline: none;\r\n border: none;\r\n font-size: 18px;\r\n width: 100%;\n}\nspan,\r\ndiv {\r\n user-select: none;\n}\n.ctxmenu {\r\n border-radius: 4px;\n}\r\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://ui/./src/views/app.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B1%5D.rules%5B7%5D.use%5B0%5D"); /***/ }), @@ -412,6 +412,39 @@ eval("module.exports = __webpack_require__.p + \"fc2b5060f7accec5cf74.ttf\";\n\n /***/ }), +/***/ "./src/images/ellipsis.svg": +/*!*********************************!*\ + !*** ./src/images/ellipsis.svg ***! + \*********************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("module.exports = __webpack_require__.p + \"64018085f4e026c65ae1.svg\";\n\n//# sourceURL=webpack://ui/./src/images/ellipsis.svg?"); + +/***/ }), + +/***/ "./src/images/eye.svg": +/*!****************************!*\ + !*** ./src/images/eye.svg ***! + \****************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("module.exports = __webpack_require__.p + \"960626cf300fd233c5c5.svg\";\n\n//# sourceURL=webpack://ui/./src/images/eye.svg?"); + +/***/ }), + +/***/ "./src/images/file-export.svg": +/*!************************************!*\ + !*** ./src/images/file-export.svg ***! + \************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("module.exports = __webpack_require__.p + \"dab8740ee732ebfc4b32.svg\";\n\n//# sourceURL=webpack://ui/./src/images/file-export.svg?"); + +/***/ }), + /***/ "./node_modules/marked/lib/marked.esm.js": /*!***********************************************!*\ !*** ./node_modules/marked/lib/marked.esm.js ***! diff --git a/ui/dist/images/file-export.svg b/ui/dist/dab8740ee732ebfc4b32.svg similarity index 100% rename from ui/dist/images/file-export.svg rename to ui/dist/dab8740ee732ebfc4b32.svg diff --git a/ui/src/components/editor.vue b/ui/src/components/editor.vue index 86837e5..561cbe5 100644 --- a/ui/src/components/editor.vue +++ b/ui/src/components/editor.vue @@ -1,31 +1,94 @@