@opentiny/fluent-editor 4.0.0-beta.1 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/es/config/i18n/en-us.es.js +0 -2
  2. package/es/config/i18n/en-us.es.js.map +1 -1
  3. package/es/config/i18n/zh-cn.es.js +0 -2
  4. package/es/config/i18n/zh-cn.es.js.map +1 -1
  5. package/es/fluent-editor.es.js +0 -6
  6. package/es/fluent-editor.es.js.map +1 -1
  7. package/es/index.es.js +0 -4
  8. package/es/index.es.js.map +1 -1
  9. package/es/modules/index.es.js +0 -4
  10. package/es/modules/index.es.js.map +1 -1
  11. package/es/modules/shortcut-key/index.es.js +0 -16
  12. package/es/modules/shortcut-key/index.es.js.map +1 -1
  13. package/es/ui/icons.config.es.js +0 -4
  14. package/es/ui/icons.config.es.js.map +1 -1
  15. package/es/ui/icons.es.js +2 -4
  16. package/es/ui/icons.es.js.map +1 -1
  17. package/lib/config/i18n/en-us.cjs.js +0 -2
  18. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  19. package/lib/config/i18n/zh-cn.cjs.js +0 -2
  20. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  21. package/lib/fluent-editor.cjs.js +2 -8
  22. package/lib/fluent-editor.cjs.js.map +1 -1
  23. package/lib/index.cjs.js +5 -9
  24. package/lib/index.cjs.js.map +1 -1
  25. package/lib/modules/index.cjs.js +5 -9
  26. package/lib/modules/index.cjs.js.map +1 -1
  27. package/lib/modules/shortcut-key/index.cjs.js +0 -16
  28. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  29. package/lib/ui/icons.cjs.js +1 -3
  30. package/lib/ui/icons.cjs.js.map +1 -1
  31. package/lib/ui/icons.config.cjs.js +0 -4
  32. package/lib/ui/icons.config.cjs.js.map +1 -1
  33. package/package.json +1 -3
  34. package/types/config/i18n/en-us.d.ts +0 -2
  35. package/types/config/i18n/zh-cn.d.ts +0 -2
  36. package/types/config/types/editor-modules.interface.d.ts +0 -4
  37. package/types/modules/index.d.ts +0 -2
  38. package/types/ui/icons.config.d.ts +0 -2
  39. package/es/modules/ai/constants.es.js +0 -50
  40. package/es/modules/ai/constants.es.js.map +0 -1
  41. package/es/modules/ai/icons.es.js +0 -319
  42. package/es/modules/ai/icons.es.js.map +0 -1
  43. package/es/modules/ai/index.es.js +0 -670
  44. package/es/modules/ai/index.es.js.map +0 -1
  45. package/es/modules/flow-chart/config-utils.es.js +0 -102
  46. package/es/modules/flow-chart/config-utils.es.js.map +0 -1
  47. package/es/modules/flow-chart/formats/flow-chart-blot.es.js +0 -369
  48. package/es/modules/flow-chart/formats/flow-chart-blot.es.js.map +0 -1
  49. package/es/modules/flow-chart/i18n/en-us.es.js +0 -30
  50. package/es/modules/flow-chart/i18n/en-us.es.js.map +0 -1
  51. package/es/modules/flow-chart/i18n/index.es.js +0 -12
  52. package/es/modules/flow-chart/i18n/index.es.js.map +0 -1
  53. package/es/modules/flow-chart/i18n/zh-cn.es.js +0 -30
  54. package/es/modules/flow-chart/i18n/zh-cn.es.js.map +0 -1
  55. package/es/modules/flow-chart/icons.es.js +0 -27
  56. package/es/modules/flow-chart/icons.es.js.map +0 -1
  57. package/es/modules/flow-chart/index.es.js +0 -45
  58. package/es/modules/flow-chart/index.es.js.map +0 -1
  59. package/es/modules/flow-chart/modules/context-menu.es.js +0 -184
  60. package/es/modules/flow-chart/modules/context-menu.es.js.map +0 -1
  61. package/es/modules/flow-chart/modules/control-panel.es.js +0 -286
  62. package/es/modules/flow-chart/modules/control-panel.es.js.map +0 -1
  63. package/es/modules/flow-chart/modules/custom-resize-action.es.js +0 -150
  64. package/es/modules/flow-chart/modules/custom-resize-action.es.js.map +0 -1
  65. package/es/modules/mind-map/config-utils.es.js +0 -108
  66. package/es/modules/mind-map/config-utils.es.js.map +0 -1
  67. package/es/modules/mind-map/formats/mind-map-blot.es.js +0 -356
  68. package/es/modules/mind-map/formats/mind-map-blot.es.js.map +0 -1
  69. package/es/modules/mind-map/i18n/en-us.es.js +0 -29
  70. package/es/modules/mind-map/i18n/en-us.es.js.map +0 -1
  71. package/es/modules/mind-map/i18n/index.es.js +0 -12
  72. package/es/modules/mind-map/i18n/index.es.js.map +0 -1
  73. package/es/modules/mind-map/i18n/zh-cn.es.js +0 -29
  74. package/es/modules/mind-map/i18n/zh-cn.es.js.map +0 -1
  75. package/es/modules/mind-map/icons.es.js +0 -45
  76. package/es/modules/mind-map/icons.es.js.map +0 -1
  77. package/es/modules/mind-map/index.es.js +0 -56
  78. package/es/modules/mind-map/index.es.js.map +0 -1
  79. package/es/modules/mind-map/modules/context-menu.es.js +0 -128
  80. package/es/modules/mind-map/modules/context-menu.es.js.map +0 -1
  81. package/es/modules/mind-map/modules/control-panel.es.js +0 -425
  82. package/es/modules/mind-map/modules/control-panel.es.js.map +0 -1
  83. package/es/modules/mind-map/modules/custom-resize-action.es.js +0 -161
  84. package/es/modules/mind-map/modules/custom-resize-action.es.js.map +0 -1
  85. package/flow-chart.css +0 -185
  86. package/lib/modules/ai/constants.cjs.js +0 -50
  87. package/lib/modules/ai/constants.cjs.js.map +0 -1
  88. package/lib/modules/ai/icons.cjs.js +0 -319
  89. package/lib/modules/ai/icons.cjs.js.map +0 -1
  90. package/lib/modules/ai/index.cjs.js +0 -670
  91. package/lib/modules/ai/index.cjs.js.map +0 -1
  92. package/lib/modules/flow-chart/config-utils.cjs.js +0 -102
  93. package/lib/modules/flow-chart/config-utils.cjs.js.map +0 -1
  94. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js +0 -369
  95. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js.map +0 -1
  96. package/lib/modules/flow-chart/i18n/en-us.cjs.js +0 -30
  97. package/lib/modules/flow-chart/i18n/en-us.cjs.js.map +0 -1
  98. package/lib/modules/flow-chart/i18n/index.cjs.js +0 -12
  99. package/lib/modules/flow-chart/i18n/index.cjs.js.map +0 -1
  100. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js +0 -30
  101. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js.map +0 -1
  102. package/lib/modules/flow-chart/icons.cjs.js +0 -27
  103. package/lib/modules/flow-chart/icons.cjs.js.map +0 -1
  104. package/lib/modules/flow-chart/index.cjs.js +0 -45
  105. package/lib/modules/flow-chart/index.cjs.js.map +0 -1
  106. package/lib/modules/flow-chart/modules/context-menu.cjs.js +0 -184
  107. package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +0 -1
  108. package/lib/modules/flow-chart/modules/control-panel.cjs.js +0 -286
  109. package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +0 -1
  110. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js +0 -150
  111. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js.map +0 -1
  112. package/lib/modules/mind-map/config-utils.cjs.js +0 -108
  113. package/lib/modules/mind-map/config-utils.cjs.js.map +0 -1
  114. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js +0 -356
  115. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js.map +0 -1
  116. package/lib/modules/mind-map/i18n/en-us.cjs.js +0 -29
  117. package/lib/modules/mind-map/i18n/en-us.cjs.js.map +0 -1
  118. package/lib/modules/mind-map/i18n/index.cjs.js +0 -12
  119. package/lib/modules/mind-map/i18n/index.cjs.js.map +0 -1
  120. package/lib/modules/mind-map/i18n/zh-cn.cjs.js +0 -29
  121. package/lib/modules/mind-map/i18n/zh-cn.cjs.js.map +0 -1
  122. package/lib/modules/mind-map/icons.cjs.js +0 -45
  123. package/lib/modules/mind-map/icons.cjs.js.map +0 -1
  124. package/lib/modules/mind-map/index.cjs.js +0 -56
  125. package/lib/modules/mind-map/index.cjs.js.map +0 -1
  126. package/lib/modules/mind-map/modules/context-menu.cjs.js +0 -128
  127. package/lib/modules/mind-map/modules/context-menu.cjs.js.map +0 -1
  128. package/lib/modules/mind-map/modules/control-panel.cjs.js +0 -425
  129. package/lib/modules/mind-map/modules/control-panel.cjs.js.map +0 -1
  130. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js +0 -161
  131. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js.map +0 -1
  132. package/mind-map.css +0 -224
  133. package/types/modules/ai/constants.d.ts +0 -30
  134. package/types/modules/ai/icons.d.ts +0 -21
  135. package/types/modules/ai/index.d.ts +0 -96
  136. package/types/modules/ai/types.d.ts +0 -16
  137. package/types/modules/flow-chart/config-utils.d.ts +0 -10
  138. package/types/modules/flow-chart/formats/flow-chart-blot.d.ts +0 -43
  139. package/types/modules/flow-chart/i18n/en-us.d.ts +0 -26
  140. package/types/modules/flow-chart/i18n/index.d.ts +0 -1
  141. package/types/modules/flow-chart/i18n/zh-cn.d.ts +0 -26
  142. package/types/modules/flow-chart/icons.d.ts +0 -12
  143. package/types/modules/flow-chart/index.d.ts +0 -10
  144. package/types/modules/flow-chart/modules/context-menu.d.ts +0 -3
  145. package/types/modules/flow-chart/modules/control-panel.d.ts +0 -3
  146. package/types/modules/flow-chart/modules/custom-resize-action.d.ts +0 -22
  147. package/types/modules/flow-chart/options.d.ts +0 -29
  148. package/types/modules/mind-map/config-utils.d.ts +0 -12
  149. package/types/modules/mind-map/formats/mind-map-blot.d.ts +0 -44
  150. package/types/modules/mind-map/i18n/en-us.d.ts +0 -25
  151. package/types/modules/mind-map/i18n/index.d.ts +0 -1
  152. package/types/modules/mind-map/i18n/zh-cn.d.ts +0 -25
  153. package/types/modules/mind-map/icons.d.ts +0 -21
  154. package/types/modules/mind-map/index.d.ts +0 -10
  155. package/types/modules/mind-map/modules/context-menu.d.ts +0 -3
  156. package/types/modules/mind-map/modules/control-panel.d.ts +0 -3
  157. package/types/modules/mind-map/modules/custom-resize-action.d.ts +0 -23
  158. package/types/modules/mind-map/options.d.ts +0 -27
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-panel.cjs.js","sources":["../../../../../src/modules/mind-map/modules/control-panel.ts"],"sourcesContent":["import type FluentEditor from '../../../core/fluent-editor'\nimport type MindMapPlaceholderBlot from '../formats/mind-map-blot'\nimport { CHANGE_LANGUAGE_EVENT } from '../../../config'\nimport { I18N } from '../../../modules/i18n'\nimport { getAllConfigs } from '../config-utils'\nimport { registerMindMapI18N } from '../i18n'\nimport { backIcon, catalogOrganizationIcon, contractIcon, fishboneIcon, fitIcon, forwardIcon, insertChildNodeIcon, insertIconIcon, insertNodeIcon, insertParentNodeIcon, logicalStructureIcon, mindMapIcon, organizationStructureIcon, removeNodeIcon, screenReduceIcon, screenTypeIcon, setLayoutIcon, timelineIcon, zoomInIcon, zoomOutIcon } from '../icons'\n\nclass MindMapControlPanelHandler {\n private texts: Record<string, string>\n private lang: string\n getText(key: keyof Record<string, string>): string {\n return this.texts[key]\n }\n\n constructor(private quill: FluentEditor, private blot: MindMapPlaceholderBlot) {\n const i18nModule = this.quill.getModule('i18n') as I18N\n registerMindMapI18N(I18N)\n this.lang = i18nModule.options.lang\n this.texts = this.resolveTexts()\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, (lang: string) => {\n this.lang = lang\n this.texts = this.resolveTexts()\n this.updateControlPanelTexts()\n })\n }\n\n resolveTexts() {\n const textKeys = [\n 'zoomOutTitle',\n 'zoomInTitle',\n 'fitTitle',\n 'backTitle',\n 'forwardTitle',\n 'inserChildNodeTitle',\n 'inserNodeTitle',\n 'insertIconTitle',\n 'inserParentNodeTitle',\n 'removeNodeTitle',\n 'setLayoutTitle',\n 'logicalStructureLayout',\n 'catalogOrganizationLayout',\n 'mindMapLayout',\n 'organizationStructureLayout',\n 'timelineLayout',\n 'fishboneLayout',\n 'panelStatusTitle',\n 'screenTypeTitle',\n ]\n\n return textKeys.reduce((acc, key) => {\n if (!key.includes('Title')) {\n acc[key] = I18N.parserText(`mindMap.layout.${key.replace('Layout', '')}`, this.lang)\n }\n else {\n acc[key] = I18N.parserText(`mindMap.controlPanel.${key}`, this.lang)\n }\n return acc\n }, {} as Record<string, string>)\n }\n\n updateControlPanelTexts() {\n const controlItems = this.blot.domNode.querySelectorAll('.ql-mind-map-control-item')\n\n const controlItemMap: Record<string, string> = {\n 'zoom-out': 'zoomOutTitle',\n 'zoom-in': 'zoomInTitle',\n 'fit': 'fitTitle',\n 'back': 'backTitle',\n 'forward': 'forwardTitle',\n 'insert-child-node': 'inserChildNodeTitle',\n 'insert-node': 'inserNodeTitle',\n 'insert-icon': 'insertIconTitle',\n 'insert-parent-node': 'inserParentNodeTitle',\n 'remove-node': 'removeNodeTitle',\n 'set-layout-icon': 'setLayoutTitle',\n 'panel-status': 'panelStatusTitle',\n 'screen-type': 'screenTypeTitle',\n }\n\n controlItems.forEach((item) => {\n const controlType = (item as HTMLElement).dataset.controlType\n if (controlType && controlItemMap[controlType] && this.texts[controlItemMap[controlType]]) {\n (item as HTMLElement).title = this.texts[controlItemMap[controlType]]\n }\n })\n }\n}\n\nconst controlPanelHandlers = new WeakMap<MindMapPlaceholderBlot, MindMapControlPanelHandler>()\n\nconst DISABLED_OPACITY = '0.5'\nconst ENABLED_OPACITY = '1'\nexport function createControlPanel(blot: MindMapPlaceholderBlot, quill: FluentEditor): void {\n let isStart = true\n let isEnd = true\n let selectedNodes: any[] = []\n blot.mindMap.on('node_active', (...args: unknown[]) => {\n selectedNodes = Array.isArray(args[1]) ? args[1] : []\n })\n // 中间的控制面板\n const controlPanel = document.createElement('div')\n controlPanel.className = 'ql-mind-map-control'\n // 右上的控制面板\n const controlRightUpPanel = document.createElement('div')\n controlRightUpPanel.className = 'ql-mind-map-right-up-control'\n // 左上的控制面板\n const controlLeftUpPanel = document.createElement('div')\n controlLeftUpPanel.className = 'ql-mind-map-left-up-control'\n\n const handler = new MindMapControlPanelHandler(quill, blot)\n controlPanelHandlers.set(blot, handler)\n\n const zoomOutBtn = createControlItem('zoom-out', handler.getText('zoomOutTitle'), () => handleZoomOut(blot))\n const zoomInBtn = createControlItem('zoom-in', handler.getText('zoomInTitle'), () => handleZoomIn(blot))\n const resetBtn = createControlItem('fit', handler.getText('fitTitle'), () => handleResetZoom(blot))\n const backBtn = createControlItem('back', handler.getText('backTitle'), () => {\n if (!isStart) {\n blot.mindMap.execCommand('BACK')\n }\n })\n const forwardBtn = createControlItem('forward', handler.getText('forwardTitle'), () => {\n if (!isEnd) {\n blot.mindMap.execCommand('FORWARD')\n }\n })\n const insertChildNode = createControlItem('insert-child-node', handler.getText('inserChildNodeTitle'), () => handleInsertChildNode(blot))\n const insertNode = createControlItem('insert-node', handler.getText('inserNodeTitle'), () => handleInsertNode(blot))\n const insertParentNode = createControlItem('insert-parent-node', handler.getText('inserParentNodeTitle'), () => handleInsertParentNode(blot))\n const removeNode = createControlItem('remove-node', handler.getText('removeNodeTitle'), () => handleRemoveNode(blot))\n const insertIconBtn = createControlItem('insert-icon', handler.getText('insertIconTitle'), () => handleInsertIcon(blot, selectedNodes))\n const setLayoutBtn = createControlItem('set-layout-icon', handler.getText('setLayoutTitle'), () => handleSetLayoutBtn(blot))\n const panelStatusBtn = createControlItem('panel-status', handler.getText('panelStatusTitle'))\n const screenTypeBtn = createControlItem('screen-type', handler.getText('screenTypeTitle'), () => handleScreenTypeBtn(blot))\n const updateButtonState = (index: number, len: number) => {\n isStart = index <= 0\n isEnd = index >= len - 1\n backBtn.style.cursor = isStart ? 'not-allowed' : 'pointer'\n backBtn.style.opacity = isStart ? DISABLED_OPACITY : ENABLED_OPACITY\n forwardBtn.style.cursor = isEnd ? 'not-allowed' : 'pointer'\n forwardBtn.style.opacity = isEnd ? DISABLED_OPACITY : ENABLED_OPACITY\n }\n\n blot.mindMap.on('back_forward', (index: number, len: number) => {\n updateButtonState(index, len)\n })\n controlPanel.append(zoomOutBtn, zoomInBtn, resetBtn, screenTypeBtn, backBtn, forwardBtn)\n blot.domNode.appendChild(controlPanel)\n controlRightUpPanel.append(panelStatusBtn)\n blot.domNode.appendChild(controlRightUpPanel)\n controlLeftUpPanel.append(insertChildNode, insertNode, insertParentNode, removeNode, insertIconBtn, setLayoutBtn)\n blot.domNode.appendChild(controlLeftUpPanel)\n}\n\nfunction createControlItem(iconClass: string, title: string, onClick?: () => void, disabled = false) {\n const controlItem = document.createElement('div')\n controlItem.className = 'ql-mind-map-control-item'\n controlItem.title = title\n controlItem.dataset.controlType = iconClass\n controlItem.style.cursor = disabled ? 'not-allowed' : 'pointer'\n controlItem.style.opacity = disabled ? DISABLED_OPACITY : ENABLED_OPACITY\n\n const iconMap: Record<string, string> = {\n 'back': backIcon,\n 'forward': forwardIcon,\n 'zoom-out': zoomOutIcon,\n 'zoom-in': zoomInIcon,\n 'fit': fitIcon,\n 'insert-child-node': insertChildNodeIcon,\n 'insert-node': insertNodeIcon,\n 'insert-parent-node': insertParentNodeIcon,\n 'remove-node': removeNodeIcon,\n 'insert-icon': insertIconIcon,\n 'set-layout-icon': setLayoutIcon,\n 'screen-type': screenTypeIcon,\n 'panel-status': contractIcon,\n }\n\n const icon = document.createElement('i')\n icon.innerHTML = iconMap[iconClass] || ''\n controlItem.appendChild(icon)\n\n if (!disabled) {\n controlItem.addEventListener('click', onClick)\n }\n\n return controlItem\n}\n\nfunction handleInsertChildNode(blot: MindMapPlaceholderBlot): void {\n blot.mindMap.execCommand('INSERT_CHILD_NODE')\n}\n\nfunction handleInsertNode(blot: MindMapPlaceholderBlot): void {\n blot.mindMap.execCommand('INSERT_NODE')\n}\n\nfunction handleInsertParentNode(blot: MindMapPlaceholderBlot): void {\n blot.mindMap.execCommand('INSERT_PARENT_NODE')\n}\n\nfunction handleRemoveNode(blot: MindMapPlaceholderBlot): void {\n blot.mindMap.execCommand('REMOVE_CURRENT_NODE')\n}\n\nfunction handleZoomIn(blot: MindMapPlaceholderBlot): void {\n if (blot.mindMap && blot.mindMap.view) {\n const containerRect = blot.mindMap.el.getBoundingClientRect()\n const cx = containerRect.width / 2\n const cy = containerRect.height / 2\n blot.mindMap.view.enlarge(cx, cy, false)\n blot.zoomCount++\n }\n}\n\nfunction handleZoomOut(blot: MindMapPlaceholderBlot): void {\n if (blot.mindMap && blot.mindMap.view) {\n const containerRect = blot.mindMap.el.getBoundingClientRect()\n const cx = containerRect.width / 2\n const cy = containerRect.height / 2\n blot.mindMap.view.narrow(cx, cy, false)\n blot.zoomCount--\n }\n}\n\nfunction handleResetZoom(blot: MindMapPlaceholderBlot): void {\n blot.mindMap.renderer.setRootNodeCenter()\n if (!blot.mindMap || !blot.mindMap.view || blot.zoomCount === 0) return\n const containerRect = blot.mindMap.el.getBoundingClientRect()\n const centerX = containerRect.width / 2\n const centerY = containerRect.height / 2\n const operationCount = Math.abs(blot.zoomCount)\n const isEnlarge = blot.zoomCount < 0\n for (let i = 0; i < operationCount; i++) {\n if (isEnlarge) {\n blot.mindMap.view.enlarge(centerX, centerY, false)\n }\n else {\n blot.mindMap.view.narrow(centerX, centerY, false)\n }\n }\n blot.zoomCount = 0\n}\n\nfunction handleInsertIcon(blot: MindMapPlaceholderBlot, selectedNodes: any[]): void {\n (blot as any).selectedNodes = selectedNodes\n const heightStr = blot.domNode.getAttribute('height') || '500px'\n const height = Number.parseInt(heightStr.replace(/[^\\d.]/g, ''), 10) || 500\n let iconList = []\n const { deps } = getAllConfigs(blot.quill)\n iconList = deps.nodeIconList.nodeIconList ? deps.nodeIconList.nodeIconList : deps.nodeIconList\n const leftUpControl = blot.domNode.querySelector('.ql-mind-map-left-up-control') as HTMLElement\n let iconPanel = leftUpControl.querySelector('.ql-mind-map-icon-panel') as HTMLElement\n if (!iconPanel) {\n iconPanel = document.createElement('div')\n iconPanel.className = 'ql-mind-map-icon-panel'\n iconList?.forEach((group) => {\n const groupContainer = document.createElement('div')\n groupContainer.className = 'ql-mind-map-icon-group-container'\n\n group.list.forEach((icon: { icon: string, name: string }) => {\n const iconItem = document.createElement('div')\n iconItem.className = 'ql-mind-map-icon-item'\n iconItem.innerHTML = icon.icon\n\n iconItem.addEventListener('click', () => {\n const currentSelectedNodes = (blot as any).selectedNodes || []\n if (currentSelectedNodes.length > 0) {\n const node = currentSelectedNodes[0]\n\n if (node.getData('icon') && node.getData('icon')[0] === `${group.type}_${icon.name}`) {\n node.setIcon([])\n }\n else {\n node.setIcon([`${group.type}_${icon.name}`])\n }\n blot.data = blot.mindMap.getData({})\n blot.domNode.setAttribute('data-mind-map', JSON.stringify(blot.data))\n }\n iconPanel.style.display = 'none'\n })\n groupContainer.appendChild(iconItem)\n })\n iconPanel.appendChild(groupContainer)\n })\n if (height < 395) {\n iconPanel.style.height = `${height - 130}px`\n }\n else {\n iconPanel.style.height = '270px'\n }\n leftUpControl.appendChild(iconPanel)\n }\n else {\n if (height < 395) {\n iconPanel.style.height = `${height - 130}px`\n }\n else {\n iconPanel.style.height = '270px'\n }\n iconPanel.style.display = 'block'\n }\n\n const handleOutsideClick = (e: MouseEvent) => {\n let insertIconBtn: HTMLElement | null = null\n const controlItems = leftUpControl.querySelectorAll('.ql-mind-map-control-item')\n\n controlItems.forEach((item) => {\n if ((item as HTMLElement).dataset.controlType === 'insert-icon') {\n insertIconBtn = item as HTMLElement\n }\n })\n\n if (!iconPanel.contains(e.target as Node) && (!insertIconBtn || !insertIconBtn.contains(e.target as Node))) {\n iconPanel.style.display = 'none'\n document.removeEventListener('click', handleOutsideClick)\n }\n }\n document.removeEventListener('click', handleOutsideClick)\n document.addEventListener('click', handleOutsideClick)\n}\n\nfunction handleSetLayoutBtn(blot: MindMapPlaceholderBlot): void {\n const handler = controlPanelHandlers.get(blot)\n const leftUpControl = blot.domNode.querySelector('.ql-mind-map-left-up-control') as HTMLElement\n let layoutPanel = leftUpControl.querySelector('.ql-mind-map-layout-panel') as HTMLElement\n const heightStr = blot.domNode.getAttribute('height') || '500'\n const height = Number.parseInt(heightStr.replace(/[^\\d.]/g, ''), 10) || 500\n\n if (!layoutPanel) {\n layoutPanel = document.createElement('div')\n layoutPanel.className = 'ql-mind-map-layout-panel'\n\n const layouts = [\n {\n name: 'logicalStructure',\n displayName: handler?.getText('logicalStructureLayout'),\n icon: logicalStructureIcon,\n },\n {\n name: 'catalogOrganization',\n displayName: handler?.getText('catalogOrganizationLayout'),\n icon: catalogOrganizationIcon,\n },\n {\n name: 'mindMap',\n displayName: handler?.getText('mindMapLayout'),\n icon: mindMapIcon,\n },\n {\n name: 'organizationStructure',\n displayName: handler?.getText('organizationStructureLayout'),\n icon: organizationStructureIcon,\n },\n {\n name: 'timeline',\n displayName: handler?.getText('timelineLayout'),\n icon: timelineIcon,\n },\n {\n name: 'fishbone',\n displayName: handler?.getText('fishboneLayout'),\n icon: fishboneIcon,\n },\n ]\n\n layouts.forEach((layout) => {\n const layoutItem = document.createElement('div')\n layoutItem.className = 'ql-mind-map-layout-item'\n\n const iconContainer = document.createElement('div')\n iconContainer.className = 'ql-mind-map-layout-icon-container'\n\n const img = document.createElement('div')\n img.className = 'ql-mind-map-layout-icon'\n img.innerHTML = layout.icon\n img.style.display = 'flex'\n img.style.alignItems = 'center'\n img.style.justifyContent = 'center'\n const svgElement = img.querySelector('svg')\n\n svgElement.style.maxWidth = '100%'\n svgElement.style.maxHeight = '100%'\n svgElement.style.width = 'auto'\n svgElement.style.height = 'auto'\n svgElement.removeAttribute('width')\n svgElement.removeAttribute('height')\n\n iconContainer.appendChild(img)\n\n const nameText = document.createElement('div')\n nameText.className = 'ql-mind-map-layout-name'\n nameText.textContent = layout.displayName\n\n layoutItem.appendChild(iconContainer)\n layoutItem.appendChild(nameText)\n layoutItem.addEventListener('click', () => {\n blot.mindMap.setLayout(layout.name)\n blot.data = blot.mindMap.getData({})\n blot.domNode.setAttribute('data-mind-map', JSON.stringify(blot.data))\n layoutPanel.style.display = 'none'\n })\n layoutPanel.appendChild(layoutItem)\n })\n leftUpControl.appendChild(layoutPanel)\n if (height < 395) {\n layoutPanel.style.height = `${height - 130}px`\n }\n else {\n layoutPanel.style.height = '270px'\n }\n }\n else {\n if (height < 395) {\n layoutPanel.style.height = `${height - 130}px`\n }\n else {\n layoutPanel.style.height = '270px'\n }\n layoutPanel.style.display = 'flex'\n }\n\n const handleOutsideClick = (e: MouseEvent) => {\n let setLayoutBtn: HTMLElement | null = null\n const controlItems = leftUpControl.querySelectorAll('.ql-mind-map-control-item')\n\n setLayoutBtn = Array.from(controlItems).find(item => item.getAttribute('data-control-type') === 'set-layout-icon') as HTMLElement | null\n\n if (!layoutPanel.contains(e.target as Node) && (!setLayoutBtn || !setLayoutBtn.contains(e.target as Node))) {\n layoutPanel.style.display = 'none'\n document.removeEventListener('click', handleOutsideClick)\n }\n }\n document.removeEventListener('click', handleOutsideClick)\n document.addEventListener('click', handleOutsideClick)\n}\n\nfunction handleScreenTypeBtn(blot: MindMapPlaceholderBlot): void {\n const screenTypeBtn = blot.domNode.querySelector('[data-control-type=\"screen-type\"]') as HTMLElement | null\n if (!screenTypeBtn || !blot.domNode) return\n\n const mindMapContainer = blot.domNode\n const isFullscreen = mindMapContainer.style.position === 'fixed'\n\n if (isFullscreen) {\n const originalPosition = mindMapContainer.getAttribute('data-original-position')\n const originalWidth = mindMapContainer.getAttribute('data-original-width')\n const originalHeight = mindMapContainer.getAttribute('data-original-height')\n if (originalWidth && originalHeight) {\n mindMapContainer.style.position = originalPosition\n mindMapContainer.style.width = originalWidth\n mindMapContainer.style.height = originalHeight\n mindMapContainer.style.zIndex = '0'\n }\n const iconElement = screenTypeBtn.querySelector('i')\n if (iconElement) {\n iconElement.innerHTML = screenTypeIcon\n }\n }\n else {\n mindMapContainer.setAttribute('data-original-position', mindMapContainer.style.position || '')\n mindMapContainer.setAttribute('data-original-width', mindMapContainer.style.width || '')\n mindMapContainer.setAttribute('data-original-height', mindMapContainer.style.height || '')\n mindMapContainer.style.position = 'fixed'\n mindMapContainer.style.top = '0'\n mindMapContainer.style.left = '0'\n mindMapContainer.style.width = '100vw'\n mindMapContainer.style.height = '100vh'\n mindMapContainer.style.zIndex = '100'\n const iconElement = screenTypeBtn.querySelector('i')\n if (iconElement) {\n iconElement.innerHTML = screenReduceIcon\n }\n }\n blot.mindMap.renderer.setRootNodeCenter()\n blot.mindMap.resize()\n}\n"],"names":["registerMindMapI18N","I18N","CHANGE_LANGUAGE_EVENT","index","backIcon","forwardIcon","zoomOutIcon","zoomInIcon","fitIcon","insertChildNodeIcon","insertNodeIcon","insertParentNodeIcon","removeNodeIcon","insertIconIcon","setLayoutIcon","screenTypeIcon","contractIcon","getAllConfigs","logicalStructureIcon","catalogOrganizationIcon","mindMapIcon","organizationStructureIcon","timelineIcon","fishboneIcon","screenReduceIcon"],"mappings":"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"}
@@ -1,161 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const MIN_WIDTH = 350;
7
- const MIN_HEIGHT = 290;
8
- const HEIGHT_THRESHOLD = 395;
9
- const PANEL_HEIGHT_OFFSET = 130;
10
- class MindMapResizeAction {
11
- constructor(blot) {
12
- __publicField(this, "topLeftHandle");
13
- __publicField(this, "topRightHandle");
14
- __publicField(this, "bottomRightHandle");
15
- __publicField(this, "bottomLeftHandle");
16
- __publicField(this, "dragHandle", null);
17
- __publicField(this, "dragStartX", 0);
18
- __publicField(this, "dragStartY", 0);
19
- __publicField(this, "preDragWidth", 0);
20
- __publicField(this, "preDragHeight", 0);
21
- __publicField(this, "targetRatio", 0);
22
- __publicField(this, "blot");
23
- this.blot = blot;
24
- this.topLeftHandle = this.createHandle("top-left", "nwse-resize");
25
- this.topRightHandle = this.createHandle("top-right", "nesw-resize");
26
- this.bottomRightHandle = this.createHandle("bottom-right", "nwse-resize");
27
- this.bottomLeftHandle = this.createHandle("bottom-left", "nesw-resize");
28
- this.init();
29
- }
30
- isFullscreen() {
31
- const container = this.blot.domNode;
32
- return container.style.position === "fixed" && container.style.width === "100vw" && container.style.height === "100vh";
33
- }
34
- init() {
35
- const container = this.blot.domNode;
36
- container.style.position = "relative";
37
- container.appendChild(this.topLeftHandle);
38
- container.appendChild(this.topRightHandle);
39
- container.appendChild(this.bottomRightHandle);
40
- container.appendChild(this.bottomLeftHandle);
41
- this.repositionHandles();
42
- }
43
- createHandle(position, cursor) {
44
- const box = document.createElement("div");
45
- box.classList.add("ql-mind-map-resize-handle");
46
- box.setAttribute("data-position", position);
47
- Object.assign(box.style, {
48
- cursor,
49
- position: "absolute",
50
- width: "10px",
51
- height: "10px",
52
- background: "#4285f4",
53
- border: "1px solid white",
54
- borderRadius: "50%",
55
- zIndex: "99",
56
- userSelect: "none"
57
- });
58
- box.addEventListener("mousedown", this.onMouseDown.bind(this));
59
- return box;
60
- }
61
- repositionHandles() {
62
- const container = this.blot.domNode;
63
- const rect = container.getBoundingClientRect();
64
- Object.assign(this.topLeftHandle.style, {
65
- left: "-5px",
66
- top: "-5px"
67
- });
68
- Object.assign(this.topRightHandle.style, {
69
- right: "-5px",
70
- top: "-5px"
71
- });
72
- Object.assign(this.bottomRightHandle.style, {
73
- right: "-5px",
74
- bottom: "-5px"
75
- });
76
- Object.assign(this.bottomLeftHandle.style, {
77
- left: "-5px",
78
- bottom: "-5px"
79
- });
80
- }
81
- onMouseDown(event) {
82
- if (this.isFullscreen()) {
83
- return;
84
- }
85
- if (!(event.target instanceof HTMLElement)) {
86
- return;
87
- }
88
- this.dragHandle = event.target;
89
- document.body.style.cursor = this.dragHandle.style.cursor;
90
- const container = this.blot.domNode;
91
- const rect = container.getBoundingClientRect();
92
- this.dragStartX = event.clientX;
93
- this.dragStartY = event.clientY;
94
- this.preDragWidth = rect.width;
95
- this.preDragHeight = rect.height;
96
- this.targetRatio = rect.height / rect.width;
97
- event.preventDefault();
98
- document.addEventListener("mousemove", this.onDrag.bind(this));
99
- document.addEventListener("mouseup", this.onMouseUp.bind(this));
100
- }
101
- updateDependentElementsHeight(newHeight) {
102
- const iconPanel = this.blot.domNode.querySelector(".ql-mind-map-icon-panel");
103
- const layoutPanel = this.blot.domNode.querySelector(".ql-mind-map-layout-panel");
104
- if (iconPanel && newHeight < HEIGHT_THRESHOLD) {
105
- iconPanel.style.height = `${newHeight - PANEL_HEIGHT_OFFSET}px`;
106
- }
107
- if (layoutPanel && newHeight < HEIGHT_THRESHOLD) {
108
- layoutPanel.style.height = `${newHeight - PANEL_HEIGHT_OFFSET}px`;
109
- }
110
- }
111
- onDrag(event) {
112
- if (!this.dragHandle) return;
113
- const container = this.blot.domNode;
114
- let newWidth = this.preDragWidth;
115
- let newHeight = this.preDragHeight;
116
- const deltaX = event.clientX - this.dragStartX;
117
- const deltaY = event.clientY - this.dragStartY;
118
- switch (this.dragHandle.dataset.position) {
119
- case "top-left":
120
- newWidth = Math.max(MIN_WIDTH, this.preDragWidth - deltaX);
121
- newHeight = Math.max(MIN_HEIGHT, this.preDragHeight - deltaY);
122
- break;
123
- case "top-right":
124
- newWidth = Math.max(MIN_WIDTH, this.preDragWidth + deltaX);
125
- newHeight = Math.max(MIN_HEIGHT, this.preDragHeight - deltaY);
126
- break;
127
- case "bottom-right":
128
- newWidth = Math.max(MIN_WIDTH, this.preDragWidth + deltaX);
129
- newHeight = Math.max(MIN_HEIGHT, this.preDragHeight + deltaY);
130
- break;
131
- case "bottom-left":
132
- newWidth = Math.max(MIN_WIDTH, this.preDragWidth - deltaX);
133
- newHeight = Math.max(MIN_HEIGHT, this.preDragHeight + deltaY);
134
- break;
135
- }
136
- container.style.width = `${newWidth}px`;
137
- container.style.height = `${newHeight}px`;
138
- container.setAttribute("width", String(newWidth));
139
- container.setAttribute("height", String(newHeight));
140
- this.updateDependentElementsHeight(newHeight);
141
- if (this.blot.mindMap) {
142
- this.blot.mindMap.resize(newWidth, newHeight);
143
- }
144
- container.setAttribute("data-mind-map", JSON.stringify(this.blot.data));
145
- }
146
- onMouseUp() {
147
- document.body.style.cursor = "";
148
- document.removeEventListener("mousemove", this.onDrag.bind(this));
149
- document.removeEventListener("mouseup", this.onMouseUp.bind(this));
150
- this.dragHandle = null;
151
- }
152
- destroy() {
153
- const container = this.blot.domNode;
154
- container.removeChild(this.topLeftHandle);
155
- container.removeChild(this.topRightHandle);
156
- container.removeChild(this.bottomRightHandle);
157
- container.removeChild(this.bottomLeftHandle);
158
- }
159
- }
160
- exports.MindMapResizeAction = MindMapResizeAction;
161
- //# sourceMappingURL=custom-resize-action.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-resize-action.cjs.js","sources":["../../../../../src/modules/mind-map/modules/custom-resize-action.ts"],"sourcesContent":["const MIN_WIDTH = 350\nconst MIN_HEIGHT = 290\nconst HEIGHT_THRESHOLD = 395\nconst PANEL_HEIGHT_OFFSET = 130\n\nexport class MindMapResizeAction {\n topLeftHandle: HTMLElement\n topRightHandle: HTMLElement\n bottomRightHandle: HTMLElement\n bottomLeftHandle: HTMLElement\n dragHandle: HTMLElement | null = null\n dragStartX: number = 0\n dragStartY: number = 0\n preDragWidth: number = 0\n preDragHeight: number = 0\n targetRatio: number = 0\n blot: any\n\n constructor(blot: any) {\n this.blot = blot\n this.topLeftHandle = this.createHandle('top-left', 'nwse-resize')\n this.topRightHandle = this.createHandle('top-right', 'nesw-resize')\n this.bottomRightHandle = this.createHandle('bottom-right', 'nwse-resize')\n this.bottomLeftHandle = this.createHandle('bottom-left', 'nesw-resize')\n this.init()\n }\n\n isFullscreen(): boolean {\n const container = this.blot.domNode\n return container.style.position === 'fixed' && container.style.width === '100vw' && container.style.height === '100vh'\n }\n\n init() {\n const container = this.blot.domNode\n container.style.position = 'relative'\n container.appendChild(this.topLeftHandle)\n container.appendChild(this.topRightHandle)\n container.appendChild(this.bottomRightHandle)\n container.appendChild(this.bottomLeftHandle)\n this.repositionHandles()\n }\n\n createHandle(position: string, cursor: string): HTMLElement {\n const box = document.createElement('div')\n box.classList.add('ql-mind-map-resize-handle')\n box.setAttribute('data-position', position)\n Object.assign(box.style, {\n cursor,\n position: 'absolute',\n width: '10px',\n height: '10px',\n background: '#4285f4',\n border: '1px solid white',\n borderRadius: '50%',\n zIndex: '99',\n userSelect: 'none',\n })\n box.addEventListener('mousedown', this.onMouseDown.bind(this))\n return box\n }\n\n repositionHandles() {\n const container = this.blot.domNode\n const rect = container.getBoundingClientRect()\n\n Object.assign(this.topLeftHandle.style, {\n left: '-5px',\n top: '-5px',\n })\n Object.assign(this.topRightHandle.style, {\n right: '-5px',\n top: '-5px',\n })\n Object.assign(this.bottomRightHandle.style, {\n right: '-5px',\n bottom: '-5px',\n })\n Object.assign(this.bottomLeftHandle.style, {\n left: '-5px',\n bottom: '-5px',\n })\n }\n\n onMouseDown(event: MouseEvent) {\n if (this.isFullscreen()) {\n return\n }\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n this.dragHandle = event.target\n document.body.style.cursor = this.dragHandle.style.cursor\n\n const container = this.blot.domNode\n const rect = container.getBoundingClientRect()\n\n this.dragStartX = event.clientX\n this.dragStartY = event.clientY\n this.preDragWidth = rect.width\n this.preDragHeight = rect.height\n this.targetRatio = rect.height / rect.width\n\n event.preventDefault()\n document.addEventListener('mousemove', this.onDrag.bind(this))\n document.addEventListener('mouseup', this.onMouseUp.bind(this))\n }\n\n updateDependentElementsHeight(newHeight: number) {\n const iconPanel = this.blot.domNode.querySelector('.ql-mind-map-icon-panel') as HTMLElement\n const layoutPanel = this.blot.domNode.querySelector('.ql-mind-map-layout-panel') as HTMLElement\n if (iconPanel && newHeight < HEIGHT_THRESHOLD) {\n iconPanel.style.height = `${newHeight - PANEL_HEIGHT_OFFSET}px`\n }\n if (layoutPanel && newHeight < HEIGHT_THRESHOLD) {\n layoutPanel.style.height = `${newHeight - PANEL_HEIGHT_OFFSET}px`\n }\n }\n\n onDrag(event: MouseEvent) {\n if (!this.dragHandle) return\n\n const container = this.blot.domNode\n let newWidth = this.preDragWidth\n let newHeight = this.preDragHeight\n\n const deltaX = event.clientX - this.dragStartX\n const deltaY = event.clientY - this.dragStartY\n\n switch (this.dragHandle.dataset.position) {\n case 'top-left':\n newWidth = Math.max(MIN_WIDTH, this.preDragWidth - deltaX)\n newHeight = Math.max(MIN_HEIGHT, this.preDragHeight - deltaY)\n break\n case 'top-right':\n newWidth = Math.max(MIN_WIDTH, this.preDragWidth + deltaX)\n newHeight = Math.max(MIN_HEIGHT, this.preDragHeight - deltaY)\n break\n case 'bottom-right':\n newWidth = Math.max(MIN_WIDTH, this.preDragWidth + deltaX)\n newHeight = Math.max(MIN_HEIGHT, this.preDragHeight + deltaY)\n break\n case 'bottom-left':\n newWidth = Math.max(MIN_WIDTH, this.preDragWidth - deltaX)\n newHeight = Math.max(MIN_HEIGHT, this.preDragHeight + deltaY)\n break\n }\n\n container.style.width = `${newWidth}px`\n container.style.height = `${newHeight}px`\n container.setAttribute('width', String(newWidth))\n container.setAttribute('height', String(newHeight))\n this.updateDependentElementsHeight(newHeight)\n if (this.blot.mindMap) {\n this.blot.mindMap.resize(newWidth, newHeight)\n }\n\n container.setAttribute('data-mind-map', JSON.stringify(this.blot.data))\n }\n\n onMouseUp() {\n document.body.style.cursor = ''\n document.removeEventListener('mousemove', this.onDrag.bind(this))\n document.removeEventListener('mouseup', this.onMouseUp.bind(this))\n this.dragHandle = null\n }\n\n destroy() {\n const container = this.blot.domNode\n container.removeChild(this.topLeftHandle)\n container.removeChild(this.topRightHandle)\n container.removeChild(this.bottomRightHandle)\n container.removeChild(this.bottomLeftHandle)\n }\n}\n"],"names":[],"mappings":"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"}
package/mind-map.css DELETED
@@ -1,224 +0,0 @@
1
- .ql-mind-map-item {
2
- position: relative;
3
- width: 100%;
4
- height: 100%;
5
- overflow: hidden;
6
- }
7
-
8
- .ql-mind-map-control {
9
- position: absolute;
10
- top: 8px;
11
- right: 50px;
12
- display: none;
13
- gap: 6px;
14
- white-space: nowrap;
15
- pointer-events: auto;
16
- padding: 5px 5px;
17
- background-color: rgba(255, 255, 255, 0.85);
18
- border-radius: 8px;
19
- box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
20
- }
21
- .ql-mind-map-control .ql-mind-map-control-item {
22
- align-items: center;
23
- cursor: pointer;
24
- display: flex;
25
- flex-direction: column;
26
- justify-content: center;
27
- padding: 5px 5px;
28
- border-radius: inherit;
29
- transition: all 0.2s ease;
30
- }
31
- .ql-mind-map-control .ql-mind-map-control-item .ql-mind-map-control-text {
32
- height: 20px;
33
- font-size: 12px;
34
- }
35
-
36
- .ql-mind-map-left-up-control {
37
- position: absolute;
38
- top: 20%;
39
- left: 2px;
40
- display: none;
41
- gap: 6px;
42
- white-space: nowrap;
43
- pointer-events: auto;
44
- flex-direction: column;
45
- margin: 5px;
46
- padding: 5px 5px;
47
- background-color: rgba(255, 255, 255, 0.85);
48
- border-radius: 8px;
49
- box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
50
- }
51
- .ql-mind-map-left-up-control .ql-mind-map-control-item {
52
- align-items: center;
53
- cursor: pointer;
54
- display: flex;
55
- flex-direction: column;
56
- justify-content: center;
57
- padding: 5px 5px;
58
- border-radius: inherit;
59
- transition: all 0.2s ease;
60
- }
61
- .ql-mind-map-left-up-control .ql-mind-map-control-item .ql-mind-map-control-text {
62
- height: 20px;
63
- font-size: 12px;
64
- }
65
-
66
- .ql-mind-map-right-up-control {
67
- position: absolute;
68
- top: 8px;
69
- right: 6px;
70
- display: inline-flex;
71
- gap: 6px;
72
- white-space: nowrap;
73
- pointer-events: auto;
74
- padding: 5px 5px;
75
- background-color: rgba(255, 255, 255, 0.85);
76
- border-radius: 8px;
77
- box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
78
- }
79
- .ql-mind-map-right-up-control .ql-mind-map-control-item {
80
- align-items: center;
81
- cursor: pointer;
82
- display: flex;
83
- flex-direction: column;
84
- justify-content: center;
85
- padding: 5px 5px;
86
- border-radius: inherit;
87
- transition: all 0.2s ease;
88
- }
89
- .ql-mind-map-right-up-control .ql-mind-map-control-item .ql-mind-map-control-text {
90
- height: 20px;
91
- font-size: 12px;
92
- }
93
-
94
- .ql-mind-map-icon-panel {
95
- border-radius: inherit;
96
- width: 200px;
97
- position: absolute;
98
- left: 45px;
99
- top: 60px;
100
- background-color: white;
101
- border: 1px solid #ccc;
102
- padding: 10px;
103
- z-index: 1000;
104
- max-height: 400px;
105
- overflow-y: auto;
106
- }
107
- .ql-mind-map-icon-panel .ql-mind-map-icon-group-container {
108
- display: flex;
109
- flex-wrap: wrap;
110
- gap: 6px;
111
- }
112
- .ql-mind-map-icon-panel .ql-mind-map-icon-group-container .ql-mind-map-icon-item {
113
- width: 25px;
114
- height: 25px;
115
- display: flex;
116
- align-items: center;
117
- justify-content: center;
118
- cursor: pointer;
119
- border: 1px solid #eee;
120
- border-radius: inherit;
121
- padding: 2px;
122
- transition: box-shadow 0.3s ease;
123
- }
124
- .ql-mind-map-icon-panel .ql-mind-map-icon-group-container .ql-mind-map-icon-item:hover {
125
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
126
- }
127
-
128
- .ql-mind-map-layout-panel {
129
- display: flex;
130
- flex-wrap: wrap;
131
- gap: 6px;
132
- border-radius: inherit;
133
- width: 200px;
134
- position: absolute;
135
- left: 45px;
136
- top: 60px;
137
- background-color: white;
138
- border: 1px solid #ccc;
139
- padding: 10px;
140
- z-index: 1000;
141
- max-height: 400px;
142
- overflow-y: auto;
143
- }
144
- .ql-mind-map-layout-panel .ql-mind-map-layout-item {
145
- display: flex;
146
- flex-direction: column;
147
- align-items: center;
148
- cursor: pointer;
149
- border: 1px solid #eee;
150
- border-radius: inherit;
151
- padding: 2px;
152
- width: 100%;
153
- min-width: 100px;
154
- transition: box-shadow 0.3s ease;
155
- }
156
- .ql-mind-map-layout-panel .ql-mind-map-layout-item:hover {
157
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
158
- }
159
- .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-icon-container {
160
- width: 80px;
161
- height: 60px;
162
- }
163
- .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-icon-container .ql-mind-map-layout-icon {
164
- background-size: contain;
165
- background-repeat: no-repeat;
166
- background-position: center;
167
- width: 80px;
168
- height: 60px;
169
- }
170
- .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-name {
171
- font-size: 12px;
172
- margin-top: 5px;
173
- }
174
-
175
- .ql-mind-map-control-item.disabled {
176
- opacity: 0.5;
177
- cursor: not-allowed;
178
- pointer-events: none;
179
- }
180
-
181
- .ql-mind-map-control-icon {
182
- width: 16px;
183
- height: 16px;
184
- margin-right: 6px;
185
- display: flex;
186
- align-items: center;
187
- justify-content: center;
188
- }
189
-
190
- .ql-mind-map-control-item i {
191
- background-size: cover;
192
- display: inline-block;
193
- height: 20px;
194
- vertical-align: middle;
195
- width: 20px;
196
- }
197
-
198
- .ql-mind-map-control-item:hover {
199
- background-color: #efefef;
200
- }
201
-
202
- .ql-mind-map-context-menu {
203
- font-size: 14px;
204
- color: #333;
205
- user-select: none;
206
- display: none;
207
- position: fixed;
208
- background: white;
209
- border-radius: 4px;
210
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
211
- padding: 5px 0;
212
- z-index: 1000;
213
- visibility: visible;
214
- opacity: 1;
215
- width: 120px;
216
- height: auto;
217
- }
218
- .ql-mind-map-context-menu .ql-mind-map-context-menu-item:hover {
219
- background-color: #f5f5f5;
220
- }
221
-
222
- .smm-node-edit-wrap {
223
- display: none !important;
224
- }
@@ -1,30 +0,0 @@
1
- export declare const INPUT_PLACEHOLDER = "\u8BF7\u8F93\u5165\u95EE\u9898\u6216\"/\"\u83B7\u53D6\u63D0\u793A\u8BCD";
2
- export declare const SELECT_PLACEHOLDER = "\u5411\u6211\u63D0\u95EE/\u9009\u62E9\u64CD\u4F5C";
3
- export declare const STOP_ANSWER = "\u505C\u6B62\u56DE\u7B54";
4
- export declare const REPLACE_SELECT = "\u66FF\u6362\u9009\u4E2D\u5185\u5BB9";
5
- export declare const INSERT_TEXT = "\u63D2\u5165\u5185\u5BB9";
6
- export declare const INSERT_SUB_CONTENT_TEXT = "\u63D2\u5165\u5185\u5BB9\u4E0B\u65B9";
7
- export declare const REGENERATE = "\u91CD\u65B0\u751F\u6210";
8
- export declare const CLOSE = "\u5173\u95ED";
9
- export declare const THINK_TEXT = "\u6B63\u5728\u4E3A\u60A8\u5206\u6790\u5E76\u603B\u7ED3\u7B54\u6848";
10
- export declare const RESULT_HEADER_TEXT = "\u6839\u636E\u60A8\u7684\u8BC9\u6C42\uFF0C\u5DF2\u4E3A\u60A8\u89E3\u7B54\uFF0C\u5177\u4F53\u5982\u4E0B\uFF1A";
11
- export declare const MENU_TITLE_DATA: {
12
- editor: {
13
- id: string;
14
- text: string;
15
- icon: string;
16
- }[];
17
- tone: {
18
- id: string;
19
- text: string;
20
- }[];
21
- adjust: {
22
- id: string;
23
- text: string;
24
- }[];
25
- };
26
- export declare const MENU_ID_MAP: {
27
- editor: string;
28
- tone: string;
29
- adjust: string;
30
- };