UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

Comprehensive n8n community node for Bitrix24 API integration with CRM, Tasks, Chat, Telephony, and more

149 lines (148 loc) 5.88 kB
import { INodeProperties } from "n8n-workflow"; /** * FormOptimizer - Tối ưu hóa performance cho tất cả các loại field * Không chỉ loadOptions mà còn cả string, json, và các field khác * Áp dụng cho TẤT CẢ các modules của n8n-nodes-bitrix24 */ export declare class FormOptimizer { private static validationCache; private static inputCache; private static validationTimers; private static readonly VALIDATION_CACHE_TTL; private static readonly INPUT_CACHE_TTL; /** * Tối ưu hóa tất cả fields trong tất cả modules * Đây là method chính để fix vấn đề keystroke chậm */ static optimizeAllModules(): void; /** * Tối ưu hóa tất cả field definitions trong tất cả modules * Đây là method QUAN TRỌNG NHẤT để fix vấn đề keystroke */ private static optimizeAllFieldDefinitions; /** * Tối ưu hóa field properties để giảm validation overhead * Áp dụng cho TẤT CẢ các loại field types * Đây là method CORE để fix vấn đề keystroke chậm */ static optimizeFieldProperties(field: INodeProperties): INodeProperties; /** * Tối ưu hóa tất cả fields trong một collection * Đây là method CORE để fix vấn đề keystroke chậm */ static optimizeFieldsCollection(fields: INodeProperties[]): INodeProperties[]; /** * Tối ưu hóa các field types phổ biến nhất */ private static optimizeCommonFieldTypes; /** * Cache optimization settings để tái sử dụng */ private static cacheOptimizationSettings; /** * Tối ưu hóa field cho CRM modules */ static optimizeCrmFields(): INodeProperties[]; /** * Tối ưu hóa field cho Task modules */ static optimizeTaskFields(): INodeProperties[]; /** * Tối ưu hóa field cho User modules */ static optimizeUserFields(): INodeProperties[]; /** * Tối ưu hóa field cho SPA modules */ static optimizeSpaFields(): INodeProperties[]; /** * Cache validation result để tránh validate lại */ static cacheValidationResult(fieldName: string, value: any, isValid: boolean): void; /** * Get cached validation result */ static getCachedValidationResult(fieldName: string, value: any): boolean | null; /** * Cache input value để tránh re-process */ static cacheInputValue(fieldName: string, value: any): void; /** * Get cached input value */ static getCachedInputValue(fieldName: string): any | null; /** * Debounced validation để tránh spam */ static debouncedValidation(fieldName: string, value: any, validationFunction: (value: any) => boolean, delay?: number): Promise<boolean>; /** * Smart field validation với caching */ static smartValidation(fieldName: string, value: any, validationFunction: (value: any) => boolean): Promise<boolean>; /** * Clear all caches */ static clearAll(): void; /** * Clear cache for specific field */ static clearCacheForField(fieldName: string): void; /** * Get cache statistics */ static getCacheStats(): { validationCache: number; inputCache: number; activeTimers: number; }; /** * Tối ưu hóa field cho Direct API */ static optimizeDirectApiFields(): INodeProperties[]; /** * Kiểm tra xem field có phải là long text field không * Long text fields sẽ được chuyển thành textarea để tăng performance */ private static isLongTextField; /** * FIX TRIỆT ĐỂ: Chuyển TẤT CẢ string fields thành textarea * Đây là method QUAN TRỌNG NHẤT để fix vấn đề keystroke chậm * Textarea nhanh hơn input text vì không có real-time validation */ static forceTextareaForAllStringFields(fields: INodeProperties[]): INodeProperties[]; /** * FIX TRIỆT ĐỂ: Chuyển TẤT CẢ JSON fields thành large textarea * JSON fields cần nhiều rows để dễ edit */ static forceLargeTextareaForAllJsonFields(fields: INodeProperties[]): INodeProperties[]; /** * FIX TRIỆT ĐỂ: Tối ưu hóa TẤT CẢ fields với textarea approach * Đây là method CORE để fix vấn đề keystroke chậm */ static optimizeAllFieldsWithTextarea(fields: INodeProperties[]): INodeProperties[]; /** * FIX TRIỆT ĐỂ: Tắt HOÀN TOÀN real-time validation cho TẤT CẢ fields * Đây là method MẠNH NHẤT để fix vấn đề keystroke chậm */ static disableAllRealTimeValidation(fields: INodeProperties[]): INodeProperties[]; /** * FIX TRIỆT ĐỂ: Tối ưu hóa TẤT CẢ fields với NO VALIDATION approach * Đây là method MẠNH NHẤT để fix vấn đề keystroke chậm */ static optimizeAllFieldsWithNoValidation(fields: INodeProperties[]): INodeProperties[]; /** * FIX VẤN ĐỀ KEYUP: Tối ưu hóa event handling để fix typing intermittently * Đây là method QUAN TRỌNG để fix vấn đề keyup chậm */ private static optimizeKeyupEventHandling; /** * FIX TRIỆT ĐỂ: Disable HOÀN TOÀN tất cả keyboard events * Đây là method MẠNH NHẤT để fix vấn đề keystroke chậm */ static disableAllKeyboardEvents(fields: INodeProperties[]): INodeProperties[]; /** * FIX TRIỆT ĐỂ: Method chính để fix vấn đề keystroke chậm * Sử dụng approach MẠNH NHẤT: NO VALIDATION + GIỮ NGUYÊN STRING FIELDS + FIX KEYUP + DISABLE ALL KEYBOARD EVENTS */ static fixKeystrokeSlowness(fields: INodeProperties[]): INodeProperties[]; }