simple-mind-map
Version:
一个简单的web在线思维导图
165 lines (145 loc) • 6.82 MB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = window.externalPublicPath;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "../simple-mind-map/full.js":
/*!**********************************!*\
!*** ../simple-mind-map/full.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index */ \"../simple-mind-map/index.js\");\n/* harmony import */ var _src_plugins_MiniMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/plugins/MiniMap.js */ \"../simple-mind-map/src/plugins/MiniMap.js\");\n/* harmony import */ var _src_plugins_Watermark_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/plugins/Watermark.js */ \"../simple-mind-map/src/plugins/Watermark.js\");\n/* harmony import */ var _src_plugins_KeyboardNavigation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/plugins/KeyboardNavigation.js */ \"../simple-mind-map/src/plugins/KeyboardNavigation.js\");\n/* harmony import */ var _src_plugins_ExportXMind_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/plugins/ExportXMind.js */ \"../simple-mind-map/src/plugins/ExportXMind.js\");\n/* harmony import */ var _src_plugins_ExportPDF_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/plugins/ExportPDF.js */ \"../simple-mind-map/src/plugins/ExportPDF.js\");\n/* harmony import */ var _src_plugins_Export_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/plugins/Export.js */ \"../simple-mind-map/src/plugins/Export.js\");\n/* harmony import */ var _src_plugins_Drag_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/plugins/Drag.js */ \"../simple-mind-map/src/plugins/Drag.js\");\n/* harmony import */ var _src_plugins_Select_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/plugins/Select.js */ \"../simple-mind-map/src/plugins/Select.js\");\n/* harmony import */ var _src_plugins_AssociativeLine__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/plugins/AssociativeLine */ \"../simple-mind-map/src/plugins/AssociativeLine.js\");\n/* harmony import */ var _src_plugins_RichText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/plugins/RichText */ \"../simple-mind-map/src/plugins/RichText.js\");\n/* harmony import */ var _src_plugins_NodeImgAdjust_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/plugins/NodeImgAdjust.js */ \"../simple-mind-map/src/plugins/NodeImgAdjust.js\");\n/* harmony import */ var _src_plugins_TouchEvent_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/plugins/TouchEvent.js */ \"../simple-mind-map/src/plugins/TouchEvent.js\");\n/* harmony import */ var _src_plugins_Search_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/plugins/Search.js */ \"../simple-mind-map/src/plugins/Search.js\");\n/* harmony import */ var _src_plugins_Painter_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/plugins/Painter.js */ \"../simple-mind-map/src/plugins/Painter.js\");\n/* harmony import */ var _src_plugins_Scrollbar_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/plugins/Scrollbar.js */ \"../simple-mind-map/src/plugins/Scrollbar.js\");\n/* harmony import */ var _src_plugins_Formula_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/plugins/Formula.js */ \"../simple-mind-map/src/plugins/Formula.js\");\n/* harmony import */ var _src_plugins_RainbowLines_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/plugins/RainbowLines.js */ \"../simple-mind-map/src/plugins/RainbowLines.js\");\n/* harmony import */ var _src_plugins_Demonstrate_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/plugins/Demonstrate.js */ \"../simple-mind-map/src/plugins/Demonstrate.js\");\n/* harmony import */ var _src_plugins_OuterFrame_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./src/plugins/OuterFrame.js */ \"../simple-mind-map/src/plugins/OuterFrame.js\");\n/* harmony import */ var _src_plugins_MindMapLayoutPro_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./src/plugins/MindMapLayoutPro.js */ \"../simple-mind-map/src/plugins/MindMapLayoutPro.js\");\n/* harmony import */ var _src_plugins_NodeBase64ImageStorage_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./src/plugins/NodeBase64ImageStorage.js */ \"../simple-mind-map/src/plugins/NodeBase64ImageStorage.js\");\n/* harmony import */ var _src_parse_xmind_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./src/parse/xmind.js */ \"../simple-mind-map/src/parse/xmind.js\");\n/* harmony import */ var _src_parse_markdown_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./src/parse/markdown.js */ \"../simple-mind-map/src/parse/markdown.js\");\n/* harmony import */ var _src_svg_icons_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/svg/icons.js */ \"../simple-mind-map/src/svg/icons.js\");\n/* harmony import */ var _src_constants_constant_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./src/constants/constant.js */ \"../simple-mind-map/src/constants/constant.js\");\n/* harmony import */ var _src_theme_default_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./src/theme/default.js */ \"../simple-mind-map/src/theme/default.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].xmind = _src_parse_xmind_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"];\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].markdown = _src_parse_markdown_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"];\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].iconList = _src_svg_icons_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"].nodeIconList;\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].constants = _src_constants_constant_js__WEBPACK_IMPORTED_MODULE_25__;\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].defaultTheme = _src_theme_default_js__WEBPACK_IMPORTED_MODULE_26__;\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].version = '0.14.0-fix.1';\n_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].usePlugin(_src_plugins_MiniMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]).usePlugin(_src_plugins_Watermark_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).usePlugin(_src_plugins_Drag_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]).usePlugin(_src_plugins_KeyboardNavigation_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]).usePlugin(_src_plugins_ExportXMind_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]).usePlugin(_src_plugins_ExportPDF_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).usePlugin(_src_plugins_Export_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]).usePlugin(_src_plugins_Select_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).usePlugin(_src_plugins_AssociativeLine__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).usePlugin(_src_plugins_RichText__WEBPACK_IMPORTED_MODULE_10__[\"default\"]).usePlugin(_src_plugins_TouchEvent_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]).usePlugin(_src_plugins_NodeImgAdjust_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]).usePlugin(_src_plugins_Search_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]).usePlugin(_src_plugins_Painter_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]).usePlugin(_src_plugins_Scrollbar_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]).usePlugin(_src_plugins_Formula_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]).usePlugin(_src_plugins_RainbowLines_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]).usePlugin(_src_plugins_Demonstrate_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]).usePlugin(_src_plugins_OuterFrame_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]).usePlugin(_src_plugins_MindMapLayoutPro_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]).usePlugin(_src_plugins_NodeBase64ImageStorage_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/full.js?");
/***/ }),
/***/ "../simple-mind-map/index.js":
/*!***********************************!*\
!*** ../simple-mind-map/index.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _src_core_view_View__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/core/view/View */ \"../simple-mind-map/src/core/view/View.js\");\n/* harmony import */ var _src_core_event_Event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/core/event/Event */ \"../simple-mind-map/src/core/event/Event.js\");\n/* harmony import */ var _src_core_render_Render__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/core/render/Render */ \"../simple-mind-map/src/core/render/Render.js\");\n/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! deepmerge */ \"../simple-mind-map/node_modules/deepmerge/dist/cjs.js\");\n/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(deepmerge__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _src_theme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/theme */ \"../simple-mind-map/src/theme/index.js\");\n/* harmony import */ var _src_core_render_node_Style__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/core/render/node/Style */ \"../simple-mind-map/src/core/render/node/Style.js\");\n/* harmony import */ var _src_core_command_KeyCommand__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/core/command/KeyCommand */ \"../simple-mind-map/src/core/command/KeyCommand.js\");\n/* harmony import */ var _src_core_command_Command__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/core/command/Command */ \"../simple-mind-map/src/core/command/Command.js\");\n/* harmony import */ var _src_utils_BatchExecution__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/utils/BatchExecution */ \"../simple-mind-map/src/utils/BatchExecution.js\");\n/* harmony import */ var _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/constants/constant */ \"../simple-mind-map/src/constants/constant.js\");\n/* harmony import */ var _svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @svgdotjs/svg.js */ \"../simple-mind-map/node_modules/@svgdotjs/svg.js/dist/svg.esm.js\");\n/* harmony import */ var _src_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/utils */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _src_theme_default__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/theme/default */ \"../simple-mind-map/src/theme/default.js\");\n/* harmony import */ var _src_constants_defaultOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/constants/defaultOptions */ \"../simple-mind-map/src/constants/defaultOptions.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// 思维导图\nclass MindMap {\n // 构造函数\n /**\r\n *\r\n * @param {defaultOpt} opt\r\n */\n constructor(opt = {}) {\n MindMap.instanceCount++;\n // 合并选项\n this.opt = this.handleOpt(deepmerge__WEBPACK_IMPORTED_MODULE_5___default()(_src_constants_defaultOptions__WEBPACK_IMPORTED_MODULE_15__[\"defaultOpt\"], opt));\n // 预处理节点数据\n this.opt.data = this.handleData(this.opt.data);\n\n // 容器元素\n this.el = this.opt.el;\n if (!this.el) throw new Error('缺少容器元素el');\n\n // 获取容器尺寸位置信息\n this.getElRectInfo();\n\n // 画布初始大小\n this.initWidth = this.width;\n this.initHeight = this.height;\n\n // 必要的css样式\n this.cssEl = null;\n this.cssTextMap = {}; // 该样式在实例化时会动态添加到页面,同时导出为svg时也会添加到svg源码中\n\n // 节点前置/后置内容列表\n /*\r\n {\r\n name: '',// 一个唯一的类型标识\r\n // 创建节点的显示内容:节点元素、宽高\r\n createContent: (node) => {\r\n return {\r\n node: null,\r\n width: 0,\r\n height: 0\r\n }\r\n },\r\n // 创建保存到节点实例的opt对象中的数据\r\n createNodeData: () => {},\r\n // 更新节点实例的opt数据,返回数据是否改变了\r\n updateNodeData: () => {},\r\n }\r\n */\n this.nodeInnerPrefixList = [];\n this.nodeInnerPostfixList = [];\n\n // 编辑节点的类名列表,快捷键响应会检查事件目标是否是body或该列表中的元素,是的话才会响应\n // 该检查可以通过customCheckEnableShortcut选项来覆盖\n this.editNodeClassList = [];\n\n // 扩展的节点形状列表\n /*\r\n {\r\n createShape: (node) => {\r\n return path\r\n },\r\n getPadding: ({ node, width, height, paddingX, paddingY }) => {\r\n return {\r\n paddingX: 0,\r\n paddingY: 0\r\n } \r\n }\r\n }\r\n */\n this.extendShapeList = [];\n\n // 画布\n this.initContainer();\n\n // 初始化主题\n this.initTheme();\n\n // 初始化缓存数据\n this.initCache();\n\n // 注册插件\n MindMap.pluginList.filter(plugin => {\n return plugin.preload;\n }).forEach(plugin => {\n this.initPlugin(plugin);\n });\n\n // 事件类\n this.event = new _src_core_event_Event__WEBPACK_IMPORTED_MODULE_3__[\"default\"]({\n mindMap: this\n });\n\n // 按键类\n this.keyCommand = new _src_core_command_KeyCommand__WEBPACK_IMPORTED_MODULE_8__[\"default\"]({\n mindMap: this\n });\n\n // 命令类\n this.command = new _src_core_command_Command__WEBPACK_IMPORTED_MODULE_9__[\"default\"]({\n mindMap: this\n });\n\n // 渲染类\n this.renderer = new _src_core_render_Render__WEBPACK_IMPORTED_MODULE_4__[\"default\"]({\n mindMap: this\n });\n\n // 视图操作类\n this.view = new _src_core_view_View__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n mindMap: this\n });\n\n // 批量执行类\n this.batchExecution = new _src_utils_BatchExecution__WEBPACK_IMPORTED_MODULE_10__[\"default\"]();\n\n // 注册插件\n MindMap.pluginList.filter(plugin => {\n return !plugin.preload;\n }).forEach(plugin => {\n this.initPlugin(plugin);\n });\n\n // 添加必要的css样式\n this.addCss();\n\n // 初始渲染\n this.render(this.opt.fit ? () => this.view.fit() : () => {});\n\n // 将初始数据添加到历史记录堆栈中\n if (this.opt.addHistoryOnInit && this.opt.data) {\n this.command.addHistory();\n }\n }\n\n // 配置参数处理\n handleOpt(opt) {\n // 检查布局配置\n if (!_src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"layoutValueList\"].includes(opt.layout)) {\n opt.layout = _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].LAYOUT.LOGICAL_STRUCTURE;\n }\n // 检查主题配置\n opt.theme = opt.theme && _src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][opt.theme] ? opt.theme : 'default';\n return opt;\n }\n\n // 预处理节点数据\n handleData(data) {\n if (Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"isUndef\"])(data) || Object.keys(data).length <= 0) return null;\n data = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"simpleDeepClone\"])(data || {});\n // 根节点不能收起\n if (data.data && !data.data.expand) {\n data.data.expand = true;\n }\n // 给没有uid的节点添加uid\n Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"createUidForAppointNodes\"])([data], false, null, true);\n return data;\n }\n\n // 创建容器元素\n initContainer() {\n const {\n associativeLineIsAlwaysAboveNode\n } = this.opt;\n // 给容器元素添加一个类名\n this.el.classList.add('smm-mind-map-container');\n // 节点关联线容器\n const createAssociativeLineDraw = () => {\n this.associativeLineDraw = this.draw.group();\n this.associativeLineDraw.addClass('smm-associative-line-container');\n };\n // 画布\n this.svg = Object(_svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__[\"SVG\"])().addTo(this.el).size(this.width, this.height);\n\n // 容器\n this.draw = this.svg.group();\n this.draw.addClass('smm-container');\n // 节点连线容器\n this.lineDraw = this.draw.group();\n this.lineDraw.addClass('smm-line-container');\n // 默认处于节点下方\n if (!associativeLineIsAlwaysAboveNode) {\n createAssociativeLineDraw();\n }\n // 节点容器\n this.nodeDraw = this.draw.group();\n this.nodeDraw.addClass('smm-node-container');\n // 关联线始终处于节点上方\n if (associativeLineIsAlwaysAboveNode) {\n createAssociativeLineDraw();\n }\n // 其他内容的容器\n this.otherDraw = this.draw.group();\n this.otherDraw.addClass('smm-other-container');\n }\n\n // 清空各容器\n clearDraw() {\n this.lineDraw.clear();\n this.associativeLineDraw.clear();\n this.nodeDraw.clear();\n this.otherDraw.clear();\n }\n\n // 追加必要的css样式\n // 该样式在实例化时会动态添加到页面,同时导出为svg时也会添加到svg源码中\n appendCss(key, str) {\n this.cssTextMap[key] = str;\n this.removeCss();\n this.addCss();\n }\n\n // 移除追加的css样式\n removeAppendCss(key) {\n if (this.cssTextMap[key]) {\n delete this.cssTextMap[key];\n this.removeCss();\n this.addCss();\n }\n }\n\n // 拼接必要的css样式\n joinCss() {\n return _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"cssContent\"] + Object.keys(this.cssTextMap).map(key => {\n return this.cssTextMap[key];\n }).join('\\n');\n }\n\n // 添加必要的css样式到页面\n addCss() {\n this.cssEl = document.createElement('style');\n this.cssEl.type = 'text/css';\n this.cssEl.innerHTML = this.joinCss();\n document.head.appendChild(this.cssEl);\n }\n\n // 移除css\n removeCss() {\n if (this.cssEl) document.head.removeChild(this.cssEl);\n }\n\n // 检查某个编辑节点类名是否存在,返回索引\n checkEditNodeClassIndex(className) {\n return this.editNodeClassList.findIndex(item => {\n return item === className;\n });\n }\n\n // 添加一个编辑节点类名\n addEditNodeClass(className) {\n const index = this.checkEditNodeClassIndex(className);\n if (index === -1) {\n this.editNodeClassList.push(className);\n }\n }\n\n // 删除一个编辑节点类名\n deleteEditNodeClass(className) {\n const index = this.checkEditNodeClassIndex(className);\n if (index !== -1) {\n this.editNodeClassList.splice(index, 1);\n }\n }\n\n // 渲染,部分渲染\n render(callback, source = '') {\n this.initTheme();\n this.renderer.render(callback, source);\n }\n\n // 重新渲染\n reRender(callback, source = '') {\n this.renderer.reRender = true; // 标记为重新渲染\n this.renderer.clearCache(); // 清空节点缓存池\n this.clearDraw(); // 清空画布\n this.render(callback, source);\n }\n\n // 获取或更新容器尺寸位置信息\n getElRectInfo() {\n this.elRect = this.el.getBoundingClientRect();\n this.width = this.elRect.width;\n this.height = this.elRect.height;\n if (this.width <= 0 || this.height <= 0) throw new Error('容器元素el的宽高不能为0');\n }\n\n // 容器尺寸变化,调整尺寸\n resize() {\n const oldWidth = this.width;\n const oldHeight = this.height;\n this.getElRectInfo();\n this.svg.size(this.width, this.height);\n if (oldWidth !== this.width || oldHeight !== this.height) {\n // 如果画布宽高改变了需要触发一次渲染\n if (this.demonstrate) {\n // 如果存在演示插件,并且正在演示中,那么不需要触发重新渲染,否则会冲突\n if (!this.demonstrate.isInDemonstrate) {\n this.render();\n }\n } else {\n this.render();\n }\n }\n this.emit('resize');\n }\n\n // 监听事件\n on(event, fn) {\n this.event.on(event, fn);\n }\n\n // 触发事件\n emit(event, ...args) {\n this.event.emit(event, ...args);\n }\n\n // 解绑事件\n off(event, fn) {\n this.event.off(event, fn);\n }\n\n // 初始化缓存数据\n initCache() {\n this.commonCaches = {\n measureCustomNodeContentSizeEl: null,\n measureRichtextNodeTextSizeEl: null\n };\n }\n\n // 设置主题\n initTheme() {\n // 合并主题配置\n this.themeConfig = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"mergeTheme\"])(_src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][this.opt.theme] || _src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"].default, this.opt.themeConfig);\n // 设置背景样式\n _src_core_render_node_Style__WEBPACK_IMPORTED_MODULE_7__[\"default\"].setBackgroundStyle(this.el, this.themeConfig);\n }\n\n // 设置主题\n setTheme(theme, notRender = false) {\n this.execCommand('CLEAR_ACTIVE_NODE');\n this.opt.theme = theme;\n if (!notRender) {\n this.render(null, _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].CHANGE_THEME);\n }\n this.emit('view_theme_change', theme);\n }\n\n // 获取当前主题\n getTheme() {\n return this.opt.theme;\n }\n\n // 设置主题配置\n setThemeConfig(config, notRender = false) {\n // 计算改变了的配置\n const changedConfig = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"getObjectChangedProps\"])(this.themeConfig, config);\n this.opt.themeConfig = config;\n if (!notRender) {\n // 检查改变的是否是节点大小无关的主题属性\n const res = Object(_src_theme_default__WEBPACK_IMPORTED_MODULE_14__[\"checkIsNodeSizeIndependenceConfig\"])(changedConfig);\n this.render(null, res ? '' : _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].CHANGE_THEME);\n }\n }\n\n // 获取自定义主题配置\n getCustomThemeConfig() {\n return this.opt.themeConfig;\n }\n\n // 获取某个主题配置值\n getThemeConfig(prop) {\n return prop === undefined ? this.themeConfig : this.themeConfig[prop];\n }\n\n // 获取配置\n getConfig(prop) {\n return prop === undefined ? this.opt : this.opt[prop];\n }\n\n // 更新配置\n updateConfig(opt = {}) {\n this.emit('before_update_config', this.opt);\n const lastOpt = {\n ...this.opt\n };\n this.opt = this.handleOpt(deepmerge__WEBPACK_IMPORTED_MODULE_5___default.a.all([_src_constants_defaultOptions__WEBPACK_IMPORTED_MODULE_15__[\"defaultOpt\"], this.opt, opt]));\n this.emit('after_update_config', this.opt, lastOpt);\n }\n\n // 获取当前布局结构\n getLayout() {\n return this.opt.layout;\n }\n\n // 设置布局结构\n setLayout(layout, notRender = false) {\n // 检查布局配置\n if (!_src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"layoutValueList\"].includes(layout)) {\n layout = _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].LAYOUT.LOGICAL_STRUCTURE;\n }\n this.opt.layout = layout;\n this.view.reset();\n this.renderer.setLayout();\n if (!notRender) {\n this.render(null, _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].CHANGE_LAYOUT);\n }\n this.emit('layout_change', layout);\n }\n\n // 执行命令\n execCommand(...args) {\n this.command.exec(...args);\n }\n\n // 更新画布数据,如果新的数据是在当前画布节点数据基础上增删改查后形成的,那么可以使用该方法来更新画布数据\n updateData(data) {\n data = this.handleData(data);\n this.emit('before_update_data', data);\n this.renderer.setData(data);\n this.render();\n this.command.addHistory();\n this.emit('update_data', data);\n }\n\n // 动态设置思维导图数据,纯节点数据\n setData(data) {\n data = this.handleData(data);\n this.emit('before_set_data', data);\n this.opt.data = data;\n this.execCommand('CLEAR_ACTIVE_NODE');\n this.command.clearHistory();\n this.command.addHistory();\n this.renderer.setData(data);\n this.reRender();\n this.emit('set_data', data);\n }\n\n // 动态设置思维导图数据,包括节点数据、布局、主题、视图\n setFullData(data) {\n if (data.root) {\n this.setData(data.root);\n }\n if (data.layout) {\n this.setLayout(data.layout);\n }\n if (data.theme) {\n if (data.theme.template) {\n this.setTheme(data.theme.template);\n }\n if (data.theme.config) {\n this.setThemeConfig(data.theme.config);\n }\n }\n if (data.view) {\n this.view.setTransformData(data.view);\n }\n }\n\n // 获取思维导图数据,节点树、主题、布局等\n getData(withConfig) {\n let nodeData = this.command.getCopyData();\n let data = {};\n if (withConfig) {\n data = {\n layout: this.getLayout(),\n root: nodeData,\n theme: {\n template: this.getTheme(),\n config: this.getCustomThemeConfig()\n },\n view: this.view.getTransformData()\n };\n } else {\n data = nodeData;\n }\n return Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"simpleDeepClone\"])(data);\n }\n\n // 导出\n async export(...args) {\n try {\n if (!this.doExport) {\n throw new Error('请注册Export插件!');\n }\n let result = await this.doExport.export(...args);\n return result;\n } catch (error) {\n this.opt.errorHandler(_src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"ERROR_TYPES\"].EXPORT_ERROR, error);\n }\n }\n\n // 转换位置\n toPos(x, y) {\n return {\n x: x - this.elRect.left,\n y: y - this.elRect.top\n };\n }\n\n // 设置只读模式、编辑模式\n setMode(mode) {\n if (![_src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].MODE.READONLY, _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].MODE.EDIT].includes(mode)) {\n return;\n }\n const isReadonly = mode === _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"CONSTANTS\"].MODE.READONLY;\n if (isReadonly === this.opt.readonly) return;\n if (isReadonly) {\n // 如果处于编辑态,要隐藏所有的编辑框\n if (this.renderer.textEdit.isShowTextEdit()) {\n this.renderer.textEdit.hideEditTextBox();\n this.command.originAddHistory();\n }\n // 取消当前激活的元素\n this.execCommand('CLEAR_ACTIVE_NODE');\n }\n this.opt.readonly = isReadonly;\n // 切换为编辑模式时,如果历史记录堆栈是空的,那么进行一次入栈操作\n if (!isReadonly && this.command.history.length <= 0) {\n this.command.originAddHistory();\n }\n this.emit('mode_change', mode);\n }\n\n // 获取svg数据\n getSvgData({\n paddingX = 0,\n paddingY = 0,\n ignoreWatermark = false,\n addContentToHeader,\n addContentToFooter,\n node\n } = {}) {\n const {\n watermarkConfig,\n openPerformance\n } = this.opt;\n // 如果开启了性能模式,那么需要先渲染所有节点\n if (openPerformance) {\n this.renderer.forceLoadNode(node);\n }\n const {\n cssTextList,\n header,\n headerHeight,\n footer,\n footerHeight\n } = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"handleGetSvgDataExtraContent\"])({\n addContentToHeader,\n addContentToFooter\n });\n const svg = this.svg;\n const draw = this.draw;\n // 保存原始信息\n const origWidth = svg.width();\n const origHeight = svg.height();\n const origTransform = draw.transform();\n const elRect = this.elRect;\n // 去除放大缩小的变换效果\n draw.scale(1 / origTransform.scaleX, 1 / origTransform.scaleY);\n // 获取变换后的位置尺寸信息,其实是getBoundingClientRect方法的包装方法\n const rect = draw.rbox();\n // 需要裁减的区域\n let clipData = null;\n if (node) {\n clipData = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"getNodeTreeBoundingRect\"])(node, rect.x, rect.y, paddingX, paddingY);\n }\n // 内边距\n const fixHeight = 0;\n rect.width += paddingX * 2;\n rect.height += paddingY * 2 + fixHeight + headerHeight + footerHeight;\n draw.translate(paddingX, paddingY);\n // 将svg设置为实际内容的宽高\n svg.size(rect.width, rect.height);\n // 把实际内容变换\n draw.translate(-rect.x + elRect.left, -rect.y + elRect.top);\n // 克隆一份数据\n let clone = svg.clone();\n // 是否存在水印\n const hasWatermark = this.watermark && this.watermark.hasWatermark();\n if (!ignoreWatermark && hasWatermark) {\n this.watermark.isInExport = true;\n // 是否是仅导出时需要水印\n const {\n onlyExport\n } = watermarkConfig;\n // 是否需要重新绘制水印\n const needReDrawWatermark = rect.width > origWidth || rect.height > origHeight;\n // 如果实际图形宽高超出了屏幕宽高,且存在水印的话需要重新绘制水印,否则会出现超出部分没有水印的问题\n if (needReDrawWatermark) {\n this.width = rect.width;\n this.height = rect.height;\n this.watermark.onResize();\n clone = svg.clone();\n this.width = origWidth;\n this.height = origHeight;\n this.watermark.onResize();\n } else if (onlyExport) {\n // 如果是仅导出时需要水印,那么需要进行绘制\n this.watermark.onResize();\n clone = svg.clone();\n }\n // 如果是仅导出时需要水印,需要清除\n if (onlyExport) {\n this.watermark.clear();\n }\n this.watermark.isInExport = false;\n }\n // 添加必要的样式\n [this.joinCss(), ...cssTextList].forEach(s => {\n clone.add(Object(_svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__[\"SVG\"])(`<style>${s}</style>`));\n });\n // 附加内容\n if (header && headerHeight > 0) {\n clone.findOne('.smm-container').translate(0, headerHeight);\n header.width(rect.width);\n header.y(paddingY);\n clone.add(header, 0);\n }\n if (footer && footerHeight > 0) {\n footer.width(rect.width);\n footer.y(rect.height - paddingY - footerHeight);\n clone.add(footer);\n }\n // 修正defs里定义的元素的id,因为clone时defs里的元素的id会继续递增,导致和内容中引用的id对不上\n const defs = svg.find('defs');\n const defs2 = clone.find('defs');\n defs.forEach((def, defIndex) => {\n const def2 = defs2[defIndex];\n if (!def2) return;\n const children = def.children();\n const children2 = def2.children();\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n const child2 = children2[i];\n if (child && child2) {\n child2.attr('id', child.attr('id'));\n }\n }\n });\n // 恢复原先的大小和变换信息\n svg.size(origWidth, origHeight);\n draw.transform(origTransform);\n return {\n svg: clone,\n // 思维导图图形的整体svg元素,包括:svg(画布容器)、g(实际的思维导图组)\n svgHTML: clone.svg(),\n // svg字符串\n clipData,\n rect: {\n ...rect,\n // 思维导图图形未缩放时的位置尺寸等信息\n ratio: rect.width / rect.height // 思维导图图形的宽高比\n },\n origWidth,\n // 画布宽度\n origHeight,\n // 画布高度\n scaleX: origTransform.scaleX,\n // 思维导图图形的水平缩放值\n scaleY: origTransform.scaleY // 思维导图图形的垂直缩放值\n };\n }\n\n // 扩展节点形状\n addShape(shape) {\n if (!shape) return;\n const exist = this.extendShapeList.find(item => {\n return item.name === shape.name;\n });\n if (exist) return;\n this.extendShapeList.push(shape);\n }\n\n // 删除扩展的形状\n removeShape(name) {\n const index = this.extendShapeList.findIndex(item => {\n return item.name === name;\n });\n if (index !== -1) {\n this.extendShapeList.splice(index, 1);\n }\n }\n\n // 获取SVG.js库的一些对象\n getSvgObjects() {\n return {\n SVG: _svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__[\"SVG\"],\n G: _svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__[\"G\"],\n Rect: _svgdotjs_svg_js__WEBPACK_IMPORTED_MODULE_12__[\"Rect\"]\n };\n }\n\n // 添加插件\n addPlugin(plugin, opt) {\n let index = MindMap.hasPlugin(plugin);\n if (index === -1) {\n MindMap.usePlugin(plugin, opt);\n }\n this.initPlugin(plugin);\n }\n\n // 移除插件\n removePlugin(plugin) {\n let index = MindMap.hasPlugin(plugin);\n if (index !== -1) {\n MindMap.pluginList.splice(index, 1);\n if (this[plugin.instanceName]) {\n if (this[plugin.instanceName].beforePluginRemove) {\n this[plugin.instanceName].beforePluginRemove();\n }\n delete this[plugin.instanceName];\n }\n }\n }\n\n // 实例化插件\n initPlugin(plugin) {\n if (this[plugin.instanceName]) return;\n this[plugin.instanceName] = new plugin({\n mindMap: this,\n pluginOpt: plugin.pluginOpt\n });\n }\n\n // 销毁\n destroy() {\n this.emit('beforeDestroy');\n // 清除节点编辑框\n this.renderer.textEdit.hideEditTextBox();\n this.renderer.textEdit.removeTextEditEl()\n // 移除插件\n ;\n [...MindMap.pluginList].forEach(plugin => {\n if (this[plugin.instanceName] && this[plugin.instanceName].beforePluginDestroy) {\n this[plugin.instanceName].beforePluginDestroy();\n }\n this[plugin.instanceName] = null;\n });\n // 解绑事件\n this.event.unbind();\n // 移除画布节点\n this.svg.remove();\n // 去除给容器元素设置的背景样式\n _src_core_render_node_Style__WEBPACK_IMPORTED_MODULE_7__[\"default\"].removeBackgroundStyle(this.el);\n // 移除给容器元素添加的类名\n this.el.classList.remove('smm-mind-map-container');\n this.el.innerHTML = '';\n this.el = null;\n this.removeCss();\n MindMap.instanceCount--;\n }\n}\n\n// 扩展节点数据中非样式的字段列表\n// 内部会根据这个列表判断,如果不在这个列表里的字段都会认为是样式字段\n/*\r\n比如一个节点的数据为:\r\n\r\n{\r\n data: {\r\n text: '',\r\n note: '',\r\n color: ''\r\n },\r\n children: []\r\n}\r\n\r\ncolor字段不在nodeDataNoStylePropList列表中,所以是样式,内部一些操作的方法会用到,所以如果你新增了自定义的节点数据,并且不是`_`开头的,那么需要通过该方法扩展\r\n*/\nlet _extendNodeDataNoStylePropList = [];\nMindMap.extendNodeDataNoStylePropList = (list = []) => {\n _extendNodeDataNoStylePropList.push(...list);\n _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"nodeDataNoStylePropList\"].push(...list);\n};\nMindMap.resetNodeDataNoStylePropList = () => {\n _extendNodeDataNoStylePropList.forEach(item => {\n const index = _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"nodeDataNoStylePropList\"].findIndex(item2 => {\n return item2 === item;\n });\n if (index !== -1) {\n _src_constants_constant__WEBPACK_IMPORTED_MODULE_11__[\"nodeDataNoStylePropList\"].splice(index, 1);\n }\n });\n _extendNodeDataNoStylePropList = [];\n};\n\n// 插件列表\nMindMap.pluginList = [];\nMindMap.usePlugin = (plugin, opt = {}) => {\n if (MindMap.hasPlugin(plugin) !== -1) return MindMap;\n plugin.pluginOpt = opt;\n MindMap.pluginList.push(plugin);\n return MindMap;\n};\nMindMap.hasPlugin = plugin => {\n return MindMap.pluginList.findIndex(item => {\n return item === plugin;\n });\n};\nMindMap.instanceCount = 0;\n\n// 定义新主题\nMindMap.defineTheme = (name, config = {}) => {\n if (_src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][name]) {\n return new Error('该主题名称已存在');\n }\n _src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][name] = Object(_src_utils__WEBPACK_IMPORTED_MODULE_13__[\"mergeTheme\"])(_src_theme_default__WEBPACK_IMPORTED_MODULE_14__[\"default\"], config);\n};\n// 移除主题\nMindMap.removeTheme = name => {\n if (_src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][name]) {\n _src_theme__WEBPACK_IMPORTED_MODULE_6__[\"default\"][name] = null;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (MindMap);\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json":
/*!***********************************************************************************************!*\
!*** ../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json ***!
\***********************************************************************************************/
/*! exports provided: default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"\\\"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\\\"\");\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json?");
/***/ }),
/***/ "../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json":
/*!******************************************************************************************************!*\
!*** ../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json ***!
\******************************************************************************************************/
/*! exports provided: default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"\\\"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\\\"\");\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json?");
/***/ }),
/***/ "../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json":
/*!**************************************************************************************************!*\
!*** ../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json ***!
\**************************************************************************************************/
/*! exports provided: default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"\\\"eJyFWVtT2zgU/isZP+3OhE5Iy/UtDaHNFhI2IdDS4UGxFUeLbKW6AKHT/77Hhnbb1fnUFw98x9K5fzpyvmZDU1Wy9tlxdnUenChlZ3e//+awc7B32D/Kutmpqf1EVJJeGJpglbQ706VWX4JshEHrX4Wdn4SiUnr7q5jga6nKdaPvXBYqVISMvdAqH9Slpjd3dvuEuFP1KIsL5fN1duxtkN1suBZW5F7auWxWjx69rAtZzEwl6hc73741j9nx553+QXenv9frHr456h729m672YJetVrV8sI45ZWpG0W93k+Cy7XK72rpXHZMK7MraV37WtbrvX7V6/VIxcR4lT87s9naxovOH/mfnd2jw6MuPY967XO3ffbb5+v2edAZFGYpO/Ot87JynXGdG7sxVnhZvOp0Blp3Zs1urjOTTtp7QknbiN4qVF3O87VsQ9huMveiLoQtvkvpxaHYvH+J6d4+Be/j9//e9Pe72cDlTZxsdrzfP+pmJ/LH/zu7ewfdbO6L99e0crf98+rlzybY59JblVM8Pn/Nrj/S+iZeEzLEbQSF4Vv3f7B8zLWoYvxLMOToUseSOlTLJs5lHcsKo7WwMb6RNm/qNRKIikSOogMsaBPG7CesrLVcIRFYJlyzo7tjVungYjSnNhMxvN5u1pLxnlxRhvHEaeHWMfwkrYlRUzNZ8g/Mm35tJfPuipqWQdU9865Tjwwo7znvJB/TWnEG50YbZg8nKwVEuuniWOmXIJgaLK2kPmTcJBJzLVPEuWdsH8TQ2xgaxtBJDI1i6DSG3sXQ+xgax9BfMfQhhs5i6DyGJjE0jaGLGPo7hmYxNI+hyxhaxNBVDF3H0McY+hRDNzG0pJPoTnqeNpYkA336sg5ySq5UrmweGBYNDWk7OjiYFmn5jTeG4Zwl02MM/zIdxHAB01AMy8WQiqF/YoihV6aFmWgxXcvQ3oYJZQwx3MDQCxP7EEP3MfQQQwyTbhnS5+sLFMKSO0zb91PV6JUu4FFfmAcmzvzp3ByXuplX4hJqpjqWZ7fc2bHSxir2PAC75MHSMZ4zAWzbxql27oRTCx/NMiiSVAZQQCNuN/6NGIR+xXTHiil8GuRYmilEWXJH2jPOjmLPA0eTO2kl0/s0C4nSig1HanQJkIwX/4V3KVwiwmkpCNGPBAC51FptnGIalTz1axPQpPh86POlTQHgRh+RB88NLi2Tr7Rk2hn0VSVyy9Xw0kpOcWG8yPl+K+iyJVn/LduFOV3GaOBmuDvUpbCh0iIwakxJQybD0rlg/ZAVX7ADZuQxtljRjMcPhWfggJ0inFdQEckFzWoQfLyb2ZLpTg30GoQzu1Nr0lWWSp5J2hjnU4LyE6BoQjqjEqTuE7agUPeKq+ZPwLJBqjMEWLRILdqCRa69dqEekaktF3yfLHAYBGqGBbAuoAUjrOSECIK7fyQdzb9/r2BUIcrJQR0IPi6TpAEa1Shg1MvkbkO0G2DVUYInHXDTQUJUQLs2T7IuGcEMqHiXdDIkmyQlHKCUWmBIDn29SUTucm0ss9kUaZ+BuM0BXgBrF0hB4Cuz/bbhQjvgMDPRFJTgAOGAVqugvdpoZswMwMFL4CCNWl4JXagVc7vaYmqYAD0qVSyjZJklTh0syoEdNaJBlNAJCNAYbNR8eaOBgfv8trTmTtbsHcjKUjkw9b4DyR6nGCVQV/NXkRGoKQscMigyN2DBDYjYy0cu8Als5JkJZQhJQSd5y6PRD56OSDBA40OiKkGAn1BrIN1TlBF09KBMOaQZOzFNjiXAwxOpPZMrz5O0fzAJRsSmVcwnDQUsMuk5c4RCX4AJp+VxKmBLhcyYNk/UK1+RH5J1fAYS560oZCUsY7lMsMIYRGmMCucMWE1BWwvNnAzNzQQ0uElVVA2mpsVv8gfiI5FDJeBScuglq1xS+SDMk6mbpi0viCW4XzsMSNEQGBEgmxcq59JwAjaySW8mID8G4LN0WSelA7DnAHI0P3NNwT5PiQ4ZodMe6b5LugIGgXGyFYAJPn25MWWT79pw30cwlwYsoq3Qr1XpCy13kD8Bp+rkVhRyfEIo1OOj0PwOedvNPkhbXwhlm1+Pb7/9C/NFF2U=\\\"\");\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json?");
/***/ }),
/***/ "../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json":
/*!******************************************************************************************!*\
!*** ../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json ***!
\******************************************************************************************/
/*! exports provided: default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"\\\"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\\\"\");\n\n//# sourceURL=webpack://simpleMindMap/../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json?");
/***/ }),
/***/ "../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Encoding.js":
/*!******************************************************************************!*\
!*** ../simple-mind-map/node_modules/@pdf-lib/standard-fonts/es/Encoding.js ***!
\******************************************************************************/
/*! exports provided: Encodings */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"us