@visactor/vtable-sheet 1.20.2 → 1.20.3

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.
@@ -320,5 +320,4 @@ class WorkSheet extends event_target_1.EventTarget {
320
320
  }
321
321
  }
322
322
 
323
- exports.WorkSheet = WorkSheet;
324
- //# sourceMappingURL=WorkSheet.js.map
323
+ exports.WorkSheet = WorkSheet;
@@ -12,7 +12,6 @@ export declare class FormulaAutocomplete {
12
12
  private items;
13
13
  private selectedIndex;
14
14
  private isVisible;
15
- private originalEditingEditor;
16
15
  private inputElement;
17
16
  private sheet;
18
17
  private onSelectCallback?;
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.FormulaAutocomplete = void 0;
6
6
 
7
+ const vtable_plugins_1 = require("@visactor/vtable-plugins");
8
+
7
9
  class FormulaAutocomplete {
8
10
  constructor(container, sheet) {
9
11
  this.dropdown = null, this.items = [], this.selectedIndex = -1, this.isVisible = !1,
10
- this.originalEditingEditor = null, this.inputElement = null, this.container = container,
11
- this.sheet = sheet, this.createDropdown();
12
+ this.inputElement = null, this.container = container, this.sheet = sheet, this.createDropdown();
12
13
  }
13
14
  createDropdown() {
14
15
  this.dropdown = document.createElement("div"), this.dropdown.className = "vtable-formula-autocomplete",
@@ -244,14 +245,17 @@ class FormulaAutocomplete {
244
245
  }
245
246
  }
246
247
  show() {
247
- this.dropdown && this.items.length > 0 && (this.originalEditingEditor = this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor,
248
- this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor = null, this.dropdown.style.display = "block",
249
- this.isVisible = !0, this.selectedIndex = 0, this.renderDropdown());
248
+ if (this.dropdown && this.items.length > 0) {
249
+ const excelEditCellKeyboardPlugin = this.sheet.getActiveSheet().tableInstance.pluginManager.getPlugin("excel-edit-cell-keyboard");
250
+ excelEditCellKeyboardPlugin && excelEditCellKeyboardPlugin.deleteResponseKeyboard([ vtable_plugins_1.ExcelEditCellKeyboardResponse.ARROW_DOWN, vtable_plugins_1.ExcelEditCellKeyboardResponse.ARROW_UP, vtable_plugins_1.ExcelEditCellKeyboardResponse.ENTER ]),
251
+ this.dropdown.style.display = "block", this.isVisible = !0, this.selectedIndex = 0,
252
+ this.renderDropdown();
253
+ }
250
254
  }
251
255
  hide() {
252
- this.originalEditingEditor && (this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor = this.originalEditingEditor,
253
- this.originalEditingEditor = null), this.dropdown && (this.dropdown.style.display = "none",
254
- this.isVisible = !1, this.selectedIndex = -1);
256
+ const excelEditCellKeyboardPlugin = this.sheet.getActiveSheet().tableInstance.pluginManager.getPlugin("excel-edit-cell-keyboard");
257
+ excelEditCellKeyboardPlugin && excelEditCellKeyboardPlugin.addResponseKeyboard([ vtable_plugins_1.ExcelEditCellKeyboardResponse.ARROW_DOWN, vtable_plugins_1.ExcelEditCellKeyboardResponse.ARROW_UP, vtable_plugins_1.ExcelEditCellKeyboardResponse.ENTER ]),
258
+ this.dropdown && (this.dropdown.style.display = "none", this.isVisible = !1, this.selectedIndex = -1);
255
259
  }
256
260
  release() {
257
261
  this.dropdown && this.dropdown.parentNode && this.dropdown.parentNode.removeChild(this.dropdown);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/formula/formula-autocomplete.ts"],"names":[],"mappings":"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","file":"formula-autocomplete.js","sourcesContent":["import type { IEditor } from '@visactor/vtable-editors';\nimport type VTableSheet from '../components/vtable-sheet';\n\ninterface AutocompleteItem {\n type: 'function' | 'cell' | 'range';\n value: string;\n label: string;\n description?: string;\n signature?: string;\n}\n\nexport class FormulaAutocomplete {\n private container: HTMLElement;\n private dropdown: HTMLElement | null = null;\n private items: AutocompleteItem[] = [];\n private selectedIndex: number = -1;\n private isVisible: boolean = false;\n private originalEditingEditor: IEditor<any, any> = null;\n private inputElement: HTMLInputElement | null = null;\n private sheet: VTableSheet;\n private onSelectCallback?: (item: AutocompleteItem) => void;\n\n private customPositioning?: () => void;\n\n constructor(container: HTMLElement, sheet: VTableSheet) {\n this.container = container;\n this.sheet = sheet;\n this.createDropdown();\n }\n\n /**\n * 创建下拉框元素\n */\n private createDropdown(): void {\n this.dropdown = document.createElement('div');\n this.dropdown.className = 'vtable-formula-autocomplete';\n this.dropdown.style.display = 'none';\n this.container.appendChild(this.dropdown);\n }\n\n /**\n * 绑定到输入框\n */\n attachTo(input: HTMLInputElement, onSelect?: (item: AutocompleteItem) => void, customPositioning?: () => void): void {\n this.inputElement = input;\n this.onSelectCallback = onSelect;\n this.customPositioning = customPositioning;\n\n // 绑定事件\n input.addEventListener('input', this.handleInput.bind(this));\n input.addEventListener('keydown', this.handleKeydown.bind(this), true);\n input.addEventListener('blur', () => {\n setTimeout(() => this.hide(), 10);\n });\n }\n\n /**\n * 处理输入事件\n */\n private handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value;\n const cursorPos = input.selectionStart || 0;\n\n // 解析当前输入上下文\n const context = this.parseInputContext(value, cursorPos);\n\n if (context.shouldShowAutocomplete) {\n this.updateSuggestions(context);\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * 解析输入上下文\n */\n private parseInputContext(\n value: string,\n cursorPos: number\n ): {\n shouldShowAutocomplete: boolean;\n searchTerm: string;\n type: 'function' | 'cell' | 'all';\n insertPosition: number;\n } {\n // 如果不是公式,不显示\n if (!value.startsWith('=')) {\n return { shouldShowAutocomplete: false, searchTerm: '', type: 'all', insertPosition: 0 };\n }\n\n // 获取光标前的文本\n const textBeforeCursor = value.substring(1, cursorPos); // 去掉 '='\n\n // 查找最后一个函数或操作符\n const lastOperatorMatch = textBeforeCursor.match(/[\\+\\-\\*\\/\\(\\,\\s]([A-Za-z0-9]*)$/);\n\n if (lastOperatorMatch && lastOperatorMatch[1] !== '') {\n return {\n shouldShowAutocomplete: true,\n searchTerm: lastOperatorMatch[1],\n type: /^[A-Za-z]/.test(lastOperatorMatch[1]) ? 'function' : 'cell',\n insertPosition: cursorPos - lastOperatorMatch[1].length\n };\n }\n\n // 公式开始位置\n if (textBeforeCursor.match(/^[A-Za-z0-9]*$/)) {\n return {\n shouldShowAutocomplete: true,\n searchTerm: textBeforeCursor,\n type: 'all',\n insertPosition: 1\n };\n }\n\n return { shouldShowAutocomplete: false, searchTerm: '', type: 'all', insertPosition: 0 };\n }\n\n /**\n * 更新建议列表\n */\n private updateSuggestions(context: any): void {\n const { searchTerm, type } = context;\n this.items = [];\n\n // 获取函数列表\n if (type === 'function' || type === 'all') {\n const functions = this.sheet.formulaManager.getAvailableFunctions();\n const functionItems = functions\n .filter(fn => fn.toUpperCase().startsWith(searchTerm.toUpperCase()))\n .slice(0, 10) // 限制数量\n .map(fn => ({\n type: 'function' as const,\n value: fn,\n label: fn,\n description: this.getFunctionDescription(fn),\n signature: this.getFunctionSignature(fn)\n }));\n this.items.push(...functionItems);\n }\n\n // 添加单元格引用建议\n if (type === 'cell' || type === 'all') {\n const cellSuggestions = this.generateCellSuggestions(searchTerm);\n this.items.push(...cellSuggestions);\n }\n this.renderDropdown();\n }\n\n /**\n * 生成单元格引用建议\n */\n private generateCellSuggestions(searchTerm: string): AutocompleteItem[] {\n const suggestions: AutocompleteItem[] = [];\n\n // 如果是有效的部分单元格地址\n const cellMatch = searchTerm.match(/^([A-Za-z]*)([0-9]*)$/);\n if (cellMatch) {\n const [, colPart, rowPart] = cellMatch;\n\n // 生成列建议\n if (colPart && !rowPart) {\n // A -> A1, A2, A3...\n for (let row = 1; row <= 5; row++) {\n suggestions.push({\n type: 'cell',\n value: `${colPart.toUpperCase()}${row}`,\n label: `${colPart.toUpperCase()}${row}`,\n description: '单元格引用'\n });\n }\n }\n\n // 生成完整单元格建议\n if (colPart && rowPart) {\n const address = `${colPart.toUpperCase()}${rowPart}`;\n suggestions.push({\n type: 'cell',\n value: address,\n label: address,\n description: '单元格引用'\n });\n\n // 添加范围建议\n suggestions.push({\n type: 'range',\n value: `${address}:`,\n label: `${address}:...`,\n description: '开始选择范围'\n });\n }\n }\n\n return suggestions.slice(0, 5); // 限制建议数量\n }\n\n /**\n * 获取函数描述\n */\n private getFunctionDescription(functionName: string): string {\n const descriptions: Record<string, string> = {\n SUM: '计算数值总和',\n AVERAGE: '计算平均值',\n COUNT: '计数数值单元格',\n MAX: '返回最大值',\n MIN: '返回最小值',\n IF: '条件判断',\n VLOOKUP: '垂直查找',\n CONCATENATE: '连接文本'\n // ... 更多函数描述\n };\n return descriptions[functionName] || '';\n }\n\n /**\n * 获取函数签名\n */\n private getFunctionSignature(functionName: string): string {\n const signatures: Record<string, string> = {\n SUM: '(number1, [number2], ...)',\n AVERAGE: '(number1, [number2], ...)',\n COUNT: '(value1, [value2], ...)',\n MAX: '(number1, [number2], ...)',\n MIN: '(number1, [number2], ...)',\n IF: '(logical_test, value_if_true, value_if_false)',\n VLOOKUP: '(lookup_value, table_array, col_index_num, [range_lookup])',\n CONCATENATE: '(text1, [text2], ...)'\n // ... 更多函数签名\n };\n return signatures[functionName] || '()';\n }\n\n /**\n * 渲染下拉框\n */\n private renderDropdown(): void {\n if (!this.dropdown) {\n return;\n }\n\n this.dropdown.innerHTML = '';\n\n if (this.items.length === 0) {\n // 无结果提示\n const emptyEl = document.createElement('div');\n emptyEl.className = 'vtable-formula-autocomplete-empty';\n emptyEl.textContent = '没有匹配的函数';\n this.dropdown.appendChild(emptyEl);\n return;\n }\n\n // 按类型分组\n const groups = this.groupItems(this.items);\n\n groups.forEach(group => {\n // 添加分组标题\n if (groups.length > 1) {\n const groupEl = document.createElement('div');\n groupEl.className = 'vtable-formula-autocomplete-group';\n groupEl.textContent = this.getGroupTitle(group.type);\n this.dropdown.appendChild(groupEl);\n }\n\n // 渲染组内项目\n group.items.forEach((item, index) => {\n const globalIndex = this.items.indexOf(item);\n const itemEl = document.createElement('div');\n itemEl.className = 'vtable-formula-autocomplete-item';\n\n if (globalIndex === this.selectedIndex) {\n itemEl.classList.add('selected');\n }\n\n // 函数名和类型标签\n const nameEl = document.createElement('div');\n nameEl.className = 'item-name';\n\n const labelEl = document.createElement('span');\n labelEl.textContent = item.label;\n nameEl.appendChild(labelEl);\n\n const typeEl = document.createElement('span');\n typeEl.className = `item-type ${item.type}`;\n typeEl.textContent = this.getTypeLabel(item.type);\n nameEl.appendChild(typeEl);\n\n itemEl.appendChild(nameEl);\n\n // 函数签名\n if (item.signature) {\n const signatureEl = document.createElement('div');\n signatureEl.className = 'item-signature';\n signatureEl.textContent = item.signature;\n itemEl.appendChild(signatureEl);\n }\n\n // 描述\n if (item.description) {\n const descEl = document.createElement('div');\n descEl.className = 'item-description';\n descEl.textContent = item.description;\n itemEl.appendChild(descEl);\n }\n\n itemEl.addEventListener('mousedown', () => this.selectItem(globalIndex));\n itemEl.addEventListener('mouseenter', () => {\n this.selectedIndex = globalIndex;\n this.renderDropdown();\n });\n\n this.dropdown.appendChild(itemEl);\n });\n });\n\n // 添加快捷键提示\n const footerEl = document.createElement('div');\n footerEl.className = 'vtable-formula-autocomplete-footer';\n footerEl.innerHTML = `\n <div class=\"shortcut\">\n <span class=\"key\">↑↓</span>\n <span>选择</span>\n </div>\n <div class=\"shortcut\">\n <span class=\"key\">Enter</span>\n <span>确认</span>\n </div>\n <div class=\"shortcut\">\n <span class=\"key\">Esc</span>\n <span>取消</span>\n </div>\n `;\n this.dropdown.appendChild(footerEl);\n\n this.positionDropdown();\n }\n\n /**\n * 对项目进行分组\n */\n private groupItems(items: AutocompleteItem[]): Array<{ type: string; items: AutocompleteItem[] }> {\n const groups: Record<string, AutocompleteItem[]> = {};\n\n items.forEach(item => {\n if (!groups[item.type]) {\n groups[item.type] = [];\n }\n groups[item.type].push(item);\n });\n\n // 按照优先级排序:function > cell > range\n const priority = ['function', 'cell', 'range'];\n return priority.filter(type => groups[type]).map(type => ({ type, items: groups[type] }));\n }\n\n /**\n * 获取分组标题\n */\n private getGroupTitle(type: string): string {\n const titles: Record<string, string> = {\n function: '函数',\n cell: '单元格',\n range: '范围'\n };\n return titles[type] || type;\n }\n\n /**\n * 获取类型标签\n */\n private getTypeLabel(type: string): string {\n const labels: Record<string, string> = {\n function: 'fx',\n cell: 'A1',\n range: 'A:B'\n };\n return labels[type] || type;\n }\n\n /**\n * 定位下拉框\n */\n private positionDropdown(): void {\n if (this.customPositioning) {\n this.customPositioning();\n return;\n }\n if (!this.dropdown || !this.inputElement) {\n return;\n }\n\n const inputRect = this.inputElement.getBoundingClientRect();\n const containerRect = this.container.getBoundingClientRect();\n\n this.dropdown.style.position = 'absolute';\n this.dropdown.style.left = `${inputRect.left - containerRect.left}px`;\n this.dropdown.style.top = `${inputRect.bottom - containerRect.top + 2}px`;\n this.dropdown.style.width = `${Math.max(300, inputRect.width)}px`;\n }\n\n /**\n * 处理键盘事件\n */\n private handleKeydown(event: KeyboardEvent): void {\n if (!this.isVisible) {\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.selectedIndex = Math.min(this.selectedIndex + 1, this.items.length - 1);\n this.renderDropdown();\n this.scrollToSelectedItem();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.selectedIndex = Math.max(this.selectedIndex - 1, 0);\n this.renderDropdown();\n this.scrollToSelectedItem();\n break;\n case 'Enter':\n if (this.selectedIndex >= 0) {\n event.preventDefault();\n this.selectItem(this.selectedIndex);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.hide();\n // 确保输入框重新获得焦点\n if (this.inputElement) {\n this.inputElement.focus();\n }\n break;\n case 'Tab':\n if (this.selectedIndex >= 0) {\n event.preventDefault();\n this.selectItem(this.selectedIndex);\n } else {\n this.hide();\n }\n break;\n }\n }\n\n /**\n * 滚动到选中的项目\n */\n private scrollToSelectedItem(): void {\n if (!this.dropdown || this.selectedIndex < 0) {\n return;\n }\n\n const items = this.dropdown.querySelectorAll('.vtable-formula-autocomplete-item');\n if (items[this.selectedIndex]) {\n const selectedItem = items[this.selectedIndex] as HTMLElement;\n selectedItem.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n\n /**\n * 选择项目\n */\n private selectItem(index: number): void {\n const item = this.items[index];\n if (!item || !this.inputElement) {\n return;\n }\n\n if (this.onSelectCallback) {\n this.onSelectCallback(item);\n } else {\n // 默认插入行为\n const value = this.inputElement.value;\n const cursorPos = this.inputElement.selectionStart || 0;\n const context = this.parseInputContext(value, cursorPos);\n\n const newValue =\n value.substring(0, context.insertPosition) +\n item.value +\n (item.type === 'function' ? '(' : '') +\n value.substring(cursorPos);\n\n this.inputElement.value = newValue;\n\n // 设置光标位置\n const newCursorPos = context.insertPosition + item.value.length + (item.type === 'function' ? 1 : 0);\n this.inputElement.setSelectionRange(newCursorPos, newCursorPos);\n\n // 触发input事件以同步到其他组件\n const inputEvent = new Event('input', { bubbles: true });\n this.inputElement.dispatchEvent(inputEvent);\n }\n\n this.hide();\n\n // 确保输入框重新获得焦点\n if (this.inputElement) {\n setTimeout(() => {\n this.inputElement.focus();\n }, 50);\n }\n }\n\n /**\n * 显示下拉框\n */\n private show(): void {\n if (this.dropdown && this.items.length > 0) {\n this.originalEditingEditor = this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor;\n //这个地方不得已将其临时置为null,因为显示出公式列表后期望列表能响应enter、arrowDown、arrowUp等按键,但是和插件excel-edit-cell-keyboard冲突,单元格编辑状态中的话插件里面捕获了这些按键,所以需要临时置为null\n this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor = null;\n this.dropdown.style.display = 'block';\n this.isVisible = true;\n this.selectedIndex = 0;\n this.renderDropdown();\n }\n }\n\n /**\n * 隐藏下拉框\n */\n private hide(): void {\n if (this.originalEditingEditor) {\n //恢复原来的编辑状态\n this.sheet.getActiveSheet().tableInstance.editorManager.editingEditor = this.originalEditingEditor;\n this.originalEditingEditor = null;\n }\n if (this.dropdown) {\n this.dropdown.style.display = 'none';\n this.isVisible = false;\n this.selectedIndex = -1;\n }\n }\n\n /**\n * 销毁组件\n */\n release(): void {\n if (this.dropdown && this.dropdown.parentNode) {\n this.dropdown.parentNode.removeChild(this.dropdown);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/formula/formula-autocomplete.ts"],"names":[],"mappings":"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","file":"formula-autocomplete.js","sourcesContent":["import type VTableSheet from '../components/vtable-sheet';\nimport { ExcelEditCellKeyboardResponse } from '@visactor/vtable-plugins';\nimport type { ExcelEditCellKeyboardPlugin } from '@visactor/vtable-plugins';\n\ninterface AutocompleteItem {\n type: 'function' | 'cell' | 'range';\n value: string;\n label: string;\n description?: string;\n signature?: string;\n}\n\nexport class FormulaAutocomplete {\n private container: HTMLElement;\n private dropdown: HTMLElement | null = null;\n private items: AutocompleteItem[] = [];\n private selectedIndex: number = -1;\n private isVisible: boolean = false;\n private inputElement: HTMLInputElement | null = null;\n private sheet: VTableSheet;\n private onSelectCallback?: (item: AutocompleteItem) => void;\n\n private customPositioning?: () => void;\n\n constructor(container: HTMLElement, sheet: VTableSheet) {\n this.container = container;\n this.sheet = sheet;\n this.createDropdown();\n }\n\n /**\n * 创建下拉框元素\n */\n private createDropdown(): void {\n this.dropdown = document.createElement('div');\n this.dropdown.className = 'vtable-formula-autocomplete';\n this.dropdown.style.display = 'none';\n this.container.appendChild(this.dropdown);\n }\n\n /**\n * 绑定到输入框\n */\n attachTo(input: HTMLInputElement, onSelect?: (item: AutocompleteItem) => void, customPositioning?: () => void): void {\n this.inputElement = input;\n this.onSelectCallback = onSelect;\n this.customPositioning = customPositioning;\n\n // 绑定事件\n input.addEventListener('input', this.handleInput.bind(this));\n input.addEventListener('keydown', this.handleKeydown.bind(this), true);\n input.addEventListener('blur', () => {\n setTimeout(() => this.hide(), 10);\n });\n }\n\n /**\n * 处理输入事件\n */\n private handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value;\n const cursorPos = input.selectionStart || 0;\n\n // 解析当前输入上下文\n const context = this.parseInputContext(value, cursorPos);\n\n if (context.shouldShowAutocomplete) {\n this.updateSuggestions(context);\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * 解析输入上下文\n */\n private parseInputContext(\n value: string,\n cursorPos: number\n ): {\n shouldShowAutocomplete: boolean;\n searchTerm: string;\n type: 'function' | 'cell' | 'all';\n insertPosition: number;\n } {\n // 如果不是公式,不显示\n if (!value.startsWith('=')) {\n return { shouldShowAutocomplete: false, searchTerm: '', type: 'all', insertPosition: 0 };\n }\n\n // 获取光标前的文本\n const textBeforeCursor = value.substring(1, cursorPos); // 去掉 '='\n\n // 查找最后一个函数或操作符\n const lastOperatorMatch = textBeforeCursor.match(/[\\+\\-\\*\\/\\(\\,\\s]([A-Za-z0-9]*)$/);\n\n if (lastOperatorMatch && lastOperatorMatch[1] !== '') {\n return {\n shouldShowAutocomplete: true,\n searchTerm: lastOperatorMatch[1],\n type: /^[A-Za-z]/.test(lastOperatorMatch[1]) ? 'function' : 'cell',\n insertPosition: cursorPos - lastOperatorMatch[1].length\n };\n }\n\n // 公式开始位置\n if (textBeforeCursor.match(/^[A-Za-z0-9]*$/)) {\n return {\n shouldShowAutocomplete: true,\n searchTerm: textBeforeCursor,\n type: 'all',\n insertPosition: 1\n };\n }\n\n return { shouldShowAutocomplete: false, searchTerm: '', type: 'all', insertPosition: 0 };\n }\n\n /**\n * 更新建议列表\n */\n private updateSuggestions(context: any): void {\n const { searchTerm, type } = context;\n this.items = [];\n\n // 获取函数列表\n if (type === 'function' || type === 'all') {\n const functions = this.sheet.formulaManager.getAvailableFunctions();\n const functionItems = functions\n .filter(fn => fn.toUpperCase().startsWith(searchTerm.toUpperCase()))\n .slice(0, 10) // 限制数量\n .map(fn => ({\n type: 'function' as const,\n value: fn,\n label: fn,\n description: this.getFunctionDescription(fn),\n signature: this.getFunctionSignature(fn)\n }));\n this.items.push(...functionItems);\n }\n\n // 添加单元格引用建议\n if (type === 'cell' || type === 'all') {\n const cellSuggestions = this.generateCellSuggestions(searchTerm);\n this.items.push(...cellSuggestions);\n }\n this.renderDropdown();\n }\n\n /**\n * 生成单元格引用建议\n */\n private generateCellSuggestions(searchTerm: string): AutocompleteItem[] {\n const suggestions: AutocompleteItem[] = [];\n\n // 如果是有效的部分单元格地址\n const cellMatch = searchTerm.match(/^([A-Za-z]*)([0-9]*)$/);\n if (cellMatch) {\n const [, colPart, rowPart] = cellMatch;\n\n // 生成列建议\n if (colPart && !rowPart) {\n // A -> A1, A2, A3...\n for (let row = 1; row <= 5; row++) {\n suggestions.push({\n type: 'cell',\n value: `${colPart.toUpperCase()}${row}`,\n label: `${colPart.toUpperCase()}${row}`,\n description: '单元格引用'\n });\n }\n }\n\n // 生成完整单元格建议\n if (colPart && rowPart) {\n const address = `${colPart.toUpperCase()}${rowPart}`;\n suggestions.push({\n type: 'cell',\n value: address,\n label: address,\n description: '单元格引用'\n });\n\n // 添加范围建议\n suggestions.push({\n type: 'range',\n value: `${address}:`,\n label: `${address}:...`,\n description: '开始选择范围'\n });\n }\n }\n\n return suggestions.slice(0, 5); // 限制建议数量\n }\n\n /**\n * 获取函数描述\n */\n private getFunctionDescription(functionName: string): string {\n const descriptions: Record<string, string> = {\n SUM: '计算数值总和',\n AVERAGE: '计算平均值',\n COUNT: '计数数值单元格',\n MAX: '返回最大值',\n MIN: '返回最小值',\n IF: '条件判断',\n VLOOKUP: '垂直查找',\n CONCATENATE: '连接文本'\n // ... 更多函数描述\n };\n return descriptions[functionName] || '';\n }\n\n /**\n * 获取函数签名\n */\n private getFunctionSignature(functionName: string): string {\n const signatures: Record<string, string> = {\n SUM: '(number1, [number2], ...)',\n AVERAGE: '(number1, [number2], ...)',\n COUNT: '(value1, [value2], ...)',\n MAX: '(number1, [number2], ...)',\n MIN: '(number1, [number2], ...)',\n IF: '(logical_test, value_if_true, value_if_false)',\n VLOOKUP: '(lookup_value, table_array, col_index_num, [range_lookup])',\n CONCATENATE: '(text1, [text2], ...)'\n // ... 更多函数签名\n };\n return signatures[functionName] || '()';\n }\n\n /**\n * 渲染下拉框\n */\n private renderDropdown(): void {\n if (!this.dropdown) {\n return;\n }\n\n this.dropdown.innerHTML = '';\n\n if (this.items.length === 0) {\n // 无结果提示\n const emptyEl = document.createElement('div');\n emptyEl.className = 'vtable-formula-autocomplete-empty';\n emptyEl.textContent = '没有匹配的函数';\n this.dropdown.appendChild(emptyEl);\n return;\n }\n\n // 按类型分组\n const groups = this.groupItems(this.items);\n\n groups.forEach(group => {\n // 添加分组标题\n if (groups.length > 1) {\n const groupEl = document.createElement('div');\n groupEl.className = 'vtable-formula-autocomplete-group';\n groupEl.textContent = this.getGroupTitle(group.type);\n this.dropdown.appendChild(groupEl);\n }\n\n // 渲染组内项目\n group.items.forEach((item, index) => {\n const globalIndex = this.items.indexOf(item);\n const itemEl = document.createElement('div');\n itemEl.className = 'vtable-formula-autocomplete-item';\n\n if (globalIndex === this.selectedIndex) {\n itemEl.classList.add('selected');\n }\n\n // 函数名和类型标签\n const nameEl = document.createElement('div');\n nameEl.className = 'item-name';\n\n const labelEl = document.createElement('span');\n labelEl.textContent = item.label;\n nameEl.appendChild(labelEl);\n\n const typeEl = document.createElement('span');\n typeEl.className = `item-type ${item.type}`;\n typeEl.textContent = this.getTypeLabel(item.type);\n nameEl.appendChild(typeEl);\n\n itemEl.appendChild(nameEl);\n\n // 函数签名\n if (item.signature) {\n const signatureEl = document.createElement('div');\n signatureEl.className = 'item-signature';\n signatureEl.textContent = item.signature;\n itemEl.appendChild(signatureEl);\n }\n\n // 描述\n if (item.description) {\n const descEl = document.createElement('div');\n descEl.className = 'item-description';\n descEl.textContent = item.description;\n itemEl.appendChild(descEl);\n }\n\n itemEl.addEventListener('mousedown', () => this.selectItem(globalIndex));\n itemEl.addEventListener('mouseenter', () => {\n this.selectedIndex = globalIndex;\n this.renderDropdown();\n });\n\n this.dropdown.appendChild(itemEl);\n });\n });\n\n // 添加快捷键提示\n const footerEl = document.createElement('div');\n footerEl.className = 'vtable-formula-autocomplete-footer';\n footerEl.innerHTML = `\n <div class=\"shortcut\">\n <span class=\"key\">↑↓</span>\n <span>选择</span>\n </div>\n <div class=\"shortcut\">\n <span class=\"key\">Enter</span>\n <span>确认</span>\n </div>\n <div class=\"shortcut\">\n <span class=\"key\">Esc</span>\n <span>取消</span>\n </div>\n `;\n this.dropdown.appendChild(footerEl);\n\n this.positionDropdown();\n }\n\n /**\n * 对项目进行分组\n */\n private groupItems(items: AutocompleteItem[]): Array<{ type: string; items: AutocompleteItem[] }> {\n const groups: Record<string, AutocompleteItem[]> = {};\n\n items.forEach(item => {\n if (!groups[item.type]) {\n groups[item.type] = [];\n }\n groups[item.type].push(item);\n });\n\n // 按照优先级排序:function > cell > range\n const priority = ['function', 'cell', 'range'];\n return priority.filter(type => groups[type]).map(type => ({ type, items: groups[type] }));\n }\n\n /**\n * 获取分组标题\n */\n private getGroupTitle(type: string): string {\n const titles: Record<string, string> = {\n function: '函数',\n cell: '单元格',\n range: '范围'\n };\n return titles[type] || type;\n }\n\n /**\n * 获取类型标签\n */\n private getTypeLabel(type: string): string {\n const labels: Record<string, string> = {\n function: 'fx',\n cell: 'A1',\n range: 'A:B'\n };\n return labels[type] || type;\n }\n\n /**\n * 定位下拉框\n */\n private positionDropdown(): void {\n if (this.customPositioning) {\n this.customPositioning();\n return;\n }\n if (!this.dropdown || !this.inputElement) {\n return;\n }\n\n const inputRect = this.inputElement.getBoundingClientRect();\n const containerRect = this.container.getBoundingClientRect();\n\n this.dropdown.style.position = 'absolute';\n this.dropdown.style.left = `${inputRect.left - containerRect.left}px`;\n this.dropdown.style.top = `${inputRect.bottom - containerRect.top + 2}px`;\n this.dropdown.style.width = `${Math.max(300, inputRect.width)}px`;\n }\n\n /**\n * 处理键盘事件\n */\n private handleKeydown(event: KeyboardEvent): void {\n if (!this.isVisible) {\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.selectedIndex = Math.min(this.selectedIndex + 1, this.items.length - 1);\n this.renderDropdown();\n this.scrollToSelectedItem();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.selectedIndex = Math.max(this.selectedIndex - 1, 0);\n this.renderDropdown();\n this.scrollToSelectedItem();\n break;\n case 'Enter':\n if (this.selectedIndex >= 0) {\n event.preventDefault();\n this.selectItem(this.selectedIndex);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.hide();\n // 确保输入框重新获得焦点\n if (this.inputElement) {\n this.inputElement.focus();\n }\n break;\n case 'Tab':\n if (this.selectedIndex >= 0) {\n event.preventDefault();\n this.selectItem(this.selectedIndex);\n } else {\n this.hide();\n }\n break;\n }\n }\n\n /**\n * 滚动到选中的项目\n */\n private scrollToSelectedItem(): void {\n if (!this.dropdown || this.selectedIndex < 0) {\n return;\n }\n\n const items = this.dropdown.querySelectorAll('.vtable-formula-autocomplete-item');\n if (items[this.selectedIndex]) {\n const selectedItem = items[this.selectedIndex] as HTMLElement;\n selectedItem.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n\n /**\n * 选择项目\n */\n private selectItem(index: number): void {\n const item = this.items[index];\n if (!item || !this.inputElement) {\n return;\n }\n\n if (this.onSelectCallback) {\n this.onSelectCallback(item);\n } else {\n // 默认插入行为\n const value = this.inputElement.value;\n const cursorPos = this.inputElement.selectionStart || 0;\n const context = this.parseInputContext(value, cursorPos);\n\n const newValue =\n value.substring(0, context.insertPosition) +\n item.value +\n (item.type === 'function' ? '(' : '') +\n value.substring(cursorPos);\n\n this.inputElement.value = newValue;\n\n // 设置光标位置\n const newCursorPos = context.insertPosition + item.value.length + (item.type === 'function' ? 1 : 0);\n this.inputElement.setSelectionRange(newCursorPos, newCursorPos);\n\n // 触发input事件以同步到其他组件\n const inputEvent = new Event('input', { bubbles: true });\n this.inputElement.dispatchEvent(inputEvent);\n }\n\n this.hide();\n\n // 确保输入框重新获得焦点\n if (this.inputElement) {\n setTimeout(() => {\n this.inputElement.focus();\n }, 50);\n }\n }\n\n /**\n * 显示下拉框\n */\n private show(): void {\n if (this.dropdown && this.items.length > 0) {\n // 因为显示出公式列表后期望列表能响应enter、arrowDown、arrowUp等按键,但是和插件excel-edit-cell-keyboard冲突,单元格编辑状态中的话插件里面捕获了这些按键\n // 将table的plugins中excel-edit-cell-keyboard的响应键盘设置为空\n const excelEditCellKeyboardPlugin = this.sheet\n .getActiveSheet()\n .tableInstance.pluginManager.getPlugin('excel-edit-cell-keyboard') as ExcelEditCellKeyboardPlugin;\n if (excelEditCellKeyboardPlugin) {\n excelEditCellKeyboardPlugin.deleteResponseKeyboard([\n ExcelEditCellKeyboardResponse.ARROW_DOWN,\n ExcelEditCellKeyboardResponse.ARROW_UP,\n ExcelEditCellKeyboardResponse.ENTER\n ]);\n }\n\n this.dropdown.style.display = 'block';\n this.isVisible = true;\n this.selectedIndex = 0;\n this.renderDropdown();\n }\n }\n\n /**\n * 隐藏下拉框\n */\n private hide(): void {\n const excelEditCellKeyboardPlugin = this.sheet\n .getActiveSheet()\n .tableInstance.pluginManager.getPlugin('excel-edit-cell-keyboard') as ExcelEditCellKeyboardPlugin;\n if (excelEditCellKeyboardPlugin) {\n // 将show的时候删除的键盘响应重新添加回来\n excelEditCellKeyboardPlugin.addResponseKeyboard([\n ExcelEditCellKeyboardResponse.ARROW_DOWN,\n ExcelEditCellKeyboardResponse.ARROW_UP,\n ExcelEditCellKeyboardResponse.ENTER\n ]);\n }\n if (this.dropdown) {\n this.dropdown.style.display = 'none';\n this.isVisible = false;\n this.selectedIndex = -1;\n }\n }\n\n /**\n * 销毁组件\n */\n release(): void {\n if (this.dropdown && this.dropdown.parentNode) {\n this.dropdown.parentNode.removeChild(this.dropdown);\n }\n }\n}\n"]}
@@ -225,4 +225,5 @@ class FormulaUIManager {
225
225
  }
226
226
  }
227
227
 
228
- exports.FormulaUIManager = FormulaUIManager;
228
+ exports.FormulaUIManager = FormulaUIManager;
229
+ //# sourceMappingURL=formula-ui-manager.js.map
package/cjs/index.d.ts CHANGED
@@ -2,5 +2,5 @@ import VTableSheet from './components/vtable-sheet';
2
2
  import type { ISheetDefine, IVTableSheetOptions } from './ts-types';
3
3
  import * as TYPES from './ts-types';
4
4
  import * as VTable from './vtable';
5
- export declare const version = "1.20.2";
5
+ export declare const version = "1.20.3";
6
6
  export { VTableSheet, TYPES, VTable, ISheetDefine, IVTableSheetOptions };
package/cjs/index.js CHANGED
@@ -47,4 +47,4 @@ exports.VTable = VTable;
47
47
 
48
48
  const style_manager_1 = require("./styles/style-manager");
49
49
 
50
- exports.version = "1.20.2", (0, style_manager_1.importStyles)();
50
+ exports.version = "1.20.3", (0, style_manager_1.importStyles)();
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6EAAoD;AAW3C,sBAXF,sBAAW,CAWE;AATpB,kDAAoC;AASd,sBAAK;AAR3B,iDAAmC;AAQN,wBAAM;AAPnC,0DAAsD;AACzC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC,IAAA,4BAAY,GAAE,CAAC","file":"index.js","sourcesContent":["import VTableSheet from './components/vtable-sheet';\nimport type { ISheetDefine, IVTableSheetOptions } from './ts-types';\nimport * as TYPES from './ts-types';\nimport * as VTable from './vtable';\nimport { importStyles } from './styles/style-manager';\nexport const version = \"1.20.2\";\n// 导入样式\nimportStyles();\n/**\n * @namespace VTableSheet\n */\nexport { VTableSheet, TYPES, VTable, ISheetDefine, IVTableSheetOptions };\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6EAAoD;AAW3C,sBAXF,sBAAW,CAWE;AATpB,kDAAoC;AASd,sBAAK;AAR3B,iDAAmC;AAQN,wBAAM;AAPnC,0DAAsD;AACzC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC,IAAA,4BAAY,GAAE,CAAC","file":"index.js","sourcesContent":["import VTableSheet from './components/vtable-sheet';\nimport type { ISheetDefine, IVTableSheetOptions } from './ts-types';\nimport * as TYPES from './ts-types';\nimport * as VTable from './vtable';\nimport { importStyles } from './styles/style-manager';\nexport const version = \"1.20.3\";\n// 导入样式\nimportStyles();\n/**\n * @namespace VTableSheet\n */\nexport { VTableSheet, TYPES, VTable, ISheetDefine, IVTableSheetOptions };\n"]}