function Structure(query, props, children, depth) {
  if ( props === void 0 ) props = {};
  if ( depth === void 0 ) depth = 0;

  this.query = query;
  this.props = Boolean !== props ? props : {};
  if (isComponent(query) || query instanceof Component) {
    this.$compChildren = flatten(children || []).map(filterNode);
    this.children = [];
  } else {
    this.children = flatten(children || []).map(filterNode);
    this.$compChildren = [];
  }
  this.html = null;
  this.$attrListeners = [];
  this.$styleListeners = [];
  this.$pointer = null;
  this.$component = null;
  this.$listener = null;
  this.$redirect = null;
  this.$destroyed = false;
  this.$isSvg = query === 'svg';
  this.$depth = depth;
}
function Structure(query, props, children, depth) {
  if ( props === void 0 ) props = {};
  if ( depth === void 0 ) depth = 0;

  this.query = query;
  this.props = Boolean !== props ? props : {};
  if (isComponent(query) || query instanceof Component) {
    this.$compChildren = flatten(children || []).map(filterNode);
    this.children = [];
  } else {
    this.children = flatten(children || []).map(filterNode);
    this.$compChildren = [];
  }
  this.html = null;
  this.$attrListeners = [];
  this.$styleListeners = [];
  this.$pointer = null;
  this.$component = null;
  this.$listener = null;
  this.$redirect = null;
  this.$destroyed = false;
  this.$isSvg = query === 'svg';
  this.$depth = depth;
}
function Structure ( query , props , children , depth ) { if ( props === void 0 ) props = { } ; if ( depth === void 0 ) depth = 0 ; this . query = query ; this . props = Boolean !== props ? props : { } ; if ( isComponent ( query ) || query instanceof Component ) { this . $compChildren = flatten ( children || [ ] ) . map ( filterNode ) ; this . children = [ ] ; } else { this . children = flatten ( children || [ ] ) . map ( filterNode ) ; this . $compChildren = [ ] ; } this . html = null ; this . $attrListeners = [ ] ; this . $styleListeners = [ ] ; this . $pointer = null ; this . $component = null ; this . $listener = null ; this . $redirect = null ; this . $destroyed = false ; this . $isSvg = query === 'svg' ; this . $depth = depth ; }
/* eslint-disable no-restricted-syntax 
@param {*} query
@param {object} props
@param {...*} children
@param {number} depth
/ * eslint - disable no - restricted - syntax