@opentiny/fluent-editor 4.0.0-beta.1 → 4.0.0
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.
- package/es/config/i18n/en-us.es.js +0 -2
- package/es/config/i18n/en-us.es.js.map +1 -1
- package/es/config/i18n/zh-cn.es.js +0 -2
- package/es/config/i18n/zh-cn.es.js.map +1 -1
- package/es/fluent-editor.es.js +0 -6
- package/es/fluent-editor.es.js.map +1 -1
- package/es/index.es.js +0 -4
- package/es/index.es.js.map +1 -1
- package/es/modules/index.es.js +0 -4
- package/es/modules/index.es.js.map +1 -1
- package/es/modules/shortcut-key/index.es.js +0 -16
- package/es/modules/shortcut-key/index.es.js.map +1 -1
- package/es/ui/icons.config.es.js +0 -4
- package/es/ui/icons.config.es.js.map +1 -1
- package/es/ui/icons.es.js +2 -4
- package/es/ui/icons.es.js.map +1 -1
- package/lib/config/i18n/en-us.cjs.js +0 -2
- package/lib/config/i18n/en-us.cjs.js.map +1 -1
- package/lib/config/i18n/zh-cn.cjs.js +0 -2
- package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
- package/lib/fluent-editor.cjs.js +2 -8
- package/lib/fluent-editor.cjs.js.map +1 -1
- package/lib/index.cjs.js +5 -9
- package/lib/index.cjs.js.map +1 -1
- package/lib/modules/index.cjs.js +5 -9
- package/lib/modules/index.cjs.js.map +1 -1
- package/lib/modules/shortcut-key/index.cjs.js +0 -16
- package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
- package/lib/ui/icons.cjs.js +1 -3
- package/lib/ui/icons.cjs.js.map +1 -1
- package/lib/ui/icons.config.cjs.js +0 -4
- package/lib/ui/icons.config.cjs.js.map +1 -1
- package/package.json +1 -3
- package/types/config/i18n/en-us.d.ts +0 -2
- package/types/config/i18n/zh-cn.d.ts +0 -2
- package/types/config/types/editor-modules.interface.d.ts +0 -4
- package/types/modules/index.d.ts +0 -2
- package/types/ui/icons.config.d.ts +0 -2
- package/es/modules/ai/constants.es.js +0 -50
- package/es/modules/ai/constants.es.js.map +0 -1
- package/es/modules/ai/icons.es.js +0 -319
- package/es/modules/ai/icons.es.js.map +0 -1
- package/es/modules/ai/index.es.js +0 -670
- package/es/modules/ai/index.es.js.map +0 -1
- package/es/modules/flow-chart/config-utils.es.js +0 -102
- package/es/modules/flow-chart/config-utils.es.js.map +0 -1
- package/es/modules/flow-chart/formats/flow-chart-blot.es.js +0 -369
- package/es/modules/flow-chart/formats/flow-chart-blot.es.js.map +0 -1
- package/es/modules/flow-chart/i18n/en-us.es.js +0 -30
- package/es/modules/flow-chart/i18n/en-us.es.js.map +0 -1
- package/es/modules/flow-chart/i18n/index.es.js +0 -12
- package/es/modules/flow-chart/i18n/index.es.js.map +0 -1
- package/es/modules/flow-chart/i18n/zh-cn.es.js +0 -30
- package/es/modules/flow-chart/i18n/zh-cn.es.js.map +0 -1
- package/es/modules/flow-chart/icons.es.js +0 -27
- package/es/modules/flow-chart/icons.es.js.map +0 -1
- package/es/modules/flow-chart/index.es.js +0 -45
- package/es/modules/flow-chart/index.es.js.map +0 -1
- package/es/modules/flow-chart/modules/context-menu.es.js +0 -184
- package/es/modules/flow-chart/modules/context-menu.es.js.map +0 -1
- package/es/modules/flow-chart/modules/control-panel.es.js +0 -286
- package/es/modules/flow-chart/modules/control-panel.es.js.map +0 -1
- package/es/modules/flow-chart/modules/custom-resize-action.es.js +0 -150
- package/es/modules/flow-chart/modules/custom-resize-action.es.js.map +0 -1
- package/es/modules/mind-map/config-utils.es.js +0 -108
- package/es/modules/mind-map/config-utils.es.js.map +0 -1
- package/es/modules/mind-map/formats/mind-map-blot.es.js +0 -356
- package/es/modules/mind-map/formats/mind-map-blot.es.js.map +0 -1
- package/es/modules/mind-map/i18n/en-us.es.js +0 -29
- package/es/modules/mind-map/i18n/en-us.es.js.map +0 -1
- package/es/modules/mind-map/i18n/index.es.js +0 -12
- package/es/modules/mind-map/i18n/index.es.js.map +0 -1
- package/es/modules/mind-map/i18n/zh-cn.es.js +0 -29
- package/es/modules/mind-map/i18n/zh-cn.es.js.map +0 -1
- package/es/modules/mind-map/icons.es.js +0 -45
- package/es/modules/mind-map/icons.es.js.map +0 -1
- package/es/modules/mind-map/index.es.js +0 -56
- package/es/modules/mind-map/index.es.js.map +0 -1
- package/es/modules/mind-map/modules/context-menu.es.js +0 -128
- package/es/modules/mind-map/modules/context-menu.es.js.map +0 -1
- package/es/modules/mind-map/modules/control-panel.es.js +0 -425
- package/es/modules/mind-map/modules/control-panel.es.js.map +0 -1
- package/es/modules/mind-map/modules/custom-resize-action.es.js +0 -161
- package/es/modules/mind-map/modules/custom-resize-action.es.js.map +0 -1
- package/flow-chart.css +0 -185
- package/lib/modules/ai/constants.cjs.js +0 -50
- package/lib/modules/ai/constants.cjs.js.map +0 -1
- package/lib/modules/ai/icons.cjs.js +0 -319
- package/lib/modules/ai/icons.cjs.js.map +0 -1
- package/lib/modules/ai/index.cjs.js +0 -670
- package/lib/modules/ai/index.cjs.js.map +0 -1
- package/lib/modules/flow-chart/config-utils.cjs.js +0 -102
- package/lib/modules/flow-chart/config-utils.cjs.js.map +0 -1
- package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js +0 -369
- package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js.map +0 -1
- package/lib/modules/flow-chart/i18n/en-us.cjs.js +0 -30
- package/lib/modules/flow-chart/i18n/en-us.cjs.js.map +0 -1
- package/lib/modules/flow-chart/i18n/index.cjs.js +0 -12
- package/lib/modules/flow-chart/i18n/index.cjs.js.map +0 -1
- package/lib/modules/flow-chart/i18n/zh-cn.cjs.js +0 -30
- package/lib/modules/flow-chart/i18n/zh-cn.cjs.js.map +0 -1
- package/lib/modules/flow-chart/icons.cjs.js +0 -27
- package/lib/modules/flow-chart/icons.cjs.js.map +0 -1
- package/lib/modules/flow-chart/index.cjs.js +0 -45
- package/lib/modules/flow-chart/index.cjs.js.map +0 -1
- package/lib/modules/flow-chart/modules/context-menu.cjs.js +0 -184
- package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +0 -1
- package/lib/modules/flow-chart/modules/control-panel.cjs.js +0 -286
- package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +0 -1
- package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js +0 -150
- package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js.map +0 -1
- package/lib/modules/mind-map/config-utils.cjs.js +0 -108
- package/lib/modules/mind-map/config-utils.cjs.js.map +0 -1
- package/lib/modules/mind-map/formats/mind-map-blot.cjs.js +0 -356
- package/lib/modules/mind-map/formats/mind-map-blot.cjs.js.map +0 -1
- package/lib/modules/mind-map/i18n/en-us.cjs.js +0 -29
- package/lib/modules/mind-map/i18n/en-us.cjs.js.map +0 -1
- package/lib/modules/mind-map/i18n/index.cjs.js +0 -12
- package/lib/modules/mind-map/i18n/index.cjs.js.map +0 -1
- package/lib/modules/mind-map/i18n/zh-cn.cjs.js +0 -29
- package/lib/modules/mind-map/i18n/zh-cn.cjs.js.map +0 -1
- package/lib/modules/mind-map/icons.cjs.js +0 -45
- package/lib/modules/mind-map/icons.cjs.js.map +0 -1
- package/lib/modules/mind-map/index.cjs.js +0 -56
- package/lib/modules/mind-map/index.cjs.js.map +0 -1
- package/lib/modules/mind-map/modules/context-menu.cjs.js +0 -128
- package/lib/modules/mind-map/modules/context-menu.cjs.js.map +0 -1
- package/lib/modules/mind-map/modules/control-panel.cjs.js +0 -425
- package/lib/modules/mind-map/modules/control-panel.cjs.js.map +0 -1
- package/lib/modules/mind-map/modules/custom-resize-action.cjs.js +0 -161
- package/lib/modules/mind-map/modules/custom-resize-action.cjs.js.map +0 -1
- package/mind-map.css +0 -224
- package/types/modules/ai/constants.d.ts +0 -30
- package/types/modules/ai/icons.d.ts +0 -21
- package/types/modules/ai/index.d.ts +0 -96
- package/types/modules/ai/types.d.ts +0 -16
- package/types/modules/flow-chart/config-utils.d.ts +0 -10
- package/types/modules/flow-chart/formats/flow-chart-blot.d.ts +0 -43
- package/types/modules/flow-chart/i18n/en-us.d.ts +0 -26
- package/types/modules/flow-chart/i18n/index.d.ts +0 -1
- package/types/modules/flow-chart/i18n/zh-cn.d.ts +0 -26
- package/types/modules/flow-chart/icons.d.ts +0 -12
- package/types/modules/flow-chart/index.d.ts +0 -10
- package/types/modules/flow-chart/modules/context-menu.d.ts +0 -3
- package/types/modules/flow-chart/modules/control-panel.d.ts +0 -3
- package/types/modules/flow-chart/modules/custom-resize-action.d.ts +0 -22
- package/types/modules/flow-chart/options.d.ts +0 -29
- package/types/modules/mind-map/config-utils.d.ts +0 -12
- package/types/modules/mind-map/formats/mind-map-blot.d.ts +0 -44
- package/types/modules/mind-map/i18n/en-us.d.ts +0 -25
- package/types/modules/mind-map/i18n/index.d.ts +0 -1
- package/types/modules/mind-map/i18n/zh-cn.d.ts +0 -25
- package/types/modules/mind-map/icons.d.ts +0 -21
- package/types/modules/mind-map/index.d.ts +0 -10
- package/types/modules/mind-map/modules/context-menu.d.ts +0 -3
- package/types/modules/mind-map/modules/control-panel.d.ts +0 -3
- package/types/modules/mind-map/modules/custom-resize-action.d.ts +0 -23
- 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
|
-
};
|