observe(element, options) {
    const _ = privates.get(this);
    if (_.o.has(element))
      this.disconnect(element);
    if (!_.o.size) {
      _.m.observe(element.ownerDocument, {
        childList: true,
        subtree: true
      });
    }
    _.o.set(element, _.h);
    if (options && ATTRIBUTE_CHANGED_CALLBACK in _.h) {
      const {attributes, attributeFilter, attributeOldValue} = options;
      const mo = new MutationObserver(attributeChangedCallback);
      mo.observe(element, {attributes, attributeFilter, attributeOldValue});
      observers.set(mo, _.o);
      _.a.set(element, mo);
      for (let {attributes} = element, i = 0; i < attributes.length; i++) {
        const {name, value} = attributes[i];
        if (!attributeFilter || -1 < attributeFilter.indexOf(name))
          _.h[ATTRIBUTE_CHANGED_CALLBACK](element, name, null, value);
      }
    }
    if (element.isConnected && CONNECTED_CALLBACK in _.h)
      _.h[CONNECTED_CALLBACK](element);
  }
/**
   * Like a MutationObserver, observe an element and, if already connected,
   * will trigger the `handler.connectedCallback(element)` right away.
   * @param {Element} element the DOM element to observe.
   * @param {object?} options an optional configuration for attributes.
   */
Like a MutationObserver, observe an element and, if already connected,
will trigger the `handler.connectedCallback(element)` right away.
@param {Element} element the DOM element to observe.
@param {object?} options an optional configuration for attributes.
Like a MutationObserver observe an element and if already connected will trigger the ` handler . connectedCallback ( element ) ` right away . @param { Element } element the DOM element to observe . @param { object? } options an optional configuration for attributes .
observe(element, options) {
    const _ = privates.get(this);
    if (_.o.has(element))
      this.disconnect(element);
    if (!_.o.size) {
      _.m.observe(element.ownerDocument, {
        childList: true,
        subtree: true
      });
    }
    _.o.set(element, _.h);
    if (options && ATTRIBUTE_CHANGED_CALLBACK in _.h) {
      const {attributes, attributeFilter, attributeOldValue} = options;
      const mo = new MutationObserver(attributeChangedCallback);
      mo.observe(element, {attributes, attributeFilter, attributeOldValue});
      observers.set(mo, _.o);
      _.a.set(element, mo);
      for (let {attributes} = element, i = 0; i < attributes.length; i++) {
        const {name, value} = attributes[i];
        if (!attributeFilter || -1 < attributeFilter.indexOf(name))
          _.h[ATTRIBUTE_CHANGED_CALLBACK](element, name, null, value);
      }
    }
    if (element.isConnected && CONNECTED_CALLBACK in _.h)
      _.h[CONNECTED_CALLBACK](element);
  }
observe ( element , options ) { const _ = privates . get ( this ) ; if ( _ . o . has ( element ) ) this . disconnect ( element ) ; if ( ! _ . o . size ) { _ . m . observe ( element . ownerDocument , { childList : true , subtree : true } ) ; } _ . o . set ( element , _ . h ) ; if ( options && ATTRIBUTE_CHANGED_CALLBACK in _ . h ) { const { attributes , attributeFilter , attributeOldValue } = options ; const mo = new MutationObserver ( attributeChangedCallback ) ; mo . observe ( element , { attributes , attributeFilter , attributeOldValue } ) ; observers . set ( mo , _ . o ) ; _ . a . set ( element , mo ) ; for ( let { attributes } = element , i = 0 ; i < attributes . length ; i ++ ) { const { name , value } = attributes [ i ] ; if ( ! attributeFilter || - 1 < attributeFilter . indexOf ( name ) ) _ . h [ ATTRIBUTE_CHANGED_CALLBACK ] ( element , name , null , value ) ; } } if ( element . isConnected && CONNECTED_CALLBACK in _ . h ) _ . h [ CONNECTED_CALLBACK ] ( element ) ; }
Like a MutationObserver, observe an element and, if already connected,
 will trigger the `handler.connectedCallback(element)` right away.
Like a MutationObserver observe an element and if already connected will trigger the ` handler . connectedCallback ( element ) ` right away .