Skip to content
Snippets Groups Projects
unit-utils.ts 699 B
Newer Older
import { UIElement } from '../interfaces/elements';

export abstract class UnitUtils {
  static findUIElements(value: any | unknown[], type?: string): UIElement[] {
    const elements: UIElement[] = [];
    if (value && typeof value === 'object') {
      if (type ? value.type === type : value.type) {
        elements.push(value);
      }
      if (Array.isArray(value)) {
        value.forEach((arrayItem: unknown) => {
          elements.push(...UnitUtils.findUIElements(arrayItem, type));
        });
      } else {
        Object.keys(value).forEach((key: string) => {
          elements.push(...UnitUtils.findUIElements(value[key], type));
        });
      }
    }
    return elements;
  }
}