Skip to content
Snippets Groups Projects
unit-utils.ts 699 B
Newer Older
  • Learn to ignore specific revisions
  • 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;
      }
    }