diff --git a/packages/core/src/data_sources/model/conditional_variables/evaluateCondition.ts b/packages/core/src/data_sources/model/conditional_variables/evaluateCondition.ts deleted file mode 100644 index ee5dee77c..000000000 --- a/packages/core/src/data_sources/model/conditional_variables/evaluateCondition.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { ConditionStatement } from './ConditionStatement'; -import { Expression, LogicGroup } from './DataCondition'; -import { LogicalGroupStatement } from './LogicalGroupStatement'; -import { Operator } from './operators'; -import { GenericOperation, GenericOperator } from './operators/GenericOperator'; -import { LogicalOperator } from './operators/LogicalOperator'; -import { NumberOperation, NumberOperator } from './operators/NumberOperator'; -import { StringOperation, StringOperator } from './operators/StringOperations'; - -export function evaluateCondition(condition: any): boolean { - if (typeof condition === 'boolean') { - return condition; - } - - if (isLogicGroup(condition)) { - const { logicalOperator, statements } = condition; - const op = new LogicalOperator(logicalOperator); - const logicalGroup = new LogicalGroupStatement(op, statements); - return logicalGroup.evaluate(); - } - - if (isCondition(condition)) { - const { left, operator, right } = condition; - const op = operatorFactory(left, operator); - const statement = new ConditionStatement(left, op, right); - return statement.evaluate(); - } - - throw new Error('Invalid condition type.'); -} - -function operatorFactory(left: any, operator: string): Operator { - if (isOperatorInEnum(operator, GenericOperation)) { - return new GenericOperator(operator as GenericOperation); - } else if (typeof left === 'number') { - return new NumberOperator(operator as NumberOperation); - } else if (typeof left === 'string') { - return new StringOperator(operator as StringOperation); - } - throw new Error(`Unsupported data type: ${typeof left}`); -} - -function isOperatorInEnum(operator: string, enumObject: any): boolean { - return Object.values(enumObject).includes(operator); -} - -function isLogicGroup(condition: any): condition is LogicGroup { - return condition && typeof condition.logicalOperator !== 'undefined' && Array.isArray(condition.statements); -} - -function isCondition(condition: any): condition is Expression { - return condition && typeof condition.left !== 'undefined' && typeof condition.operator === 'string'; -} diff --git a/packages/core/src/utils/sorter/BaseComponentNode.ts b/packages/core/src/utils/sorter/BaseComponentNode.ts index 98bcb8779..75ecad125 100644 --- a/packages/core/src/utils/sorter/BaseComponentNode.ts +++ b/packages/core/src/utils/sorter/BaseComponentNode.ts @@ -234,7 +234,8 @@ export abstract class BaseComponentNode extends SortableTreeNode { function isDisplayed(element: HTMLElement | undefined): boolean { if (!element) return false; return ( - element instanceof HTMLElement && + typeof element === 'object' && + element.nodeType === Node.ELEMENT_NODE && window.getComputedStyle(element).display !== 'none' && element.offsetWidth > 0 && element.offsetHeight > 0